Funzione CoWaitForMultipleHandles (combaseapi.h)
Attende che gli handle specificati vengano segnalati o che venga trascorso un periodo di timeout specificato.
Sintassi
HRESULT CoWaitForMultipleHandles(
[in] DWORD dwFlags,
[in] DWORD dwTimeout,
[in] ULONG cHandles,
[in] LPHANDLE pHandles,
[out] LPDWORD lpdwindex
);
Parametri
[in] dwFlags
Opzioni di attesa. I valori possibili vengono acquisiti dall'enumerazione COWAIT_FLAGS .
[in] dwTimeout
Periodo di timeout, in millisecondi.
[in] cHandles
Numero di elementi nella matrice pHandles .
[in] pHandles
Matrice di handle.
[out] lpdwindex
Puntatore a una variabile che, quando lo stato restituito è S_OK, riceve un valore che indica l'evento che ha causato la restituzione della funzione. Questo valore è in genere l'indice in pHandles per l'handle segnalato.
Se pHandles include uno o più handle per gli oggetti mutex, un valore compreso tra WAIT_ABANDONED_0 e (WAIT_ABANDONED_0 + nCount - 1) indica l'indice in pHandles per il mutex abbandonato.
Se il flag di COWAIT_ALERTABLE è impostato in dwFlags, un valore di WAIT_IO_COMPLETION indica che l'attesa è stata terminata da una o più chiamate asincrone in modalità utente (APC) accodate al thread.
Per altre informazioni, vedere WaitForMultipleObjectsEx .
Valore restituito
Questa funzione può restituire i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
L'handle o gli handle necessari sono stati segnalati. |
|
pHandles era NULL, lpdwindex era NULL o dwFlags non era un valore dall'enumerazione COWAIT_FLAGS . |
|
Il valore di pHandles era 0. |
|
Il periodo di timeout trascorso prima che l'handle o gli handle necessari siano stati segnalati. |
Commenti
A seconda dei flag impostati nel parametro dwFlags, CoWaitForMultipleHandles blocca il thread chiamante finché non si verifica uno degli eventi seguenti:
- Viene segnalato uno o tutti gli handle. Nel caso degli oggetti mutex, questa condizione viene soddisfatta anche da un mutex abbandonato.
- Una chiamata asincrona (APC) è stata accodata al thread chiamante con una chiamata alla funzione QueueUserAPC .
- Il periodo di timeout scade.
Se il thread chiamante si trova in un appartamento multithread (MTA), CoWaitForMultipleHandles chiama la funzione WaitForMultipleObjectsEx .
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | combaseapi.h (include Objbase.h) |
Libreria | Ole32.lib |
DLL | Ole32.dll |