2951 lines · 155.9 KB · C
RawDownload
/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the w64 mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within this package. */#ifndef _WINBASE_#define _WINBASE_ #define WINADVAPI DECLSPEC_IMPORT#define WINBASEAPI DECLSPEC_IMPORT#define ZAWPROXYAPI DECLSPEC_IMPORT #ifdef __cplusplusextern "C" {#endif #define DefineHandleTable(w) ((w),TRUE)#define LimitEmsPages(dw)#define SetSwapAreaSize(w) (w)#define LockSegment(w) GlobalFix((HANDLE)(w))#define UnlockSegment(w) GlobalUnfix((HANDLE)(w))#define GetCurrentTime() GetTickCount() #define Yield() #define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)#define INVALID_FILE_SIZE ((DWORD)0xffffffff)#define INVALID_SET_FILE_POINTER ((DWORD)-1)#define INVALID_FILE_ATTRIBUTES ((DWORD)-1) #define FILE_BEGIN 0#define FILE_CURRENT 1#define FILE_END 2 #define TIME_ZONE_ID_INVALID ((DWORD)0xffffffff) #define WAIT_FAILED ((DWORD)0xffffffff)#define WAIT_OBJECT_0 ((STATUS_WAIT_0) + 0)#define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0) + 0)#define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0) + 0)#define WAIT_IO_COMPLETION STATUS_USER_APC#define STILL_ACTIVE STATUS_PENDING#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION#define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT#define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT#define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED#define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND#define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO#define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT#define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION#define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW#define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK#define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW#define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO#define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW#define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION#define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION#define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION#define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW#define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION#define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE#define EXCEPTION_POSSIBLE_DEADLOCK STATUS_POSSIBLE_DEADLOCK#define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT#define MoveMemory RtlMoveMemory#define CopyMemory RtlCopyMemory#define FillMemory RtlFillMemory#define ZeroMemory RtlZeroMemory#define SecureZeroMemory RtlSecureZeroMemory #define FILE_FLAG_WRITE_THROUGH 0x80000000#define FILE_FLAG_OVERLAPPED 0x40000000#define FILE_FLAG_NO_BUFFERING 0x20000000#define FILE_FLAG_RANDOM_ACCESS 0x10000000#define FILE_FLAG_SEQUENTIAL_SCAN 0x8000000#define FILE_FLAG_DELETE_ON_CLOSE 0x4000000#define FILE_FLAG_BACKUP_SEMANTICS 0x2000000#define FILE_FLAG_POSIX_SEMANTICS 0x1000000#define FILE_FLAG_OPEN_REPARSE_POINT 0x200000#define FILE_FLAG_OPEN_NO_RECALL 0x100000#define FILE_FLAG_FIRST_PIPE_INSTANCE 0x80000 #define CREATE_NEW 1#define CREATE_ALWAYS 2#define OPEN_EXISTING 3#define OPEN_ALWAYS 4#define TRUNCATE_EXISTING 5 #define PROGRESS_CONTINUE 0#define PROGRESS_CANCEL 1#define PROGRESS_STOP 2#define PROGRESS_QUIET 3 #define CALLBACK_CHUNK_FINISHED 0x0#define CALLBACK_STREAM_SWITCH 0x1 #define COPY_FILE_FAIL_IF_EXISTS 0x1#define COPY_FILE_RESTARTABLE 0x2#define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x4#define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x8 #define REPLACEFILE_WRITE_THROUGH 0x1#define REPLACEFILE_IGNORE_MERGE_ERRORS 0x2 #define PIPE_ACCESS_INBOUND 0x1#define PIPE_ACCESS_OUTBOUND 0x2#define PIPE_ACCESS_DUPLEX 0x3 #define PIPE_CLIENT_END 0x0#define PIPE_SERVER_END 0x1 #define PIPE_WAIT 0x0#define PIPE_NOWAIT 0x1#define PIPE_READMODE_BYTE 0x0#define PIPE_READMODE_MESSAGE 0x2#define PIPE_TYPE_BYTE 0x0#define PIPE_TYPE_MESSAGE 0x4 #define PIPE_UNLIMITED_INSTANCES 255 #define SECURITY_ANONYMOUS (SecurityAnonymous << 16)#define SECURITY_IDENTIFICATION (SecurityIdentification << 16)#define SECURITY_IMPERSONATION (SecurityImpersonation << 16)#define SECURITY_DELEGATION (SecurityDelegation << 16) #define SECURITY_CONTEXT_TRACKING 0x40000#define SECURITY_EFFECTIVE_ONLY 0x80000 #define SECURITY_SQOS_PRESENT 0x100000#define SECURITY_VALID_SQOS_FLAGS 0x1f0000   typedef struct _OVERLAPPED {    ULONG_PTR Internal;    ULONG_PTR InternalHigh;    union {      struct {	DWORD Offset;	DWORD OffsetHigh;      };      PVOID Pointer;    };    HANDLE hEvent;  } OVERLAPPED,*LPOVERLAPPED;   typedef struct _SECURITY_ATTRIBUTES {    DWORD nLength;    LPVOID lpSecurityDescriptor;    WINBOOL bInheritHandle;  } SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;   typedef struct _PROCESS_INFORMATION {    HANDLE hProcess;    HANDLE hThread;    DWORD dwProcessId;    DWORD dwThreadId;  } PROCESS_INFORMATION,*PPROCESS_INFORMATION,*LPPROCESS_INFORMATION; #ifndef _FILETIME_#define _FILETIME_  typedef struct _FILETIME {    DWORD dwLowDateTime;    DWORD dwHighDateTime;  } FILETIME,*PFILETIME,*LPFILETIME;#endif   typedef struct _SYSTEMTIME {    WORD wYear;    WORD wMonth;    WORD wDayOfWeek;    WORD wDay;    WORD wHour;    WORD wMinute;    WORD wSecond;    WORD wMilliseconds;  } SYSTEMTIME,*PSYSTEMTIME,*LPSYSTEMTIME;   typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(LPVOID lpThreadParameter);  typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;  typedef VOID (WINAPI *PFIBER_START_ROUTINE)(LPVOID lpFiberParameter);  typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;   typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;  typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;  typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;  typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;  typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;  typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;   WINBASEAPI PVOID WINAPI EncodePointer(PVOID Ptr);  WINBASEAPI PVOID WINAPI DecodePointer(PVOID Ptr);  WINBASEAPI PVOID WINAPI EncodeSystemPointer(PVOID Ptr);  WINBASEAPI PVOID WINAPI DecodeSystemPointer(PVOID Ptr); #ifdef I_X86_  typedef PLDT_ENTRY LPLDT_ENTRY;#else  typedef LPVOID LPLDT_ENTRY;#endif #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE#define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS #define SP_SERIALCOMM ((DWORD)0x1) #define PST_UNSPECIFIED ((DWORD)0x0)#define PST_RS232 ((DWORD)0x1)#define PST_PARALLELPORT ((DWORD)0x2)#define PST_RS422 ((DWORD)0x3)#define PST_RS423 ((DWORD)0x4)#define PST_RS449 ((DWORD)0x5)#define PST_MODEM ((DWORD)0x6)#define PST_FAX ((DWORD)0x21)#define PST_SCANNER ((DWORD)0x22)#define PST_NETWORK_BRIDGE ((DWORD)0x100)#define PST_LAT ((DWORD)0x101)#define PST_TCPIP_TELNET ((DWORD)0x102)#define PST_X25 ((DWORD)0x103) #define PCF_DTRDSR ((DWORD)0x1)#define PCF_RTSCTS ((DWORD)0x2)#define PCF_RLSD ((DWORD)0x4)#define PCF_PARITY_CHECK ((DWORD)0x8)#define PCF_XONXOFF ((DWORD)0x10)#define PCF_SETXCHAR ((DWORD)0x20)#define PCF_TOTALTIMEOUTS ((DWORD)0x40)#define PCF_INTTIMEOUTS ((DWORD)0x80)#define PCF_SPECIALCHARS ((DWORD)0x100)#define PCF_16BITMODE ((DWORD)0x200) #define SP_PARITY ((DWORD)0x1)#define SP_BAUD ((DWORD)0x2)#define SP_DATABITS ((DWORD)0x4)#define SP_STOPBITS ((DWORD)0x8)#define SP_HANDSHAKING ((DWORD)0x10)#define SP_PARITY_CHECK ((DWORD)0x20)#define SP_RLSD ((DWORD)0x40) #define BAUD_075 ((DWORD)0x1)#define BAUD_110 ((DWORD)0x2)#define BAUD_134_5 ((DWORD)0x4)#define BAUD_150 ((DWORD)0x8)#define BAUD_300 ((DWORD)0x10)#define BAUD_600 ((DWORD)0x20)#define BAUD_1200 ((DWORD)0x40)#define BAUD_1800 ((DWORD)0x80)#define BAUD_2400 ((DWORD)0x100)#define BAUD_4800 ((DWORD)0x200)#define BAUD_7200 ((DWORD)0x400)#define BAUD_9600 ((DWORD)0x800)#define BAUD_14400 ((DWORD)0x1000)#define BAUD_19200 ((DWORD)0x2000)#define BAUD_38400 ((DWORD)0x4000)#define BAUD_56K ((DWORD)0x8000)#define BAUD_128K ((DWORD)0x10000)#define BAUD_115200 ((DWORD)0x20000)#define BAUD_57600 ((DWORD)0x40000)#define BAUD_USER ((DWORD)0x10000000) #define DATABITS_5 ((WORD)0x1)#define DATABITS_6 ((WORD)0x2)#define DATABITS_7 ((WORD)0x4)#define DATABITS_8 ((WORD)0x8)#define DATABITS_16 ((WORD)0x10)#define DATABITS_16X ((WORD)0x20) #define STOPBITS_10 ((WORD)0x1)#define STOPBITS_15 ((WORD)0x2)#define STOPBITS_20 ((WORD)0x4)#define PARITY_NONE ((WORD)0x100)#define PARITY_ODD ((WORD)0x200)#define PARITY_EVEN ((WORD)0x400)#define PARITY_MARK ((WORD)0x800)#define PARITY_SPACE ((WORD)0x1000)   typedef struct _COMMPROP {    WORD wPacketLength;    WORD wPacketVersion;    DWORD dwServiceMask;    DWORD dwReserved1;    DWORD dwMaxTxQueue;    DWORD dwMaxRxQueue;    DWORD dwMaxBaud;    DWORD dwProvSubType;    DWORD dwProvCapabilities;    DWORD dwSettableParams;    DWORD dwSettableBaud;    WORD wSettableData;    WORD wSettableStopParity;    DWORD dwCurrentTxQueue;    DWORD dwCurrentRxQueue;    DWORD dwProvSpec1;    DWORD dwProvSpec2;    WCHAR wcProvChar[1];  } COMMPROP,*LPCOMMPROP; #define COMMPROP_INITIALIZED ((DWORD)0xE73CF52E)   typedef struct _COMSTAT {    DWORD fCtsHold : 1;    DWORD fDsrHold : 1;    DWORD fRlsdHold : 1;    DWORD fXoffHold : 1;    DWORD fXoffSent : 1;    DWORD fEof : 1;    DWORD fTxim : 1;    DWORD fReserved : 25;    DWORD cbInQue;    DWORD cbOutQue;  } COMSTAT,*LPCOMSTAT; #define DTR_CONTROL_DISABLE 0x0#define DTR_CONTROL_ENABLE 0x1#define DTR_CONTROL_HANDSHAKE 0x2 #define RTS_CONTROL_DISABLE 0x0#define RTS_CONTROL_ENABLE 0x1#define RTS_CONTROL_HANDSHAKE 0x2#define RTS_CONTROL_TOGGLE 0x3   typedef struct _DCB {    DWORD DCBlength;    DWORD BaudRate;    DWORD fBinary: 1;    DWORD fParity: 1;    DWORD fOutxCtsFlow:1;    DWORD fOutxDsrFlow:1;    DWORD fDtrControl:2;    DWORD fDsrSensitivity:1;    DWORD fTXContinueOnXoff: 1;    DWORD fOutX: 1;    DWORD fInX: 1;    DWORD fErrorChar: 1;    DWORD fNull: 1;    DWORD fRtsControl:2;    DWORD fAbortOnError:1;    DWORD fDummy2:17;    WORD wReserved;    WORD XonLim;    WORD XoffLim;    BYTE ByteSize;    BYTE Parity;    BYTE StopBits;    char XonChar;    char XoffChar;    char ErrorChar;    char EofChar;    char EvtChar;    WORD wReserved1;  } DCB,*LPDCB;   typedef struct _COMMTIMEOUTS {    DWORD ReadIntervalTimeout;    DWORD ReadTotalTimeoutMultiplier;    DWORD ReadTotalTimeoutConstant;    DWORD WriteTotalTimeoutMultiplier;    DWORD WriteTotalTimeoutConstant;  } COMMTIMEOUTS,*LPCOMMTIMEOUTS;   typedef struct _COMMCONFIG {    DWORD dwSize;    WORD wVersion;    WORD wReserved;    DCB dcb;    DWORD dwProviderSubType;    DWORD dwProviderOffset;    DWORD dwProviderSize;    WCHAR wcProviderData[1];  } COMMCONFIG,*LPCOMMCONFIG;   typedef struct _SYSTEM_INFO {    union {      DWORD dwOemId;      struct {	WORD wProcessorArchitecture;	WORD wReserved;      };    };    DWORD dwPageSize;    LPVOID lpMinimumApplicationAddress;    LPVOID lpMaximumApplicationAddress;    DWORD_PTR dwActiveProcessorMask;    DWORD dwNumberOfProcessors;    DWORD dwProcessorType;    DWORD dwAllocationGranularity;    WORD wProcessorLevel;    WORD wProcessorRevision;  } SYSTEM_INFO,*LPSYSTEM_INFO; #define FreeModule(hLibModule) FreeLibrary((hLibModule))#define MakeProcInstance(lpProc,hInstance) (lpProc)#define FreeProcInstance(lpProc) (lpProc) #define GMEM_FIXED 0x0#define GMEM_MOVEABLE 0x2#define GMEM_NOCOMPACT 0x10#define GMEM_NODISCARD 0x20#define GMEM_ZEROINIT 0x40#define GMEM_MODIFY 0x80#define GMEM_DISCARDABLE 0x100#define GMEM_NOT_BANKED 0x1000#define GMEM_SHARE 0x2000#define GMEM_DDESHARE 0x2000#define GMEM_NOTIFY 0x4000#define GMEM_LOWER GMEM_NOT_BANKED#define GMEM_VALID_FLAGS 0x7F72#define GMEM_INVALID_HANDLE 0x8000 #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)#define GPTR (GMEM_FIXED | GMEM_ZEROINIT) #define GlobalLRUNewest(h) ((HANDLE)(h))#define GlobalLRUOldest(h) ((HANDLE)(h))#define GlobalDiscard(h) GlobalReAlloc((h),0,GMEM_MOVEABLE) #define GMEM_DISCARDED 0x4000#define GMEM_LOCKCOUNT 0xff   typedef struct _MEMORYSTATUS {    DWORD dwLength;    DWORD dwMemoryLoad;    SIZE_T dwTotalPhys;    SIZE_T dwAvailPhys;    SIZE_T dwTotalPageFile;    SIZE_T dwAvailPageFile;    SIZE_T dwTotalVirtual;    SIZE_T dwAvailVirtual;  } MEMORYSTATUS,*LPMEMORYSTATUS; #define LMEM_FIXED 0x0#define LMEM_MOVEABLE 0x2#define LMEM_NOCOMPACT 0x10#define LMEM_NODISCARD 0x20#define LMEM_ZEROINIT 0x40#define LMEM_MODIFY 0x80#define LMEM_DISCARDABLE 0xf00#define LMEM_VALID_FLAGS 0xf72#define LMEM_INVALID_HANDLE 0x8000 #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)#define LPTR (LMEM_FIXED | LMEM_ZEROINIT) #define NONZEROLHND (LMEM_MOVEABLE)#define NONZEROLPTR (LMEM_FIXED) #define LocalDiscard(h) LocalReAlloc((h),0,LMEM_MOVEABLE) #define LMEM_DISCARDED 0x4000#define LMEM_LOCKCOUNT 0xff #define DEBUG_PROCESS 0x1#define DEBUG_ONLY_THIS_PROCESS 0x2#define CREATE_SUSPENDED 0x4#define DETACHED_PROCESS 0x8#define CREATE_NEW_CONSOLE 0x10#define NORMAL_PRIORITY_CLASS 0x20#define IDLE_PRIORITY_CLASS 0x40#define HIGH_PRIORITY_CLASS 0x80#define REALTIME_PRIORITY_CLASS 0x100#define CREATE_NEW_PROCESS_GROUP 0x200#define CREATE_UNICODE_ENVIRONMENT 0x400#define CREATE_SEPARATE_WOW_VDM 0x800#define CREATE_SHARED_WOW_VDM 0x1000#define CREATE_FORCEDOS 0x2000#define BELOW_NORMAL_PRIORITY_CLASS 0x4000#define ABOVE_NORMAL_PRIORITY_CLASS 0x8000#define STACK_SIZE_PARAM_IS_A_RESERVATION 0x10000 #define CREATE_BREAKAWAY_FROM_JOB 0x1000000#define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x2000000 #define CREATE_DEFAULT_ERROR_MODE 0x4000000#define CREATE_NO_WINDOW 0x8000000 #define PROFILE_USER 0x10000000#define PROFILE_KERNEL 0x20000000#define PROFILE_SERVER 0x40000000 #define CREATE_IGNORE_SYSTEM_DEFAULT 0x80000000 #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN#define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1)#define THREAD_PRIORITY_NORMAL 0#define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX#define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1)#define THREAD_PRIORITY_ERROR_RETURN (MAXLONG) #define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT#define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE #define EXCEPTION_DEBUG_EVENT 1#define CREATE_THREAD_DEBUG_EVENT 2#define CREATE_PROCESS_DEBUG_EVENT 3#define EXIT_THREAD_DEBUG_EVENT 4#define EXIT_PROCESS_DEBUG_EVENT 5#define LOAD_DLL_DEBUG_EVENT 6#define UNLOAD_DLL_DEBUG_EVENT 7#define OUTPUT_DEBUG_STRING_EVENT 8#define RIP_EVENT 9

Lines 1–500 of 2951.