createClassEnum method

IEnumWbemClassObject? createClassEnum(
  1. BSTR strSuperclass,
  2. WBEM_GENERIC_FLAG_TYPE lFlags,
  3. IWbemContext? pCtx
)

Returns an enumerator for all classes that satisfy selection criteria.

Throws a WindowsException on failure.

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

Implementation

IEnumWbemClassObject? createClassEnum(
  BSTR strSuperclass,
  WBEM_GENERIC_FLAG_TYPE lFlags,
  IWbemContext? pCtx,
) {
  final ppEnum = adaptiveCalloc<VTablePointer>();
  final hr$ = HRESULT(
    _CreateClassEnumFn(
      ptr,
      strSuperclass,
      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 .new(result$);
}