Commit dd205230 authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

msi: Keep the UI level fixed during the lifetime of a package.

parent 79aac9fa
...@@ -480,7 +480,7 @@ UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace) ...@@ -480,7 +480,7 @@ UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace)
static BOOL needs_ui_sequence(MSIPACKAGE *package) 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) UINT msi_set_context(MSIPACKAGE *package)
...@@ -2954,7 +2954,7 @@ static UINT ITERATE_LaunchConditions(MSIRECORD *row, LPVOID param) ...@@ -2954,7 +2954,7 @@ static UINT ITERATE_LaunchConditions(MSIRECORD *row, LPVOID param)
r = MSI_EvaluateConditionW(package,cond); r = MSI_EvaluateConditionW(package,cond);
if (r == MSICONDITION_FALSE) if (r == MSICONDITION_FALSE)
{ {
if ((gUILevel & INSTALLUILEVEL_MASK) != INSTALLUILEVEL_NONE) if ((package->ui_level & INSTALLUILEVEL_MASK) != INSTALLUILEVEL_NONE)
{ {
LPWSTR deformated; LPWSTR deformated;
message = MSI_RecordGetString(row,2); message = MSI_RecordGetString(row,2);
......
...@@ -903,11 +903,11 @@ static UINT HANDLE_CustomType19(MSIPACKAGE *package, LPCWSTR source, ...@@ -903,11 +903,11 @@ static UINT HANDLE_CustomType19(MSIPACKAGE *package, LPCWSTR source,
if( row ) if( row )
{ {
LPCWSTR error = MSI_RecordGetString( row, 1 ); 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 ); MessageBoxW( NULL, error, NULL, MB_OK );
msiobj_release( &row->hdr ); 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 ); MessageBoxW( NULL, deformated, NULL, MB_OK );
msi_free( deformated ); msi_free( deformated );
......
...@@ -3978,7 +3978,7 @@ UINT msi_spawn_error_dialog( MSIPACKAGE *package, LPWSTR error_dialog, LPWSTR er ...@@ -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 '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 ) if ( !error_dialog )
{ {
......
...@@ -77,7 +77,7 @@ static UINT msi_change_media(MSIPACKAGE *package, MSIMEDIAINFO *mi) ...@@ -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}; 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; !gUIHandlerA && !gUIHandlerW && !gUIHandlerRecord) return ERROR_SUCCESS;
error = msi_build_error_string(package, 1302, 1, mi->disk_prompt); error = msi_build_error_string(package, 1302, 1, mi->disk_prompt);
......
...@@ -389,6 +389,7 @@ typedef struct tagMSIPACKAGE ...@@ -389,6 +389,7 @@ typedef struct tagMSIPACKAGE
LPWSTR localfile; LPWSTR localfile;
BOOL delete_on_close; BOOL delete_on_close;
INSTALLUILEVEL ui_level;
UINT CurrentInstallState; UINT CurrentInstallState;
msi_dialog *dialog; msi_dialog *dialog;
LPWSTR next_dialog; LPWSTR next_dialog;
......
...@@ -1180,6 +1180,7 @@ MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *db, LPCWSTR base_url ) ...@@ -1180,6 +1180,7 @@ MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *db, LPCWSTR base_url )
set_installed_prop( package ); set_installed_prop( package );
set_installer_properties( package ); set_installer_properties( package );
package->ui_level = gUILevel;
sprintfW( uilevel, fmtW, gUILevel & INSTALLUILEVEL_MASK ); sprintfW( uilevel, fmtW, gUILevel & INSTALLUILEVEL_MASK );
msi_set_property(package->db, szUILevel, uilevel); msi_set_property(package->db, szUILevel, uilevel);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment