SafeArrayGetRecordInfo function oleaut32

IRecordInfo? SafeArrayGetRecordInfo(
  1. Pointer<SAFEARRAY> psa
)

Retrieves the IRecordInfo interface of the UDT contained in the specified safe array.

Throws a WindowsException on failure.

To learn more, see learn.microsoft.com/windows/win32/api/oleauto/nf-oleauto-safearraygetrecordinfo.

Implementation

IRecordInfo? SafeArrayGetRecordInfo(Pointer<SAFEARRAY> psa) {
  final prinfo = adaptiveCalloc<VTablePointer>();
  final hr$ = HRESULT(_SafeArrayGetRecordInfo(psa, prinfo));
  if (hr$.isError) {
    free(prinfo);
    throw WindowsException(hr$);
  }
  final result$ = prinfo.value;
  free(prinfo);
  if (result$.isNull) return null;
  return .new(result$);
}