发出 APPC 谓词

需要执行以下过程才能发出阻止的 APPC 谓词。 在示例代码中,发出的谓词 MC_SEND_DATA

发出阻止 APPC 谓词

  1. 从谓词控制块 (VCB) 结构创建一个结构变量,该结构适用于要发出的 APPC 谓词。

    #include <winappc.h>  
        .  
        .  
    struct mc_send_data  mcsend;  
    The VCB structures are declared in WINAPPC.H; one of these structures is:  
    mc_send_data  
    
  2. 清除 (VCB 结构中的变量) 设置为零。

    memset( mcsend, '\0', sizeof( mcsend ) );  
    
  3. 为向 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 中定义。

  4. 调用 APPC 函数。 唯一的参数是指向包含所需谓词 VCB 的结构地址的指针。

    APPC ( ( long ) (void FAR * ) &mcsend );  
    

    如果要在 Windows 版本 3 下运行应用程序,请使用 WinAsyncAPPCx.

    调用 WinAsyncAPPC

    HANDLE WINAPI WinAsyncAPPC (hWnd, 1pVCB)  
    

    异步操作完成后,应用程序的窗口 hWnd 将接收 RegisterWindowMessage 返回的消息,其中“WinAsyncAPPC”作为输入字符串。

  5. 使用 APPC 返回的变量。

    if( mcsend.primary_rc != AP_OK )   
    /* Do error routine */  
        .  
        .  
        .