]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/winapi/process.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / winapi / process.hpp
CommitLineData
b32b8144
FG
1/*
2 * Copyright 2016 Klemens D. Morgenstern
3 * Copyright 2016, 2017 Andrey Semashev
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * See http://www.boost.org/LICENSE_1_0.txt
7 */
8
9#ifndef BOOST_WINAPI_PROCESS_HPP_INCLUDED_
10#define BOOST_WINAPI_PROCESS_HPP_INCLUDED_
11
12#include <boost/winapi/config.hpp>
13#include <boost/winapi/basic_types.hpp>
14#include <boost/winapi/access_rights.hpp>
15#include <boost/winapi/get_current_process.hpp>
16#include <boost/winapi/get_current_process_id.hpp>
7c673cae
FG
17
18#ifdef BOOST_HAS_PRAGMA_ONCE
19#pragma once
20#endif
21
7c673cae
FG
22#if !defined( BOOST_USE_WINDOWS_H )
23extern "C" {
24
92f5a8d4 25#if BOOST_WINAPI_PARTITION_APP_SYSTEM
7c673cae
FG
26struct _PROCESS_INFORMATION;
27#if !defined( BOOST_NO_ANSI_APIS )
28struct _STARTUPINFOA;
29#endif
30struct _STARTUPINFOW;
92f5a8d4 31#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
7c673cae
FG
32
33#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
92f5a8d4
TL
34
35#if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
7c673cae 36struct _PROC_THREAD_ATTRIBUTE_LIST;
92f5a8d4
TL
37#endif // BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
38
b32b8144 39#if BOOST_WINAPI_PARTITION_DESKTOP
7c673cae
FG
40#if !defined( BOOST_NO_ANSI_APIS )
41struct _STARTUPINFOEXA;
42#endif
43struct _STARTUPINFOEXW;
b32b8144 44#endif // BOOST_WINAPI_PARTITION_DESKTOP
7c673cae 45
92f5a8d4
TL
46#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
47
48#if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
49
50BOOST_SYMBOL_IMPORT BOOST_NORETURN boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
b32b8144 51ExitProcess(boost::winapi::UINT_ uExitCode);
7c673cae 52
92f5a8d4 53BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC GetExitCodeProcess(
b32b8144
FG
54 boost::winapi::HANDLE_ hProcess,
55 boost::winapi::LPDWORD_ lpExitCode);
7c673cae
FG
56
57#if !defined( BOOST_NO_ANSI_APIS )
92f5a8d4 58BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC CreateProcessA(
b32b8144
FG
59 boost::winapi::LPCSTR_ lpApplicationName,
60 boost::winapi::LPSTR_ lpCommandLine,
7c673cae
FG
61 ::_SECURITY_ATTRIBUTES* lpProcessAttributes,
62 ::_SECURITY_ATTRIBUTES* lpThreadAttributes,
b32b8144
FG
63 boost::winapi::INT_ bInheritHandles,
64 boost::winapi::DWORD_ dwCreationFlags,
65 boost::winapi::LPVOID_ lpEnvironment,
66 boost::winapi::LPCSTR_ lpCurrentDirectory,
7c673cae
FG
67 ::_STARTUPINFOA* lpStartupInfo,
68 ::_PROCESS_INFORMATION* lpProcessInformation);
69#endif
70
92f5a8d4 71BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC CreateProcessW(
b32b8144
FG
72 boost::winapi::LPCWSTR_ lpApplicationName,
73 boost::winapi::LPWSTR_ lpCommandLine,
7c673cae
FG
74 ::_SECURITY_ATTRIBUTES* lpProcessAttributes,
75 ::_SECURITY_ATTRIBUTES* lpThreadAttributes,
b32b8144
FG
76 boost::winapi::INT_ bInheritHandles,
77 boost::winapi::DWORD_ dwCreationFlags,
78 boost::winapi::LPVOID_ lpEnvironment,
79 boost::winapi::LPCWSTR_ lpCurrentDirectory,
7c673cae
FG
80 ::_STARTUPINFOW* lpStartupInfo,
81 ::_PROCESS_INFORMATION* lpProcessInformation);
82
b32b8144
FG
83#endif // BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
84
85#if BOOST_WINAPI_PARTITION_APP_SYSTEM
86
92f5a8d4 87BOOST_SYMBOL_IMPORT boost::winapi::HANDLE_ BOOST_WINAPI_WINAPI_CC OpenProcess(
b32b8144
FG
88 boost::winapi::DWORD_ dwDesiredAccess,
89 boost::winapi::BOOL_ bInheritHandle,
90 boost::winapi::DWORD_ dwProcessId);
91
92f5a8d4 92BOOST_SYMBOL_IMPORT boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC TerminateProcess(
b32b8144
FG
93 boost::winapi::HANDLE_ hProcess,
94 boost::winapi::UINT_ uExitCode);
95
96#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
7c673cae
FG
97
98} // extern "C"
b32b8144 99#endif // defined BOOST_WINDOWS_H
7c673cae
FG
100
101namespace boost {
7c673cae
FG
102namespace winapi {
103
104#if defined( BOOST_USE_WINDOWS_H )
105
b32b8144
FG
106#if BOOST_WINAPI_PARTITION_APP_SYSTEM
107
92f5a8d4
TL
108BOOST_CONSTEXPR_OR_CONST DWORD_ DEBUG_PROCESS_ = DEBUG_PROCESS;
109BOOST_CONSTEXPR_OR_CONST DWORD_ DEBUG_ONLY_THIS_PROCESS_ = DEBUG_ONLY_THIS_PROCESS;
110BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_SUSPENDED_ = CREATE_SUSPENDED;
111BOOST_CONSTEXPR_OR_CONST DWORD_ DETACHED_PROCESS_ = DETACHED_PROCESS;
112BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_NEW_CONSOLE_ = CREATE_NEW_CONSOLE;
113BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_NEW_PROCESS_GROUP_ = CREATE_NEW_PROCESS_GROUP;
114BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_UNICODE_ENVIRONMENT_ = CREATE_UNICODE_ENVIRONMENT;
115BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_SEPARATE_WOW_VDM_ = CREATE_SEPARATE_WOW_VDM;
116BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_SHARED_WOW_VDM_ = CREATE_SHARED_WOW_VDM;
117BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_FORCEDOS_ = CREATE_FORCEDOS;
118BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_BREAKAWAY_FROM_JOB_ = CREATE_BREAKAWAY_FROM_JOB;
119BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_DEFAULT_ERROR_MODE_ = CREATE_DEFAULT_ERROR_MODE;
120BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_NO_WINDOW_ = CREATE_NO_WINDOW;
7c673cae
FG
121
122// Undocumented
92f5a8d4
TL
123BOOST_CONSTEXPR_OR_CONST DWORD_ PROFILE_USER_ = PROFILE_USER;
124BOOST_CONSTEXPR_OR_CONST DWORD_ PROFILE_KERNEL_ = PROFILE_KERNEL;
125BOOST_CONSTEXPR_OR_CONST DWORD_ PROFILE_SERVER_ = PROFILE_SERVER;
7c673cae
FG
126
127#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
92f5a8d4
TL
128BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_PROTECTED_PROCESS_ = CREATE_PROTECTED_PROCESS;
129BOOST_CONSTEXPR_OR_CONST DWORD_ EXTENDED_STARTUPINFO_PRESENT_ = EXTENDED_STARTUPINFO_PRESENT;
7c673cae
FG
130#endif
131
132#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN7
92f5a8d4 133BOOST_CONSTEXPR_OR_CONST DWORD_ INHERIT_PARENT_AFFINITY_ = INHERIT_PARENT_AFFINITY;
7c673cae
FG
134#endif
135
136// Only documented for Windows CE
137#if defined(UNDER_CE)
92f5a8d4 138BOOST_CONSTEXPR_OR_CONST DWORD_ INHERIT_CALLER_PRIORITY_ = INHERIT_CALLER_PRIORITY;
7c673cae
FG
139#endif
140
b32b8144
FG
141#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
142
143#if BOOST_WINAPI_PARTITION_DESKTOP
144
92f5a8d4
TL
145BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USESHOWWINDOW_ = STARTF_USESHOWWINDOW;
146BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USESIZE_ = STARTF_USESIZE;
147BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USEPOSITION_ = STARTF_USEPOSITION;
148BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USECOUNTCHARS_ = STARTF_USECOUNTCHARS;
149BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USEFILLATTRIBUTE_ = STARTF_USEFILLATTRIBUTE;
150BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_RUNFULLSCREEN_ = STARTF_RUNFULLSCREEN;
151BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_FORCEONFEEDBACK_ = STARTF_FORCEONFEEDBACK;
152BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_FORCEOFFFEEDBACK_ = STARTF_FORCEOFFFEEDBACK;
153BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USESTDHANDLES_ = STARTF_USESTDHANDLES;
154BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USEHOTKEY_ = STARTF_USEHOTKEY;
7c673cae
FG
155
156#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN7
92f5a8d4
TL
157BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_TITLEISLINKNAME_ = STARTF_TITLEISLINKNAME;
158BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_TITLEISAPPID_ = STARTF_TITLEISAPPID;
159BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_PREVENTPINNING_ = STARTF_PREVENTPINNING;
7c673cae
FG
160#endif
161
b32b8144
FG
162#endif // BOOST_WINAPI_PARTITION_DESKTOP
163
92f5a8d4
TL
164BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_TERMINATE_ = PROCESS_TERMINATE;
165BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_CREATE_THREAD_ = PROCESS_CREATE_THREAD;
166BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_SET_SESSIONID_ = PROCESS_SET_SESSIONID;
167BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_VM_OPERATION_ = PROCESS_VM_OPERATION;
168BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_VM_READ_ = PROCESS_VM_READ;
169BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_VM_WRITE_ = PROCESS_VM_WRITE;
170BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_DUP_HANDLE_ = PROCESS_DUP_HANDLE;
171BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_CREATE_PROCESS_ = PROCESS_CREATE_PROCESS;
172BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_SET_QUOTA_ = PROCESS_SET_QUOTA;
173BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_SET_INFORMATION_ = PROCESS_SET_INFORMATION;
174BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_QUERY_INFORMATION_ = PROCESS_QUERY_INFORMATION;
175BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_SUSPEND_RESUME_ = PROCESS_SUSPEND_RESUME;
176BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_ALL_ACCESS_ = PROCESS_ALL_ACCESS;
7c673cae
FG
177
178#else // defined( BOOST_USE_WINDOWS_H )
179
b32b8144
FG
180#if BOOST_WINAPI_PARTITION_APP_SYSTEM
181
92f5a8d4
TL
182BOOST_CONSTEXPR_OR_CONST DWORD_ DEBUG_PROCESS_ = 0x1;
183BOOST_CONSTEXPR_OR_CONST DWORD_ DEBUG_ONLY_THIS_PROCESS_ = 0x2;
184BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_SUSPENDED_ = 0x4;
185BOOST_CONSTEXPR_OR_CONST DWORD_ DETACHED_PROCESS_ = 0x8;
186BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_NEW_CONSOLE_ = 0x10;
187BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_NEW_PROCESS_GROUP_ = 0x200;
188BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_UNICODE_ENVIRONMENT_ = 0x400;
189BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_SEPARATE_WOW_VDM_ = 0x800;
190BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_SHARED_WOW_VDM_ = 0x1000;
191BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_FORCEDOS_ = 0x2000;
192BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_BREAKAWAY_FROM_JOB_ = 0x1000000;
193BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_DEFAULT_ERROR_MODE_ = 0x4000000;
194BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_NO_WINDOW_ = 0x8000000;
7c673cae
FG
195
196// Undocumented
92f5a8d4
TL
197BOOST_CONSTEXPR_OR_CONST DWORD_ PROFILE_USER_ = 0x10000000;
198BOOST_CONSTEXPR_OR_CONST DWORD_ PROFILE_KERNEL_ = 0x20000000;
199BOOST_CONSTEXPR_OR_CONST DWORD_ PROFILE_SERVER_ = 0x40000000;
7c673cae
FG
200
201#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
92f5a8d4
TL
202BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_PROTECTED_PROCESS_ = 0x40000;
203BOOST_CONSTEXPR_OR_CONST DWORD_ EXTENDED_STARTUPINFO_PRESENT_ = 0x80000;
7c673cae
FG
204#endif
205
206#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN7
92f5a8d4 207BOOST_CONSTEXPR_OR_CONST DWORD_ INHERIT_PARENT_AFFINITY_ = 0x10000;
7c673cae
FG
208#endif
209
210// Only documented for Windows CE
211#if defined(UNDER_CE)
92f5a8d4 212BOOST_CONSTEXPR_OR_CONST DWORD_ INHERIT_CALLER_PRIORITY_ = 0x20000;
7c673cae
FG
213#endif
214
b32b8144
FG
215#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
216
217#if BOOST_WINAPI_PARTITION_DESKTOP
218
92f5a8d4
TL
219BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USESHOWWINDOW_ = 0x00000001;
220BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USESIZE_ = 0x00000002;
221BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USEPOSITION_ = 0x00000004;
222BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USECOUNTCHARS_ = 0x00000008;
223BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USEFILLATTRIBUTE_ = 0x00000010;
224BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_RUNFULLSCREEN_ = 0x00000020;
225BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_FORCEONFEEDBACK_ = 0x00000040;
226BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_FORCEOFFFEEDBACK_ = 0x00000080;
227BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USESTDHANDLES_ = 0x00000100;
228BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_USEHOTKEY_ = 0x00000200;
7c673cae
FG
229
230#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN7
92f5a8d4
TL
231BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_TITLEISLINKNAME_ = 0x00000800;
232BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_TITLEISAPPID_ = 0x00001000;
233BOOST_CONSTEXPR_OR_CONST DWORD_ STARTF_PREVENTPINNING_ = 0x00002000;
7c673cae
FG
234#endif
235
b32b8144
FG
236#endif // BOOST_WINAPI_PARTITION_DESKTOP
237
92f5a8d4
TL
238BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_TERMINATE_ = 0x0001;
239BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_CREATE_THREAD_ = 0x0002;
240BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_SET_SESSIONID_ = 0x0004;
241BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_VM_OPERATION_ = 0x0008;
242BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_VM_READ_ = 0x0010;
243BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_VM_WRITE_ = 0x0020;
244BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_DUP_HANDLE_ = 0x0040;
245BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_CREATE_PROCESS_ = 0x0080;
246BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_SET_QUOTA_ = 0x0100;
247BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_SET_INFORMATION_ = 0x0200;
248BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_QUERY_INFORMATION_ = 0x0400;
249BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_SUSPEND_RESUME_ = 0x0800;
250BOOST_CONSTEXPR_OR_CONST DWORD_ PROCESS_ALL_ACCESS_ = (STANDARD_RIGHTS_REQUIRED_ | SYNCHRONIZE_ |
251#if BOOST_USE_NTDDI_VERSION >= BOOST_WINAPI_NTDDI_WIN6
252 0xFFFF
253#else
254 0x0FFF
255#endif
256);
7c673cae
FG
257
258#endif // defined( BOOST_USE_WINDOWS_H )
259
b32b8144
FG
260#if BOOST_WINAPI_PARTITION_APP_SYSTEM
261
7c673cae
FG
262#if defined( BOOST_USE_WINDOWS_H ) && !defined( BOOST_WINAPI_IS_MINGW )
263
92f5a8d4 264BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_PRESERVE_CODE_AUTHZ_LEVEL_ = CREATE_PRESERVE_CODE_AUTHZ_LEVEL;
7c673cae
FG
265
266// Undocumented
92f5a8d4 267BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_IGNORE_SYSTEM_DEFAULT_ = CREATE_IGNORE_SYSTEM_DEFAULT;
7c673cae
FG
268
269#else // defined( BOOST_USE_WINDOWS_H ) && !defined( BOOST_WINAPI_IS_MINGW )
270
92f5a8d4 271BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_PRESERVE_CODE_AUTHZ_LEVEL_ = 0x2000000;
7c673cae
FG
272
273// Undocumented
92f5a8d4 274BOOST_CONSTEXPR_OR_CONST DWORD_ CREATE_IGNORE_SYSTEM_DEFAULT_ = 0x80000000;
7c673cae
FG
275
276#endif // defined( BOOST_USE_WINDOWS_H ) && !defined( BOOST_WINAPI_IS_MINGW )
277
b32b8144
FG
278#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
279
92f5a8d4
TL
280#if BOOST_WINAPI_PARTITION_APP_SYSTEM
281
b32b8144 282typedef struct BOOST_MAY_ALIAS _PROCESS_INFORMATION {
7c673cae
FG
283 HANDLE_ hProcess;
284 HANDLE_ hThread;
285 DWORD_ dwProcessId;
286 DWORD_ dwThreadId;
287} PROCESS_INFORMATION_, *PPROCESS_INFORMATION_, *LPPROCESS_INFORMATION_;
288
92f5a8d4 289#if !defined(BOOST_NO_ANSI_APIS)
b32b8144 290typedef struct BOOST_MAY_ALIAS _STARTUPINFOA {
7c673cae
FG
291 DWORD_ cb;
292 LPSTR_ lpReserved;
293 LPSTR_ lpDesktop;
294 LPSTR_ lpTitle;
295 DWORD_ dwX;
296 DWORD_ dwY;
297 DWORD_ dwXSize;
298 DWORD_ dwYSize;
299 DWORD_ dwXCountChars;
300 DWORD_ dwYCountChars;
301 DWORD_ dwFillAttribute;
302 DWORD_ dwFlags;
303 WORD_ wShowWindow;
304 WORD_ cbReserved2;
305 LPBYTE_ lpReserved2;
306 HANDLE_ hStdInput;
307 HANDLE_ hStdOutput;
308 HANDLE_ hStdError;
309} STARTUPINFOA_, *LPSTARTUPINFOA_;
92f5a8d4 310#endif // !defined(BOOST_NO_ANSI_APIS)
7c673cae 311
b32b8144 312typedef struct BOOST_MAY_ALIAS _STARTUPINFOW {
7c673cae
FG
313 DWORD_ cb;
314 LPWSTR_ lpReserved;
315 LPWSTR_ lpDesktop;
316 LPWSTR_ lpTitle;
317 DWORD_ dwX;
318 DWORD_ dwY;
319 DWORD_ dwXSize;
320 DWORD_ dwYSize;
321 DWORD_ dwXCountChars;
322 DWORD_ dwYCountChars;
323 DWORD_ dwFillAttribute;
324 DWORD_ dwFlags;
325 WORD_ wShowWindow;
326 WORD_ cbReserved2;
327 LPBYTE_ lpReserved2;
328 HANDLE_ hStdInput;
329 HANDLE_ hStdOutput;
330 HANDLE_ hStdError;
331} STARTUPINFOW_, *LPSTARTUPINFOW_;
332
92f5a8d4
TL
333#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
334
7c673cae
FG
335#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
336
92f5a8d4 337#if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
7c673cae 338typedef struct _PROC_THREAD_ATTRIBUTE_LIST PROC_THREAD_ATTRIBUTE_LIST_, *PPROC_THREAD_ATTRIBUTE_LIST_;
92f5a8d4 339#endif // BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
7c673cae 340
b32b8144
FG
341#if BOOST_WINAPI_PARTITION_DESKTOP
342
7c673cae 343#if !defined(BOOST_NO_ANSI_APIS)
b32b8144 344typedef struct BOOST_MAY_ALIAS _STARTUPINFOEXA {
7c673cae
FG
345 STARTUPINFOA_ StartupInfo;
346 PPROC_THREAD_ATTRIBUTE_LIST_ lpAttributeList;
347} STARTUPINFOEXA_, *LPSTARTUPINFOEXA_;
b32b8144 348#endif // !defined(BOOST_NO_ANSI_APIS)
7c673cae 349
b32b8144 350typedef struct BOOST_MAY_ALIAS _STARTUPINFOEXW {
7c673cae
FG
351 STARTUPINFOW_ StartupInfo;
352 PPROC_THREAD_ATTRIBUTE_LIST_ lpAttributeList;
353} STARTUPINFOEXW_, *LPSTARTUPINFOEXW_;
354
b32b8144
FG
355#endif // BOOST_WINAPI_PARTITION_DESKTOP
356
7c673cae
FG
357#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
358
b32b8144
FG
359#if BOOST_WINAPI_PARTITION_APP_SYSTEM
360
7c673cae
FG
361using ::TerminateProcess;
362using ::OpenProcess;
363
b32b8144
FG
364#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
365
366#if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
367
368using ::GetExitCodeProcess;
369using ::ExitProcess;
370
7c673cae
FG
371#if !defined( BOOST_NO_ANSI_APIS )
372BOOST_FORCEINLINE BOOL_ CreateProcessA(
373 LPCSTR_ lpApplicationName,
374 LPSTR_ lpCommandLine,
375 LPSECURITY_ATTRIBUTES_ lpProcessAttributes,
376 LPSECURITY_ATTRIBUTES_ lpThreadAttributes,
377 INT_ bInheritHandles,
378 DWORD_ dwCreationFlags,
379 LPVOID_ lpEnvironment,
380 LPCSTR_ lpCurrentDirectory,
381 LPSTARTUPINFOA_ lpStartupInfo,
382 LPPROCESS_INFORMATION_ lpProcessInformation)
383{
384 return ::CreateProcessA(
385 lpApplicationName,
386 lpCommandLine,
387 reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpProcessAttributes),
388 reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpThreadAttributes),
389 bInheritHandles,
390 dwCreationFlags,
391 lpEnvironment,
392 lpCurrentDirectory,
393 reinterpret_cast< ::_STARTUPINFOA* >(lpStartupInfo),
394 reinterpret_cast< ::_PROCESS_INFORMATION* >(lpProcessInformation));
395}
396
397BOOST_FORCEINLINE BOOL_ create_process(
398 LPCSTR_ lpApplicationName,
399 LPSTR_ lpCommandLine,
400 LPSECURITY_ATTRIBUTES_ lpProcessAttributes,
401 LPSECURITY_ATTRIBUTES_ lpThreadAttributes,
402 INT_ bInheritHandles,
403 DWORD_ dwCreationFlags,
404 LPVOID_ lpEnvironment,
405 LPCSTR_ lpCurrentDirectory,
406 LPSTARTUPINFOA_ lpStartupInfo,
407 LPPROCESS_INFORMATION_ lpProcessInformation)
408{
409 return ::CreateProcessA(
410 lpApplicationName,
411 lpCommandLine,
412 reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpProcessAttributes),
413 reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpThreadAttributes),
414 bInheritHandles,
415 dwCreationFlags,
416 lpEnvironment,
417 lpCurrentDirectory,
418 reinterpret_cast< ::_STARTUPINFOA* >(lpStartupInfo),
419 reinterpret_cast< ::_PROCESS_INFORMATION* >(lpProcessInformation));
420}
421#endif
422
423BOOST_FORCEINLINE BOOL_ CreateProcessW(
424 LPCWSTR_ lpApplicationName,
425 LPWSTR_ lpCommandLine,
426 LPSECURITY_ATTRIBUTES_ lpProcessAttributes,
427 LPSECURITY_ATTRIBUTES_ lpThreadAttributes,
428 INT_ bInheritHandles,
429 DWORD_ dwCreationFlags,
430 LPVOID_ lpEnvironment,
431 LPCWSTR_ lpCurrentDirectory,
432 LPSTARTUPINFOW_ lpStartupInfo,
433 LPPROCESS_INFORMATION_ lpProcessInformation)
434{
435 return ::CreateProcessW(
436 lpApplicationName,
437 lpCommandLine,
438 reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpProcessAttributes),
439 reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpThreadAttributes),
440 bInheritHandles,
441 dwCreationFlags,
442 lpEnvironment,
443 lpCurrentDirectory,
444 reinterpret_cast< ::_STARTUPINFOW* >(lpStartupInfo),
445 reinterpret_cast< ::_PROCESS_INFORMATION* >(lpProcessInformation));
446}
447
448BOOST_FORCEINLINE BOOL_ create_process(
449 LPCWSTR_ lpApplicationName,
450 LPWSTR_ lpCommandLine,
451 LPSECURITY_ATTRIBUTES_ lpProcessAttributes,
452 LPSECURITY_ATTRIBUTES_ lpThreadAttributes,
453 INT_ bInheritHandles,
454 DWORD_ dwCreationFlags,
455 LPVOID_ lpEnvironment,
456 LPCWSTR_ lpCurrentDirectory,
457 LPSTARTUPINFOW_ lpStartupInfo,
458 LPPROCESS_INFORMATION_ lpProcessInformation)
459{
460 return ::CreateProcessW(
461 lpApplicationName,
462 lpCommandLine,
463 reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpProcessAttributes),
464 reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpThreadAttributes),
465 bInheritHandles,
466 dwCreationFlags,
467 lpEnvironment,
468 lpCurrentDirectory,
469 reinterpret_cast< ::_STARTUPINFOW* >(lpStartupInfo),
470 reinterpret_cast< ::_PROCESS_INFORMATION* >(lpProcessInformation));
471}
472
b32b8144
FG
473#endif // BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
474
7c673cae
FG
475}
476}
7c673cae 477
b32b8144 478#endif // BOOST_WINAPI_PROCESS_HPP_INCLUDED_