msi: InstallPackage check for UI level must not disregard INSTALLUILEVEL flags.

Misha Koshelev mk144210 at bcm.tmc.edu
Sun Feb 4 01:19:09 CST 2007


This fixes bug #6992. The installer for Vector NTI 10 was getting to the
point where it was trying to launch the .msi files that do the actual
install, but was quitting with the message "This module is not designed
for direct execution." Install worked fine with native MSI. After a
while of playing with it and disassembling the MSI file with dark.exe
tool, I noticed that the .msi files ran in execute mode but not UI mode.
Finally, I checked the UI level that wine msi was reading, and it was
102 which is INSTALLUILEVEL_NONE | INSTALLUILEVEL_SOURCESONLY. However,
MSI_InstallPackage was only checking if the uilevel >=
INSTALLUILEVEL_REDUCED, which would have been true in this case as
INSTALLUILEVEL_SOURCESONLY > INSTALLUILEVEL_REDUCED but the actual ui
level is INSTALLUILEVEL_NONE which is < INSTALLUILEVEL_REDUCED. This
patch fixes this check, and now the installer finished successfully
(although it seems upon a quick check that there are more install bugs
for this program in wine, as not all files that should be there seem to
be there after this install).

Changelog:

	* msi: InstallPackage check for UI level must not disregard 
               INSTALLUILEVEL flags.
-------------- next part --------------
From 0e3caffc0ca5e5617ee6d494d28a2c180227c09a Mon Sep 17 00:00:00 2001
From: Misha Koshelev <mk144210 at bcm.tmc.edu>
Date: Sun, 4 Feb 2007 01:07:15 -0600
Subject: msi: InstallPackage check for UI level must not disregard INSTALLUILEVEL flags.
---
 dlls/msi/action.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 0c8ac79..89bf1dd 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -642,7 +642,7 @@ UINT MSI_InstallPackage( MSIPACKAGE *pac
     msi_apply_transforms( package );
     msi_apply_patches( package );
 
-    if ( msi_get_property_int(package, szUILevel, 0) >= INSTALLUILEVEL_REDUCED )
+    if ( (msi_get_property_int(package, szUILevel, 0) & INSTALLUILEVEL_FULL) >= INSTALLUILEVEL_REDUCED )
     {
         package->script->InWhatSequence |= SEQUENCE_UI;
         rc = ACTION_ProcessUISequence(package);
-- 
1.4.1



More information about the wine-patches mailing list