track more of the child state on Windows
Gurusamy Sarathy [Thu, 9 Mar 2000 18:49:12 +0000 (18:49 +0000)]
p4raw-id: //depot/perl@5631

win32/win32.c
win32/win32.h

index 97b51ba..840274b 100644 (file)
@@ -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)
index 1669ea4..81bf574 100644 (file)
@@ -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);