msi 3: If the user product key exists, the product's state is advertised

James Hawkins truiken at gmail.com
Tue Jun 26 18:36:02 CDT 2007


Hi,

I hope you don't mind, but I changed the state variable name from rrc,
which is a terrible variable name.  The second chunk of the patch is
the only real change.

Changelog:
* If the user product key exists, the product's state is advertised.

 dlls/msi/msi.c       |   17 +++++++++--------
 dlls/msi/tests/msi.c |   15 +++------------
 2 files changed, 12 insertions(+), 20 deletions(-)

-- 
James Hawkins
-------------- next part --------------
diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index 05d3bbf..7240ea4 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -762,7 +762,7 @@ INSTALLSTATE WINAPI MsiQueryProductState
 INSTALLSTATE WINAPI MsiQueryProductStateW(LPCWSTR szProduct)
 {
     UINT rc;
-    INSTALLSTATE rrc = INSTALLSTATE_UNKNOWN;
+    INSTALLSTATE state = INSTALLSTATE_UNKNOWN;
     HKEY hkey = 0;
     DWORD sz;
 
@@ -780,31 +780,32 @@ INSTALLSTATE WINAPI MsiQueryProductState
     if (rc != ERROR_SUCCESS)
         goto end;
 
+    state = INSTALLSTATE_ADVERTISED;
     RegCloseKey(hkey);
 
     rc = MSIREG_OpenUninstallKey(szProduct,&hkey,FALSE);
     if (rc != ERROR_SUCCESS)
         goto end;
 
-    sz = sizeof(rrc);
-    rc = RegQueryValueExW(hkey,szWindowsInstaller,NULL,NULL,(LPVOID)&rrc, &sz);
+    sz = sizeof(state);
+    rc = RegQueryValueExW(hkey,szWindowsInstaller,NULL,NULL,(LPVOID)&state, &sz);
     if (rc != ERROR_SUCCESS)
         goto end;
 
-    switch (rrc)
+    switch (state)
     {
     case 1:
         /* default */
-        rrc = INSTALLSTATE_DEFAULT;
+        state = INSTALLSTATE_DEFAULT;
         break;
     default:
-        FIXME("Unknown install state read from registry (%i)\n",rrc);
-        rrc = INSTALLSTATE_UNKNOWN;
+        FIXME("Unknown install state read from registry (%i)\n",state);
+        state = INSTALLSTATE_UNKNOWN;
         break;
     }
 end:
     RegCloseKey(hkey);
-    return rrc;
+    return state;
 }
 
 INSTALLUILEVEL WINAPI MsiSetInternalUI(INSTALLUILEVEL dwUILevel, HWND *phWnd)
diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c
index 06c7276..9afa576 100644
--- a/dlls/msi/tests/msi.c
+++ b/dlls/msi/tests/msi.c
@@ -377,10 +377,7 @@ static void test_MsiQueryProductState(vo
 
     /* user product key exists */
     state = MsiQueryProductStateA(prodcode);
-    todo_wine
-    {
-        ok(state == INSTALLSTATE_ADVERTISED, "Expected INSTALLSTATE_ADVERTISED, got %d\n", state);
-    }
+    ok(state == INSTALLSTATE_ADVERTISED, "Expected INSTALLSTATE_ADVERTISED, got %d\n", state);
 
     lstrcpyA(keypath, "Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\");
     lstrcatA(keypath, usersid);
@@ -392,20 +389,14 @@ static void test_MsiQueryProductState(vo
 
     /* local product key exists */
     state = MsiQueryProductStateA(prodcode);
-    todo_wine
-    {
-        ok(state == INSTALLSTATE_ADVERTISED, "Expected INSTALLSTATE_ADVERTISED, got %d\n", state);
-    }
+    ok(state == INSTALLSTATE_ADVERTISED, "Expected INSTALLSTATE_ADVERTISED, got %d\n", state);
 
     res = RegCreateKeyA(localkey, "InstallProperties", &props);
     ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
 
     /* install properties key exists */
     state = MsiQueryProductStateA(prodcode);
-    todo_wine
-    {
-        ok(state == INSTALLSTATE_ADVERTISED, "Expected INSTALLSTATE_ADVERTISED, got %d\n", state);
-    }
+    ok(state == INSTALLSTATE_ADVERTISED, "Expected INSTALLSTATE_ADVERTISED, got %d\n", state);
 
     data = 1;
     res = RegSetValueExA(props, "WindowsInstaller", 0, REG_DWORD, (const BYTE *)&data, sizeof(DWORD));
-- 
1.4.1


More information about the wine-patches mailing list