Misha Koshelev : msi: Make sure to ignore UI level flags in dialog and files as well.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Feb 7 04:53:13 CST 2007


Module: wine
Branch: master
Commit: d8b00a071d37bfcd13b4152f3f5106021e9d5f0e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d8b00a071d37bfcd13b4152f3f5106021e9d5f0e

Author: Misha Koshelev <mk144210 at bcm.tmc.edu>
Date:   Tue Feb  6 23:53:24 2007 -0600

msi: Make sure to ignore UI level flags in dialog and files as well.

---

 dlls/msi/action.c  |    2 +-
 dlls/msi/dialog.c  |    2 +-
 dlls/msi/files.c   |    2 +-
 dlls/msi/msipriv.h |    3 +++
 4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 6c2fdf4..1a8fa5a 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) & 0xf) >= INSTALLUILEVEL_REDUCED )
+    if ( (msi_get_property_int(package, szUILevel, 0) & INSTALLUILEVEL_MASK) >= INSTALLUILEVEL_REDUCED )
     {
         package->script->InWhatSequence |= SEQUENCE_UI;
         rc = ACTION_ProcessUISequence(package);
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c
index 86f9e00..421105c 100644
--- a/dlls/msi/dialog.c
+++ b/dlls/msi/dialog.c
@@ -3542,7 +3542,7 @@ UINT msi_spawn_error_dialog( MSIPACKAGE
         'M','S','I','E','r','r','o','r','D','i','a','l','o','g','R','e','s','u','l','t',0
     };
 
-    if ( msi_get_property_int(package, szUILevel, 0) == INSTALLUILEVEL_NONE )
+    if ( (msi_get_property_int(package, szUILevel, 0) & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE )
         return ERROR_SUCCESS;
 
     if ( !error_dialog )
diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index 9af403f..e370b1e 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -77,7 +77,7 @@ static UINT msi_change_media( MSIPACKAGE
     static const WCHAR szUILevel[] = {'U','I','L','e','v','e','l',0};
     static const WCHAR error_prop[] = {'E','r','r','o','r','D','i','a','l','o','g',0};
 
-    if ( msi_get_property_int(package, szUILevel, 0) == INSTALLUILEVEL_NONE && !gUIHandlerA )
+    if ( (msi_get_property_int(package, szUILevel, 0) & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE && !gUIHandlerA )
         return ERROR_SUCCESS;
 
     error = generate_error_string( package, 1302, 1, mi->disk_prompt );
diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h
index 815b70c..a89da66 100644
--- a/dlls/msi/msipriv.h
+++ b/dlls/msi/msipriv.h
@@ -46,6 +46,9 @@
 #define MSIWORDCOUNT_ADMINISTRATIVE     0x0004
 #define MSIWORDCOUNT_PRIVILEGES         0x0008
 
+/* Install UI level mask for AND operation to exclude flags */
+#define INSTALLUILEVEL_MASK             0x0007
+
 #define MSITYPE_IS_BINARY(type) (((type) & ~MSITYPE_NULLABLE) == (MSITYPE_STRING|MSITYPE_VALID))
 
 struct tagMSITABLE;




More information about the wine-cvs mailing list