Rémi Bernon (@rbernon) commented about dlls/windows.devices.enumeration/information.c:
if (SUCCEEDED(hr = PSGetNameFromPropertyKey( (PROPERTYKEY *)propkey, &name )))
{
hr = WindowsCreateString( name, wcslen( name ), &canonical_name );
CoTaskMemFree( name );
}
else if (hr == TYPE_E_ELEMENTNOTFOUND)
{
const GUID *fmtid = &propkey->fmtid;
WCHAR buf[80];
WARN( "Unknown property key: %s\n", debugstr_DEVPROPKEY( propkey ) );
swprintf( buf, ARRAY_SIZE( buf ), L"{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x} %lu", fmtid->Data1, fmtid->Data2, fmtid->Data3,
fmtid->Data4[0], fmtid->Data4[1], fmtid->Data4[2], fmtid->Data4[3], fmtid->Data4[4], fmtid->Data4[5], fmtid->Data4[6], fmtid->Data4[7], propkey->pid );
hr = WindowsCreateString( buf, wcslen( buf ), &canonical_name );
}
if (FAILED(hr)) break;
Is it supposed to be allowed to fail? Shouldn't the error case be handled in PSGetNameFromPropertyKey with a FIXME instead?