このセクションでは、非同期通信を可能にする Windows Advanced Program-to-Program Communications (APPC) の API 拡張機能について説明します。 非同期通信は、要求が完了する前に関数が戻ったときに発生します。 アプリケーションは、要求が完了すると後で通知されます。
Microsoft® Windows® では、APPC API を使用した非同期通信には、次の 3 つのメソッドを使用できます。
ウィンドウ ハンドルを使用したメッセージの投稿。
Win32® イベントを待機しています。
Win32 I/O 完了ポートの使用。
最初のメソッドは、ウィンドウ ハンドルにポストされたメッセージを使用して、動詞の完了をアプリケーションに通知します。 ウィンドウ ハンドルとメッセージを使用するこのメソッドは、Microsoft Windows 3.x でサポートされていました。 会話の数に関係なく、APPC アプリケーションごとにこのようなウィンドウが 1 つあります。 各 APPC 会話では、いつでも 1 つの非同期動詞を未処理にすることができます。 動詞が完了すると、ウィンドウへの投稿は、元の呼び出しによって返された非同期タスク ハンドルと、完了した動詞制御ブロックへのポインター (動詞のリターン コードを含む) をパラメーターとして受け取ります。
このセクション (WinAsyncAPPC) で説明されているウィンドウ ハンドルとメッセージ投稿を使用する拡張機能は、バージョン 3.0 から最新バージョンの Windows まで、すべての実装とバージョンの Microsoft Windows 向けに設計されています。 16 ビット Windows オペレーティング環境での Windows プログラミングと最適なアプリケーション パフォーマンスの互換性が提供されました。
通知に Win32 イベントを使用する 2 つ目のメソッドがサポートされています。 このセクションで説明する Win32 イベント (WinAsyncAPPCEx) を使用する拡張機能は、Windows でのみ動作し、32 ビット Windows オペレーティング環境で最適なアプリケーション パフォーマンスを提供します。 イベントが会話に登録されている場合、アプリケーションは Win32 WaitForSingleObject または WaitForMultipleObjects 関数を呼び出して、動詞の完了の通知を待機できます。
Windows では、Win32 I/O 完了ポートを使用した 3 つ目の方法がサポートされています。 このセクションで説明する I/O 入力候補ポート (WinAsyncAPPCIOCP) を使用する拡張機能は、Windows でのみ動作し、32 ビット Windows オペレーティング環境で最適なアプリケーション パフォーマンスを提供します。 CreateIoCompletionPort を使用して I/O 完了ポートが作成されている場合、アプリケーションは Win32 GetQueuedCompletionStatus 関数を呼び出して、動詞の完了が通知されるまで待機できます。
Windows APPC では、マルチスレッド Windows ベースのプロセスを使用できます。 プロセスには、1 つ以上の実行スレッドが含まれています。 このドキュメントのスレッドへのすべての参照は、マルチスレッド Windows 環境の実際のスレッドを参照します。
このセクションでは、各拡張機能について、関数の定義、構文、戻り値、および関数の使用に関する解説を提供します。