[2/4] msi: Set the install level to the maximum if the requested install state is not the default.

Hans Leidekker hans at codeweavers.com
Fri Dec 24 08:31:26 CST 2010


---
 dlls/msi/msi.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index e66585c..266bd89 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -684,6 +684,8 @@ UINT WINAPI MsiConfigureProductExW(LPCWSTR szProduct, int iInstallLevel,
 
     static const WCHAR szInstalled[] = {
         ' ','I','n','s','t','a','l','l','e','d','=','1',0};
+    static const WCHAR szInstallLevel[] = {
+        ' ','I','N','S','T','A','L','L','L','E','V','E','L','=','3','2','7','6','7',0};
     static const WCHAR szRemoveAll[] = {
         ' ','R','E','M','O','V','E','=','A','L','L',0};
     static const WCHAR szMachine[] = {
@@ -715,6 +717,9 @@ UINT WINAPI MsiConfigureProductExW(LPCWSTR szProduct, int iInstallLevel,
     if (szCommandLine)
         sz += lstrlenW(szCommandLine);
 
+    if (eInstallState != INSTALLSTATE_DEFAULT)
+        sz += lstrlenW(szInstallLevel);
+
     if (eInstallState == INSTALLSTATE_ABSENT)
         sz += lstrlenW(szRemoveAll);
 
@@ -732,6 +737,9 @@ UINT WINAPI MsiConfigureProductExW(LPCWSTR szProduct, int iInstallLevel,
     if (szCommandLine)
         lstrcpyW(commandline,szCommandLine);
 
+    if (eInstallState != INSTALLSTATE_DEFAULT)
+        lstrcatW(commandline, szInstallLevel);
+
     if (eInstallState == INSTALLSTATE_ABSENT)
         lstrcatW(commandline, szRemoveAll);
 
-- 
1.7.1







More information about the wine-patches mailing list