msi 5: Any value of WindowsInstaller besides 0 means the product is installed

James Hawkins truiken at gmail.com
Tue Jun 26 21:01:37 CDT 2007


Hi,

Changelog:
* Any value of WindowsInstaller besides 0 means the product is installed.

 dlls/msi/msi.c       |   12 +++---------
 dlls/msi/tests/msi.c |    8 ++++++++
 2 files changed, 11 insertions(+), 9 deletions(-)

-- 
James Hawkins
-------------- next part --------------
diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index fce1bc5..497083e 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -799,17 +799,11 @@ INSTALLSTATE WINAPI MsiQueryProductState
     if (rc != ERROR_SUCCESS)
         goto end;
 
-    switch (state)
-    {
-    case 1:
-        /* default */
+    if (state)
         state = INSTALLSTATE_DEFAULT;
-        break;
-    default:
-        FIXME("Unknown install state read from registry (%i)\n",state);
+    else
         state = INSTALLSTATE_UNKNOWN;
-        break;
-    }
+
 end:
     RegCloseKey(props);
     RegCloseKey(hkey);
diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c
index 4e42fea..810992c 100644
--- a/dlls/msi/tests/msi.c
+++ b/dlls/msi/tests/msi.c
@@ -427,6 +427,14 @@ static void test_MsiQueryProductState(vo
     state = MsiQueryProductStateA(prodcode);
     ok(state == INSTALLSTATE_DEFAULT, "Expected INSTALLSTATE_DEFAULT, got %d\n", state);
 
+    data = 2;
+    res = RegSetValueExA(props, "WindowsInstaller", 0, REG_DWORD, (const BYTE *)&data, sizeof(DWORD));
+    ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);
+
+    /* WindowsInstaller value is not 1 */
+    state = MsiQueryProductStateA(prodcode);
+    ok(state == INSTALLSTATE_DEFAULT, "Expected INSTALLSTATE_DEFAULT, got %d\n", state);
+
     RegDeleteKeyA(userkey, "");
 
     /* user product key does not exist */
-- 
1.4.1


More information about the wine-patches mailing list