CoWaitForMultipleObjects function ole32
A replacement for CoWaitForMultipleHandles.
This replacement API hides the options for CoWaitForMultipleHandles that are not supported in ASTA.
Throws a WindowsException on failure.
To learn more, see learn.microsoft.com/windows/win32/api/combaseapi/nf-combaseapi-cowaitformultipleobjects.
Implementation
int CoWaitForMultipleObjects(
int dwFlags,
int dwTimeout,
int cHandles,
Pointer<Pointer> pHandles,
) {
final lpdwindex = adaptiveCalloc<Uint32>();
final hr$ = HRESULT(
_CoWaitForMultipleObjects(
dwFlags,
dwTimeout,
cHandles,
pHandles,
lpdwindex,
),
);
if (hr$.isError) {
free(lpdwindex);
throw WindowsException(hr$);
}
final result$ = lpdwindex.value;
free(lpdwindex);
return result$;
}