msi: Keep the UI level fixed during the lifetime of a package.
This commit is contained in:
parent
79aac9fabc
commit
dd205230a0
|
@ -480,7 +480,7 @@ UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace)
|
|||
|
||||
static BOOL needs_ui_sequence(MSIPACKAGE *package)
|
||||
{
|
||||
return (gUILevel & INSTALLUILEVEL_MASK) >= INSTALLUILEVEL_REDUCED;
|
||||
return (package->ui_level & INSTALLUILEVEL_MASK) >= INSTALLUILEVEL_REDUCED;
|
||||
}
|
||||
|
||||
UINT msi_set_context(MSIPACKAGE *package)
|
||||
|
@ -2954,7 +2954,7 @@ static UINT ITERATE_LaunchConditions(MSIRECORD *row, LPVOID param)
|
|||
r = MSI_EvaluateConditionW(package,cond);
|
||||
if (r == MSICONDITION_FALSE)
|
||||
{
|
||||
if ((gUILevel & INSTALLUILEVEL_MASK) != INSTALLUILEVEL_NONE)
|
||||
if ((package->ui_level & INSTALLUILEVEL_MASK) != INSTALLUILEVEL_NONE)
|
||||
{
|
||||
LPWSTR deformated;
|
||||
message = MSI_RecordGetString(row,2);
|
||||
|
|
|
@ -903,11 +903,11 @@ static UINT HANDLE_CustomType19(MSIPACKAGE *package, LPCWSTR source,
|
|||
if( row )
|
||||
{
|
||||
LPCWSTR error = MSI_RecordGetString( row, 1 );
|
||||
if ((gUILevel & INSTALLUILEVEL_MASK) != INSTALLUILEVEL_NONE)
|
||||
if ((package->ui_level & INSTALLUILEVEL_MASK) != INSTALLUILEVEL_NONE)
|
||||
MessageBoxW( NULL, error, NULL, MB_OK );
|
||||
msiobj_release( &row->hdr );
|
||||
}
|
||||
else if ((gUILevel & INSTALLUILEVEL_MASK) != INSTALLUILEVEL_NONE)
|
||||
else if ((package->ui_level & INSTALLUILEVEL_MASK) != INSTALLUILEVEL_NONE)
|
||||
MessageBoxW( NULL, deformated, NULL, MB_OK );
|
||||
|
||||
msi_free( deformated );
|
||||
|
|
|
@ -3978,7 +3978,7 @@ UINT msi_spawn_error_dialog( MSIPACKAGE *package, LPWSTR error_dialog, LPWSTR er
|
|||
'M','S','I','E','r','r','o','r','D','i','a','l','o','g','R','e','s','u','l','t',0
|
||||
};
|
||||
|
||||
if ((gUILevel & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE) return ERROR_SUCCESS;
|
||||
if ((package->ui_level & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE) return ERROR_SUCCESS;
|
||||
|
||||
if ( !error_dialog )
|
||||
{
|
||||
|
|
|
@ -77,7 +77,7 @@ static UINT msi_change_media(MSIPACKAGE *package, MSIMEDIAINFO *mi)
|
|||
|
||||
static const WCHAR error_prop[] = {'E','r','r','o','r','D','i','a','l','o','g',0};
|
||||
|
||||
if ((gUILevel & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE &&
|
||||
if ((package->ui_level & INSTALLUILEVEL_MASK) == INSTALLUILEVEL_NONE &&
|
||||
!gUIHandlerA && !gUIHandlerW && !gUIHandlerRecord) return ERROR_SUCCESS;
|
||||
|
||||
error = msi_build_error_string(package, 1302, 1, mi->disk_prompt);
|
||||
|
|
|
@ -389,6 +389,7 @@ typedef struct tagMSIPACKAGE
|
|||
LPWSTR localfile;
|
||||
BOOL delete_on_close;
|
||||
|
||||
INSTALLUILEVEL ui_level;
|
||||
UINT CurrentInstallState;
|
||||
msi_dialog *dialog;
|
||||
LPWSTR next_dialog;
|
||||
|
|
|
@ -1180,6 +1180,7 @@ MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *db, LPCWSTR base_url )
|
|||
set_installed_prop( package );
|
||||
set_installer_properties( package );
|
||||
|
||||
package->ui_level = gUILevel;
|
||||
sprintfW( uilevel, fmtW, gUILevel & INSTALLUILEVEL_MASK );
|
||||
msi_set_property(package->db, szUILevel, uilevel);
|
||||
|
||||
|
|
Loading…
Reference in New Issue