"""
Auto-generated Python stub file from w32.win32process.vp
Module: w32.win32process
"""

import c


import t
from stdint import *
from w32.win32base import *

PROCESS_TERMINATE: t.CDefine = 0x0001
PROCESS_CREATE_THREAD: t.CDefine = 0x0002
PROCESS_VM_OPERATION: t.CDefine = 0x0008
PROCESS_VM_READ: t.CDefine = 0x0010
PROCESS_VM_WRITE: t.CDefine = 0x0020
PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400
PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF
THREAD_TERMINATE: t.CDefine = 0x0001
THREAD_SUSPEND_RESUME: t.CDefine = 0x0002
THREAD_GET_CONTEXT: t.CDefine = 0x0008
THREAD_SET_CONTEXT: t.CDefine = 0x0010
THREAD_QUERY_INFORMATION: t.CDefine = 0x0040
THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF
CREATE_SUSPENDED: t.CDefine = 0x00000004
CREATE_NEW_CONSOLE: t.CDefine = 0x00000010
CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200
CREATE_NO_WINDOW: t.CDefine = 0x08000000
DETACHED_PROCESS: t.CDefine = 0x00000008
STARTF_USESHOWWINDOW: t.CDefine = 0x00000001
STARTF_USESTDHANDLES: t.CDefine = 0x00000100
SW_HIDE: t.CDefine = 0
SW_SHOW: t.CDefine = 5
SW_MINIMIZE: t.CDefine = 6
NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020
IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040
HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080
REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100
BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000
ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000
STILL_ACTIVE: t.CDefine = 259

class STARTUPINFOA:
    cb: ULONG
    lpReserved: CHARPTR
    lpDesktop: CHARPTR
    lpTitle: CHARPTR
    dwX: ULONG
    dwY: ULONG
    dwXSize: ULONG
    dwYSize: ULONG
    dwXCountChars: ULONG
    dwYCountChars: ULONG
    dwFillAttribute: ULONG
    dwFlags: ULONG
    wShowWindow: WORD
    cbReserved2: WORD
    lpReserved2: VOIDPTR
    hStdInput: HANDLE
    hStdOutput: HANDLE
    hStdError: HANDLE
class STARTUPINFOW:
    cb: ULONG
    lpReserved: WCHARPTR
    lpDesktop: WCHARPTR
    lpTitle: WCHARPTR
    dwX: ULONG
    dwY: ULONG
    dwXSize: ULONG
    dwYSize: ULONG
    dwXCountChars: ULONG
    dwYCountChars: ULONG
    dwFillAttribute: ULONG
    dwFlags: ULONG
    wShowWindow: WORD
    cbReserved2: WORD
    lpReserved2: VOIDPTR
    hStdInput: HANDLE
    hStdOutput: HANDLE
    hStdError: HANDLE
class PROCESS_INFORMATION:
    hProcess: HANDLE
    hThread: HANDLE
    dwProcessId: ULONG
    dwThreadId: ULONG

def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass

def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass

def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass

def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass

def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass

def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass

def GetCurrentProcess() -> HANDLE | t.State: pass

def GetCurrentProcessId() -> ULONG | t.State: pass

def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass

def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass

def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass

def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass

def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass

def GetCurrentThread() -> HANDLE | t.State: pass

def GetCurrentThreadId() -> ULONG | t.State: pass

def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass

def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass

def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass

def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass

def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass

def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass

def TlsAlloc() -> ULONG | t.State: pass

def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass

def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass

def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass
