msi: Simplify ACTION_FinishCustomActions.

This commit is contained in:
Mike McCormack 2007-02-12 11:30:43 +09:00 committed by Alexandre Julliard
parent 5f1a1bbc84
commit 5927015726
1 changed files with 4 additions and 16 deletions

View File

@ -789,30 +789,18 @@ static UINT HANDLE_CustomType34(MSIPACKAGE *package, LPCWSTR source,
return wait_process_handle(package, type, info.hProcess, action); return wait_process_handle(package, type, info.hProcess, action);
} }
void ACTION_FinishCustomActions(MSIPACKAGE* package) void ACTION_FinishCustomActions(MSIPACKAGE* package)
{ {
struct list *item, *cursor; struct list *item;
DWORD rc;
LIST_FOR_EACH_SAFE( item, cursor, &package->RunningActions ) while ((item = list_head( &package->RunningActions )))
{ {
MSIRUNNINGACTION *action = LIST_ENTRY( item, MSIRUNNINGACTION, entry ); MSIRUNNINGACTION *action = LIST_ENTRY( item, MSIRUNNINGACTION, entry );
TRACE("Checking on action %s\n", debugstr_w(action->name));
list_remove( &action->entry ); list_remove( &action->entry );
if (action->process) TRACE("waiting for %s\n", debugstr_w( action->name ) );
GetExitCodeProcess( action->handle, &rc ); msi_dialog_check_messages( action->handle );
else
GetExitCodeThread( action->handle, &rc );
if (rc == STILL_ACTIVE)
{
TRACE("Waiting on action %s\n", debugstr_w( action->name) );
msi_dialog_check_messages( action->handle );
}
CloseHandle( action->handle ); CloseHandle( action->handle );
msi_free( action->name ); msi_free( action->name );