CoWaitForMultipleHandles 函式 (combaseapi.h)
等候指定的控制碼收到訊號,或等候指定的逾時期間經過。
語法
HRESULT CoWaitForMultipleHandles(
[in] DWORD dwFlags,
[in] DWORD dwTimeout,
[in] ULONG cHandles,
[in] LPHANDLE pHandles,
[out] LPDWORD lpdwindex
);
參數
[in] dwFlags
等候選項。 可能的值取自 COWAIT_FLAGS 列舉。
[in] dwTimeout
逾時期限 (毫秒)。
[in] cHandles
pHandles陣列中的專案數目。
[in] pHandles
控制碼陣列。
[out] lpdwindex
當傳回的狀態S_OK時,變數的指標會收到值,指出導致函式傳回的事件。 此值通常是收到訊號之控制碼的 pHandles 索引。
如果 pHandles 包含一或多個 mutex 物件的控制碼,WAIT_ABANDONED_0 與 (WAIT_ABANDONED_0 + nCount -) 1 之間的值會指出已放棄之 mutex 的 pHandles 索引。
如果在dwFlags中設定COWAIT_ALERTABLE旗標,WAIT_IO_COMPLETION值表示等候已由一或多個使用者模式非同步程序呼叫結束, (APC) 佇列至執行緒。
如需詳細資訊,請參閱 WaitForMultipleObjectsEx 。
傳回值
此函式可以傳回下列值。
注意如果COWAIT_ALERTABLE旗標是在dwFlags中設定,或pHandles包含一或多個 mutex 物件的控制碼,CoWaitForMultipleHandles的傳回值可能不具決定性。 建議的因應措施是在CoWaitForMultipleHandles之前呼叫 SetLastError (ERROR_SUCCESS) 。
傳回碼 | 描述 |
---|---|
|
已發出必要控制碼或控制碼的訊號。 |
|
pHandles 為 Null、 lpdwindex 為 Null,或 dwFlags 不是 來自COWAIT_FLAGS 列舉的值。 |
|
pHandles的值是 0。 |
|
在收到必要控制碼或控制碼的訊號之前經過的逾時期間。 |
備註
根據 dwFlags 參數中設定的旗標而定, CoWaitForMultipleHandles 會封鎖呼叫執行緒,直到發生下列其中一個事件:
- 發出一或所有控制碼的訊號。 在 Mutex 物件的情況下,也會由被放棄的 Mutex 滿足此條件。
- 非同步程序呼叫 (APC) 已排入佇列至呼叫執行緒,並呼叫 QueueUserAPC 函式。
- 逾時期限到期。
如果呼叫執行緒位於多執行緒 Apartment (MTA) , CoWaitForMultipleHandles 會呼叫 WaitForMultipleObjectsEx 函 式。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | combaseapi.h (包含 Objbase.h) |
程式庫 | Ole32.lib |
Dll | Ole32.dll |