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