enumAudioEndpoints method
Generates a collection of audio endpoint devices that meet the specified criteria.
Throws a WindowsException on failure.
To learn more, see learn.microsoft.com/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdeviceenumerator-enumaudioendpoints.
Implementation
IMMDeviceCollection? enumAudioEndpoints(
EDataFlow dataFlow,
DEVICE_STATE dwStateMask,
) {
final ppDevices = adaptiveCalloc<VTablePointer>();
final hr$ = HRESULT(
_EnumAudioEndpointsFn(ptr, dataFlow, dwStateMask, ppDevices),
);
if (hr$.isError) {
free(ppDevices);
throw WindowsException(hr$);
}
final result$ = ppDevices.value;
free(ppDevices);
if (result$.isNull) return null;
return .new(result$);
}