[PATCH v2 2/3] mmdevapi: decode ContainerId property to CLSID in MMDevice_GetPropValue
Claire Girka
wine at gitlab.winehq.org
Mon Jul 4 12:12:36 CDT 2022
From: Claire Girka <claire at sitedethib.com>
---
dlls/mmdevapi/devenum.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/dlls/mmdevapi/devenum.c b/dlls/mmdevapi/devenum.c
index 48f4c736217..b288ed79880 100644
--- a/dlls/mmdevapi/devenum.c
+++ b/dlls/mmdevapi/devenum.c
@@ -189,6 +189,21 @@ static HRESULT MMDevice_GetPropValue(const GUID *devguid, DWORD flow, REFPROPERT
break;
}
RegCloseKey(regkey);
+
+ /* Special case ContainerID as CLSID */
+ if(pv->vt == VT_BLOB && pv->blob.pBlobData && pv->blob.pBlobData[0] == VT_CLSID && IsEqualPropertyKey(*key, DEVPKEY_Device_ContainerId)) {
+ GUID *guid = CoTaskMemAlloc(sizeof(GUID));
+ if (!guid) {
+ PropVariantClear(pv);
+ hr = E_OUTOFMEMORY;
+ } else {
+ memcpy(guid, pv->blob.pBlobData + 8, sizeof(GUID));
+ CoTaskMemFree(pv->blob.pBlobData);
+ pv->vt = VT_CLSID;
+ pv->puuid = guid;
+ }
+ }
+
return hr;
}
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/359
More information about the wine-devel
mailing list