Windows環境的APPC擴充

本節描述了 Windows 進階程式對程式通訊(APPC)的 API 擴充,允許非同步通訊。 非同步通訊發生在函式在請求完成前返回。 申請完成後會收到通知。

在 Microsoft® Windows® 系統下,有三種方法可用於使用 APPC API 進行非同步通訊:

  • 使用視窗帳號發文。

  • 正在等待 Win32® 活動。

  • 使用 Win32 I/O 完成埠。

    第一種方法是透過貼在視窗句柄上的訊息來通知應用程式動詞完成。 這種使用視窗句柄與訊息的方法在 Microsoft Windows 3.x 上被支援。 每個 APPC 應用程式都有一個這樣的視窗,與對話次數無關。 每個 APPC 對話隨時可有一個非同步動詞未完成。 當動詞完成時,向視窗的發布會取用原始呼叫回傳的非同步任務句柄作為參數,以及一個指向已完成的動詞控制區塊的指標,該區塊包含該動詞的回傳代碼。

    本節所述的使用視窗帳號與訊息發布的擴充功能(WinAsyncAPPC)是為所有 Microsoft Windows 從 3.0 版本到最新版本的 Windows 實作與版本設計的。 它們提供 Windows 程式設計的相容性,並在 16 位元 Windows 作業系統環境中達到最佳應用程式效能。

    支援第二種使用 Win32 事件來通知的方法。 本節所述使用 Win32 事件的擴充功能(WinAsyncAPPCEx)僅能在 Windows 上運作,並在 32 位元 Windows 作業系統環境中提供最佳應用程式效能。 如果事件已在對話中註冊,應用程式可以呼叫 Win32 的 WaitForSingleObject 或 WaitForMultipleObjects 函式,等待動詞完成的通知。

    Windows 支援第三種使用 Win32 I/O 完成埠來通知的方法。 本節所述使用 I/O 完成埠(WinAsyncAPPCIOCP)的擴充功能僅能在 Windows 上運作,並在 32 位元 Windows 作業系統環境中提供最佳應用程式效能。 如果使用 CreateIoCompletionPort 建立了 I/O 完成埠,應用程式可以呼叫 Win32 的 GetQueuedCompletionStatus 函式,等待動詞完成的通知。

    Windows APPC 允許多執行緒的 Windows 程序。 一個程序包含一個或多個執行緒。 本文件中所有關於執行緒的引用,皆指多執行緒 Windows 環境中的實際執行緒。

    本節為每個擴充提供函式定義、語法、回傳符及使用說明。

本節中