createInstanceEnum method

IEnumWbemClassObject? createInstanceEnum(
  1. BSTR strFilter,
  2. WBEM_GENERIC_FLAG_TYPE lFlags,
  3. IWbemContext? pCtx
)

Creates an enumerator that returns the instances of a specified class according to user-specified selection criteria.

Throws a WindowsException on failure.

To learn more, see learn.microsoft.com/windows/win32/api/wbemcli/nf-wbemcli-iwbemservices-createinstanceenum.

Implementation

IEnumWbemClassObject? createInstanceEnum(
  BSTR strFilter,
  WBEM_GENERIC_FLAG_TYPE lFlags,
  IWbemContext? pCtx,
) {
  final ppEnum = adaptiveCalloc<VTablePointer>();
  final hr$ = HRESULT(
    _CreateInstanceEnumFn(
      ptr,
      strFilter,
      lFlags,
      pCtx?.ptr ?? nullptr,
      ppEnum,
    ),
  );
  if (hr$.isError) {
    free(ppEnum);
    throw WindowsException(hr$);
  }
  final result$ = ppEnum.value;
  free(ppEnum);
  if (result$.isNull) return null;
  return IEnumWbemClassObject(result$);
}