本節描述Microsoft®® Windows 通訊通用程式介面(CPI-C)的 API 擴充,允許非阻塞或非同步動詞補全。 非同步動詞會立即將控制權還給程式,無需等待完整執行,且必須在動詞完成後通知應用程式。 應用程式也會在完成 Wait_For_Conversation 通話後收到通知。 相較之下,同步函式會阻塞,也就是說,函式呼叫會在呼叫完成後才返回。
在 Microsoft® Windows Server 下,有兩種方法可用於處理非同步動詞補全:
使用視窗控制碼發文。
正在等待 Win32® 事件。
第一種方法是透過貼在視窗句柄上的訊息來通知應用程式動詞完成。 每個 CPI-C 申請都有一個這樣的視窗。 每個 CPI-C 對話隨時可以有一個非同步動詞未完成。 當動詞執行完畢時,提交到視窗的過程會以完成的動詞的 CPI-C 對話識別碼和動詞的回傳代碼作為參數。
備註
本節所述使用視窗帳號與訊息發布的擴充功能,是為所有 Microsoft Windows 實作及版本設計的。 現在它們只支援 Windows。
Microsoft® Host Integration Server 支援第二種利用 Win32 事件來通知的方法。 本節描述的使用 Win32 事件的擴充功能(WinCPICSetEvent 與 WinCPICExtractEvent)僅在 Windows Server 上運作,並在 32 位元作業系統環境中提供最佳應用程式效能。 如果事件已在對話中註冊,應用程式可以呼叫 Win32 的 WaitForSingleObject 或 WaitForMultipleObjects 函式,等待動詞完成的通知。
Windows CPI-C 允許多執行緒的 Windows 程序。 多執行緒是指在同一程式中快速依序執行多個程序。 一個程序包含一個或多個執行緒。
本節的擴充功能描述提供了在 CPI-C 程式中使用這些 Windows 擴充功能的函式、語法、回傳值及備註的定義。