次の方法で共有


WinAsyncAPPC

WinAsyncAPPC 関数は、すべての APPC 動詞の非同期エントリ ポイントを提供します。 アプリケーションを実行し、非同期動詞の完了に Windows ハンドルを使用してメッセージの投稿を使用する場合は、動詞のブロック バージョンの代わりにこの関数を使用します。

構文

  
HANDLE WINAPI WinAsyncAPPC(   
HANDLE hWnd,  
Long lpVcb  
);  

パラメーター

hWnd
APPC 動詞が完了したときにアプリケーションに通知するメッセージ投稿に使用されるウィンドウ ハンドル。

lpVcb
動詞制御ブロックへのポインター。

戻り値

戻り値は、非同期要求が成功したかどうかを指定します。 関数が成功した場合、戻り値は非同期タスク ハンドルです。 関数が成功しなかった場合は、0 が返されます。

この関数が正常な値でを返す場合、これは APPC 呼び出しが最終的に正常に返されることを示すものではありません。 通知のためにメッセージの投稿を使用して、APPC ライブラリが APPC 呼び出しを非同期的に試行できたことを示すだけです。

注釈

トランザクション プログラム (TP) でこの動詞を使用する方法の例については、送受信サンプル TP (SENDRECV) を参照してください。SDK に含まれる APPC フォルダー内の C)。

ブロックできる基本的な会話で使用される APPC 動詞は次のとおりです。

  • ALLOCATE

  • 確認

  • 確認

  • DEALLOCATE

  • フラッシュ

  • PREPARE_TO_RECEIVE

  • RECEIVE_ALLOCATE

  • RECEIVE_AND_WAIT

  • REQUEST_TO_SEND

  • SEND_CONVERSATION

  • SEND_DATA

  • SEND_ERROR

  • TP_ENDED

  • TP_STARTED

    ブロックできるマップされた会話で使用される APPC 動詞は次のとおりです。

  • MC_ALLOCATE

  • MC_CONFIRM

  • MC_CONFIRMED

  • MC_DEALLOCATE

  • MC_FLUSH

  • MC_PREPARE_TO_RECEIVE

  • MC_RECEIVE_AND_WAIT

  • MC_REQUEST_TO_SEND

  • MC_SEND_CONVERSATION

  • MC_SEND_DATA

  • MC_SEND_ERROR

    動詞の同期バージョンまたは非同期バージョンを使用する場合、アプリケーションは一度に 1 つの会話で進行中の未処理の関数を 1 つだけ持つことができます。 2 つ目の関数を開始しようとすると、エラー コードがAP_CONV_BUSY。

    前の段落の例外は次のとおりです。

  • RECEIVE_AND_POST

  • MC_RECEIVE_AND_POST

  • RECEIVE_AND_WAIT

  • MC_RECEIVE_AND_WAIT

    非同期サポートを完全に使用できるように、非同期的に発行された RECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 動詞は 、RECEIVE_AND_POSTMC_RECEIVE_AND_POST 動詞のように動作するように変更されています。 具体的には、これらの動詞の 1 つの非同期バージョンは未処理ですが、同じ会話で次の動詞を発行できます。

  • DEALLOCATE (AP_ABEND_PROG、AP_ABEND_SVC、またはAP_ABEND_TIMER)

  • GET_ATTRIBUTES または MC_GET_ATTRIBUTES

  • GET_TYPE

  • REQUEST_TO_SEND または MC_REQUEST_TO_SEND

  • SEND_ERROR または MC_SEND_ERROR

  • TEST_RTS または MC_TEST_RTS

  • TP_ENDED

    これにより、アプリケーション (特に 5250 エミュレーター) で非同期 RECEIVE_AND_WAIT または MC_RECEIVE_AND_WAIT を使用してデータを受信できます。 RECEIVE_AND_POSTMC_RECEIVE_AND_POSTRECEIVE_AND_WAIT、またはMC_RECEIVE_AND_WAITは未処理ですが、SEND_ERROR、MC_SEND_ERRORREQUEST_TO_SENDまたはMC_REQUEST_TO_SENDを引き続き使用できます。 完全な非同期サポートには、この機能を使用することをお勧めします。

    非同期操作が完了すると、アプリケーションのウィンドウ hWnd は、入力文字列として "WinAsyncAPPC" を持つ RegisterWindowMessage によって返されるメッセージを受け取ります。 wParam 引数には、元の関数呼び出しによって返される非同期タスク ハンドルが含まれています。 lParam 引数には元の VCB ポインターが含まれており、逆参照して最終的なリターン コードを決定できます。

    Windows APPC 定義の一部として、 WinAPPCCancelAsyncRequest を使用すると、アプリケーションは非同期 APPC アクションを取り消すことができます。ただし、必要に応じて関連する会話または TP を終了します。 未処理の操作は、戻りコードとして AP_CANCELED を返します。

    関数が正常に返された場合、操作が完了するか、会話が取り消されたときに 、WinAsyncAPPC メッセージがアプリケーションに投稿されます。