StringFromCLSID function ole32

PWSTR StringFromCLSID(
  1. Pointer<GUID> rclsid
)

Converts a CLSID into a string of printable characters.

Different CLSIDs always convert to different strings.

Throws a WindowsException on failure.

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

Implementation

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