StringFromCLSID function ole32
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$);
}