Module: wine Branch: master Commit: d8b00a071d37bfcd13b4152f3f5106021e9d5f0e URL: http://source.winehq.org/git/wine.git/?a=commit;h=d8b00a071d37bfcd13b4152f3f...
Author: Misha Koshelev mk144210@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;