CoWaitForMultipleHandles function ole32
Waits for specified handles to be signaled or for a specified timeout period to elapse.
Throws a WindowsException on failure.
To learn more, see learn.microsoft.com/windows/win32/api/combaseapi/nf-combaseapi-cowaitformultiplehandles.
Implementation
int CoWaitForMultipleHandles(
int dwFlags,
int dwTimeout,
int cHandles,
Pointer<Pointer> pHandles,
) {
final lpdwindex = adaptiveCalloc<Uint32>();
final hr$ = HRESULT(
_CoWaitForMultipleHandles(
dwFlags,
dwTimeout,
cHandles,
pHandles,
lpdwindex,
),
);
if (hr$.isError) {
free(lpdwindex);
throw WindowsException(hr$);
}
final result$ = lpdwindex.value;
free(lpdwindex);
return result$;
}