NewEnum property

Pointer<COMObject> NewEnum

Implementation

Pointer<COMObject> get NewEnum {
  final retValuePtr = calloc<Pointer<COMObject>>();

  try {
    final hr = ptr.ref.vtable
            .elementAt(9)
            .cast<
                Pointer<
                    NativeFunction<
                        Int32 Function(Pointer,
                            Pointer<Pointer<COMObject>> ppEnumVARIANT)>>>()
            .value
            .asFunction<
                int Function(
                    Pointer, Pointer<Pointer<COMObject>> ppEnumVARIANT)>()(
        ptr.ref.lpVtbl, retValuePtr);

    if (FAILED(hr)) throw WindowsException(hr);

    final retValue = retValuePtr.value;
    return retValue;
  } finally {
    free(retValuePtr);
  }
}