- reswin32 = RegQueryValueExW(This->hkey, pszPropName, NULL, NULL, NULL, &received);
+ hkey = This->hkey;
+ pszName = pszPropName;
+ if (This->bInterface)
+ {
+ buffer[0] = 0;
+ received = sizeof(buffer)/sizeof(WCHAR);
+ reswin32 = RegEnumKeyEx(This->hkey, 0, buffer, &received, NULL, NULL, NULL, NULL);
+
+ reswin32 = RegOpenKeyExW(This->hkey, buffer, 0, KEY_READ, &hkey);
+
+ if (!wcsicmp(pszPropName, L"DevicePath"))
+ pszName = L"SymbolicLink";
+
+ }
+
+ reswin32 = RegQueryValueExW(hkey, pszName, NULL, NULL, NULL, &received);