IDebugEngineLaunch2::LaunchSuspended
This method launches a process by means of the debug engine (DE).
HRESULT LaunchSuspended (
LPCOLESTR pszMachine,
IDebugPort2* pPort,
LPCOLESTR pszExe,
LPCOLESTR pszArgs,
LPCOLESTR pszDir,
BSTR bstrEnv,
LPCOLESTR pszOptions,
LAUNCH_FLAGS dwLaunchFlags,
DWORD hStdInput,
DWORD hStdOutput,
DWORD hStdError,
IDebugEventCallback2* pCallback,
IDebugProcess2** ppDebugProcess
);
int LaunchSuspended(
string pszServer,
IDebugPort2 pPort,
string pszExe,
string pszArgs,
string pszDir,
string bstrEnv,
string pszOptions,
enum_LAUNCH_FLAGS dwLaunchFlags,
uint hStdInput,
uint hStdOutput,
uint hStdError,
IDebugEventCallback2 pCallback,
out IDebugProcess2 ppProcess
);
Parameters
pszMachine
[in] The name of the machine in which to launch the process. Use a null value to specify the local machine.pPort
[in] The IDebugPort2 interface representing the port that the program will run in.pszExe
[in] The name of the executable to be launched.pszArgs
[in] The arguments to pass to the executable. May be a null value if there are no arguments.pszDir
[in] The name of the working directory used by the executable. May be a null value if no working directory is required.bstrEnv
[in] Environment block of NULL-terminated strings, followed by an additional NULL terminator.pszOptions
[in] The options for the executable.dwLaunchFlags
[in] Specifies the LAUNCH_FLAGS for a session.hStdInput
[in] Handle to an alternate input stream. May be 0 if redirection is not required.hStdOutput
[in] Handle to an alternate output stream. May be 0 if redirection is not required.hStdError
[in] Handle to an alternate error output stream. May be 0 if redirection is not required.pCallback
[in] The IDebugEventCallback2 object that receives debugger events.ppDebugProcess
[out] Returns the resulting IDebugProcess2 object that represents the launched process.
Return Value
If successful, returns S_OK; otherwise, returns an error code.
Remarks
Normally, Visual Studio launches a program using the IDebugPortEx2::LaunchSuspended method and then attaches the debugger to the suspended program. However, there are circumstances in which the debug engine may need to launch a program (for example, if the debug engine is part of an interpreter and the program being debugged is an interpreted language), in which case Visual Studio uses the IDebugEngineLaunch2::LaunchSuspended method.
The IDebugEngineLaunch2::ResumeProcess method is called to start the process after the process has been successfully launched in a suspended state.