From 3bf32f27005a0e529d0ef614d407a85fee8f5238 Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Tue, 26 Jun 2007 19:01:37 -0700 Subject: [PATCH] msi: 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(-) diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c index fce1bc51842..497083e509a 100644 --- a/dlls/msi/msi.c +++ b/dlls/msi/msi.c @@ -799,17 +799,11 @@ INSTALLSTATE WINAPI MsiQueryProductStateW(LPCWSTR szProduct) 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 4e42feaa389..810992c75e5 100644 --- a/dlls/msi/tests/msi.c +++ b/dlls/msi/tests/msi.c @@ -427,6 +427,14 @@ static void test_MsiQueryProductState(void) 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 */