次の方法で共有


Windows CPI-C 非同期のサポート

呼び出しを発行し、呼び出しが完了するまで制御を回復しないプログラムは、他の操作を実行できません。 ブロックと呼ばれるこの種類の操作は、多くのクライアントからの複数の要求を処理するように設計されたサーバー アプリケーションには適していません。 非同期呼び出しの完了は、アプリケーションが他のプロセスを続行できるように、最初の呼び出しをすぐに返します。

Windows Common Programming Interface for Communications (CPI-C) のサポートは非同期通信に関連しており、次の呼び出しと拡張機能が含まれています。

Set_Processing_Mode (CPI-C)

Specify_Windows_Handle (CPI-C)

Wait_For_Conversation (CPI-C)

WinCPICExtractEvent

WinCPICIsBlocking

WinCPICSetBlockingHook

WinCPICSetEvent

WinCPICUnhookBlockingHook

非同期動詞補完には、Microsoft Windows の 2 つのメソッドを使用できます。

  • ウィンドウ ハンドルを使用したメッセージの投稿。

  • Win32 イベントを待機しています。

    従来のメソッドでは、ウィンドウ ハンドルにポストされたメッセージを使用して、動詞の完了をアプリケーションに通知します。 このメソッドは、Windows 3 をサポートするために以前のバージョンの製品で使用されていました。x

    メッセージのポストを使用した非同期サポートは 、Set_Processing_Mode (CPI-C) 呼び出しに追加され、アプリケーションにウィンドウ ハンドルでの呼び出し完了の通知を受け取ります。 "WinAsyncCPIC" を文字列として使用して RegisterWindowsMessage を呼び出すと、アプリケーションは、呼び出しの完了を通知するウィンドウ ハンドルを渡します。 その後、アプリケーションは CPI-C 呼び出しを行い、完了すると、メッセージが渡されたウィンドウ ハンドルにポストされ、呼び出しが完了したことをアプリケーションに通知します。

    保留中の間に他の特定の呼び出しを発行できる非同期 の Receive 呼び出しを除き、会話に含めることができる不完全な操作は、いつでも 1 つだけです。 非同期 の受信 呼び出しの使用の詳細については、「 非同期呼び出しの完了の使用」を参照してください。 不完全な操作の場合、プログラムは Wait_For_Conversation を発行して完了をテストするか 、会話 と不完全な操作を終了するためにCancel_Conversationすることができます。

    通知に Win32 イベントを使用する 2 つ目の方法は、Host Integration Server でサポートされています。

    WinCPICSetEvent を使用してイベントが会話に登録されている場合、アプリケーションは Win32 WaitForSingleObject または WaitForMultipleObjects 関数を呼び出して、動詞の完了の通知を受け取るのを待機できます。

    Windows CPI-C に必要な Windows 拡張機能は、初期化 (WinCPICStartup) と終了 (WinCPICCleanup) 用のみです。 アプリケーションによっては、非同期動詞補完を処理するための他の Windows 拡張機能が役立ちますが、必須ではありません。 Windows CPI-C 非同期呼び出しと Windows 拡張機能の使用方法の例については、「 非同期呼び出しの完了」を参照してください。 すべての Windows CPI-C 呼び出しと拡張機能の詳細については、「Windows 環境のCPI-C 呼び出しと拡張機能」を参照してください。