gameux: Fix another test failure on Wine wow64

André Hentschel nerv at dawncrow.de
Thu Dec 23 17:51:41 CST 2010


---
 dlls/gameux/gamestatistics.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/gameux/gamestatistics.c b/dlls/gameux/gamestatistics.c
index 5650c94..926023b 100644
--- a/dlls/gameux/gamestatistics.c
+++ b/dlls/gameux/gamestatistics.c
@@ -365,6 +365,7 @@ static HRESULT GAMEUX_getAppIdFromGDFPath(
     GAME_INSTALL_SCOPE installScope;
     GUID instanceId;
     LPWSTR lpRegistryPath;
+    HKEY hKey;
     DWORD dwLength = 49*sizeof(WCHAR);/* place for GUID */
 
     TRACE("(%s, %p)\n", debugstr_w(GDFBinaryPath), lpApplicationId);
@@ -390,11 +391,16 @@ static HRESULT GAMEUX_getAppIdFromGDFPath(
         hr = GAMEUX_buildGameRegistryPath(installScope, &instanceId, &lpRegistryPath);
 
     if(SUCCEEDED(hr))
-        hr = HRESULT_FROM_WIN32(RegGetValueW(HKEY_LOCAL_MACHINE,
-                lpRegistryPath, sApplicationId, RRF_RT_REG_SZ,
+        hr = HRESULT_FROM_WIN32(RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+                lpRegistryPath, 0, KEY_READ | KEY_WOW64_64KEY, &hKey));
+
+    if(SUCCEEDED(hr))
+        hr = HRESULT_FROM_WIN32(RegGetValueW(hKey,
+                NULL, sApplicationId, RRF_RT_REG_SZ,
                 NULL, lpApplicationId, &dwLength));
 
     HeapFree(GetProcessHeap(), 0, lpRegistryPath);
+    RegCloseKey(hKey);
 
     TRACE("found app id: %s, return: %#x\n", debugstr_w(lpApplicationId), hr);
     return hr;
-- 

Best Regards, André Hentschel



More information about the wine-patches mailing list