43 HANDLE pipe_stdout_rd, pipe_stdout_wr;
52 sa.lpSecurityDescriptor =
NULL;
54 if (!
CreatePipe(&pipe_stdout_rd, &pipe_stdout_wr, &
sa, 0))
static void read_from_pipe(HANDLE child_proc_stdout, BYTE *buf, DWORD buf_size)
BOOL WINAPI GetExitCodeProcess(IN HANDLE hProcess, IN LPDWORD lpExitCode)
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
GLenum GLuint GLenum GLsizei const GLchar * buf
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
#define HANDLE_FLAG_INHERIT
#define STARTF_USESTDHANDLES
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
BOOL WINAPI CreatePipe(PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize)
BOOL WINAPI TerminateProcess(IN HANDLE hProcess, IN UINT uExitCode)
char * strcpy(char *DstString, const char *SrcString)
BOOL WINAPI SetHandleInformation(IN HANDLE hObject, IN DWORD dwMask, IN DWORD dwFlags)
static struct sockaddr_in sa
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES