與此相關的數據結構還有
STARTUPINFO結構
該結構用於指定新進程的主視窗特性。STARTUPINFO 結構定義如下。
typedef struct_STARTUPINFO
{
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserverd2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
}STARTUPINFO,*LPSTARTUPINFO;
其中成員含義如下。
① cb:指定該結構大小。
② lpReserved:保留,置為NULL。
③ lpDesktop:指定一個字元串,包括該進程的桌面名或視窗位置名。
④ lpTitle:指定控制台進程創建的新控制台視窗標題。
⑤ dwX,dwY:指定新視窗左上角的x 和y 偏移量(以像素為單位)。如果dwFlags 成員
未指定STARTF_USEPOSITION 標誌,則忽略這兩項。
⑥ dwXSize,dwYSize:指定新視窗的寬度和高度。如果dwFlags 成員未指定
STARTF_USESIZE 標誌,則忽略這兩個成員。
⑦ dwXCountChars,dwYCountChars:指定新控制台視窗的螢幕緩衝區的寬度和高度。
如果dwFlags 成員未指定STARTF_USECOUNTCHARS 標誌,則忽略這兩成員。
⑧ dwFillAttribute:指定新控制台視窗的初始文字和背景顏色。如果dwFlags 成員未
指定STARTF_USEFILLATTRIBUTE 標誌,則忽略該成員。
⑨ dwFlags:創建視窗標誌。
⑩ wShowWindow:新視窗的顯示狀態。如果dwFlags 成員未指定STARTF_
USESHOWWINDOWW 標誌,則忽略該成員。
cbReserved2:保留,必須置為0。
lpReserved2:保留,必須置為NULL。
hStdInput:指定一個句柄,該句柄用作進程的標準輸入句柄。如果dwFlags 成員未
指定STARTF_USESTDHANDLES 標誌,則忽略該成員。
hStdOutput:指定一個句柄,該句柄用作進程的標準輸出句柄。如果dwFlags 成員
未指定STARTF_USESTDHANDLES,則忽略該成員。
hStdError:指定一個句柄,該句柄用作進程的標準錯誤句柄。如果dwFlags 成員未
指定STARTF_USESTDHANDLES,則忽略該成員。
SECURITY_ATTRIBUTES結構
該結構存放一個對象的安全描述符並指定是否繼承返回的句柄。
SECURITY_ATTRIBUTES 結構定義如下。
typedef struct_SECURITY_ATTRIBUTES{
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
}SECURITY_ATTRIBUTES
其中成員含義如下。
① nLength:指定該結構大小。
② lpSecurityDescriptor:指向一個對象的安全描述符,該安全描述符控制對象的共享。
如果該成員置為NULL,則該對象使用調用進程的默認安全描述符。
③ bInheritHandle:指定新進程被創建時是否繼承返回的句柄。若該成員置為TRUE,
則新進程繼承該句柄。