APPC 동사 발급
차단 APPC 동사를 발급하려면 다음 절차가 필요합니다. 샘플 코드에서 발급된 동사는 MC_SEND_DATA.
차단 APPC 동사를 발급하려면
발급할 APPC 동사에 적용되는 VCB(동사 제어 블록) 구조체에서 구조체 변수를 만듭니다.
#include <winappc.h> . . struct mc_send_data mcsend; The VCB structures are declared in WINAPPC.H; one of these structures is: mc_send_data
VCB 구조 내에서 변수를 지웁니다(0으로 설정).
memset( mcsend, '\0', sizeof( mcsend ) );
APPC에 정보를 제공하는 VCB 변수에 값을 할당합니다.
mcsend.opcode = AP_M_SEND_DATA; mcsend.opext = AP_MAPPED_CONVERSATION; memcpy( mcsend.tp_id, tp_id, sizeof( tp_id ) ); mcsend.conv_id = conv_id; mcsend.dlen = datalen; mcsend.dptr = sharebufptr;
AP_MAPPED_CONVERSATION 및 AP_M_SEND_DATA 값은 정수를 나타내는 기호 상수입니다. 이러한 상수는 WINAPPC.H에 정의되어 있습니다.
APPC 함수를 호출합니다. 유일한 매개 변수는 원하는 동사에 대한 VCB를 포함하는 구조체의 주소에 대한 포인터입니다.
APPC ( ( long ) (void FAR * ) &mcsend );
Windows 버전 3에서 애플리케이션을 실행하는 경우 WinAsyncAPPC 를 사용합니다. x.
WinAsyncAPPC를 호출하려면 다음을 수행합니다.
HANDLE WINAPI WinAsyncAPPC (hWnd, 1pVCB)
비동기 작업이 완료되면 애플리케이션의 창 hWnd 는 RegisterWindowMessage 에서 "WinAsyncAPPC"가 입력 문자열로 반환된 메시지를 받습니다.
APPC에서 반환된 변수를 사용합니다.
if( mcsend.primary_rc != AP_OK ) /* Do error routine */ . . .