发出阻止 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 结构中的变量(设置为零)。
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 */ . . .