msi: Split process_action_return_value into two different functions.

This commit is contained in:
Mike McCormack 2006-11-22 17:04:42 +09:00 committed by Alexandre Julliard
parent eb16fd5198
commit 2a95a8ae78
1 changed files with 16 additions and 16 deletions

View File

@ -336,21 +336,21 @@ static void file_running_action(MSIPACKAGE* package, HANDLE Handle,
list_add_tail( &package->RunningActions, &action->entry ); list_add_tail( &package->RunningActions, &action->entry );
} }
static UINT process_action_return_value(UINT type, HANDLE ThreadHandle) static UINT custom_get_process_return( HANDLE process )
{ {
DWORD rc=0; DWORD rc = 0;
if (type == 2)
{
GetExitCodeProcess(ThreadHandle,&rc);
if (rc == 0)
return ERROR_SUCCESS;
else
return ERROR_FUNCTION_FAILED;
}
GetExitCodeThread(ThreadHandle,&rc); GetExitCodeProcess( process, &rc );
if (rc != 0)
return ERROR_FUNCTION_FAILED;
return ERROR_SUCCESS;
}
static UINT custom_get_thread_return( HANDLE thread )
{
DWORD rc = 0;
GetExitCodeThread( thread, &rc );
switch (rc) switch (rc)
{ {
@ -385,16 +385,16 @@ static UINT process_handle(MSIPACKAGE* package, UINT type,
if (!(type & msidbCustomActionTypeContinue)) if (!(type & msidbCustomActionTypeContinue))
{ {
if (ProcessHandle) if (ProcessHandle)
rc = process_action_return_value(2,ProcessHandle); rc = custom_get_process_return(ProcessHandle);
else else
rc = process_action_return_value(1,ThreadHandle); rc = custom_get_thread_return(ThreadHandle);
} }
CloseHandle(ThreadHandle); CloseHandle(ThreadHandle);
if (ProcessHandle) if (ProcessHandle)
CloseHandle(ProcessHandle); CloseHandle(ProcessHandle);
} }
else else
{ {
TRACE("Asynchronous Execution of action %s\n",debugstr_w(Name)); TRACE("Asynchronous Execution of action %s\n",debugstr_w(Name));
/* asynchronous */ /* asynchronous */