WinAsyncAPPC
WinAsyncAPPC函式會為所有 APPC 動詞提供非同步進入點。 如果您執行應用程式,並且想要使用 Windows 控制碼張貼訊息,以完成非同步動詞,請使用此函式,而不是動詞命令的封鎖版本。
語法
HANDLE WINAPI WinAsyncAPPC(
HANDLE hWnd,
Long lpVcb
);
參數
hWnd
視窗控制碼,用於訊息張貼,以在 APPC 動詞完成時通知應用程式。
lpVcb
動詞控制項區塊的指標。
傳回值
傳回值會指定非同步要求是否成功。 如果函式成功,則傳回值是非同步工作控制碼。 如果函式未成功,則會傳回零。
當此函式傳回成功值時,這並不表示 APPC 呼叫最終會成功傳回。 它只會指出 APPC 程式庫可以使用通知的訊息張貼,以非同步方式嘗試 APPC 呼叫。
備註
如需如何在交易程式中使用這個動詞 (TP) 的範例,請參閱傳送和接收範例 TP (SENDRECV。C 位於 SDK 中包含的 APPC 資料夾中) 。
可以封鎖的基本交談中使用的 APPC 動詞如下:
-
在可封鎖的對應交談中使用的 APPC 動詞如下:
-
使用動詞的同步或非同步版本時,應用程式一次只能有一個未處理的函式進行中。 嘗試起始第二個函式會導致錯誤碼AP_CONV_BUSY。
上述段落的例外狀況如下:
-
為了允許完整使用非同步支援,已改變異步發出RECEIVE_AND_WAIT和MC_RECEIVE_AND_WAIT動詞,以像RECEIVE_AND_POST和MC_RECEIVE_AND_POST動詞。 具體來說,雖然其中一個動詞的非同步版本未完成,但可以在相同的交談上發出下列動詞:
DEALLOCATE (AP_ABEND_PROG、AP_ABEND_SVC或AP_ABEND_TIMER)
-
這可讓應用程式特別是 5250 模擬器使用非同步 RECEIVE_AND_WAIT 或 MC_RECEIVE_AND_WAIT 來接收資料。 雖然 RECEIVE_AND_POST、 MC_RECEIVE_AND_POST、 RECEIVE_AND_WAIT或 MC_RECEIVE_AND_WAIT 尚未完成,但仍可使用 SEND_ERROR 或 MC_SEND_ERROR 和 REQUEST_TO_SEND 或 MC_REQUEST_TO_SEND。 建議您使用此功能進行完整非同步支援。
非同步作業完成時,應用程式的視窗 hWnd 會收到 RegisterWindowMessage 以 「WinAsyncAPPC」 作為輸入字串所傳回的訊息。 wParam引數包含原始函式呼叫所傳回的非同步工作控制碼。 lParam引數包含原始 VCB 指標,而且可以取值來判斷最終傳回碼。
在 Windows APPC 定義中, WinAPPCCancelAsyncRequest 可讓應用程式取消任何非同步 APPC 動作;但會視需要終止相關的交談或 TP。 任何未完成的作業會傳回AP_CANCELED做為傳回碼。
如果函式成功傳回,當作業完成或取消交談時, 就會將 WinAsyncAPPC 訊息張貼至應用程式。