
#ifndef _PROCESS_H_
#define _PROCESS_H_

#include "util.h"

// Launch a new process using CreateProcess and return immediatly
// return TRUE if process was created normally or FALSE if not.
// Also fill _p_Info with process informations (handle...)
// Display a dialog box to the user in case of error on CreateProcess.
BOOL fn_bSpawnProcess( char *_szExeName, char *_szCommandLine, LPPROCESS_INFORMATION _p_Info );
void fn_vCloseProcessHandles( LPPROCESS_INFORMATION _p_stProcess );
BOOL fn_bCloseSytemErrorDialogBox( char *_szExeName, BOOL bForceClose = FALSE );

tdeStatus fn_eWaitForMultipleProcesses( int _iNbProcesses, LPPROCESS_INFORMATION _pa_stInfo, LPCTSTR _szExeNames[], int *_p_iProcessesEnded );
tdeStatus fn_eSpawnAndWaitForProcess( char *_szExeName, char *_szCommandLine, HANDLE _hEventStop = INVALID_HANDLE_VALUE );
tdeStatus fn_eSpawnAndWaitForProcessWithInputEvents( char *_szExeName, char *_szCommandLine );
tdeStatus fn_eSpawnAndWaitForProcessWithTimeout( char *_szExeName, char *_szCommandLine, DWORD dwMilliseconds = INFINITE );

tdeStatus fn_eSpawnThreadAndWaitWithInputEvents( AFX_THREADPROC _p_fn_uiThread, LPVOID _p_vParamForThread );

#endif

