WinAsyncAPPCEx

WinAsyncAPPCEx函式會提供所有 APPC 動詞的非同步進入點。 您可以使用此函式來取代動詞的封鎖版本,以允許在相同執行緒上使用事件處理多個會話。 只有 Microsoft Windows 支援這個動詞命令,並使用 Win32®事件。

語法

  
    HANDLE WINAPI WinAsyncAPPCEx(   
HANDLEevent_handle,  
longlpVcb);  

參數

event_handle
用於使用 Win32 事件之事件通知的控制碼。

lpVcb
動詞控制項區塊的指標。

傳回值

傳回值會指定非同步解析要求是否成功。 如果函式成功,則傳回值是非同步工作控制碼。 如果函式不成功,則會傳回零。

當此函式傳回時,如果值成功,這並不表示 APPC 呼叫最終會成功傳回。 它只會指出 APPC 程式庫可以使用事件通知,以非同步方式嘗試 APPC 呼叫。

備註

此函式的目的是要搭配 WIN32 API 中的 WaitForSingleObjectWaitForMultipleObjects 使用。 這些函式會在 Microsoft Platform SDK 檔的「參考」一節中說明。

如需如何在多執行緒 Tp 中使用此動詞的範例,請參閱多執行緒傳送和接收範例 Tp (MRCV。C、MSEND。C 和 MSENDRCV。C 位於 MSENDRCV 資料夾中,) 包含在 SDK 中。

可以封鎖的基本交談中使用的 APPC 動詞如下:

注意

上述段落的例外狀況為 RECEIVE_AND_POSTMC_RECEIVE_AND_POSTRECEIVE_AND_WAITMC_RECEIVE_AND_WAIT

注意

為了充分利用非同步支援,非同步發出的 RECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 動詞已改變,如同 RECEIVE_AND_POSTMC_RECEIVE_AND_POST 動詞。 具體而言,雖然其中一個動詞命令的非同步版本是未處理的,但下列動詞可在相同的交談上發出:

注意

這可讓應用程式(尤其是伺服器應用程式)使用非同步 RECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 來接收資料。 雖然RECEIVE_AND_POSTMC_RECEIVE_AND_POSTRECEIVE_AND_WAITMC_RECEIVE_AND_WAIT未完成,但仍可使用SEND_ERRORMC_SEND_ERROR 和 REQUEST_TO_SEND 或MC_REQUEST_TO_SEND。 建議您將這項功能用於完整的非同步支援,特別是在相同執行緒上支援多個交談的情況。

當非同步作業完成時,會透過事件的信號通知應用程式。 當事件發出信號時,請檢查動詞控制區塊中是否有任何錯誤狀況的 APPC 主要傳回碼和次要傳回碼。