From: Gurusamy Sarathy Date: Thu, 9 Mar 2000 18:49:12 +0000 (+0000) Subject: track more of the child state on Windows X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f83751a730227a9002a455128633ba7f41582d91;p=p5sagit%2Fp5-mst-13.2.git track more of the child state on Windows p4raw-id: //depot/perl@5631 --- diff --git a/win32/win32.c b/win32/win32.c index 97b51ba..840274b 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -3203,10 +3203,20 @@ win32_spawnvp(int mode, const char *cmdname, const char *const *argv) } memset(&StartupInfo,0,sizeof(StartupInfo)); StartupInfo.cb = sizeof(StartupInfo); + memset(&tbl,0,sizeof(tbl)); PerlEnv_get_child_IO(&tbl); - StartupInfo.hStdInput = tbl.childStdIn; - StartupInfo.hStdOutput = tbl.childStdOut; - StartupInfo.hStdError = tbl.childStdErr; + StartupInfo.dwFlags = tbl.dwFlags; + StartupInfo.dwX = tbl.dwX; + StartupInfo.dwY = tbl.dwY; + StartupInfo.dwXSize = tbl.dwXSize; + StartupInfo.dwYSize = tbl.dwYSize; + StartupInfo.dwXCountChars = tbl.dwXCountChars; + StartupInfo.dwYCountChars = tbl.dwYCountChars; + StartupInfo.dwFillAttribute = tbl.dwFillAttribute; + StartupInfo.wShowWindow = tbl.wShowWindow; + StartupInfo.hStdInput = tbl.childStdIn; + StartupInfo.hStdOutput = tbl.childStdOut; + StartupInfo.hStdError = tbl.childStdErr; if (StartupInfo.hStdInput != INVALID_HANDLE_VALUE && StartupInfo.hStdOutput != INVALID_HANDLE_VALUE && StartupInfo.hStdError != INVALID_HANDLE_VALUE) diff --git a/win32/win32.h b/win32/win32.h index 1669ea4..81bf574 100644 --- a/win32/win32.h +++ b/win32/win32.h @@ -302,6 +302,23 @@ typedef struct { HANDLE childStdIn; HANDLE childStdOut; HANDLE childStdErr; + /* + * the following correspond to the fields of the same name + * in the STARTUPINFO structure. Embedders can use these to + * control the spawning process' look. + * Example - to hide the window of the spawned process: + * dwFlags = STARTF_USESHOWWINDOW; + * wShowWindow = SW_HIDE; + */ + DWORD dwFlags; + DWORD dwX; + DWORD dwY; + DWORD dwXSize; + DWORD dwYSize; + DWORD dwXCountChars; + DWORD dwYCountChars; + DWORD dwFillAttribute; + WORD wShowWindow; } child_IO_table; DllExport void win32_get_child_IO(child_IO_table* ptr);