StringFromIID function ole32

PWSTR StringFromIID(
  1. Pointer<GUID> rclsid
)

Converts an interface identifier into a string of printable characters.

Throws a WindowsException on failure.

To learn more, see learn.microsoft.com/windows/win32/api/combaseapi/nf-combaseapi-stringfromiid.

Implementation

PWSTR StringFromIID(Pointer<GUID> rclsid) {
  final lplpsz = adaptiveCalloc<Pointer<Utf16>>();
  final hr$ = HRESULT(_StringFromIID(rclsid, lplpsz));
  if (hr$.isError) {
    free(lplpsz);
    throw WindowsException(hr$);
  }
  final result$ = lplpsz.value;
  free(lplpsz);
  return PWSTR(result$);
}