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