Commit 07c74d07 authored by Mike McCormack's avatar Mike McCormack Committed by Alexandre Julliard

Make sure that dialogs are only created and destroyed in a single

thread.
parent 888eaae7
......@@ -631,7 +631,7 @@ static void ui_progress(MSIPACKAGE *package, int a, int b, int c, int d )
MSI_ProcessMessage(package, INSTALLMESSAGE_PROGRESS, row);
msiobj_release(&row->hdr);
msi_dialog_check_messages(package->dialog, NULL);
msi_dialog_check_messages(NULL);
}
static void ui_actiondata(MSIPACKAGE *package, LPCWSTR action, MSIRECORD * record)
......@@ -1421,7 +1421,7 @@ UINT ACTION_PerformUIAction(MSIPACKAGE *package, const WCHAR *action)
if (!handled)
handled = ACTION_HandleDialogBox(package, action, &rc);
msi_dialog_check_messages( package->dialog, NULL );
msi_dialog_check_messages( NULL );
if (!handled)
{
......@@ -5421,7 +5421,7 @@ static UINT ACTION_SelfRegModules(MSIPACKAGE *package)
c_colon, &si, &info);
if (brc)
msi_dialog_check_messages(package->dialog, info.hProcess);
msi_dialog_check_messages(info.hProcess);
HeapFree(GetProcessHeap(),0,filename);
msiobj_release(&row->hdr);
......
......@@ -372,9 +372,9 @@ static UINT process_handle(MSIPACKAGE* package, UINT type,
/* synchronous */
TRACE("Synchronous Execution of action %s\n",debugstr_w(Name));
if (ProcessHandle)
msi_dialog_check_messages(package->dialog, ProcessHandle);
msi_dialog_check_messages(ProcessHandle);
else
msi_dialog_check_messages(package->dialog, ThreadHandle);
msi_dialog_check_messages(ThreadHandle);
if (!(type & 0x40))
{
......@@ -782,8 +782,7 @@ void ACTION_FinishCustomActions(MSIPACKAGE* package)
{
TRACE("Waiting on action %s\n",
debugstr_w(package->RunningAction[i].name));
msi_dialog_check_messages(package->dialog,
package->RunningAction[i].handle);
msi_dialog_check_messages(package->RunningAction[i].handle);
}
HeapFree(GetProcessHeap(),0,package->RunningAction[i].name);
......
......@@ -368,10 +368,10 @@ typedef VOID (*msi_dialog_event_handler)( MSIPACKAGE*, LPCWSTR, LPCWSTR, msi_dia
extern msi_dialog *msi_dialog_create( MSIPACKAGE*, LPCWSTR, msi_dialog_event_handler );
extern UINT msi_dialog_run_message_loop( msi_dialog* );
extern void msi_dialog_end_dialog( msi_dialog* );
extern void msi_dialog_check_messages( msi_dialog*, HANDLE );
extern void msi_dialog_check_messages( HANDLE );
extern void msi_dialog_do_preview( msi_dialog* );
extern void msi_dialog_destroy( msi_dialog* );
extern void msi_dialog_register_class( void );
extern BOOL msi_dialog_register_class( void );
extern void msi_dialog_unregister_class( void );
/* UI globals */
......
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