summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/winbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/sdk/inc/winbase.h')
-rw-r--r--public/sdk/inc/winbase.h7745
1 files changed, 7745 insertions, 0 deletions
diff --git a/public/sdk/inc/winbase.h b/public/sdk/inc/winbase.h
new file mode 100644
index 000000000..872d91382
--- /dev/null
+++ b/public/sdk/inc/winbase.h
@@ -0,0 +1,7745 @@
+/************************************************************************
+* *
+* winbase.h -- This module defines the 32-Bit Windows Base APIs *
+* *
+* Copyright (c) 1990-1996, Microsoft Corp. All rights reserved. *
+* *
+************************************************************************/
+#ifndef _WINBASE_
+#define _WINBASE_
+
+
+//
+// Define API decoration for direct importing of DLL references.
+//
+
+#if !defined(_ADVAPI32_)
+#define WINADVAPI DECLSPEC_IMPORT
+#else
+#define WINADVAPI
+#endif
+
+#if !defined(_KERNEL32_)
+#define WINBASEAPI DECLSPEC_IMPORT
+#else
+#define WINBASEAPI
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Compatibility macros
+ */
+
+#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)-1
+#define INVALID_FILE_SIZE (DWORD)0xFFFFFFFF
+
+#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_TIMEOUT STATUS_TIMEOUT
+#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 CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
+#define MoveMemory RtlMoveMemory
+#define CopyMemory RtlCopyMemory
+#define FillMemory RtlFillMemory
+#define ZeroMemory RtlZeroMemory
+
+//
+// File creation flags must start at the high end since they
+// are combined with the attributes
+//
+
+#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 0x08000000
+#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
+#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000
+#define FILE_FLAG_POSIX_SEMANTICS 0x01000000
+
+#define CREATE_NEW 1
+#define CREATE_ALWAYS 2
+#define OPEN_EXISTING 3
+#define OPEN_ALWAYS 4
+#define TRUNCATE_EXISTING 5
+
+#if(_WIN32_WINNT >= 0x0400)
+//
+// Define possible return codes from the CopyFileEx callback routine
+//
+
+#define PROGRESS_CONTINUE 0
+#define PROGRESS_CANCEL 1
+#define PROGRESS_STOP 2
+#define PROGRESS_QUIET 3
+
+//
+// Define CopyFileEx callback routine state change values
+//
+
+#define CALLBACK_CHUNK_FINISHED 0x00000000
+#define CALLBACK_STREAM_SWITCH 0x00000001
+
+//
+// Define CopyFileEx option flags
+//
+
+#define COPY_FILE_FAIL_IF_EXISTS 0x00000001
+#define COPY_FILE_RESTARTABLE 0x00000002
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+//
+// Define the NamedPipe definitions
+//
+
+
+//
+// Define the dwOpenMode values for CreateNamedPipe
+//
+
+#define PIPE_ACCESS_INBOUND 0x00000001
+#define PIPE_ACCESS_OUTBOUND 0x00000002
+#define PIPE_ACCESS_DUPLEX 0x00000003
+
+//
+// Define the Named Pipe End flags for GetNamedPipeInfo
+//
+
+#define PIPE_CLIENT_END 0x00000000
+#define PIPE_SERVER_END 0x00000001
+
+//
+// Define the dwPipeMode values for CreateNamedPipe
+//
+
+#define PIPE_WAIT 0x00000000
+#define PIPE_NOWAIT 0x00000001
+#define PIPE_READMODE_BYTE 0x00000000
+#define PIPE_READMODE_MESSAGE 0x00000002
+#define PIPE_TYPE_BYTE 0x00000000
+#define PIPE_TYPE_MESSAGE 0x00000004
+
+//
+// Define the well known values for CreateNamedPipe nMaxInstances
+//
+
+#define PIPE_UNLIMITED_INSTANCES 255
+
+//
+// Define the Security Quality of Service bits to be passed
+// into CreateFile
+//
+
+#define SECURITY_ANONYMOUS ( SecurityAnonymous << 16 )
+#define SECURITY_IDENTIFICATION ( SecurityIdentification << 16 )
+#define SECURITY_IMPERSONATION ( SecurityImpersonation << 16 )
+#define SECURITY_DELEGATION ( SecurityDelegation << 16 )
+
+#define SECURITY_CONTEXT_TRACKING 0x00040000
+#define SECURITY_EFFECTIVE_ONLY 0x00080000
+
+#define SECURITY_SQOS_PRESENT 0x00100000
+#define SECURITY_VALID_SQOS_FLAGS 0x001F0000
+
+//
+// File structures
+//
+
+typedef struct _OVERLAPPED {
+ DWORD Internal;
+ DWORD InternalHigh;
+ DWORD Offset;
+ DWORD OffsetHigh;
+ HANDLE hEvent;
+} OVERLAPPED, *LPOVERLAPPED;
+
+typedef struct _SECURITY_ATTRIBUTES {
+ DWORD nLength;
+ LPVOID lpSecurityDescriptor;
+ BOOL 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;
+
+//
+// File System time stamps are represented with the following structure:
+//
+
+typedef struct _FILETIME {
+ DWORD dwLowDateTime;
+ DWORD dwHighDateTime;
+} FILETIME, *PFILETIME, *LPFILETIME;
+
+//
+// System time is represented with the following structure:
+//
+
+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;
+
+#if(_WIN32_WINNT >= 0x0400)
+typedef VOID (WINAPI *PFIBER_START_ROUTINE)(
+ LPVOID lpFiberParameter
+ );
+typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+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;
+
+#ifdef _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
+
+//
+// Serial provider type.
+//
+
+#define SP_SERIALCOMM ((DWORD)0x00000001)
+
+//
+// Provider SubTypes
+//
+
+#define PST_UNSPECIFIED ((DWORD)0x00000000)
+#define PST_RS232 ((DWORD)0x00000001)
+#define PST_PARALLELPORT ((DWORD)0x00000002)
+#define PST_RS422 ((DWORD)0x00000003)
+#define PST_RS423 ((DWORD)0x00000004)
+#define PST_RS449 ((DWORD)0x00000005)
+#define PST_MODEM ((DWORD)0x00000006)
+#define PST_FAX ((DWORD)0x00000021)
+#define PST_SCANNER ((DWORD)0x00000022)
+#define PST_NETWORK_BRIDGE ((DWORD)0x00000100)
+#define PST_LAT ((DWORD)0x00000101)
+#define PST_TCPIP_TELNET ((DWORD)0x00000102)
+#define PST_X25 ((DWORD)0x00000103)
+
+
+//
+// Provider capabilities flags.
+//
+
+#define PCF_DTRDSR ((DWORD)0x0001)
+#define PCF_RTSCTS ((DWORD)0x0002)
+#define PCF_RLSD ((DWORD)0x0004)
+#define PCF_PARITY_CHECK ((DWORD)0x0008)
+#define PCF_XONXOFF ((DWORD)0x0010)
+#define PCF_SETXCHAR ((DWORD)0x0020)
+#define PCF_TOTALTIMEOUTS ((DWORD)0x0040)
+#define PCF_INTTIMEOUTS ((DWORD)0x0080)
+#define PCF_SPECIALCHARS ((DWORD)0x0100)
+#define PCF_16BITMODE ((DWORD)0x0200)
+
+//
+// Comm provider settable parameters.
+//
+
+#define SP_PARITY ((DWORD)0x0001)
+#define SP_BAUD ((DWORD)0x0002)
+#define SP_DATABITS ((DWORD)0x0004)
+#define SP_STOPBITS ((DWORD)0x0008)
+#define SP_HANDSHAKING ((DWORD)0x0010)
+#define SP_PARITY_CHECK ((DWORD)0x0020)
+#define SP_RLSD ((DWORD)0x0040)
+
+//
+// Settable baud rates in the provider.
+//
+
+#define BAUD_075 ((DWORD)0x00000001)
+#define BAUD_110 ((DWORD)0x00000002)
+#define BAUD_134_5 ((DWORD)0x00000004)
+#define BAUD_150 ((DWORD)0x00000008)
+#define BAUD_300 ((DWORD)0x00000010)
+#define BAUD_600 ((DWORD)0x00000020)
+#define BAUD_1200 ((DWORD)0x00000040)
+#define BAUD_1800 ((DWORD)0x00000080)
+#define BAUD_2400 ((DWORD)0x00000100)
+#define BAUD_4800 ((DWORD)0x00000200)
+#define BAUD_7200 ((DWORD)0x00000400)
+#define BAUD_9600 ((DWORD)0x00000800)
+#define BAUD_14400 ((DWORD)0x00001000)
+#define BAUD_19200 ((DWORD)0x00002000)
+#define BAUD_38400 ((DWORD)0x00004000)
+#define BAUD_56K ((DWORD)0x00008000)
+#define BAUD_128K ((DWORD)0x00010000)
+#define BAUD_115200 ((DWORD)0x00020000)
+#define BAUD_57600 ((DWORD)0x00040000)
+#define BAUD_USER ((DWORD)0x10000000)
+
+//
+// Settable Data Bits
+//
+
+#define DATABITS_5 ((WORD)0x0001)
+#define DATABITS_6 ((WORD)0x0002)
+#define DATABITS_7 ((WORD)0x0004)
+#define DATABITS_8 ((WORD)0x0008)
+#define DATABITS_16 ((WORD)0x0010)
+#define DATABITS_16X ((WORD)0x0020)
+
+//
+// Settable Stop and Parity bits.
+//
+
+#define STOPBITS_10 ((WORD)0x0001)
+#define STOPBITS_15 ((WORD)0x0002)
+#define STOPBITS_20 ((WORD)0x0004)
+#define PARITY_NONE ((WORD)0x0100)
+#define PARITY_ODD ((WORD)0x0200)
+#define PARITY_EVEN ((WORD)0x0400)
+#define PARITY_MARK ((WORD)0x0800)
+#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;
+
+//
+// Set dwProvSpec1 to COMMPROP_INITIALIZED to indicate that wPacketLength
+// is valid before a call to GetCommProperties().
+//
+#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;
+
+//
+// DTR Control Flow Values.
+//
+#define DTR_CONTROL_DISABLE 0x00
+#define DTR_CONTROL_ENABLE 0x01
+#define DTR_CONTROL_HANDSHAKE 0x02
+
+//
+// RTS Control Flow Values
+//
+#define RTS_CONTROL_DISABLE 0x00
+#define RTS_CONTROL_ENABLE 0x01
+#define RTS_CONTROL_HANDSHAKE 0x02
+#define RTS_CONTROL_TOGGLE 0x03
+
+typedef struct _DCB {
+ DWORD DCBlength; /* sizeof(DCB) */
+ DWORD BaudRate; /* Baudrate at which running */
+ DWORD fBinary: 1; /* Binary Mode (skip EOF check) */
+ DWORD fParity: 1; /* Enable parity checking */
+ DWORD fOutxCtsFlow:1; /* CTS handshaking on output */
+ DWORD fOutxDsrFlow:1; /* DSR handshaking on output */
+ DWORD fDtrControl:2; /* DTR Flow control */
+ DWORD fDsrSensitivity:1; /* DSR Sensitivity */
+ DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */
+ DWORD fOutX: 1; /* Enable output X-ON/X-OFF */
+ DWORD fInX: 1; /* Enable input X-ON/X-OFF */
+ DWORD fErrorChar: 1; /* Enable Err Replacement */
+ DWORD fNull: 1; /* Enable Null stripping */
+ DWORD fRtsControl:2; /* Rts Flow control */
+ DWORD fAbortOnError:1; /* Abort all reads and writes on Error */
+ DWORD fDummy2:17; /* Reserved */
+ WORD wReserved; /* Not currently used */
+ WORD XonLim; /* Transmit X-ON threshold */
+ WORD XoffLim; /* Transmit X-OFF threshold */
+ BYTE ByteSize; /* Number of bits/byte, 4-8 */
+ BYTE Parity; /* 0-4=None,Odd,Even,Mark,Space */
+ BYTE StopBits; /* 0,1,2 = 1, 1.5, 2 */
+ char XonChar; /* Tx and Rx X-ON character */
+ char XoffChar; /* Tx and Rx X-OFF character */
+ char ErrorChar; /* Error replacement char */
+ char EofChar; /* End of Input character */
+ char EvtChar; /* Received Event character */
+ WORD wReserved1; /* Fill for now. */
+} DCB, *LPDCB;
+
+typedef struct _COMMTIMEOUTS {
+ DWORD ReadIntervalTimeout; /* Maximum time between read chars. */
+ DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */
+ DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */
+ DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */
+ DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */
+} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
+
+typedef struct _COMMCONFIG {
+ DWORD dwSize; /* Size of the entire struct */
+ WORD wVersion; /* version of the structure */
+ WORD wReserved; /* alignment */
+ DCB dcb; /* device control block */
+ DWORD dwProviderSubType; /* ordinal value for identifying
+ provider-defined data structure format*/
+ DWORD dwProviderOffset; /* Specifies the offset of provider specific
+ data field in bytes from the start */
+ DWORD dwProviderSize; /* size of the provider-specific data field */
+ WCHAR wcProviderData[1]; /* provider-specific data */
+} COMMCONFIG,*LPCOMMCONFIG;
+
+typedef struct _SYSTEM_INFO {
+ union {
+ DWORD dwOemId; // Obsolete field...do not use
+ struct {
+ WORD wProcessorArchitecture;
+ WORD wReserved;
+ };
+ };
+ DWORD dwPageSize;
+ LPVOID lpMinimumApplicationAddress;
+ LPVOID lpMaximumApplicationAddress;
+ DWORD 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)
+
+/* Global Memory Flags */
+#define GMEM_FIXED 0x0000
+#define GMEM_MOVEABLE 0x0002
+#define GMEM_NOCOMPACT 0x0010
+#define GMEM_NODISCARD 0x0020
+#define GMEM_ZEROINIT 0x0040
+#define GMEM_MODIFY 0x0080
+#define GMEM_DISCARDABLE 0x0100
+#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 )
+
+/* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */
+#define GMEM_DISCARDED 0x4000
+#define GMEM_LOCKCOUNT 0x00FF
+
+typedef struct _MEMORYSTATUS {
+ DWORD dwLength;
+ DWORD dwMemoryLoad;
+ DWORD dwTotalPhys;
+ DWORD dwAvailPhys;
+ DWORD dwTotalPageFile;
+ DWORD dwAvailPageFile;
+ DWORD dwTotalVirtual;
+ DWORD dwAvailVirtual;
+} MEMORYSTATUS, *LPMEMORYSTATUS;
+
+/* Local Memory Flags */
+#define LMEM_FIXED 0x0000
+#define LMEM_MOVEABLE 0x0002
+#define LMEM_NOCOMPACT 0x0010
+#define LMEM_NODISCARD 0x0020
+#define LMEM_ZEROINIT 0x0040
+#define LMEM_MODIFY 0x0080
+#define LMEM_DISCARDABLE 0x0F00
+#define LMEM_VALID_FLAGS 0x0F72
+#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 )
+
+/* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */
+#define LMEM_DISCARDED 0x4000
+#define LMEM_LOCKCOUNT 0x00FF
+
+//
+// dwCreationFlag values
+//
+
+#define DEBUG_PROCESS 0x00000001
+#define DEBUG_ONLY_THIS_PROCESS 0x00000002
+
+#define CREATE_SUSPENDED 0x00000004
+
+#define DETACHED_PROCESS 0x00000008
+
+#define CREATE_NEW_CONSOLE 0x00000010
+
+#define NORMAL_PRIORITY_CLASS 0x00000020
+#define IDLE_PRIORITY_CLASS 0x00000040
+#define HIGH_PRIORITY_CLASS 0x00000080
+#define REALTIME_PRIORITY_CLASS 0x00000100
+
+#define CREATE_NEW_PROCESS_GROUP 0x00000200
+#define CREATE_UNICODE_ENVIRONMENT 0x00000400
+
+#define CREATE_SEPARATE_WOW_VDM 0x00000800
+#define CREATE_SHARED_WOW_VDM 0x00001000
+#define CREATE_FORCEDOS 0x00002000
+
+#define CREATE_DEFAULT_ERROR_MODE 0x04000000
+#define CREATE_NO_WINDOW 0x08000000
+
+#define PROFILE_USER 0x10000000
+#define PROFILE_KERNEL 0x20000000
+#define PROFILE_SERVER 0x40000000
+
+#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
+
+//
+// Debug APIs
+//
+#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
+
+typedef struct _EXCEPTION_DEBUG_INFO {
+ EXCEPTION_RECORD ExceptionRecord;
+ DWORD dwFirstChance;
+} EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
+
+typedef struct _CREATE_THREAD_DEBUG_INFO {
+ HANDLE hThread;
+ LPVOID lpThreadLocalBase;
+ LPTHREAD_START_ROUTINE lpStartAddress;
+} CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
+
+typedef struct _CREATE_PROCESS_DEBUG_INFO {
+ HANDLE hFile;
+ HANDLE hProcess;
+ HANDLE hThread;
+ LPVOID lpBaseOfImage;
+ DWORD dwDebugInfoFileOffset;
+ DWORD nDebugInfoSize;
+ LPVOID lpThreadLocalBase;
+ LPTHREAD_START_ROUTINE lpStartAddress;
+ LPVOID lpImageName;
+ WORD fUnicode;
+} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
+
+typedef struct _EXIT_THREAD_DEBUG_INFO {
+ DWORD dwExitCode;
+} EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
+
+typedef struct _EXIT_PROCESS_DEBUG_INFO {
+ DWORD dwExitCode;
+} EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
+
+typedef struct _LOAD_DLL_DEBUG_INFO {
+ HANDLE hFile;
+ LPVOID lpBaseOfDll;
+ DWORD dwDebugInfoFileOffset;
+ DWORD nDebugInfoSize;
+ LPVOID lpImageName;
+ WORD fUnicode;
+} LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
+
+typedef struct _UNLOAD_DLL_DEBUG_INFO {
+ LPVOID lpBaseOfDll;
+} UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
+
+typedef struct _OUTPUT_DEBUG_STRING_INFO {
+ LPSTR lpDebugStringData;
+ WORD fUnicode;
+ WORD nDebugStringLength;
+} OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
+
+typedef struct _RIP_INFO {
+ DWORD dwError;
+ DWORD dwType;
+} RIP_INFO, *LPRIP_INFO;
+
+
+typedef struct _DEBUG_EVENT {
+ DWORD dwDebugEventCode;
+ DWORD dwProcessId;
+ DWORD dwThreadId;
+ union {
+ EXCEPTION_DEBUG_INFO Exception;
+ CREATE_THREAD_DEBUG_INFO CreateThread;
+ CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
+ EXIT_THREAD_DEBUG_INFO ExitThread;
+ EXIT_PROCESS_DEBUG_INFO ExitProcess;
+ LOAD_DLL_DEBUG_INFO LoadDll;
+ UNLOAD_DLL_DEBUG_INFO UnloadDll;
+ OUTPUT_DEBUG_STRING_INFO DebugString;
+ RIP_INFO RipInfo;
+ } u;
+} DEBUG_EVENT, *LPDEBUG_EVENT;
+
+#if !defined(MIDL_PASS)
+typedef PCONTEXT LPCONTEXT;
+typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
+typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
+#endif
+
+#define DRIVE_UNKNOWN 0
+#define DRIVE_NO_ROOT_DIR 1
+#define DRIVE_REMOVABLE 2
+#define DRIVE_FIXED 3
+#define DRIVE_REMOTE 4
+#define DRIVE_CDROM 5
+#define DRIVE_RAMDISK 6
+
+
+#define GetFreeSpace(w) (0x100000L)
+
+
+#define FILE_TYPE_UNKNOWN 0x0000
+#define FILE_TYPE_DISK 0x0001
+#define FILE_TYPE_CHAR 0x0002
+#define FILE_TYPE_PIPE 0x0003
+#define FILE_TYPE_REMOTE 0x8000
+
+
+#define STD_INPUT_HANDLE (DWORD)-10
+#define STD_OUTPUT_HANDLE (DWORD)-11
+#define STD_ERROR_HANDLE (DWORD)-12
+
+#define NOPARITY 0
+#define ODDPARITY 1
+#define EVENPARITY 2
+#define MARKPARITY 3
+#define SPACEPARITY 4
+
+#define ONESTOPBIT 0
+#define ONE5STOPBITS 1
+#define TWOSTOPBITS 2
+
+#define IGNORE 0 // Ignore signal
+#define INFINITE 0xFFFFFFFF // Infinite timeout
+
+//
+// Baud rates at which the communication device operates
+//
+
+#define CBR_110 110
+#define CBR_300 300
+#define CBR_600 600
+#define CBR_1200 1200
+#define CBR_2400 2400
+#define CBR_4800 4800
+#define CBR_9600 9600
+#define CBR_14400 14400
+#define CBR_19200 19200
+#define CBR_38400 38400
+#define CBR_56000 56000
+#define CBR_57600 57600
+#define CBR_115200 115200
+#define CBR_128000 128000
+#define CBR_256000 256000
+
+//
+// Error Flags
+//
+
+#define CE_RXOVER 0x0001 // Receive Queue overflow
+#define CE_OVERRUN 0x0002 // Receive Overrun Error
+#define CE_RXPARITY 0x0004 // Receive Parity Error
+#define CE_FRAME 0x0008 // Receive Framing error
+#define CE_BREAK 0x0010 // Break Detected
+#define CE_TXFULL 0x0100 // TX Queue is full
+#define CE_PTO 0x0200 // LPTx Timeout
+#define CE_IOE 0x0400 // LPTx I/O Error
+#define CE_DNS 0x0800 // LPTx Device not selected
+#define CE_OOP 0x1000 // LPTx Out-Of-Paper
+#define CE_MODE 0x8000 // Requested mode unsupported
+
+#define IE_BADID (-1) // Invalid or unsupported id
+#define IE_OPEN (-2) // Device Already Open
+#define IE_NOPEN (-3) // Device Not Open
+#define IE_MEMORY (-4) // Unable to allocate queues
+#define IE_DEFAULT (-5) // Error in default parameters
+#define IE_HARDWARE (-10) // Hardware Not Present
+#define IE_BYTESIZE (-11) // Illegal Byte Size
+#define IE_BAUDRATE (-12) // Unsupported BaudRate
+
+//
+// Events
+//
+
+#define EV_RXCHAR 0x0001 // Any Character received
+#define EV_RXFLAG 0x0002 // Received certain character
+#define EV_TXEMPTY 0x0004 // Transmitt Queue Empty
+#define EV_CTS 0x0008 // CTS changed state
+#define EV_DSR 0x0010 // DSR changed state
+#define EV_RLSD 0x0020 // RLSD changed state
+#define EV_BREAK 0x0040 // BREAK received
+#define EV_ERR 0x0080 // Line status error occurred
+#define EV_RING 0x0100 // Ring signal detected
+#define EV_PERR 0x0200 // Printer error occured
+#define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full
+#define EV_EVENT1 0x0800 // Provider specific event 1
+#define EV_EVENT2 0x1000 // Provider specific event 2
+
+//
+// Escape Functions
+//
+
+#define SETXOFF 1 // Simulate XOFF received
+#define SETXON 2 // Simulate XON received
+#define SETRTS 3 // Set RTS high
+#define CLRRTS 4 // Set RTS low
+#define SETDTR 5 // Set DTR high
+#define CLRDTR 6 // Set DTR low
+#define RESETDEV 7 // Reset device if possible
+#define SETBREAK 8 // Set the device break line.
+#define CLRBREAK 9 // Clear the device break line.
+
+//
+// PURGE function flags.
+//
+#define PURGE_TXABORT 0x0001 // Kill the pending/current writes to the comm port.
+#define PURGE_RXABORT 0x0002 // Kill the pending/current reads to the comm port.
+#define PURGE_TXCLEAR 0x0004 // Kill the transmit queue if there.
+#define PURGE_RXCLEAR 0x0008 // Kill the typeahead buffer if there.
+
+#define LPTx 0x80 // Set if ID is for LPT device
+
+//
+// Modem Status Flags
+//
+#define MS_CTS_ON ((DWORD)0x0010)
+#define MS_DSR_ON ((DWORD)0x0020)
+#define MS_RING_ON ((DWORD)0x0040)
+#define MS_RLSD_ON ((DWORD)0x0080)
+
+//
+// WaitSoundState() Constants
+//
+
+#define S_QUEUEEMPTY 0
+#define S_THRESHOLD 1
+#define S_ALLTHRESHOLD 2
+
+//
+// Accent Modes
+//
+
+#define S_NORMAL 0
+#define S_LEGATO 1
+#define S_STACCATO 2
+
+//
+// SetSoundNoise() Sources
+//
+
+#define S_PERIOD512 0 // Freq = N/512 high pitch, less coarse hiss
+#define S_PERIOD1024 1 // Freq = N/1024
+#define S_PERIOD2048 2 // Freq = N/2048 low pitch, more coarse hiss
+#define S_PERIODVOICE 3 // Source is frequency from voice channel (3)
+#define S_WHITE512 4 // Freq = N/512 high pitch, less coarse hiss
+#define S_WHITE1024 5 // Freq = N/1024
+#define S_WHITE2048 6 // Freq = N/2048 low pitch, more coarse hiss
+#define S_WHITEVOICE 7 // Source is frequency from voice channel (3)
+
+#define S_SERDVNA (-1) // Device not available
+#define S_SEROFM (-2) // Out of memory
+#define S_SERMACT (-3) // Music active
+#define S_SERQFUL (-4) // Queue full
+#define S_SERBDNT (-5) // Invalid note
+#define S_SERDLN (-6) // Invalid note length
+#define S_SERDCC (-7) // Invalid note count
+#define S_SERDTP (-8) // Invalid tempo
+#define S_SERDVL (-9) // Invalid volume
+#define S_SERDMD (-10) // Invalid mode
+#define S_SERDSH (-11) // Invalid shape
+#define S_SERDPT (-12) // Invalid pitch
+#define S_SERDFQ (-13) // Invalid frequency
+#define S_SERDDR (-14) // Invalid duration
+#define S_SERDSR (-15) // Invalid source
+#define S_SERDST (-16) // Invalid state
+
+#define NMPWAIT_WAIT_FOREVER 0xffffffff
+#define NMPWAIT_NOWAIT 0x00000001
+#define NMPWAIT_USE_DEFAULT_WAIT 0x00000000
+
+#define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
+#define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
+#define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
+#define FS_PERSISTENT_ACLS FILE_PERSISTENT_ACLS
+#define FS_VOL_IS_COMPRESSED FILE_VOLUME_IS_COMPRESSED
+#define FS_FILE_COMPRESSION FILE_FILE_COMPRESSION
+
+
+
+
+
+
+#define FILE_MAP_COPY SECTION_QUERY
+#define FILE_MAP_WRITE SECTION_MAP_WRITE
+#define FILE_MAP_READ SECTION_MAP_READ
+#define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
+
+#define OF_READ 0x00000000
+#define OF_WRITE 0x00000001
+#define OF_READWRITE 0x00000002
+#define OF_SHARE_COMPAT 0x00000000
+#define OF_SHARE_EXCLUSIVE 0x00000010
+#define OF_SHARE_DENY_WRITE 0x00000020
+#define OF_SHARE_DENY_READ 0x00000030
+#define OF_SHARE_DENY_NONE 0x00000040
+#define OF_PARSE 0x00000100
+#define OF_DELETE 0x00000200
+#define OF_VERIFY 0x00000400
+#define OF_CANCEL 0x00000800
+#define OF_CREATE 0x00001000
+#define OF_PROMPT 0x00002000
+#define OF_EXIST 0x00004000
+#define OF_REOPEN 0x00008000
+
+#define OFS_MAXPATHNAME 128
+typedef struct _OFSTRUCT {
+ BYTE cBytes;
+ BYTE fFixedDisk;
+ WORD nErrCode;
+ WORD Reserved1;
+ WORD Reserved2;
+ CHAR szPathName[OFS_MAXPATHNAME];
+} OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT;
+
+//
+// The MS-MIPS and Alpha compilers support intrinsic functions for interlocked
+// increment, decrement, and exchange.
+//
+
+#if (defined(_M_MRX000) || defined(_M_ALPHA) || (defined(_M_PPC) && (_MSC_VER >= 1000))) && !defined(RC_INVOKED)
+
+#define InterlockedIncrement _InterlockedIncrement
+#define InterlockedDecrement _InterlockedDecrement
+#define InterlockedExchange _InterlockedExchange
+#define InterlockedExchangeAdd _InterlockedExchangeAdd
+#define InterlockedCompareExchange _InterlockedCompareExchange
+
+LONG
+WINAPI
+InterlockedIncrement(
+ LPLONG lpAddend
+ );
+
+LONG
+WINAPI
+InterlockedDecrement(
+ LPLONG lpAddend
+ );
+
+LONG
+WINAPI
+InterlockedExchange(
+ LPLONG Target,
+ LONG Value
+ );
+
+PVOID
+WINAPI
+InterlockedCompareExchange (
+ PVOID *Destination,
+ PVOID Exchange,
+ PVOID Comperand
+ );
+
+LONG
+WINAPI
+InterlockedExchangeAdd(
+ LPLONG Addend,
+ LONG Value
+ );
+
+#pragma intrinsic(_InterlockedIncrement)
+#pragma intrinsic(_InterlockedDecrement)
+#pragma intrinsic(_InterlockedExchange)
+#pragma intrinsic(_InterlockedCompareExchange)
+#pragma intrinsic(_InterlockedExchangeAdd)
+
+#else
+
+#ifndef _NTOS_
+
+WINBASEAPI
+LONG
+WINAPI
+InterlockedIncrement(
+ LPLONG lpAddend
+ );
+
+WINBASEAPI
+LONG
+WINAPI
+InterlockedDecrement(
+ LPLONG lpAddend
+ );
+
+WINBASEAPI
+LONG
+WINAPI
+InterlockedExchange(
+ LPLONG Target,
+ LONG Value
+ );
+
+WINBASEAPI
+LONG
+WINAPI
+InterlockedExchangeAdd(
+ LPLONG Addend,
+ LONG Value
+ );
+
+WINBASEAPI
+PVOID
+WINAPI
+InterlockedCompareExchange (
+ PVOID *Destination,
+ PVOID Exchange,
+ PVOID Comperand
+ );
+
+#endif /* NT_INCLUDED */
+
+#endif
+
+WINBASEAPI
+BOOL
+WINAPI
+FreeResource(
+ HGLOBAL hResData
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+LockResource(
+ HGLOBAL hResData
+ );
+
+#define UnlockResource(hResData) ((hResData), 0)
+#define MAXINTATOM 0xC000
+#define MAKEINTATOM(i) (LPTSTR)((DWORD)((WORD)(i)))
+#define INVALID_ATOM ((ATOM)0)
+
+int
+WINAPI
+WinMain(
+ HINSTANCE hInstance,
+ HINSTANCE hPrevInstance,
+ LPSTR lpCmdLine,
+ int nShowCmd
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FreeLibrary(
+ HMODULE hLibModule
+ );
+
+
+WINBASEAPI
+VOID
+WINAPI
+FreeLibraryAndExitThread(
+ HMODULE hLibModule,
+ DWORD dwExitCode
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+DisableThreadLibraryCalls(
+ HMODULE hLibModule
+ );
+
+WINBASEAPI
+FARPROC
+WINAPI
+GetProcAddress(
+ HMODULE hModule,
+ LPCSTR lpProcName
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetVersion( VOID );
+
+WINBASEAPI
+HGLOBAL
+WINAPI
+GlobalAlloc(
+ UINT uFlags,
+ DWORD dwBytes
+ );
+
+WINBASEAPI
+HGLOBAL
+WINAPI
+GlobalReAlloc(
+ HGLOBAL hMem,
+ DWORD dwBytes,
+ UINT uFlags
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GlobalSize(
+ HGLOBAL hMem
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+GlobalFlags(
+ HGLOBAL hMem
+ );
+
+
+WINBASEAPI
+LPVOID
+WINAPI
+GlobalLock(
+ HGLOBAL hMem
+ );
+
+//!!!MWH My version win31 = DWORD WINAPI GlobalHandle(UINT)
+WINBASEAPI
+HGLOBAL
+WINAPI
+GlobalHandle(
+ LPCVOID pMem
+ );
+
+
+WINBASEAPI
+BOOL
+WINAPI
+GlobalUnlock(
+ HGLOBAL hMem
+ );
+
+
+WINBASEAPI
+HGLOBAL
+WINAPI
+GlobalFree(
+ HGLOBAL hMem
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+GlobalCompact(
+ DWORD dwMinFree
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+GlobalFix(
+ HGLOBAL hMem
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+GlobalUnfix(
+ HGLOBAL hMem
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+GlobalWire(
+ HGLOBAL hMem
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GlobalUnWire(
+ HGLOBAL hMem
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+GlobalMemoryStatus(
+ LPMEMORYSTATUS lpBuffer
+ );
+
+WINBASEAPI
+HLOCAL
+WINAPI
+LocalAlloc(
+ UINT uFlags,
+ UINT uBytes
+ );
+
+WINBASEAPI
+HLOCAL
+WINAPI
+LocalReAlloc(
+ HLOCAL hMem,
+ UINT uBytes,
+ UINT uFlags
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+LocalLock(
+ HLOCAL hMem
+ );
+
+WINBASEAPI
+HLOCAL
+WINAPI
+LocalHandle(
+ LPCVOID pMem
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+LocalUnlock(
+ HLOCAL hMem
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+LocalSize(
+ HLOCAL hMem
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+LocalFlags(
+ HLOCAL hMem
+ );
+
+WINBASEAPI
+HLOCAL
+WINAPI
+LocalFree(
+ HLOCAL hMem
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+LocalShrink(
+ HLOCAL hMem,
+ UINT cbNewSize
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+LocalCompact(
+ UINT uMinFree
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FlushInstructionCache(
+ HANDLE hProcess,
+ LPCVOID lpBaseAddress,
+ DWORD dwSize
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+VirtualAlloc(
+ LPVOID lpAddress,
+ DWORD dwSize,
+ DWORD flAllocationType,
+ DWORD flProtect
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+VirtualFree(
+ LPVOID lpAddress,
+ DWORD dwSize,
+ DWORD dwFreeType
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+VirtualProtect(
+ LPVOID lpAddress,
+ DWORD dwSize,
+ DWORD flNewProtect,
+ PDWORD lpflOldProtect
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+VirtualQuery(
+ LPCVOID lpAddress,
+ PMEMORY_BASIC_INFORMATION lpBuffer,
+ DWORD dwLength
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+VirtualAllocEx(
+ HANDLE hProcess,
+ LPVOID lpAddress,
+ DWORD dwSize,
+ DWORD flAllocationType,
+ DWORD flProtect
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+VirtualFreeEx(
+ HANDLE hProcess,
+ LPVOID lpAddress,
+ DWORD dwSize,
+ DWORD dwFreeType
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+VirtualProtectEx(
+ HANDLE hProcess,
+ LPVOID lpAddress,
+ DWORD dwSize,
+ DWORD flNewProtect,
+ PDWORD lpflOldProtect
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+VirtualQueryEx(
+ HANDLE hProcess,
+ LPCVOID lpAddress,
+ PMEMORY_BASIC_INFORMATION lpBuffer,
+ DWORD dwLength
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+HeapCreate(
+ DWORD flOptions,
+ DWORD dwInitialSize,
+ DWORD dwMaximumSize
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+HeapDestroy(
+ HANDLE hHeap
+ );
+
+
+WINBASEAPI
+LPVOID
+WINAPI
+HeapAlloc(
+ HANDLE hHeap,
+ DWORD dwFlags,
+ DWORD dwBytes
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+HeapReAlloc(
+ HANDLE hHeap,
+ DWORD dwFlags,
+ LPVOID lpMem,
+ DWORD dwBytes
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+HeapFree(
+ HANDLE hHeap,
+ DWORD dwFlags,
+ LPVOID lpMem
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+HeapSize(
+ HANDLE hHeap,
+ DWORD dwFlags,
+ LPCVOID lpMem
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+HeapValidate(
+ HANDLE hHeap,
+ DWORD dwFlags,
+ LPCVOID lpMem
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+HeapCompact(
+ HANDLE hHeap,
+ DWORD dwFlags
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+GetProcessHeap( VOID );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetProcessHeaps(
+ DWORD NumberOfHeaps,
+ PHANDLE ProcessHeaps
+ );
+
+typedef struct _PROCESS_HEAP_ENTRY {
+ PVOID lpData;
+ DWORD cbData;
+ BYTE cbOverhead;
+ BYTE iRegionIndex;
+ WORD wFlags;
+ union {
+ struct {
+ HANDLE hMem;
+ DWORD dwReserved[ 3 ];
+ } Block;
+ struct {
+ DWORD dwCommittedSize;
+ DWORD dwUnCommittedSize;
+ LPVOID lpFirstBlock;
+ LPVOID lpLastBlock;
+ } Region;
+ };
+} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY;
+
+#define PROCESS_HEAP_REGION 0x0001
+#define PROCESS_HEAP_UNCOMMITTED_RANGE 0x0002
+#define PROCESS_HEAP_ENTRY_BUSY 0x0004
+#define PROCESS_HEAP_ENTRY_MOVEABLE 0x0010
+#define PROCESS_HEAP_ENTRY_DDESHARE 0x0020
+
+WINBASEAPI
+BOOL
+WINAPI
+HeapLock(
+ HANDLE hHeap
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+HeapUnlock(
+ HANDLE hHeap
+ );
+
+
+WINBASEAPI
+BOOL
+WINAPI
+HeapWalk(
+ HANDLE hHeap,
+ LPPROCESS_HEAP_ENTRY lpEntry
+ );
+
+// GetBinaryType return values.
+
+#define SCS_32BIT_BINARY 0
+#define SCS_DOS_BINARY 1
+#define SCS_WOW_BINARY 2
+#define SCS_PIF_BINARY 3
+#define SCS_POSIX_BINARY 4
+#define SCS_OS216_BINARY 5
+
+WINBASEAPI
+BOOL
+WINAPI
+GetBinaryTypeA(
+ LPCSTR lpApplicationName,
+ LPDWORD lpBinaryType
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetBinaryTypeW(
+ LPCWSTR lpApplicationName,
+ LPDWORD lpBinaryType
+ );
+#ifdef UNICODE
+#define GetBinaryType GetBinaryTypeW
+#else
+#define GetBinaryType GetBinaryTypeA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetShortPathNameA(
+ LPCSTR lpszLongPath,
+ LPSTR lpszShortPath,
+ DWORD cchBuffer
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetShortPathNameW(
+ LPCWSTR lpszLongPath,
+ LPWSTR lpszShortPath,
+ DWORD cchBuffer
+ );
+#ifdef UNICODE
+#define GetShortPathName GetShortPathNameW
+#else
+#define GetShortPathName GetShortPathNameA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+GetProcessAffinityMask(
+ HANDLE hProcess,
+ LPDWORD lpProcessAffinityMask,
+ LPDWORD lpSystemAffinityMask
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetProcessAffinityMask(
+ HANDLE hProcess,
+ DWORD dwProcessAffinityMask
+ );
+
+
+WINBASEAPI
+BOOL
+WINAPI
+GetProcessTimes(
+ HANDLE hProcess,
+ LPFILETIME lpCreationTime,
+ LPFILETIME lpExitTime,
+ LPFILETIME lpKernelTime,
+ LPFILETIME lpUserTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetProcessWorkingSetSize(
+ HANDLE hProcess,
+ LPDWORD lpMinimumWorkingSetSize,
+ LPDWORD lpMaximumWorkingSetSize
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetProcessWorkingSetSize(
+ HANDLE hProcess,
+ DWORD dwMinimumWorkingSetSize,
+ DWORD dwMaximumWorkingSetSize
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+OpenProcess(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ DWORD dwProcessId
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+GetCurrentProcess(
+ VOID
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetCurrentProcessId(
+ VOID
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+ExitProcess(
+ UINT uExitCode
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+TerminateProcess(
+ HANDLE hProcess,
+ UINT uExitCode
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetExitCodeProcess(
+ HANDLE hProcess,
+ LPDWORD lpExitCode
+ );
+
+
+WINBASEAPI
+VOID
+WINAPI
+FatalExit(
+ int ExitCode
+ );
+
+WINBASEAPI
+LPSTR
+WINAPI
+GetEnvironmentStrings(
+ VOID
+ );
+
+WINBASEAPI
+LPWSTR
+WINAPI
+GetEnvironmentStringsW(
+ VOID
+ );
+
+#ifdef UNICODE
+#define GetEnvironmentStrings GetEnvironmentStringsW
+#else
+#define GetEnvironmentStringsA GetEnvironmentStrings
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+FreeEnvironmentStringsA(
+ LPSTR
+ );
+WINBASEAPI
+BOOL
+WINAPI
+FreeEnvironmentStringsW(
+ LPWSTR
+ );
+#ifdef UNICODE
+#define FreeEnvironmentStrings FreeEnvironmentStringsW
+#else
+#define FreeEnvironmentStrings FreeEnvironmentStringsA
+#endif // !UNICODE
+
+WINBASEAPI
+VOID
+WINAPI
+RaiseException(
+ DWORD dwExceptionCode,
+ DWORD dwExceptionFlags,
+ DWORD nNumberOfArguments,
+ CONST DWORD *lpArguments
+ );
+
+WINBASEAPI
+LONG
+WINAPI
+UnhandledExceptionFilter(
+ struct _EXCEPTION_POINTERS *ExceptionInfo
+ );
+
+typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(
+ struct _EXCEPTION_POINTERS *ExceptionInfo
+ );
+typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
+
+WINBASEAPI
+LPTOP_LEVEL_EXCEPTION_FILTER
+WINAPI
+SetUnhandledExceptionFilter(
+ LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
+ );
+
+#if(_WIN32_WINNT >= 0x0400)
+WINBASEAPI
+LPVOID
+WINAPI
+CreateFiber(
+ DWORD dwStackSize,
+ LPFIBER_START_ROUTINE lpStartAddress,
+ LPVOID lpParameter
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+DeleteFiber(
+ LPVOID lpFiber
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+ConvertThreadToFiber(
+ LPVOID lpParameter
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+SwitchToFiber(
+ LPVOID lpFiber
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SwitchToThread(
+ VOID
+ );
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateThread(
+ LPSECURITY_ATTRIBUTES lpThreadAttributes,
+ DWORD dwStackSize,
+ LPTHREAD_START_ROUTINE lpStartAddress,
+ LPVOID lpParameter,
+ DWORD dwCreationFlags,
+ LPDWORD lpThreadId
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateRemoteThread(
+ HANDLE hProcess,
+ LPSECURITY_ATTRIBUTES lpThreadAttributes,
+ DWORD dwStackSize,
+ LPTHREAD_START_ROUTINE lpStartAddress,
+ LPVOID lpParameter,
+ DWORD dwCreationFlags,
+ LPDWORD lpThreadId
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+GetCurrentThread(
+ VOID
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetCurrentThreadId(
+ VOID
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+SetThreadAffinityMask(
+ HANDLE hThread,
+ DWORD dwThreadAffinityMask
+ );
+
+#if(_WIN32_WINNT >= 0x0400)
+WINBASEAPI
+DWORD
+WINAPI
+SetThreadIdealProcessor(
+ HANDLE hThread,
+ DWORD dwIdealProcessor
+ );
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+BOOL
+WINAPI
+SetProcessPriorityBoost(
+ HANDLE hProcess,
+ BOOL bDisablePriorityBoost
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetProcessPriorityBoost(
+ HANDLE hProcess,
+ PBOOL pDisablePriorityBoost
+ );
+
+
+WINBASEAPI
+BOOL
+WINAPI
+SetThreadPriority(
+ HANDLE hThread,
+ int nPriority
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetThreadPriorityBoost(
+ HANDLE hThread,
+ BOOL bDisablePriorityBoost
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetThreadPriorityBoost(
+ HANDLE hThread,
+ PBOOL pDisablePriorityBoost
+ );
+
+WINBASEAPI
+int
+WINAPI
+GetThreadPriority(
+ HANDLE hThread
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetThreadTimes(
+ HANDLE hThread,
+ LPFILETIME lpCreationTime,
+ LPFILETIME lpExitTime,
+ LPFILETIME lpKernelTime,
+ LPFILETIME lpUserTime
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+ExitThread(
+ DWORD dwExitCode
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+TerminateThread(
+ HANDLE hThread,
+ DWORD dwExitCode
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetExitCodeThread(
+ HANDLE hThread,
+ LPDWORD lpExitCode
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetThreadSelectorEntry(
+ HANDLE hThread,
+ DWORD dwSelector,
+ LPLDT_ENTRY lpSelectorEntry
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetLastError(
+ VOID
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+SetLastError(
+ DWORD dwErrCode
+ );
+
+#define HasOverlappedIoCompleted(lpOverlapped) ((lpOverlapped)->Internal != STATUS_PENDING)
+
+WINBASEAPI
+BOOL
+WINAPI
+GetOverlappedResult(
+ HANDLE hFile,
+ LPOVERLAPPED lpOverlapped,
+ LPDWORD lpNumberOfBytesTransferred,
+ BOOL bWait
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateIoCompletionPort(
+ HANDLE FileHandle,
+ HANDLE ExistingCompletionPort,
+ DWORD CompletionKey,
+ DWORD NumberOfConcurrentThreads
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetQueuedCompletionStatus(
+ HANDLE CompletionPort,
+ LPDWORD lpNumberOfBytesTransferred,
+ LPDWORD lpCompletionKey,
+ LPOVERLAPPED *lpOverlapped,
+ DWORD dwMilliseconds
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+PostQueuedCompletionStatus(
+ HANDLE CompletionPort,
+ DWORD dwNumberOfBytesTransferred,
+ DWORD dwCompletionKey,
+ LPOVERLAPPED lpOverlapped
+ );
+
+#define SEM_FAILCRITICALERRORS 0x0001
+#define SEM_NOGPFAULTERRORBOX 0x0002
+#define SEM_NOALIGNMENTFAULTEXCEPT 0x0004
+#define SEM_NOOPENFILEERRORBOX 0x8000
+
+WINBASEAPI
+UINT
+WINAPI
+SetErrorMode(
+ UINT uMode
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ReadProcessMemory(
+ HANDLE hProcess,
+ LPCVOID lpBaseAddress,
+ LPVOID lpBuffer,
+ DWORD nSize,
+ LPDWORD lpNumberOfBytesRead
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+WriteProcessMemory(
+ HANDLE hProcess,
+ LPVOID lpBaseAddress,
+ LPVOID lpBuffer,
+ DWORD nSize,
+ LPDWORD lpNumberOfBytesWritten
+ );
+
+#if !defined(MIDL_PASS)
+WINBASEAPI
+BOOL
+WINAPI
+GetThreadContext(
+ HANDLE hThread,
+ LPCONTEXT lpContext
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetThreadContext(
+ HANDLE hThread,
+ CONST CONTEXT *lpContext
+ );
+#endif
+
+WINBASEAPI
+DWORD
+WINAPI
+SuspendThread(
+ HANDLE hThread
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+ResumeThread(
+ HANDLE hThread
+ );
+
+
+#if(_WIN32_WINNT >= 0x0400)
+typedef
+VOID
+(APIENTRY *PAPCFUNC)(
+ DWORD dwParam
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+QueueUserAPC(
+ PAPCFUNC pfnAPC,
+ HANDLE hThread,
+ DWORD dwData
+ );
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+VOID
+WINAPI
+DebugBreak(
+ VOID
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+WaitForDebugEvent(
+ LPDEBUG_EVENT lpDebugEvent,
+ DWORD dwMilliseconds
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ContinueDebugEvent(
+ DWORD dwProcessId,
+ DWORD dwThreadId,
+ DWORD dwContinueStatus
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+DebugActiveProcess(
+ DWORD dwProcessId
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+InitializeCriticalSection(
+ LPCRITICAL_SECTION lpCriticalSection
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+EnterCriticalSection(
+ LPCRITICAL_SECTION lpCriticalSection
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+LeaveCriticalSection(
+ LPCRITICAL_SECTION lpCriticalSection
+ );
+
+#if(_WIN32_WINNT >= 0x0400)
+WINBASEAPI
+BOOL
+WINAPI
+TryEnterCriticalSection(
+ LPCRITICAL_SECTION lpCriticalSection
+ );
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+VOID
+WINAPI
+DeleteCriticalSection(
+ LPCRITICAL_SECTION lpCriticalSection
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetEvent(
+ HANDLE hEvent
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ResetEvent(
+ HANDLE hEvent
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+PulseEvent(
+ HANDLE hEvent
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ReleaseSemaphore(
+ HANDLE hSemaphore,
+ LONG lReleaseCount,
+ LPLONG lpPreviousCount
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ReleaseMutex(
+ HANDLE hMutex
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+WaitForSingleObject(
+ HANDLE hHandle,
+ DWORD dwMilliseconds
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+WaitForMultipleObjects(
+ DWORD nCount,
+ CONST HANDLE *lpHandles,
+ BOOL bWaitAll,
+ DWORD dwMilliseconds
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+Sleep(
+ DWORD dwMilliseconds
+ );
+
+WINBASEAPI
+HGLOBAL
+WINAPI
+LoadResource(
+ HMODULE hModule,
+ HRSRC hResInfo
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+SizeofResource(
+ HMODULE hModule,
+ HRSRC hResInfo
+ );
+
+
+WINBASEAPI
+ATOM
+WINAPI
+GlobalDeleteAtom(
+ ATOM nAtom
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+InitAtomTable(
+ DWORD nSize
+ );
+
+WINBASEAPI
+ATOM
+WINAPI
+DeleteAtom(
+ ATOM nAtom
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+SetHandleCount(
+ UINT uNumber
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetLogicalDrives(
+ VOID
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+LockFile(
+ HANDLE hFile,
+ DWORD dwFileOffsetLow,
+ DWORD dwFileOffsetHigh,
+ DWORD nNumberOfBytesToLockLow,
+ DWORD nNumberOfBytesToLockHigh
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+UnlockFile(
+ HANDLE hFile,
+ DWORD dwFileOffsetLow,
+ DWORD dwFileOffsetHigh,
+ DWORD nNumberOfBytesToUnlockLow,
+ DWORD nNumberOfBytesToUnlockHigh
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+LockFileEx(
+ HANDLE hFile,
+ DWORD dwFlags,
+ DWORD dwReserved,
+ DWORD nNumberOfBytesToLockLow,
+ DWORD nNumberOfBytesToLockHigh,
+ LPOVERLAPPED lpOverlapped
+ );
+
+#define LOCKFILE_FAIL_IMMEDIATELY 0x00000001
+#define LOCKFILE_EXCLUSIVE_LOCK 0x00000002
+
+WINBASEAPI
+BOOL
+WINAPI
+UnlockFileEx(
+ HANDLE hFile,
+ DWORD dwReserved,
+ DWORD nNumberOfBytesToUnlockLow,
+ DWORD nNumberOfBytesToUnlockHigh,
+ LPOVERLAPPED lpOverlapped
+ );
+
+typedef struct _BY_HANDLE_FILE_INFORMATION {
+ DWORD dwFileAttributes;
+ FILETIME ftCreationTime;
+ FILETIME ftLastAccessTime;
+ FILETIME ftLastWriteTime;
+ DWORD dwVolumeSerialNumber;
+ DWORD nFileSizeHigh;
+ DWORD nFileSizeLow;
+ DWORD nNumberOfLinks;
+ DWORD nFileIndexHigh;
+ DWORD nFileIndexLow;
+} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
+
+WINBASEAPI
+BOOL
+WINAPI
+GetFileInformationByHandle(
+ HANDLE hFile,
+ LPBY_HANDLE_FILE_INFORMATION lpFileInformation
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetFileType(
+ HANDLE hFile
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetFileSize(
+ HANDLE hFile,
+ LPDWORD lpFileSizeHigh
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+GetStdHandle(
+ DWORD nStdHandle
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetStdHandle(
+ DWORD nStdHandle,
+ HANDLE hHandle
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+WriteFile(
+ HANDLE hFile,
+ LPCVOID lpBuffer,
+ DWORD nNumberOfBytesToWrite,
+ LPDWORD lpNumberOfBytesWritten,
+ LPOVERLAPPED lpOverlapped
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ReadFile(
+ HANDLE hFile,
+ LPVOID lpBuffer,
+ DWORD nNumberOfBytesToRead,
+ LPDWORD lpNumberOfBytesRead,
+ LPOVERLAPPED lpOverlapped
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FlushFileBuffers(
+ HANDLE hFile
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+DeviceIoControl(
+ HANDLE hDevice,
+ DWORD dwIoControlCode,
+ LPVOID lpInBuffer,
+ DWORD nInBufferSize,
+ LPVOID lpOutBuffer,
+ DWORD nOutBufferSize,
+ LPDWORD lpBytesReturned,
+ LPOVERLAPPED lpOverlapped
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetEndOfFile(
+ HANDLE hFile
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+SetFilePointer(
+ HANDLE hFile,
+ LONG lDistanceToMove,
+ PLONG lpDistanceToMoveHigh,
+ DWORD dwMoveMethod
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FindClose(
+ HANDLE hFindFile
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetFileTime(
+ HANDLE hFile,
+ LPFILETIME lpCreationTime,
+ LPFILETIME lpLastAccessTime,
+ LPFILETIME lpLastWriteTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetFileTime(
+ HANDLE hFile,
+ CONST FILETIME *lpCreationTime,
+ CONST FILETIME *lpLastAccessTime,
+ CONST FILETIME *lpLastWriteTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+CloseHandle(
+ HANDLE hObject
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+DuplicateHandle(
+ HANDLE hSourceProcessHandle,
+ HANDLE hSourceHandle,
+ HANDLE hTargetProcessHandle,
+ LPHANDLE lpTargetHandle,
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ DWORD dwOptions
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetHandleInformation(
+ HANDLE hObject,
+ LPDWORD lpdwFlags
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetHandleInformation(
+ HANDLE hObject,
+ DWORD dwMask,
+ DWORD dwFlags
+ );
+
+#define HANDLE_FLAG_INHERIT 0x00000001
+#define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x00000002
+
+#define HINSTANCE_ERROR 32
+
+WINBASEAPI
+DWORD
+WINAPI
+LoadModule(
+ LPCSTR lpModuleName,
+ LPVOID lpParameterBlock
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+WinExec(
+ LPCSTR lpCmdLine,
+ UINT uCmdShow
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ClearCommBreak(
+ HANDLE hFile
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ClearCommError(
+ HANDLE hFile,
+ LPDWORD lpErrors,
+ LPCOMSTAT lpStat
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetupComm(
+ HANDLE hFile,
+ DWORD dwInQueue,
+ DWORD dwOutQueue
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+EscapeCommFunction(
+ HANDLE hFile,
+ DWORD dwFunc
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetCommConfig(
+ HANDLE hCommDev,
+ LPCOMMCONFIG lpCC,
+ LPDWORD lpdwSize
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetCommMask(
+ HANDLE hFile,
+ LPDWORD lpEvtMask
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetCommProperties(
+ HANDLE hFile,
+ LPCOMMPROP lpCommProp
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetCommModemStatus(
+ HANDLE hFile,
+ LPDWORD lpModemStat
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetCommState(
+ HANDLE hFile,
+ LPDCB lpDCB
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetCommTimeouts(
+ HANDLE hFile,
+ LPCOMMTIMEOUTS lpCommTimeouts
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+PurgeComm(
+ HANDLE hFile,
+ DWORD dwFlags
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetCommBreak(
+ HANDLE hFile
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetCommConfig(
+ HANDLE hCommDev,
+ LPCOMMCONFIG lpCC,
+ DWORD dwSize
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetCommMask(
+ HANDLE hFile,
+ DWORD dwEvtMask
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetCommState(
+ HANDLE hFile,
+ LPDCB lpDCB
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetCommTimeouts(
+ HANDLE hFile,
+ LPCOMMTIMEOUTS lpCommTimeouts
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+TransmitCommChar(
+ HANDLE hFile,
+ char cChar
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+WaitCommEvent(
+ HANDLE hFile,
+ LPDWORD lpEvtMask,
+ LPOVERLAPPED lpOverlapped
+ );
+
+
+WINBASEAPI
+DWORD
+WINAPI
+SetTapePosition(
+ HANDLE hDevice,
+ DWORD dwPositionMethod,
+ DWORD dwPartition,
+ DWORD dwOffsetLow,
+ DWORD dwOffsetHigh,
+ BOOL bImmediate
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetTapePosition(
+ HANDLE hDevice,
+ DWORD dwPositionType,
+ LPDWORD lpdwPartition,
+ LPDWORD lpdwOffsetLow,
+ LPDWORD lpdwOffsetHigh
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+PrepareTape(
+ HANDLE hDevice,
+ DWORD dwOperation,
+ BOOL bImmediate
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+EraseTape(
+ HANDLE hDevice,
+ DWORD dwEraseType,
+ BOOL bImmediate
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+CreateTapePartition(
+ HANDLE hDevice,
+ DWORD dwPartitionMethod,
+ DWORD dwCount,
+ DWORD dwSize
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+WriteTapemark(
+ HANDLE hDevice,
+ DWORD dwTapemarkType,
+ DWORD dwTapemarkCount,
+ BOOL bImmediate
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetTapeStatus(
+ HANDLE hDevice
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetTapeParameters(
+ HANDLE hDevice,
+ DWORD dwOperation,
+ LPDWORD lpdwSize,
+ LPVOID lpTapeInformation
+ );
+
+#define GET_TAPE_MEDIA_INFORMATION 0
+#define GET_TAPE_DRIVE_INFORMATION 1
+
+WINBASEAPI
+DWORD
+WINAPI
+SetTapeParameters(
+ HANDLE hDevice,
+ DWORD dwOperation,
+ LPVOID lpTapeInformation
+ );
+
+#define SET_TAPE_MEDIA_INFORMATION 0
+#define SET_TAPE_DRIVE_INFORMATION 1
+
+WINBASEAPI
+BOOL
+WINAPI
+Beep(
+ DWORD dwFreq,
+ DWORD dwDuration
+ );
+
+WINBASEAPI
+int
+WINAPI
+MulDiv(
+ int nNumber,
+ int nNumerator,
+ int nDenominator
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+GetSystemTime(
+ LPSYSTEMTIME lpSystemTime
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+GetSystemTimeAsFileTime(
+ LPFILETIME lpSystemTimeAsFileTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetSystemTime(
+ CONST SYSTEMTIME *lpSystemTime
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+GetLocalTime(
+ LPSYSTEMTIME lpSystemTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetLocalTime(
+ CONST SYSTEMTIME *lpSystemTime
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+GetSystemInfo(
+ LPSYSTEM_INFO lpSystemInfo
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+IsProcessorFeaturePresent(
+ DWORD ProcessorFeature
+ );
+
+typedef struct _TIME_ZONE_INFORMATION {
+ LONG Bias;
+ WCHAR StandardName[ 32 ];
+ SYSTEMTIME StandardDate;
+ LONG StandardBias;
+ WCHAR DaylightName[ 32 ];
+ SYSTEMTIME DaylightDate;
+ LONG DaylightBias;
+} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
+
+WINBASEAPI
+BOOL
+WINAPI
+SystemTimeToTzSpecificLocalTime(
+ LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
+ LPSYSTEMTIME lpUniversalTime,
+ LPSYSTEMTIME lpLocalTime
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetTimeZoneInformation(
+ LPTIME_ZONE_INFORMATION lpTimeZoneInformation
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetTimeZoneInformation(
+ CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation
+ );
+
+
+//
+// Routines to convert back and forth between system time and file time
+//
+
+WINBASEAPI
+BOOL
+WINAPI
+SystemTimeToFileTime(
+ CONST SYSTEMTIME *lpSystemTime,
+ LPFILETIME lpFileTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FileTimeToLocalFileTime(
+ CONST FILETIME *lpFileTime,
+ LPFILETIME lpLocalFileTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+LocalFileTimeToFileTime(
+ CONST FILETIME *lpLocalFileTime,
+ LPFILETIME lpFileTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FileTimeToSystemTime(
+ CONST FILETIME *lpFileTime,
+ LPSYSTEMTIME lpSystemTime
+ );
+
+WINBASEAPI
+LONG
+WINAPI
+CompareFileTime(
+ CONST FILETIME *lpFileTime1,
+ CONST FILETIME *lpFileTime2
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FileTimeToDosDateTime(
+ CONST FILETIME *lpFileTime,
+ LPWORD lpFatDate,
+ LPWORD lpFatTime
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+DosDateTimeToFileTime(
+ WORD wFatDate,
+ WORD wFatTime,
+ LPFILETIME lpFileTime
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetTickCount(
+ VOID
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetSystemTimeAdjustment(
+ DWORD dwTimeAdjustment,
+ BOOL bTimeAdjustmentDisabled
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetSystemTimeAdjustment(
+ PDWORD lpTimeAdjustment,
+ PDWORD lpTimeIncrement,
+ PBOOL lpTimeAdjustmentDisabled
+ );
+
+#if !defined(MIDL_PASS)
+WINBASEAPI
+DWORD
+WINAPI
+FormatMessageA(
+ DWORD dwFlags,
+ LPCVOID lpSource,
+ DWORD dwMessageId,
+ DWORD dwLanguageId,
+ LPSTR lpBuffer,
+ DWORD nSize,
+ va_list *Arguments
+ );
+WINBASEAPI
+DWORD
+WINAPI
+FormatMessageW(
+ DWORD dwFlags,
+ LPCVOID lpSource,
+ DWORD dwMessageId,
+ DWORD dwLanguageId,
+ LPWSTR lpBuffer,
+ DWORD nSize,
+ va_list *Arguments
+ );
+#ifdef UNICODE
+#define FormatMessage FormatMessageW
+#else
+#define FormatMessage FormatMessageA
+#endif // !UNICODE
+#endif
+
+#define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100
+#define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200
+#define FORMAT_MESSAGE_FROM_STRING 0x00000400
+#define FORMAT_MESSAGE_FROM_HMODULE 0x00000800
+#define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
+#define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000
+#define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF
+
+
+WINBASEAPI
+BOOL
+WINAPI
+CreatePipe(
+ PHANDLE hReadPipe,
+ PHANDLE hWritePipe,
+ LPSECURITY_ATTRIBUTES lpPipeAttributes,
+ DWORD nSize
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+ConnectNamedPipe(
+ HANDLE hNamedPipe,
+ LPOVERLAPPED lpOverlapped
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+DisconnectNamedPipe(
+ HANDLE hNamedPipe
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetNamedPipeHandleState(
+ HANDLE hNamedPipe,
+ LPDWORD lpMode,
+ LPDWORD lpMaxCollectionCount,
+ LPDWORD lpCollectDataTimeout
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetNamedPipeInfo(
+ HANDLE hNamedPipe,
+ LPDWORD lpFlags,
+ LPDWORD lpOutBufferSize,
+ LPDWORD lpInBufferSize,
+ LPDWORD lpMaxInstances
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+PeekNamedPipe(
+ HANDLE hNamedPipe,
+ LPVOID lpBuffer,
+ DWORD nBufferSize,
+ LPDWORD lpBytesRead,
+ LPDWORD lpTotalBytesAvail,
+ LPDWORD lpBytesLeftThisMessage
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+TransactNamedPipe(
+ HANDLE hNamedPipe,
+ LPVOID lpInBuffer,
+ DWORD nInBufferSize,
+ LPVOID lpOutBuffer,
+ DWORD nOutBufferSize,
+ LPDWORD lpBytesRead,
+ LPOVERLAPPED lpOverlapped
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateMailslotA(
+ LPCSTR lpName,
+ DWORD nMaxMessageSize,
+ DWORD lReadTimeout,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+CreateMailslotW(
+ LPCWSTR lpName,
+ DWORD nMaxMessageSize,
+ DWORD lReadTimeout,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes
+ );
+#ifdef UNICODE
+#define CreateMailslot CreateMailslotW
+#else
+#define CreateMailslot CreateMailslotA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+GetMailslotInfo(
+ HANDLE hMailslot,
+ LPDWORD lpMaxMessageSize,
+ LPDWORD lpNextSize,
+ LPDWORD lpMessageCount,
+ LPDWORD lpReadTimeout
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetMailslotInfo(
+ HANDLE hMailslot,
+ DWORD lReadTimeout
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+MapViewOfFile(
+ HANDLE hFileMappingObject,
+ DWORD dwDesiredAccess,
+ DWORD dwFileOffsetHigh,
+ DWORD dwFileOffsetLow,
+ DWORD dwNumberOfBytesToMap
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FlushViewOfFile(
+ LPCVOID lpBaseAddress,
+ DWORD dwNumberOfBytesToFlush
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+UnmapViewOfFile(
+ LPCVOID lpBaseAddress
+ );
+
+
+//
+// _l Compat Functions
+//
+
+WINBASEAPI
+int
+WINAPI
+lstrcmpA(
+ LPCSTR lpString1,
+ LPCSTR lpString2
+ );
+WINBASEAPI
+int
+WINAPI
+lstrcmpW(
+ LPCWSTR lpString1,
+ LPCWSTR lpString2
+ );
+#ifdef UNICODE
+#define lstrcmp lstrcmpW
+#else
+#define lstrcmp lstrcmpA
+#endif // !UNICODE
+
+WINBASEAPI
+int
+WINAPI
+lstrcmpiA(
+ LPCSTR lpString1,
+ LPCSTR lpString2
+ );
+WINBASEAPI
+int
+WINAPI
+lstrcmpiW(
+ LPCWSTR lpString1,
+ LPCWSTR lpString2
+ );
+#ifdef UNICODE
+#define lstrcmpi lstrcmpiW
+#else
+#define lstrcmpi lstrcmpiA
+#endif // !UNICODE
+
+WINBASEAPI
+LPSTR
+WINAPI
+lstrcpynA(
+ LPSTR lpString1,
+ LPCSTR lpString2,
+ int iMaxLength
+ );
+WINBASEAPI
+LPWSTR
+WINAPI
+lstrcpynW(
+ LPWSTR lpString1,
+ LPCWSTR lpString2,
+ int iMaxLength
+ );
+#ifdef UNICODE
+#define lstrcpyn lstrcpynW
+#else
+#define lstrcpyn lstrcpynA
+#endif // !UNICODE
+
+WINBASEAPI
+LPSTR
+WINAPI
+lstrcpyA(
+ LPSTR lpString1,
+ LPCSTR lpString2
+ );
+WINBASEAPI
+LPWSTR
+WINAPI
+lstrcpyW(
+ LPWSTR lpString1,
+ LPCWSTR lpString2
+ );
+#ifdef UNICODE
+#define lstrcpy lstrcpyW
+#else
+#define lstrcpy lstrcpyA
+#endif // !UNICODE
+
+WINBASEAPI
+LPSTR
+WINAPI
+lstrcatA(
+ LPSTR lpString1,
+ LPCSTR lpString2
+ );
+WINBASEAPI
+LPWSTR
+WINAPI
+lstrcatW(
+ LPWSTR lpString1,
+ LPCWSTR lpString2
+ );
+#ifdef UNICODE
+#define lstrcat lstrcatW
+#else
+#define lstrcat lstrcatA
+#endif // !UNICODE
+
+WINBASEAPI
+int
+WINAPI
+lstrlenA(
+ LPCSTR lpString
+ );
+WINBASEAPI
+int
+WINAPI
+lstrlenW(
+ LPCWSTR lpString
+ );
+#ifdef UNICODE
+#define lstrlen lstrlenW
+#else
+#define lstrlen lstrlenA
+#endif // !UNICODE
+
+WINBASEAPI
+HFILE
+WINAPI
+OpenFile(
+ LPCSTR lpFileName,
+ LPOFSTRUCT lpReOpenBuff,
+ UINT uStyle
+ );
+
+WINBASEAPI
+HFILE
+WINAPI
+_lopen(
+ LPCSTR lpPathName,
+ int iReadWrite
+ );
+
+WINBASEAPI
+HFILE
+WINAPI
+_lcreat(
+ LPCSTR lpPathName,
+ int iAttribute
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+_lread(
+ HFILE hFile,
+ LPVOID lpBuffer,
+ UINT uBytes
+ );
+
+WINBASEAPI
+UINT
+WINAPI
+_lwrite(
+ HFILE hFile,
+ LPCSTR lpBuffer,
+ UINT uBytes
+ );
+
+WINBASEAPI
+long
+WINAPI
+_hread(
+ HFILE hFile,
+ LPVOID lpBuffer,
+ long lBytes
+ );
+
+WINBASEAPI
+long
+WINAPI
+_hwrite(
+ HFILE hFile,
+ LPCSTR lpBuffer,
+ long lBytes
+ );
+
+WINBASEAPI
+HFILE
+WINAPI
+_lclose(
+ HFILE hFile
+ );
+
+WINBASEAPI
+LONG
+WINAPI
+_llseek(
+ HFILE hFile,
+ LONG lOffset,
+ int iOrigin
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+IsTextUnicode(
+ CONST LPVOID lpBuffer,
+ int cb,
+ LPINT lpi
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+TlsAlloc(
+ VOID
+ );
+
+#define TLS_OUT_OF_INDEXES (DWORD)0xFFFFFFFF
+
+WINBASEAPI
+LPVOID
+WINAPI
+TlsGetValue(
+ DWORD dwTlsIndex
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+TlsSetValue(
+ DWORD dwTlsIndex,
+ LPVOID lpTlsValue
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+TlsFree(
+ DWORD dwTlsIndex
+ );
+
+typedef
+VOID
+(WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE)(
+ DWORD dwErrorCode,
+ DWORD dwNumberOfBytesTransfered,
+ LPOVERLAPPED lpOverlapped
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+SleepEx(
+ DWORD dwMilliseconds,
+ BOOL bAlertable
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+WaitForSingleObjectEx(
+ HANDLE hHandle,
+ DWORD dwMilliseconds,
+ BOOL bAlertable
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+WaitForMultipleObjectsEx(
+ DWORD nCount,
+ CONST HANDLE *lpHandles,
+ BOOL bWaitAll,
+ DWORD dwMilliseconds,
+ BOOL bAlertable
+ );
+
+#if(_WIN32_WINNT >= 0x0400)
+WINBASEAPI
+DWORD
+WINAPI
+SignalObjectAndWait(
+ HANDLE hObjectToSignal,
+ HANDLE hObjectToWaitOn,
+ DWORD dwMilliseconds,
+ BOOL bAlertable
+ );
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+BOOL
+WINAPI
+ReadFileEx(
+ HANDLE hFile,
+ LPVOID lpBuffer,
+ DWORD nNumberOfBytesToRead,
+ LPOVERLAPPED lpOverlapped,
+ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+WriteFileEx(
+ HANDLE hFile,
+ LPCVOID lpBuffer,
+ DWORD nNumberOfBytesToWrite,
+ LPOVERLAPPED lpOverlapped,
+ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+BackupRead(
+ HANDLE hFile,
+ LPBYTE lpBuffer,
+ DWORD nNumberOfBytesToRead,
+ LPDWORD lpNumberOfBytesRead,
+ BOOL bAbort,
+ BOOL bProcessSecurity,
+ LPVOID *lpContext
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+BackupSeek(
+ HANDLE hFile,
+ DWORD dwLowBytesToSeek,
+ DWORD dwHighBytesToSeek,
+ LPDWORD lpdwLowByteSeeked,
+ LPDWORD lpdwHighByteSeeked,
+ LPVOID *lpContext
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+BackupWrite(
+ HANDLE hFile,
+ LPBYTE lpBuffer,
+ DWORD nNumberOfBytesToWrite,
+ LPDWORD lpNumberOfBytesWritten,
+ BOOL bAbort,
+ BOOL bProcessSecurity,
+ LPVOID *lpContext
+ );
+
+//
+// Stream id structure
+//
+typedef struct _WIN32_STREAM_ID {
+ DWORD dwStreamId ;
+ DWORD dwStreamAttributes ;
+ LARGE_INTEGER Size ;
+ DWORD dwStreamNameSize ;
+ WCHAR cStreamName[ ANYSIZE_ARRAY ] ;
+} WIN32_STREAM_ID, *LPWIN32_STREAM_ID ;
+
+//
+// Stream Ids
+//
+
+#define BACKUP_INVALID 0x00000000
+#define BACKUP_DATA 0x00000001
+#define BACKUP_EA_DATA 0x00000002
+#define BACKUP_SECURITY_DATA 0x00000003
+#define BACKUP_ALTERNATE_DATA 0x00000004
+#define BACKUP_LINK 0x00000005
+#define BACKUP_PROPERTY_DATA 0x00000006
+
+//
+// Stream Attributes
+//
+
+#define STREAM_NORMAL_ATTRIBUTE 0x00000000
+#define STREAM_MODIFIED_WHEN_READ 0x00000001
+#define STREAM_CONTAINS_SECURITY 0x00000002
+#define STREAM_CONTAINS_PROPERTIES 0x00000004
+
+WINBASEAPI
+BOOL
+WINAPI
+ReadFileScatter(
+ HANDLE hFile,
+ FILE_SEGMENT_ELEMENT aSegmentArray[],
+ DWORD nNumberOfBytesToRead,
+ LPDWORD lpReserved,
+ LPOVERLAPPED lpOverlapped
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+WriteFileGather(
+ HANDLE hFile,
+ FILE_SEGMENT_ELEMENT aSegmentArray[],
+ DWORD nNumberOfBytesToWrite,
+ LPDWORD lpReserved,
+ LPOVERLAPPED lpOverlapped
+ );
+
+//
+// Dual Mode API below this line. Dual Mode Structures also included.
+//
+
+#define STARTF_USESHOWWINDOW 0x00000001
+#define STARTF_USESIZE 0x00000002
+#define STARTF_USEPOSITION 0x00000004
+#define STARTF_USECOUNTCHARS 0x00000008
+#define STARTF_USEFILLATTRIBUTE 0x00000010
+#define STARTF_RUNFULLSCREEN 0x00000020 // ignored for non-x86 platforms
+#define STARTF_FORCEONFEEDBACK 0x00000040
+#define STARTF_FORCEOFFFEEDBACK 0x00000080
+#define STARTF_USESTDHANDLES 0x00000100
+#if(WINVER >= 0x0400)
+#define STARTF_USEHOTKEY 0x00000200
+#endif /* WINVER >= 0x0400 */
+
+typedef struct _STARTUPINFOA {
+ DWORD cb;
+ LPSTR lpReserved;
+ LPSTR lpDesktop;
+ LPSTR lpTitle;
+ DWORD dwX;
+ DWORD dwY;
+ DWORD dwXSize;
+ DWORD dwYSize;
+ DWORD dwXCountChars;
+ DWORD dwYCountChars;
+ DWORD dwFillAttribute;
+ DWORD dwFlags;
+ WORD wShowWindow;
+ WORD cbReserved2;
+ LPBYTE lpReserved2;
+ HANDLE hStdInput;
+ HANDLE hStdOutput;
+ HANDLE hStdError;
+} STARTUPINFOA, *LPSTARTUPINFOA;
+typedef struct _STARTUPINFOW {
+ DWORD cb;
+ LPWSTR lpReserved;
+ LPWSTR lpDesktop;
+ LPWSTR lpTitle;
+ DWORD dwX;
+ DWORD dwY;
+ DWORD dwXSize;
+ DWORD dwYSize;
+ DWORD dwXCountChars;
+ DWORD dwYCountChars;
+ DWORD dwFillAttribute;
+ DWORD dwFlags;
+ WORD wShowWindow;
+ WORD cbReserved2;
+ LPBYTE lpReserved2;
+ HANDLE hStdInput;
+ HANDLE hStdOutput;
+ HANDLE hStdError;
+} STARTUPINFOW, *LPSTARTUPINFOW;
+#ifdef UNICODE
+typedef STARTUPINFOW STARTUPINFO;
+typedef LPSTARTUPINFOW LPSTARTUPINFO;
+#else
+typedef STARTUPINFOA STARTUPINFO;
+typedef LPSTARTUPINFOA LPSTARTUPINFO;
+#endif // UNICODE
+
+#define SHUTDOWN_NORETRY 0x00000001
+
+typedef struct _WIN32_FIND_DATAA {
+ DWORD dwFileAttributes;
+ FILETIME ftCreationTime;
+ FILETIME ftLastAccessTime;
+ FILETIME ftLastWriteTime;
+ DWORD nFileSizeHigh;
+ DWORD nFileSizeLow;
+ DWORD dwReserved0;
+ DWORD dwReserved1;
+ CHAR cFileName[ MAX_PATH ];
+ CHAR cAlternateFileName[ 14 ];
+} WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
+typedef struct _WIN32_FIND_DATAW {
+ DWORD dwFileAttributes;
+ FILETIME ftCreationTime;
+ FILETIME ftLastAccessTime;
+ FILETIME ftLastWriteTime;
+ DWORD nFileSizeHigh;
+ DWORD nFileSizeLow;
+ DWORD dwReserved0;
+ DWORD dwReserved1;
+ WCHAR cFileName[ MAX_PATH ];
+ WCHAR cAlternateFileName[ 14 ];
+} WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
+#ifdef UNICODE
+typedef WIN32_FIND_DATAW WIN32_FIND_DATA;
+typedef PWIN32_FIND_DATAW PWIN32_FIND_DATA;
+typedef LPWIN32_FIND_DATAW LPWIN32_FIND_DATA;
+#else
+typedef WIN32_FIND_DATAA WIN32_FIND_DATA;
+typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA;
+typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA;
+#endif // UNICODE
+
+typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
+ DWORD dwFileAttributes;
+ FILETIME ftCreationTime;
+ FILETIME ftLastAccessTime;
+ FILETIME ftLastWriteTime;
+ DWORD nFileSizeHigh;
+ DWORD nFileSizeLow;
+} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateMutexA(
+ LPSECURITY_ATTRIBUTES lpMutexAttributes,
+ BOOL bInitialOwner,
+ LPCSTR lpName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+CreateMutexW(
+ LPSECURITY_ATTRIBUTES lpMutexAttributes,
+ BOOL bInitialOwner,
+ LPCWSTR lpName
+ );
+#ifdef UNICODE
+#define CreateMutex CreateMutexW
+#else
+#define CreateMutex CreateMutexA
+#endif // !UNICODE
+
+WINBASEAPI
+HANDLE
+WINAPI
+OpenMutexA(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCSTR lpName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+OpenMutexW(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCWSTR lpName
+ );
+#ifdef UNICODE
+#define OpenMutex OpenMutexW
+#else
+#define OpenMutex OpenMutexA
+#endif // !UNICODE
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateEventA(
+ LPSECURITY_ATTRIBUTES lpEventAttributes,
+ BOOL bManualReset,
+ BOOL bInitialState,
+ LPCSTR lpName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+CreateEventW(
+ LPSECURITY_ATTRIBUTES lpEventAttributes,
+ BOOL bManualReset,
+ BOOL bInitialState,
+ LPCWSTR lpName
+ );
+#ifdef UNICODE
+#define CreateEvent CreateEventW
+#else
+#define CreateEvent CreateEventA
+#endif // !UNICODE
+
+WINBASEAPI
+HANDLE
+WINAPI
+OpenEventA(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCSTR lpName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+OpenEventW(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCWSTR lpName
+ );
+#ifdef UNICODE
+#define OpenEvent OpenEventW
+#else
+#define OpenEvent OpenEventA
+#endif // !UNICODE
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateSemaphoreA(
+ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
+ LONG lInitialCount,
+ LONG lMaximumCount,
+ LPCSTR lpName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+CreateSemaphoreW(
+ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
+ LONG lInitialCount,
+ LONG lMaximumCount,
+ LPCWSTR lpName
+ );
+#ifdef UNICODE
+#define CreateSemaphore CreateSemaphoreW
+#else
+#define CreateSemaphore CreateSemaphoreA
+#endif // !UNICODE
+
+WINBASEAPI
+HANDLE
+WINAPI
+OpenSemaphoreA(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCSTR lpName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+OpenSemaphoreW(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCWSTR lpName
+ );
+#ifdef UNICODE
+#define OpenSemaphore OpenSemaphoreW
+#else
+#define OpenSemaphore OpenSemaphoreA
+#endif // !UNICODE
+
+#if(_WIN32_WINNT >= 0x0400)
+typedef
+VOID
+(APIENTRY *PTIMERAPCROUTINE)(
+ LPVOID lpArgToCompletionRoutine,
+ DWORD dwTimerLowValue,
+ DWORD dwTimerHighValue
+ );
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateWaitableTimerA(
+ LPSECURITY_ATTRIBUTES lpTimerAttributes,
+ BOOL bManualReset,
+ LPCSTR lpTimerName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+CreateWaitableTimerW(
+ LPSECURITY_ATTRIBUTES lpTimerAttributes,
+ BOOL bManualReset,
+ LPCWSTR lpTimerName
+ );
+#ifdef UNICODE
+#define CreateWaitableTimer CreateWaitableTimerW
+#else
+#define CreateWaitableTimer CreateWaitableTimerA
+#endif // !UNICODE
+
+WINBASEAPI
+HANDLE
+WINAPI
+OpenWaitableTimerA(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCSTR lpTimerName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+OpenWaitableTimerW(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCWSTR lpTimerName
+ );
+#ifdef UNICODE
+#define OpenWaitableTimer OpenWaitableTimerW
+#else
+#define OpenWaitableTimer OpenWaitableTimerA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+SetWaitableTimer(
+ HANDLE hTimer,
+ const LARGE_INTEGER *lpDueTime,
+ LONG lPeriod,
+ PTIMERAPCROUTINE pfnCompletionRoutine,
+ LPVOID lpArgToCompletionRoutine,
+ BOOL fResume
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+CancelWaitableTimer(
+ HANDLE hTimer
+ );
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateFileMappingA(
+ HANDLE hFile,
+ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
+ DWORD flProtect,
+ DWORD dwMaximumSizeHigh,
+ DWORD dwMaximumSizeLow,
+ LPCSTR lpName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+CreateFileMappingW(
+ HANDLE hFile,
+ LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
+ DWORD flProtect,
+ DWORD dwMaximumSizeHigh,
+ DWORD dwMaximumSizeLow,
+ LPCWSTR lpName
+ );
+#ifdef UNICODE
+#define CreateFileMapping CreateFileMappingW
+#else
+#define CreateFileMapping CreateFileMappingA
+#endif // !UNICODE
+
+WINBASEAPI
+HANDLE
+WINAPI
+OpenFileMappingA(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCSTR lpName
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+OpenFileMappingW(
+ DWORD dwDesiredAccess,
+ BOOL bInheritHandle,
+ LPCWSTR lpName
+ );
+#ifdef UNICODE
+#define OpenFileMapping OpenFileMappingW
+#else
+#define OpenFileMapping OpenFileMappingA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetLogicalDriveStringsA(
+ DWORD nBufferLength,
+ LPSTR lpBuffer
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetLogicalDriveStringsW(
+ DWORD nBufferLength,
+ LPWSTR lpBuffer
+ );
+#ifdef UNICODE
+#define GetLogicalDriveStrings GetLogicalDriveStringsW
+#else
+#define GetLogicalDriveStrings GetLogicalDriveStringsA
+#endif // !UNICODE
+
+WINBASEAPI
+HMODULE
+WINAPI
+LoadLibraryA(
+ LPCSTR lpLibFileName
+ );
+WINBASEAPI
+HMODULE
+WINAPI
+LoadLibraryW(
+ LPCWSTR lpLibFileName
+ );
+#ifdef UNICODE
+#define LoadLibrary LoadLibraryW
+#else
+#define LoadLibrary LoadLibraryA
+#endif // !UNICODE
+
+WINBASEAPI
+HMODULE
+WINAPI
+LoadLibraryExA(
+ LPCSTR lpLibFileName,
+ HANDLE hFile,
+ DWORD dwFlags
+ );
+WINBASEAPI
+HMODULE
+WINAPI
+LoadLibraryExW(
+ LPCWSTR lpLibFileName,
+ HANDLE hFile,
+ DWORD dwFlags
+ );
+#ifdef UNICODE
+#define LoadLibraryEx LoadLibraryExW
+#else
+#define LoadLibraryEx LoadLibraryExA
+#endif // !UNICODE
+
+
+#define DONT_RESOLVE_DLL_REFERENCES 0x00000001
+#define LOAD_LIBRARY_AS_DATAFILE 0x00000002
+#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008
+
+
+WINBASEAPI
+DWORD
+WINAPI
+GetModuleFileNameA(
+ HMODULE hModule,
+ LPSTR lpFilename,
+ DWORD nSize
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetModuleFileNameW(
+ HMODULE hModule,
+ LPWSTR lpFilename,
+ DWORD nSize
+ );
+#ifdef UNICODE
+#define GetModuleFileName GetModuleFileNameW
+#else
+#define GetModuleFileName GetModuleFileNameA
+#endif // !UNICODE
+
+WINBASEAPI
+HMODULE
+WINAPI
+GetModuleHandleA(
+ LPCSTR lpModuleName
+ );
+WINBASEAPI
+HMODULE
+WINAPI
+GetModuleHandleW(
+ LPCWSTR lpModuleName
+ );
+#ifdef UNICODE
+#define GetModuleHandle GetModuleHandleW
+#else
+#define GetModuleHandle GetModuleHandleA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+CreateProcessA(
+ LPCSTR lpApplicationName,
+ LPSTR lpCommandLine,
+ LPSECURITY_ATTRIBUTES lpProcessAttributes,
+ LPSECURITY_ATTRIBUTES lpThreadAttributes,
+ BOOL bInheritHandles,
+ DWORD dwCreationFlags,
+ LPVOID lpEnvironment,
+ LPCSTR lpCurrentDirectory,
+ LPSTARTUPINFOA lpStartupInfo,
+ LPPROCESS_INFORMATION lpProcessInformation
+ );
+WINBASEAPI
+BOOL
+WINAPI
+CreateProcessW(
+ LPCWSTR lpApplicationName,
+ LPWSTR lpCommandLine,
+ LPSECURITY_ATTRIBUTES lpProcessAttributes,
+ LPSECURITY_ATTRIBUTES lpThreadAttributes,
+ BOOL bInheritHandles,
+ DWORD dwCreationFlags,
+ LPVOID lpEnvironment,
+ LPCWSTR lpCurrentDirectory,
+ LPSTARTUPINFOW lpStartupInfo,
+ LPPROCESS_INFORMATION lpProcessInformation
+ );
+#ifdef UNICODE
+#define CreateProcess CreateProcessW
+#else
+#define CreateProcess CreateProcessA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+SetProcessShutdownParameters(
+ DWORD dwLevel,
+ DWORD dwFlags
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetProcessShutdownParameters(
+ LPDWORD lpdwLevel,
+ LPDWORD lpdwFlags
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetProcessVersion(
+ DWORD ProcessId
+ );
+
+WINBASEAPI
+VOID
+WINAPI
+FatalAppExitA(
+ UINT uAction,
+ LPCSTR lpMessageText
+ );
+WINBASEAPI
+VOID
+WINAPI
+FatalAppExitW(
+ UINT uAction,
+ LPCWSTR lpMessageText
+ );
+#ifdef UNICODE
+#define FatalAppExit FatalAppExitW
+#else
+#define FatalAppExit FatalAppExitA
+#endif // !UNICODE
+
+WINBASEAPI
+VOID
+WINAPI
+GetStartupInfoA(
+ LPSTARTUPINFOA lpStartupInfo
+ );
+WINBASEAPI
+VOID
+WINAPI
+GetStartupInfoW(
+ LPSTARTUPINFOW lpStartupInfo
+ );
+#ifdef UNICODE
+#define GetStartupInfo GetStartupInfoW
+#else
+#define GetStartupInfo GetStartupInfoA
+#endif // !UNICODE
+
+WINBASEAPI
+LPSTR
+WINAPI
+GetCommandLineA(
+ VOID
+ );
+WINBASEAPI
+LPWSTR
+WINAPI
+GetCommandLineW(
+ VOID
+ );
+#ifdef UNICODE
+#define GetCommandLine GetCommandLineW
+#else
+#define GetCommandLine GetCommandLineA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetEnvironmentVariableA(
+ LPCSTR lpName,
+ LPSTR lpBuffer,
+ DWORD nSize
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetEnvironmentVariableW(
+ LPCWSTR lpName,
+ LPWSTR lpBuffer,
+ DWORD nSize
+ );
+#ifdef UNICODE
+#define GetEnvironmentVariable GetEnvironmentVariableW
+#else
+#define GetEnvironmentVariable GetEnvironmentVariableA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+SetEnvironmentVariableA(
+ LPCSTR lpName,
+ LPCSTR lpValue
+ );
+WINBASEAPI
+BOOL
+WINAPI
+SetEnvironmentVariableW(
+ LPCWSTR lpName,
+ LPCWSTR lpValue
+ );
+#ifdef UNICODE
+#define SetEnvironmentVariable SetEnvironmentVariableW
+#else
+#define SetEnvironmentVariable SetEnvironmentVariableA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+ExpandEnvironmentStringsA(
+ LPCSTR lpSrc,
+ LPSTR lpDst,
+ DWORD nSize
+ );
+WINBASEAPI
+DWORD
+WINAPI
+ExpandEnvironmentStringsW(
+ LPCWSTR lpSrc,
+ LPWSTR lpDst,
+ DWORD nSize
+ );
+#ifdef UNICODE
+#define ExpandEnvironmentStrings ExpandEnvironmentStringsW
+#else
+#define ExpandEnvironmentStrings ExpandEnvironmentStringsA
+#endif // !UNICODE
+
+WINBASEAPI
+VOID
+WINAPI
+OutputDebugStringA(
+ LPCSTR lpOutputString
+ );
+WINBASEAPI
+VOID
+WINAPI
+OutputDebugStringW(
+ LPCWSTR lpOutputString
+ );
+#ifdef UNICODE
+#define OutputDebugString OutputDebugStringW
+#else
+#define OutputDebugString OutputDebugStringA
+#endif // !UNICODE
+
+WINBASEAPI
+HRSRC
+WINAPI
+FindResourceA(
+ HMODULE hModule,
+ LPCSTR lpName,
+ LPCSTR lpType
+ );
+WINBASEAPI
+HRSRC
+WINAPI
+FindResourceW(
+ HMODULE hModule,
+ LPCWSTR lpName,
+ LPCWSTR lpType
+ );
+#ifdef UNICODE
+#define FindResource FindResourceW
+#else
+#define FindResource FindResourceA
+#endif // !UNICODE
+
+WINBASEAPI
+HRSRC
+WINAPI
+FindResourceExA(
+ HMODULE hModule,
+ LPCSTR lpType,
+ LPCSTR lpName,
+ WORD wLanguage
+ );
+WINBASEAPI
+HRSRC
+WINAPI
+FindResourceExW(
+ HMODULE hModule,
+ LPCWSTR lpType,
+ LPCWSTR lpName,
+ WORD wLanguage
+ );
+#ifdef UNICODE
+#define FindResourceEx FindResourceExW
+#else
+#define FindResourceEx FindResourceExA
+#endif // !UNICODE
+
+#ifdef STRICT
+typedef BOOL (CALLBACK* ENUMRESTYPEPROC)(HMODULE hModule, LPTSTR lpType,
+ LONG lParam);
+typedef BOOL (CALLBACK* ENUMRESNAMEPROC)(HMODULE hModule, LPCTSTR lpType,
+ LPTSTR lpName, LONG lParam);
+typedef BOOL (CALLBACK* ENUMRESLANGPROC)(HMODULE hModule, LPCTSTR lpType,
+ LPCTSTR lpName, WORD wLanguage, LONG lParam);
+#else
+typedef FARPROC ENUMRESTYPEPROC;
+typedef FARPROC ENUMRESNAMEPROC;
+typedef FARPROC ENUMRESLANGPROC;
+#endif
+
+WINBASEAPI
+BOOL
+WINAPI
+EnumResourceTypesA(
+ HMODULE hModule,
+ ENUMRESTYPEPROC lpEnumFunc,
+ LONG lParam
+ );
+WINBASEAPI
+BOOL
+WINAPI
+EnumResourceTypesW(
+ HMODULE hModule,
+ ENUMRESTYPEPROC lpEnumFunc,
+ LONG lParam
+ );
+#ifdef UNICODE
+#define EnumResourceTypes EnumResourceTypesW
+#else
+#define EnumResourceTypes EnumResourceTypesA
+#endif // !UNICODE
+
+
+WINBASEAPI
+BOOL
+WINAPI
+EnumResourceNamesA(
+ HMODULE hModule,
+ LPCSTR lpType,
+ ENUMRESNAMEPROC lpEnumFunc,
+ LONG lParam
+ );
+WINBASEAPI
+BOOL
+WINAPI
+EnumResourceNamesW(
+ HMODULE hModule,
+ LPCWSTR lpType,
+ ENUMRESNAMEPROC lpEnumFunc,
+ LONG lParam
+ );
+#ifdef UNICODE
+#define EnumResourceNames EnumResourceNamesW
+#else
+#define EnumResourceNames EnumResourceNamesA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+EnumResourceLanguagesA(
+ HMODULE hModule,
+ LPCSTR lpType,
+ LPCSTR lpName,
+ ENUMRESLANGPROC lpEnumFunc,
+ LONG lParam
+ );
+WINBASEAPI
+BOOL
+WINAPI
+EnumResourceLanguagesW(
+ HMODULE hModule,
+ LPCWSTR lpType,
+ LPCWSTR lpName,
+ ENUMRESLANGPROC lpEnumFunc,
+ LONG lParam
+ );
+#ifdef UNICODE
+#define EnumResourceLanguages EnumResourceLanguagesW
+#else
+#define EnumResourceLanguages EnumResourceLanguagesA
+#endif // !UNICODE
+
+WINBASEAPI
+HANDLE
+WINAPI
+BeginUpdateResourceA(
+ LPCSTR pFileName,
+ BOOL bDeleteExistingResources
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+BeginUpdateResourceW(
+ LPCWSTR pFileName,
+ BOOL bDeleteExistingResources
+ );
+#ifdef UNICODE
+#define BeginUpdateResource BeginUpdateResourceW
+#else
+#define BeginUpdateResource BeginUpdateResourceA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+UpdateResourceA(
+ HANDLE hUpdate,
+ LPCSTR lpType,
+ LPCSTR lpName,
+ WORD wLanguage,
+ LPVOID lpData,
+ DWORD cbData
+ );
+WINBASEAPI
+BOOL
+WINAPI
+UpdateResourceW(
+ HANDLE hUpdate,
+ LPCWSTR lpType,
+ LPCWSTR lpName,
+ WORD wLanguage,
+ LPVOID lpData,
+ DWORD cbData
+ );
+#ifdef UNICODE
+#define UpdateResource UpdateResourceW
+#else
+#define UpdateResource UpdateResourceA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+EndUpdateResourceA(
+ HANDLE hUpdate,
+ BOOL fDiscard
+ );
+WINBASEAPI
+BOOL
+WINAPI
+EndUpdateResourceW(
+ HANDLE hUpdate,
+ BOOL fDiscard
+ );
+#ifdef UNICODE
+#define EndUpdateResource EndUpdateResourceW
+#else
+#define EndUpdateResource EndUpdateResourceA
+#endif // !UNICODE
+
+WINBASEAPI
+ATOM
+WINAPI
+GlobalAddAtomA(
+ LPCSTR lpString
+ );
+WINBASEAPI
+ATOM
+WINAPI
+GlobalAddAtomW(
+ LPCWSTR lpString
+ );
+#ifdef UNICODE
+#define GlobalAddAtom GlobalAddAtomW
+#else
+#define GlobalAddAtom GlobalAddAtomA
+#endif // !UNICODE
+
+WINBASEAPI
+ATOM
+WINAPI
+GlobalFindAtomA(
+ LPCSTR lpString
+ );
+WINBASEAPI
+ATOM
+WINAPI
+GlobalFindAtomW(
+ LPCWSTR lpString
+ );
+#ifdef UNICODE
+#define GlobalFindAtom GlobalFindAtomW
+#else
+#define GlobalFindAtom GlobalFindAtomA
+#endif // !UNICODE
+
+WINBASEAPI
+UINT
+WINAPI
+GlobalGetAtomNameA(
+ ATOM nAtom,
+ LPSTR lpBuffer,
+ int nSize
+ );
+WINBASEAPI
+UINT
+WINAPI
+GlobalGetAtomNameW(
+ ATOM nAtom,
+ LPWSTR lpBuffer,
+ int nSize
+ );
+#ifdef UNICODE
+#define GlobalGetAtomName GlobalGetAtomNameW
+#else
+#define GlobalGetAtomName GlobalGetAtomNameA
+#endif // !UNICODE
+
+WINBASEAPI
+ATOM
+WINAPI
+AddAtomA(
+ LPCSTR lpString
+ );
+WINBASEAPI
+ATOM
+WINAPI
+AddAtomW(
+ LPCWSTR lpString
+ );
+#ifdef UNICODE
+#define AddAtom AddAtomW
+#else
+#define AddAtom AddAtomA
+#endif // !UNICODE
+
+WINBASEAPI
+ATOM
+WINAPI
+FindAtomA(
+ LPCSTR lpString
+ );
+WINBASEAPI
+ATOM
+WINAPI
+FindAtomW(
+ LPCWSTR lpString
+ );
+#ifdef UNICODE
+#define FindAtom FindAtomW
+#else
+#define FindAtom FindAtomA
+#endif // !UNICODE
+
+WINBASEAPI
+UINT
+WINAPI
+GetAtomNameA(
+ ATOM nAtom,
+ LPSTR lpBuffer,
+ int nSize
+ );
+WINBASEAPI
+UINT
+WINAPI
+GetAtomNameW(
+ ATOM nAtom,
+ LPWSTR lpBuffer,
+ int nSize
+ );
+#ifdef UNICODE
+#define GetAtomName GetAtomNameW
+#else
+#define GetAtomName GetAtomNameA
+#endif // !UNICODE
+
+WINBASEAPI
+UINT
+WINAPI
+GetProfileIntA(
+ LPCSTR lpAppName,
+ LPCSTR lpKeyName,
+ INT nDefault
+ );
+WINBASEAPI
+UINT
+WINAPI
+GetProfileIntW(
+ LPCWSTR lpAppName,
+ LPCWSTR lpKeyName,
+ INT nDefault
+ );
+#ifdef UNICODE
+#define GetProfileInt GetProfileIntW
+#else
+#define GetProfileInt GetProfileIntA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetProfileStringA(
+ LPCSTR lpAppName,
+ LPCSTR lpKeyName,
+ LPCSTR lpDefault,
+ LPSTR lpReturnedString,
+ DWORD nSize
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetProfileStringW(
+ LPCWSTR lpAppName,
+ LPCWSTR lpKeyName,
+ LPCWSTR lpDefault,
+ LPWSTR lpReturnedString,
+ DWORD nSize
+ );
+#ifdef UNICODE
+#define GetProfileString GetProfileStringW
+#else
+#define GetProfileString GetProfileStringA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+WriteProfileStringA(
+ LPCSTR lpAppName,
+ LPCSTR lpKeyName,
+ LPCSTR lpString
+ );
+WINBASEAPI
+BOOL
+WINAPI
+WriteProfileStringW(
+ LPCWSTR lpAppName,
+ LPCWSTR lpKeyName,
+ LPCWSTR lpString
+ );
+#ifdef UNICODE
+#define WriteProfileString WriteProfileStringW
+#else
+#define WriteProfileString WriteProfileStringA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetProfileSectionA(
+ LPCSTR lpAppName,
+ LPSTR lpReturnedString,
+ DWORD nSize
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetProfileSectionW(
+ LPCWSTR lpAppName,
+ LPWSTR lpReturnedString,
+ DWORD nSize
+ );
+#ifdef UNICODE
+#define GetProfileSection GetProfileSectionW
+#else
+#define GetProfileSection GetProfileSectionA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+WriteProfileSectionA(
+ LPCSTR lpAppName,
+ LPCSTR lpString
+ );
+WINBASEAPI
+BOOL
+WINAPI
+WriteProfileSectionW(
+ LPCWSTR lpAppName,
+ LPCWSTR lpString
+ );
+#ifdef UNICODE
+#define WriteProfileSection WriteProfileSectionW
+#else
+#define WriteProfileSection WriteProfileSectionA
+#endif // !UNICODE
+
+WINBASEAPI
+UINT
+WINAPI
+GetPrivateProfileIntA(
+ LPCSTR lpAppName,
+ LPCSTR lpKeyName,
+ INT nDefault,
+ LPCSTR lpFileName
+ );
+WINBASEAPI
+UINT
+WINAPI
+GetPrivateProfileIntW(
+ LPCWSTR lpAppName,
+ LPCWSTR lpKeyName,
+ INT nDefault,
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define GetPrivateProfileInt GetPrivateProfileIntW
+#else
+#define GetPrivateProfileInt GetPrivateProfileIntA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetPrivateProfileStringA(
+ LPCSTR lpAppName,
+ LPCSTR lpKeyName,
+ LPCSTR lpDefault,
+ LPSTR lpReturnedString,
+ DWORD nSize,
+ LPCSTR lpFileName
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetPrivateProfileStringW(
+ LPCWSTR lpAppName,
+ LPCWSTR lpKeyName,
+ LPCWSTR lpDefault,
+ LPWSTR lpReturnedString,
+ DWORD nSize,
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define GetPrivateProfileString GetPrivateProfileStringW
+#else
+#define GetPrivateProfileString GetPrivateProfileStringA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+WritePrivateProfileStringA(
+ LPCSTR lpAppName,
+ LPCSTR lpKeyName,
+ LPCSTR lpString,
+ LPCSTR lpFileName
+ );
+WINBASEAPI
+BOOL
+WINAPI
+WritePrivateProfileStringW(
+ LPCWSTR lpAppName,
+ LPCWSTR lpKeyName,
+ LPCWSTR lpString,
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define WritePrivateProfileString WritePrivateProfileStringW
+#else
+#define WritePrivateProfileString WritePrivateProfileStringA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetPrivateProfileSectionA(
+ LPCSTR lpAppName,
+ LPSTR lpReturnedString,
+ DWORD nSize,
+ LPCSTR lpFileName
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetPrivateProfileSectionW(
+ LPCWSTR lpAppName,
+ LPWSTR lpReturnedString,
+ DWORD nSize,
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define GetPrivateProfileSection GetPrivateProfileSectionW
+#else
+#define GetPrivateProfileSection GetPrivateProfileSectionA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+WritePrivateProfileSectionA(
+ LPCSTR lpAppName,
+ LPCSTR lpString,
+ LPCSTR lpFileName
+ );
+WINBASEAPI
+BOOL
+WINAPI
+WritePrivateProfileSectionW(
+ LPCWSTR lpAppName,
+ LPCWSTR lpString,
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define WritePrivateProfileSection WritePrivateProfileSectionW
+#else
+#define WritePrivateProfileSection WritePrivateProfileSectionA
+#endif // !UNICODE
+
+
+WINBASEAPI
+DWORD
+WINAPI
+GetPrivateProfileSectionNamesA(
+ LPSTR lpszReturnBuffer,
+ DWORD nSize,
+ LPCSTR lpFileName
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetPrivateProfileSectionNamesW(
+ LPWSTR lpszReturnBuffer,
+ DWORD nSize,
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW
+#else
+#define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+GetPrivateProfileStructA(
+ LPCSTR lpszSection,
+ LPCSTR lpszKey,
+ LPVOID lpStruct,
+ UINT uSizeStruct,
+ LPCSTR szFile
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetPrivateProfileStructW(
+ LPCWSTR lpszSection,
+ LPCWSTR lpszKey,
+ LPVOID lpStruct,
+ UINT uSizeStruct,
+ LPCWSTR szFile
+ );
+#ifdef UNICODE
+#define GetPrivateProfileStruct GetPrivateProfileStructW
+#else
+#define GetPrivateProfileStruct GetPrivateProfileStructA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+WritePrivateProfileStructA(
+ LPCSTR lpszSection,
+ LPCSTR lpszKey,
+ LPVOID lpStruct,
+ UINT uSizeStruct,
+ LPCSTR szFile
+ );
+WINBASEAPI
+BOOL
+WINAPI
+WritePrivateProfileStructW(
+ LPCWSTR lpszSection,
+ LPCWSTR lpszKey,
+ LPVOID lpStruct,
+ UINT uSizeStruct,
+ LPCWSTR szFile
+ );
+#ifdef UNICODE
+#define WritePrivateProfileStruct WritePrivateProfileStructW
+#else
+#define WritePrivateProfileStruct WritePrivateProfileStructA
+#endif // !UNICODE
+
+
+WINBASEAPI
+UINT
+WINAPI
+GetDriveTypeA(
+ LPCSTR lpRootPathName
+ );
+WINBASEAPI
+UINT
+WINAPI
+GetDriveTypeW(
+ LPCWSTR lpRootPathName
+ );
+#ifdef UNICODE
+#define GetDriveType GetDriveTypeW
+#else
+#define GetDriveType GetDriveTypeA
+#endif // !UNICODE
+
+WINBASEAPI
+UINT
+WINAPI
+GetSystemDirectoryA(
+ LPSTR lpBuffer,
+ UINT uSize
+ );
+WINBASEAPI
+UINT
+WINAPI
+GetSystemDirectoryW(
+ LPWSTR lpBuffer,
+ UINT uSize
+ );
+#ifdef UNICODE
+#define GetSystemDirectory GetSystemDirectoryW
+#else
+#define GetSystemDirectory GetSystemDirectoryA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetTempPathA(
+ DWORD nBufferLength,
+ LPSTR lpBuffer
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetTempPathW(
+ DWORD nBufferLength,
+ LPWSTR lpBuffer
+ );
+#ifdef UNICODE
+#define GetTempPath GetTempPathW
+#else
+#define GetTempPath GetTempPathA
+#endif // !UNICODE
+
+WINBASEAPI
+UINT
+WINAPI
+GetTempFileNameA(
+ LPCSTR lpPathName,
+ LPCSTR lpPrefixString,
+ UINT uUnique,
+ LPSTR lpTempFileName
+ );
+WINBASEAPI
+UINT
+WINAPI
+GetTempFileNameW(
+ LPCWSTR lpPathName,
+ LPCWSTR lpPrefixString,
+ UINT uUnique,
+ LPWSTR lpTempFileName
+ );
+#ifdef UNICODE
+#define GetTempFileName GetTempFileNameW
+#else
+#define GetTempFileName GetTempFileNameA
+#endif // !UNICODE
+
+WINBASEAPI
+UINT
+WINAPI
+GetWindowsDirectoryA(
+ LPSTR lpBuffer,
+ UINT uSize
+ );
+WINBASEAPI
+UINT
+WINAPI
+GetWindowsDirectoryW(
+ LPWSTR lpBuffer,
+ UINT uSize
+ );
+#ifdef UNICODE
+#define GetWindowsDirectory GetWindowsDirectoryW
+#else
+#define GetWindowsDirectory GetWindowsDirectoryA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+SetCurrentDirectoryA(
+ LPCSTR lpPathName
+ );
+WINBASEAPI
+BOOL
+WINAPI
+SetCurrentDirectoryW(
+ LPCWSTR lpPathName
+ );
+#ifdef UNICODE
+#define SetCurrentDirectory SetCurrentDirectoryW
+#else
+#define SetCurrentDirectory SetCurrentDirectoryA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetCurrentDirectoryA(
+ DWORD nBufferLength,
+ LPSTR lpBuffer
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetCurrentDirectoryW(
+ DWORD nBufferLength,
+ LPWSTR lpBuffer
+ );
+#ifdef UNICODE
+#define GetCurrentDirectory GetCurrentDirectoryW
+#else
+#define GetCurrentDirectory GetCurrentDirectoryA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+GetDiskFreeSpaceA(
+ LPCSTR lpRootPathName,
+ LPDWORD lpSectorsPerCluster,
+ LPDWORD lpBytesPerSector,
+ LPDWORD lpNumberOfFreeClusters,
+ LPDWORD lpTotalNumberOfClusters
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetDiskFreeSpaceW(
+ LPCWSTR lpRootPathName,
+ LPDWORD lpSectorsPerCluster,
+ LPDWORD lpBytesPerSector,
+ LPDWORD lpNumberOfFreeClusters,
+ LPDWORD lpTotalNumberOfClusters
+ );
+#ifdef UNICODE
+#define GetDiskFreeSpace GetDiskFreeSpaceW
+#else
+#define GetDiskFreeSpace GetDiskFreeSpaceA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+GetDiskFreeSpaceExA(
+ LPCSTR lpDirectoryName,
+ PULARGE_INTEGER lpFreeBytesAvailableToCaller,
+ PULARGE_INTEGER lpTotalNumberOfBytes,
+ PULARGE_INTEGER lpTotalNumberOfFreeBytes
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetDiskFreeSpaceExW(
+ LPCWSTR lpDirectoryName,
+ PULARGE_INTEGER lpFreeBytesAvailableToCaller,
+ PULARGE_INTEGER lpTotalNumberOfBytes,
+ PULARGE_INTEGER lpTotalNumberOfFreeBytes
+ );
+#ifdef UNICODE
+#define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
+#else
+#define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+CreateDirectoryA(
+ LPCSTR lpPathName,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes
+ );
+WINBASEAPI
+BOOL
+WINAPI
+CreateDirectoryW(
+ LPCWSTR lpPathName,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes
+ );
+#ifdef UNICODE
+#define CreateDirectory CreateDirectoryW
+#else
+#define CreateDirectory CreateDirectoryA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+CreateDirectoryExA(
+ LPCSTR lpTemplateDirectory,
+ LPCSTR lpNewDirectory,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes
+ );
+WINBASEAPI
+BOOL
+WINAPI
+CreateDirectoryExW(
+ LPCWSTR lpTemplateDirectory,
+ LPCWSTR lpNewDirectory,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes
+ );
+#ifdef UNICODE
+#define CreateDirectoryEx CreateDirectoryExW
+#else
+#define CreateDirectoryEx CreateDirectoryExA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+RemoveDirectoryA(
+ LPCSTR lpPathName
+ );
+WINBASEAPI
+BOOL
+WINAPI
+RemoveDirectoryW(
+ LPCWSTR lpPathName
+ );
+#ifdef UNICODE
+#define RemoveDirectory RemoveDirectoryW
+#else
+#define RemoveDirectory RemoveDirectoryA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetFullPathNameA(
+ LPCSTR lpFileName,
+ DWORD nBufferLength,
+ LPSTR lpBuffer,
+ LPSTR *lpFilePart
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetFullPathNameW(
+ LPCWSTR lpFileName,
+ DWORD nBufferLength,
+ LPWSTR lpBuffer,
+ LPWSTR *lpFilePart
+ );
+#ifdef UNICODE
+#define GetFullPathName GetFullPathNameW
+#else
+#define GetFullPathName GetFullPathNameA
+#endif // !UNICODE
+
+
+#define DDD_RAW_TARGET_PATH 0x00000001
+#define DDD_REMOVE_DEFINITION 0x00000002
+#define DDD_EXACT_MATCH_ON_REMOVE 0x00000004
+#define DDD_NO_BROADCAST_SYSTEM 0x00000008
+
+WINBASEAPI
+BOOL
+WINAPI
+DefineDosDeviceA(
+ DWORD dwFlags,
+ LPCSTR lpDeviceName,
+ LPCSTR lpTargetPath
+ );
+WINBASEAPI
+BOOL
+WINAPI
+DefineDosDeviceW(
+ DWORD dwFlags,
+ LPCWSTR lpDeviceName,
+ LPCWSTR lpTargetPath
+ );
+#ifdef UNICODE
+#define DefineDosDevice DefineDosDeviceW
+#else
+#define DefineDosDevice DefineDosDeviceA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+QueryDosDeviceA(
+ LPCSTR lpDeviceName,
+ LPSTR lpTargetPath,
+ DWORD ucchMax
+ );
+WINBASEAPI
+DWORD
+WINAPI
+QueryDosDeviceW(
+ LPCWSTR lpDeviceName,
+ LPWSTR lpTargetPath,
+ DWORD ucchMax
+ );
+#ifdef UNICODE
+#define QueryDosDevice QueryDosDeviceW
+#else
+#define QueryDosDevice QueryDosDeviceA
+#endif // !UNICODE
+
+#define EXPAND_LOCAL_DRIVES
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateFileA(
+ LPCSTR lpFileName,
+ DWORD dwDesiredAccess,
+ DWORD dwShareMode,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ DWORD dwCreationDisposition,
+ DWORD dwFlagsAndAttributes,
+ HANDLE hTemplateFile
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+CreateFileW(
+ LPCWSTR lpFileName,
+ DWORD dwDesiredAccess,
+ DWORD dwShareMode,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+ DWORD dwCreationDisposition,
+ DWORD dwFlagsAndAttributes,
+ HANDLE hTemplateFile
+ );
+#ifdef UNICODE
+#define CreateFile CreateFileW
+#else
+#define CreateFile CreateFileA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+SetFileAttributesA(
+ LPCSTR lpFileName,
+ DWORD dwFileAttributes
+ );
+WINBASEAPI
+BOOL
+WINAPI
+SetFileAttributesW(
+ LPCWSTR lpFileName,
+ DWORD dwFileAttributes
+ );
+#ifdef UNICODE
+#define SetFileAttributes SetFileAttributesW
+#else
+#define SetFileAttributes SetFileAttributesA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetFileAttributesA(
+ LPCSTR lpFileName
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetFileAttributesW(
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define GetFileAttributes GetFileAttributesW
+#else
+#define GetFileAttributes GetFileAttributesA
+#endif // !UNICODE
+
+typedef enum _GET_FILEEX_INFO_LEVELS {
+ GetFileExInfoStandard,
+ GetFileExMaxInfoLevel
+} GET_FILEEX_INFO_LEVELS;
+
+WINBASEAPI
+BOOL
+WINAPI
+GetFileAttributesExA(
+ LPCSTR lpFileName,
+ GET_FILEEX_INFO_LEVELS fInfoLevelId,
+ LPVOID lpFileInformation
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetFileAttributesExW(
+ LPCWSTR lpFileName,
+ GET_FILEEX_INFO_LEVELS fInfoLevelId,
+ LPVOID lpFileInformation
+ );
+#ifdef UNICODE
+#define GetFileAttributesEx GetFileAttributesExW
+#else
+#define GetFileAttributesEx GetFileAttributesExA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+GetCompressedFileSizeA(
+ LPCSTR lpFileName,
+ LPDWORD lpFileSizeHigh
+ );
+WINBASEAPI
+DWORD
+WINAPI
+GetCompressedFileSizeW(
+ LPCWSTR lpFileName,
+ LPDWORD lpFileSizeHigh
+ );
+#ifdef UNICODE
+#define GetCompressedFileSize GetCompressedFileSizeW
+#else
+#define GetCompressedFileSize GetCompressedFileSizeA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+DeleteFileA(
+ LPCSTR lpFileName
+ );
+WINBASEAPI
+BOOL
+WINAPI
+DeleteFileW(
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define DeleteFile DeleteFileW
+#else
+#define DeleteFile DeleteFileA
+#endif // !UNICODE
+
+#if(_WIN32_WINNT >= 0x0400)
+typedef enum _FINDEX_INFO_LEVELS {
+ FindExInfoStandard,
+ FindExInfoMaxInfoLevel
+} FINDEX_INFO_LEVELS;
+
+typedef enum _FINDEX_SEARCH_OPS {
+ FindExSearchNameMatch,
+ FindExSearchLimitToDirectories,
+ FindExSearchLimitToDevices,
+ FindExSearchMaxSearchOp
+} FINDEX_SEARCH_OPS;
+
+#define FIND_FIRST_EX_CASE_SENSITIVE 0x00000001
+
+WINBASEAPI
+HANDLE
+WINAPI
+FindFirstFileExA(
+ LPCSTR lpFileName,
+ FINDEX_INFO_LEVELS fInfoLevelId,
+ LPVOID lpFindFileData,
+ FINDEX_SEARCH_OPS fSearchOp,
+ LPVOID lpSearchFilter,
+ DWORD dwAdditionalFlags
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+FindFirstFileExW(
+ LPCWSTR lpFileName,
+ FINDEX_INFO_LEVELS fInfoLevelId,
+ LPVOID lpFindFileData,
+ FINDEX_SEARCH_OPS fSearchOp,
+ LPVOID lpSearchFilter,
+ DWORD dwAdditionalFlags
+ );
+#ifdef UNICODE
+#define FindFirstFileEx FindFirstFileExW
+#else
+#define FindFirstFileEx FindFirstFileExA
+#endif // !UNICODE
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+HANDLE
+WINAPI
+FindFirstFileA(
+ LPCSTR lpFileName,
+ LPWIN32_FIND_DATAA lpFindFileData
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+FindFirstFileW(
+ LPCWSTR lpFileName,
+ LPWIN32_FIND_DATAW lpFindFileData
+ );
+#ifdef UNICODE
+#define FindFirstFile FindFirstFileW
+#else
+#define FindFirstFile FindFirstFileA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+FindNextFileA(
+ HANDLE hFindFile,
+ LPWIN32_FIND_DATAA lpFindFileData
+ );
+WINBASEAPI
+BOOL
+WINAPI
+FindNextFileW(
+ HANDLE hFindFile,
+ LPWIN32_FIND_DATAW lpFindFileData
+ );
+#ifdef UNICODE
+#define FindNextFile FindNextFileW
+#else
+#define FindNextFile FindNextFileA
+#endif // !UNICODE
+
+WINBASEAPI
+DWORD
+WINAPI
+SearchPathA(
+ LPCSTR lpPath,
+ LPCSTR lpFileName,
+ LPCSTR lpExtension,
+ DWORD nBufferLength,
+ LPSTR lpBuffer,
+ LPSTR *lpFilePart
+ );
+WINBASEAPI
+DWORD
+WINAPI
+SearchPathW(
+ LPCWSTR lpPath,
+ LPCWSTR lpFileName,
+ LPCWSTR lpExtension,
+ DWORD nBufferLength,
+ LPWSTR lpBuffer,
+ LPWSTR *lpFilePart
+ );
+#ifdef UNICODE
+#define SearchPath SearchPathW
+#else
+#define SearchPath SearchPathA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+CopyFileA(
+ LPCSTR lpExistingFileName,
+ LPCSTR lpNewFileName,
+ BOOL bFailIfExists
+ );
+WINBASEAPI
+BOOL
+WINAPI
+CopyFileW(
+ LPCWSTR lpExistingFileName,
+ LPCWSTR lpNewFileName,
+ BOOL bFailIfExists
+ );
+#ifdef UNICODE
+#define CopyFile CopyFileW
+#else
+#define CopyFile CopyFileA
+#endif // !UNICODE
+
+#if(_WIN32_WINNT >= 0x0400)
+typedef
+DWORD
+(WINAPI *LPPROGRESS_ROUTINE)(
+ LARGE_INTEGER TotalFileSize,
+ LARGE_INTEGER TotalBytesTransferred,
+ LARGE_INTEGER StreamSize,
+ LARGE_INTEGER StreamBytesTransferred,
+ DWORD dwStreamNumber,
+ DWORD dwCallbackReason,
+ HANDLE hSourceFile,
+ HANDLE hDestinationFile,
+ LPVOID lpData OPTIONAL
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+CopyFileExA(
+ LPCSTR lpExistingFileName,
+ LPCSTR lpNewFileName,
+ LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL,
+ LPVOID lpData OPTIONAL,
+ LPBOOL pbCancel OPTIONAL,
+ DWORD dwCopyFlags
+ );
+WINBASEAPI
+BOOL
+WINAPI
+CopyFileExW(
+ LPCWSTR lpExistingFileName,
+ LPCWSTR lpNewFileName,
+ LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL,
+ LPVOID lpData OPTIONAL,
+ LPBOOL pbCancel OPTIONAL,
+ DWORD dwCopyFlags
+ );
+#ifdef UNICODE
+#define CopyFileEx CopyFileExW
+#else
+#define CopyFileEx CopyFileExA
+#endif // !UNICODE
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+BOOL
+WINAPI
+MoveFileA(
+ LPCSTR lpExistingFileName,
+ LPCSTR lpNewFileName
+ );
+WINBASEAPI
+BOOL
+WINAPI
+MoveFileW(
+ LPCWSTR lpExistingFileName,
+ LPCWSTR lpNewFileName
+ );
+#ifdef UNICODE
+#define MoveFile MoveFileW
+#else
+#define MoveFile MoveFileA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+MoveFileExA(
+ LPCSTR lpExistingFileName,
+ LPCSTR lpNewFileName,
+ DWORD dwFlags
+ );
+WINBASEAPI
+BOOL
+WINAPI
+MoveFileExW(
+ LPCWSTR lpExistingFileName,
+ LPCWSTR lpNewFileName,
+ DWORD dwFlags
+ );
+#ifdef UNICODE
+#define MoveFileEx MoveFileExW
+#else
+#define MoveFileEx MoveFileExA
+#endif // !UNICODE
+
+#define MOVEFILE_REPLACE_EXISTING 0x00000001
+#define MOVEFILE_COPY_ALLOWED 0x00000002
+#define MOVEFILE_DELAY_UNTIL_REBOOT 0x00000004
+#define MOVEFILE_WRITE_THROUGH 0x00000008
+
+WINBASEAPI
+HANDLE
+WINAPI
+CreateNamedPipeA(
+ LPCSTR lpName,
+ DWORD dwOpenMode,
+ DWORD dwPipeMode,
+ DWORD nMaxInstances,
+ DWORD nOutBufferSize,
+ DWORD nInBufferSize,
+ DWORD nDefaultTimeOut,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+CreateNamedPipeW(
+ LPCWSTR lpName,
+ DWORD dwOpenMode,
+ DWORD dwPipeMode,
+ DWORD nMaxInstances,
+ DWORD nOutBufferSize,
+ DWORD nInBufferSize,
+ DWORD nDefaultTimeOut,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes
+ );
+#ifdef UNICODE
+#define CreateNamedPipe CreateNamedPipeW
+#else
+#define CreateNamedPipe CreateNamedPipeA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+GetNamedPipeHandleStateA(
+ HANDLE hNamedPipe,
+ LPDWORD lpState,
+ LPDWORD lpCurInstances,
+ LPDWORD lpMaxCollectionCount,
+ LPDWORD lpCollectDataTimeout,
+ LPSTR lpUserName,
+ DWORD nMaxUserNameSize
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetNamedPipeHandleStateW(
+ HANDLE hNamedPipe,
+ LPDWORD lpState,
+ LPDWORD lpCurInstances,
+ LPDWORD lpMaxCollectionCount,
+ LPDWORD lpCollectDataTimeout,
+ LPWSTR lpUserName,
+ DWORD nMaxUserNameSize
+ );
+#ifdef UNICODE
+#define GetNamedPipeHandleState GetNamedPipeHandleStateW
+#else
+#define GetNamedPipeHandleState GetNamedPipeHandleStateA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+CallNamedPipeA(
+ LPCSTR lpNamedPipeName,
+ LPVOID lpInBuffer,
+ DWORD nInBufferSize,
+ LPVOID lpOutBuffer,
+ DWORD nOutBufferSize,
+ LPDWORD lpBytesRead,
+ DWORD nTimeOut
+ );
+WINBASEAPI
+BOOL
+WINAPI
+CallNamedPipeW(
+ LPCWSTR lpNamedPipeName,
+ LPVOID lpInBuffer,
+ DWORD nInBufferSize,
+ LPVOID lpOutBuffer,
+ DWORD nOutBufferSize,
+ LPDWORD lpBytesRead,
+ DWORD nTimeOut
+ );
+#ifdef UNICODE
+#define CallNamedPipe CallNamedPipeW
+#else
+#define CallNamedPipe CallNamedPipeA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+WaitNamedPipeA(
+ LPCSTR lpNamedPipeName,
+ DWORD nTimeOut
+ );
+WINBASEAPI
+BOOL
+WINAPI
+WaitNamedPipeW(
+ LPCWSTR lpNamedPipeName,
+ DWORD nTimeOut
+ );
+#ifdef UNICODE
+#define WaitNamedPipe WaitNamedPipeW
+#else
+#define WaitNamedPipe WaitNamedPipeA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+SetVolumeLabelA(
+ LPCSTR lpRootPathName,
+ LPCSTR lpVolumeName
+ );
+WINBASEAPI
+BOOL
+WINAPI
+SetVolumeLabelW(
+ LPCWSTR lpRootPathName,
+ LPCWSTR lpVolumeName
+ );
+#ifdef UNICODE
+#define SetVolumeLabel SetVolumeLabelW
+#else
+#define SetVolumeLabel SetVolumeLabelA
+#endif // !UNICODE
+
+WINBASEAPI
+VOID
+WINAPI
+SetFileApisToOEM( VOID );
+
+WINBASEAPI
+VOID
+WINAPI
+SetFileApisToANSI( VOID );
+
+WINBASEAPI
+BOOL
+WINAPI
+AreFileApisANSI( VOID );
+
+WINBASEAPI
+BOOL
+WINAPI
+GetVolumeInformationA(
+ LPCSTR lpRootPathName,
+ LPSTR lpVolumeNameBuffer,
+ DWORD nVolumeNameSize,
+ LPDWORD lpVolumeSerialNumber,
+ LPDWORD lpMaximumComponentLength,
+ LPDWORD lpFileSystemFlags,
+ LPSTR lpFileSystemNameBuffer,
+ DWORD nFileSystemNameSize
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetVolumeInformationW(
+ LPCWSTR lpRootPathName,
+ LPWSTR lpVolumeNameBuffer,
+ DWORD nVolumeNameSize,
+ LPDWORD lpVolumeSerialNumber,
+ LPDWORD lpMaximumComponentLength,
+ LPDWORD lpFileSystemFlags,
+ LPWSTR lpFileSystemNameBuffer,
+ DWORD nFileSystemNameSize
+ );
+#ifdef UNICODE
+#define GetVolumeInformation GetVolumeInformationW
+#else
+#define GetVolumeInformation GetVolumeInformationA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+CancelIo(
+ HANDLE hFile
+ );
+
+//
+// Event logging APIs
+//
+
+WINADVAPI
+BOOL
+WINAPI
+ClearEventLogA (
+ HANDLE hEventLog,
+ LPCSTR lpBackupFileName
+ );
+WINADVAPI
+BOOL
+WINAPI
+ClearEventLogW (
+ HANDLE hEventLog,
+ LPCWSTR lpBackupFileName
+ );
+#ifdef UNICODE
+#define ClearEventLog ClearEventLogW
+#else
+#define ClearEventLog ClearEventLogA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+BackupEventLogA (
+ HANDLE hEventLog,
+ LPCSTR lpBackupFileName
+ );
+WINADVAPI
+BOOL
+WINAPI
+BackupEventLogW (
+ HANDLE hEventLog,
+ LPCWSTR lpBackupFileName
+ );
+#ifdef UNICODE
+#define BackupEventLog BackupEventLogW
+#else
+#define BackupEventLog BackupEventLogA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+CloseEventLog (
+ HANDLE hEventLog
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+DeregisterEventSource (
+ HANDLE hEventLog
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+NotifyChangeEventLog(
+ HANDLE hEventLog,
+ HANDLE hEvent
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+GetNumberOfEventLogRecords (
+ HANDLE hEventLog,
+ PDWORD NumberOfRecords
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+GetOldestEventLogRecord (
+ HANDLE hEventLog,
+ PDWORD OldestRecord
+ );
+
+WINADVAPI
+HANDLE
+WINAPI
+OpenEventLogA (
+ LPCSTR lpUNCServerName,
+ LPCSTR lpSourceName
+ );
+WINADVAPI
+HANDLE
+WINAPI
+OpenEventLogW (
+ LPCWSTR lpUNCServerName,
+ LPCWSTR lpSourceName
+ );
+#ifdef UNICODE
+#define OpenEventLog OpenEventLogW
+#else
+#define OpenEventLog OpenEventLogA
+#endif // !UNICODE
+
+WINADVAPI
+HANDLE
+WINAPI
+RegisterEventSourceA (
+ LPCSTR lpUNCServerName,
+ LPCSTR lpSourceName
+ );
+WINADVAPI
+HANDLE
+WINAPI
+RegisterEventSourceW (
+ LPCWSTR lpUNCServerName,
+ LPCWSTR lpSourceName
+ );
+#ifdef UNICODE
+#define RegisterEventSource RegisterEventSourceW
+#else
+#define RegisterEventSource RegisterEventSourceA
+#endif // !UNICODE
+
+WINADVAPI
+HANDLE
+WINAPI
+OpenBackupEventLogA (
+ LPCSTR lpUNCServerName,
+ LPCSTR lpFileName
+ );
+WINADVAPI
+HANDLE
+WINAPI
+OpenBackupEventLogW (
+ LPCWSTR lpUNCServerName,
+ LPCWSTR lpFileName
+ );
+#ifdef UNICODE
+#define OpenBackupEventLog OpenBackupEventLogW
+#else
+#define OpenBackupEventLog OpenBackupEventLogA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+ReadEventLogA (
+ HANDLE hEventLog,
+ DWORD dwReadFlags,
+ DWORD dwRecordOffset,
+ LPVOID lpBuffer,
+ DWORD nNumberOfBytesToRead,
+ DWORD *pnBytesRead,
+ DWORD *pnMinNumberOfBytesNeeded
+ );
+WINADVAPI
+BOOL
+WINAPI
+ReadEventLogW (
+ HANDLE hEventLog,
+ DWORD dwReadFlags,
+ DWORD dwRecordOffset,
+ LPVOID lpBuffer,
+ DWORD nNumberOfBytesToRead,
+ DWORD *pnBytesRead,
+ DWORD *pnMinNumberOfBytesNeeded
+ );
+#ifdef UNICODE
+#define ReadEventLog ReadEventLogW
+#else
+#define ReadEventLog ReadEventLogA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+ReportEventA (
+ HANDLE hEventLog,
+ WORD wType,
+ WORD wCategory,
+ DWORD dwEventID,
+ PSID lpUserSid,
+ WORD wNumStrings,
+ DWORD dwDataSize,
+ LPCSTR *lpStrings,
+ LPVOID lpRawData
+ );
+WINADVAPI
+BOOL
+WINAPI
+ReportEventW (
+ HANDLE hEventLog,
+ WORD wType,
+ WORD wCategory,
+ DWORD dwEventID,
+ PSID lpUserSid,
+ WORD wNumStrings,
+ DWORD dwDataSize,
+ LPCWSTR *lpStrings,
+ LPVOID lpRawData
+ );
+#ifdef UNICODE
+#define ReportEvent ReportEventW
+#else
+#define ReportEvent ReportEventA
+#endif // !UNICODE
+
+//
+//
+// Security APIs
+//
+
+
+WINADVAPI
+BOOL
+WINAPI
+DuplicateToken(
+ HANDLE ExistingTokenHandle,
+ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
+ PHANDLE DuplicateTokenHandle
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+GetKernelObjectSecurity (
+ HANDLE Handle,
+ SECURITY_INFORMATION RequestedInformation,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ DWORD nLength,
+ LPDWORD lpnLengthNeeded
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+ImpersonateNamedPipeClient(
+ HANDLE hNamedPipe
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+ImpersonateSelf(
+ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+RevertToSelf (
+ VOID
+ );
+
+WINADVAPI
+BOOL
+APIENTRY
+SetThreadToken (
+ PHANDLE Thread,
+ HANDLE Token
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+AccessCheck (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ HANDLE ClientToken,
+ DWORD DesiredAccess,
+ PGENERIC_MAPPING GenericMapping,
+ PPRIVILEGE_SET PrivilegeSet,
+ LPDWORD PrivilegeSetLength,
+ LPDWORD GrantedAccess,
+ LPBOOL AccessStatus
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+OpenProcessToken (
+ HANDLE ProcessHandle,
+ DWORD DesiredAccess,
+ PHANDLE TokenHandle
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+OpenThreadToken (
+ HANDLE ThreadHandle,
+ DWORD DesiredAccess,
+ BOOL OpenAsSelf,
+ PHANDLE TokenHandle
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetTokenInformation (
+ HANDLE TokenHandle,
+ TOKEN_INFORMATION_CLASS TokenInformationClass,
+ LPVOID TokenInformation,
+ DWORD TokenInformationLength,
+ PDWORD ReturnLength
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetTokenInformation (
+ HANDLE TokenHandle,
+ TOKEN_INFORMATION_CLASS TokenInformationClass,
+ LPVOID TokenInformation,
+ DWORD TokenInformationLength
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AdjustTokenPrivileges (
+ HANDLE TokenHandle,
+ BOOL DisableAllPrivileges,
+ PTOKEN_PRIVILEGES NewState,
+ DWORD BufferLength,
+ PTOKEN_PRIVILEGES PreviousState,
+ PDWORD ReturnLength
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AdjustTokenGroups (
+ HANDLE TokenHandle,
+ BOOL ResetToDefault,
+ PTOKEN_GROUPS NewState,
+ DWORD BufferLength,
+ PTOKEN_GROUPS PreviousState,
+ PDWORD ReturnLength
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+PrivilegeCheck (
+ HANDLE ClientToken,
+ PPRIVILEGE_SET RequiredPrivileges,
+ LPBOOL pfResult
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AccessCheckAndAuditAlarmA (
+ LPCSTR SubsystemName,
+ LPVOID HandleId,
+ LPSTR ObjectTypeName,
+ LPSTR ObjectName,
+ PSECURITY_DESCRIPTOR SecurityDescriptor,
+ DWORD DesiredAccess,
+ PGENERIC_MAPPING GenericMapping,
+ BOOL ObjectCreation,
+ LPDWORD GrantedAccess,
+ LPBOOL AccessStatus,
+ LPBOOL pfGenerateOnClose
+ );
+WINADVAPI
+BOOL
+WINAPI
+AccessCheckAndAuditAlarmW (
+ LPCWSTR SubsystemName,
+ LPVOID HandleId,
+ LPWSTR ObjectTypeName,
+ LPWSTR ObjectName,
+ PSECURITY_DESCRIPTOR SecurityDescriptor,
+ DWORD DesiredAccess,
+ PGENERIC_MAPPING GenericMapping,
+ BOOL ObjectCreation,
+ LPDWORD GrantedAccess,
+ LPBOOL AccessStatus,
+ LPBOOL pfGenerateOnClose
+ );
+#ifdef UNICODE
+#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
+#else
+#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
+#endif // !UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+ObjectOpenAuditAlarmA (
+ LPCSTR SubsystemName,
+ LPVOID HandleId,
+ LPSTR ObjectTypeName,
+ LPSTR ObjectName,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ HANDLE ClientToken,
+ DWORD DesiredAccess,
+ DWORD GrantedAccess,
+ PPRIVILEGE_SET Privileges,
+ BOOL ObjectCreation,
+ BOOL AccessGranted,
+ LPBOOL GenerateOnClose
+ );
+WINADVAPI
+BOOL
+WINAPI
+ObjectOpenAuditAlarmW (
+ LPCWSTR SubsystemName,
+ LPVOID HandleId,
+ LPWSTR ObjectTypeName,
+ LPWSTR ObjectName,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ HANDLE ClientToken,
+ DWORD DesiredAccess,
+ DWORD GrantedAccess,
+ PPRIVILEGE_SET Privileges,
+ BOOL ObjectCreation,
+ BOOL AccessGranted,
+ LPBOOL GenerateOnClose
+ );
+#ifdef UNICODE
+#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
+#else
+#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
+#endif // !UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+ObjectPrivilegeAuditAlarmA (
+ LPCSTR SubsystemName,
+ LPVOID HandleId,
+ HANDLE ClientToken,
+ DWORD DesiredAccess,
+ PPRIVILEGE_SET Privileges,
+ BOOL AccessGranted
+ );
+WINADVAPI
+BOOL
+WINAPI
+ObjectPrivilegeAuditAlarmW (
+ LPCWSTR SubsystemName,
+ LPVOID HandleId,
+ HANDLE ClientToken,
+ DWORD DesiredAccess,
+ PPRIVILEGE_SET Privileges,
+ BOOL AccessGranted
+ );
+#ifdef UNICODE
+#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
+#else
+#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
+#endif // !UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+ObjectCloseAuditAlarmA (
+ LPCSTR SubsystemName,
+ LPVOID HandleId,
+ BOOL GenerateOnClose
+ );
+WINADVAPI
+BOOL
+WINAPI
+ObjectCloseAuditAlarmW (
+ LPCWSTR SubsystemName,
+ LPVOID HandleId,
+ BOOL GenerateOnClose
+ );
+#ifdef UNICODE
+#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
+#else
+#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
+#endif // !UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+ObjectDeleteAuditAlarmA (
+ LPCSTR SubsystemName,
+ LPVOID HandleId,
+ BOOL GenerateOnClose
+ );
+WINADVAPI
+BOOL
+WINAPI
+ObjectDeleteAuditAlarmW (
+ LPCWSTR SubsystemName,
+ LPVOID HandleId,
+ BOOL GenerateOnClose
+ );
+#ifdef UNICODE
+#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
+#else
+#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
+#endif // !UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+PrivilegedServiceAuditAlarmA (
+ LPCSTR SubsystemName,
+ LPCSTR ServiceName,
+ HANDLE ClientToken,
+ PPRIVILEGE_SET Privileges,
+ BOOL AccessGranted
+ );
+WINADVAPI
+BOOL
+WINAPI
+PrivilegedServiceAuditAlarmW (
+ LPCWSTR SubsystemName,
+ LPCWSTR ServiceName,
+ HANDLE ClientToken,
+ PPRIVILEGE_SET Privileges,
+ BOOL AccessGranted
+ );
+#ifdef UNICODE
+#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
+#else
+#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
+#endif // !UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+IsValidSid (
+ PSID pSid
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+EqualSid (
+ PSID pSid1,
+ PSID pSid2
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+EqualPrefixSid (
+ PSID pSid1,
+ PSID pSid2
+ );
+
+
+WINADVAPI
+DWORD
+WINAPI
+GetSidLengthRequired (
+ UCHAR nSubAuthorityCount
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AllocateAndInitializeSid (
+ PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
+ BYTE nSubAuthorityCount,
+ DWORD nSubAuthority0,
+ DWORD nSubAuthority1,
+ DWORD nSubAuthority2,
+ DWORD nSubAuthority3,
+ DWORD nSubAuthority4,
+ DWORD nSubAuthority5,
+ DWORD nSubAuthority6,
+ DWORD nSubAuthority7,
+ PSID *pSid
+ );
+
+WINADVAPI
+PVOID
+WINAPI
+FreeSid(
+ PSID pSid
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+InitializeSid (
+ PSID Sid,
+ PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
+ BYTE nSubAuthorityCount
+ );
+
+
+WINADVAPI
+PSID_IDENTIFIER_AUTHORITY
+WINAPI
+GetSidIdentifierAuthority (
+ PSID pSid
+ );
+
+
+WINADVAPI
+PDWORD
+WINAPI
+GetSidSubAuthority (
+ PSID pSid,
+ DWORD nSubAuthority
+ );
+
+
+WINADVAPI
+PUCHAR
+WINAPI
+GetSidSubAuthorityCount (
+ PSID pSid
+ );
+
+
+WINADVAPI
+DWORD
+WINAPI
+GetLengthSid (
+ PSID pSid
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+CopySid (
+ DWORD nDestinationSidLength,
+ PSID pDestinationSid,
+ PSID pSourceSid
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AreAllAccessesGranted (
+ DWORD GrantedAccess,
+ DWORD DesiredAccess
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AreAnyAccessesGranted (
+ DWORD GrantedAccess,
+ DWORD DesiredAccess
+ );
+
+
+WINADVAPI
+VOID
+WINAPI
+MapGenericMask (
+ PDWORD AccessMask,
+ PGENERIC_MAPPING GenericMapping
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+IsValidAcl (
+ PACL pAcl
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+InitializeAcl (
+ PACL pAcl,
+ DWORD nAclLength,
+ DWORD dwAclRevision
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetAclInformation (
+ PACL pAcl,
+ LPVOID pAclInformation,
+ DWORD nAclInformationLength,
+ ACL_INFORMATION_CLASS dwAclInformationClass
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetAclInformation (
+ PACL pAcl,
+ LPVOID pAclInformation,
+ DWORD nAclInformationLength,
+ ACL_INFORMATION_CLASS dwAclInformationClass
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AddAce (
+ PACL pAcl,
+ DWORD dwAceRevision,
+ DWORD dwStartingAceIndex,
+ LPVOID pAceList,
+ DWORD nAceListLength
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+DeleteAce (
+ PACL pAcl,
+ DWORD dwAceIndex
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetAce (
+ PACL pAcl,
+ DWORD dwAceIndex,
+ LPVOID *pAce
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AddAccessAllowedAce (
+ PACL pAcl,
+ DWORD dwAceRevision,
+ DWORD AccessMask,
+ PSID pSid
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AddAccessDeniedAce (
+ PACL pAcl,
+ DWORD dwAceRevision,
+ DWORD AccessMask,
+ PSID pSid
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+AddAuditAccessAce(
+ PACL pAcl,
+ DWORD dwAceRevision,
+ DWORD dwAccessMask,
+ PSID pSid,
+ BOOL bAuditSuccess,
+ BOOL bAuditFailure
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+FindFirstFreeAce (
+ PACL pAcl,
+ LPVOID *pAce
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+InitializeSecurityDescriptor (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ DWORD dwRevision
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+IsValidSecurityDescriptor (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor
+ );
+
+
+WINADVAPI
+DWORD
+WINAPI
+GetSecurityDescriptorLength (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetSecurityDescriptorControl (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ PSECURITY_DESCRIPTOR_CONTROL pControl,
+ LPDWORD lpdwRevision
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetSecurityDescriptorDacl (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ BOOL bDaclPresent,
+ PACL pDacl,
+ BOOL bDaclDefaulted
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetSecurityDescriptorDacl (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ LPBOOL lpbDaclPresent,
+ PACL *pDacl,
+ LPBOOL lpbDaclDefaulted
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetSecurityDescriptorSacl (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ BOOL bSaclPresent,
+ PACL pSacl,
+ BOOL bSaclDefaulted
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetSecurityDescriptorSacl (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ LPBOOL lpbSaclPresent,
+ PACL *pSacl,
+ LPBOOL lpbSaclDefaulted
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetSecurityDescriptorOwner (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ PSID pOwner,
+ BOOL bOwnerDefaulted
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetSecurityDescriptorOwner (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ PSID *pOwner,
+ LPBOOL lpbOwnerDefaulted
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetSecurityDescriptorGroup (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ PSID pGroup,
+ BOOL bGroupDefaulted
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetSecurityDescriptorGroup (
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ PSID *pGroup,
+ LPBOOL lpbGroupDefaulted
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+CreatePrivateObjectSecurity (
+ PSECURITY_DESCRIPTOR ParentDescriptor,
+ PSECURITY_DESCRIPTOR CreatorDescriptor,
+ PSECURITY_DESCRIPTOR * NewDescriptor,
+ BOOL IsDirectoryObject,
+ HANDLE Token,
+ PGENERIC_MAPPING GenericMapping
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetPrivateObjectSecurity (
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR ModificationDescriptor,
+ PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
+ PGENERIC_MAPPING GenericMapping,
+ HANDLE Token
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetPrivateObjectSecurity (
+ PSECURITY_DESCRIPTOR ObjectDescriptor,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR ResultantDescriptor,
+ DWORD DescriptorLength,
+ PDWORD ReturnLength
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+DestroyPrivateObjectSecurity (
+ PSECURITY_DESCRIPTOR * ObjectDescriptor
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+MakeSelfRelativeSD (
+ PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
+ PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
+ LPDWORD lpdwBufferLength
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+MakeAbsoluteSD (
+ PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
+ PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
+ LPDWORD lpdwAbsoluteSecurityDescriptorSize,
+ PACL pDacl,
+ LPDWORD lpdwDaclSize,
+ PACL pSacl,
+ LPDWORD lpdwSaclSize,
+ PSID pOwner,
+ LPDWORD lpdwOwnerSize,
+ PSID pPrimaryGroup,
+ LPDWORD lpdwPrimaryGroupSize
+ );
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetFileSecurityA (
+ LPCSTR lpFileName,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor
+ );
+WINADVAPI
+BOOL
+WINAPI
+SetFileSecurityW (
+ LPCWSTR lpFileName,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor
+ );
+#ifdef UNICODE
+#define SetFileSecurity SetFileSecurityW
+#else
+#define SetFileSecurity SetFileSecurityA
+#endif // !UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetFileSecurityA (
+ LPCSTR lpFileName,
+ SECURITY_INFORMATION RequestedInformation,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ DWORD nLength,
+ LPDWORD lpnLengthNeeded
+ );
+WINADVAPI
+BOOL
+WINAPI
+GetFileSecurityW (
+ LPCWSTR lpFileName,
+ SECURITY_INFORMATION RequestedInformation,
+ PSECURITY_DESCRIPTOR pSecurityDescriptor,
+ DWORD nLength,
+ LPDWORD lpnLengthNeeded
+ );
+#ifdef UNICODE
+#define GetFileSecurity GetFileSecurityW
+#else
+#define GetFileSecurity GetFileSecurityA
+#endif // !UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+SetKernelObjectSecurity (
+ HANDLE Handle,
+ SECURITY_INFORMATION SecurityInformation,
+ PSECURITY_DESCRIPTOR SecurityDescriptor
+ );
+
+
+
+WINBASEAPI
+HANDLE
+WINAPI
+FindFirstChangeNotificationA(
+ LPCSTR lpPathName,
+ BOOL bWatchSubtree,
+ DWORD dwNotifyFilter
+ );
+WINBASEAPI
+HANDLE
+WINAPI
+FindFirstChangeNotificationW(
+ LPCWSTR lpPathName,
+ BOOL bWatchSubtree,
+ DWORD dwNotifyFilter
+ );
+#ifdef UNICODE
+#define FindFirstChangeNotification FindFirstChangeNotificationW
+#else
+#define FindFirstChangeNotification FindFirstChangeNotificationA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+FindNextChangeNotification(
+ HANDLE hChangeHandle
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+FindCloseChangeNotification(
+ HANDLE hChangeHandle
+ );
+
+#if(_WIN32_WINNT >= 0x0400)
+WINBASEAPI
+BOOL
+WINAPI
+ReadDirectoryChangesW(
+ HANDLE hDirectory,
+ LPVOID lpBuffer,
+ DWORD nBufferLength,
+ BOOL bWatchSubtree,
+ DWORD dwNotifyFilter,
+ LPDWORD lpBytesReturned,
+ LPOVERLAPPED lpOverlapped,
+ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
+ );
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+WINBASEAPI
+BOOL
+WINAPI
+VirtualLock(
+ LPVOID lpAddress,
+ DWORD dwSize
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+VirtualUnlock(
+ LPVOID lpAddress,
+ DWORD dwSize
+ );
+
+WINBASEAPI
+LPVOID
+WINAPI
+MapViewOfFileEx(
+ HANDLE hFileMappingObject,
+ DWORD dwDesiredAccess,
+ DWORD dwFileOffsetHigh,
+ DWORD dwFileOffsetLow,
+ DWORD dwNumberOfBytesToMap,
+ LPVOID lpBaseAddress
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+SetPriorityClass(
+ HANDLE hProcess,
+ DWORD dwPriorityClass
+ );
+
+WINBASEAPI
+DWORD
+WINAPI
+GetPriorityClass(
+ HANDLE hProcess
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+IsBadReadPtr(
+ CONST VOID *lp,
+ UINT ucb
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+IsBadWritePtr(
+ LPVOID lp,
+ UINT ucb
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+IsBadHugeReadPtr(
+ CONST VOID *lp,
+ UINT ucb
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+IsBadHugeWritePtr(
+ LPVOID lp,
+ UINT ucb
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+IsBadCodePtr(
+ FARPROC lpfn
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+IsBadStringPtrA(
+ LPCSTR lpsz,
+ UINT ucchMax
+ );
+WINBASEAPI
+BOOL
+WINAPI
+IsBadStringPtrW(
+ LPCWSTR lpsz,
+ UINT ucchMax
+ );
+#ifdef UNICODE
+#define IsBadStringPtr IsBadStringPtrW
+#else
+#define IsBadStringPtr IsBadStringPtrA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+LookupAccountSidA(
+ LPCSTR lpSystemName,
+ PSID Sid,
+ LPSTR Name,
+ LPDWORD cbName,
+ LPSTR ReferencedDomainName,
+ LPDWORD cbReferencedDomainName,
+ PSID_NAME_USE peUse
+ );
+WINADVAPI
+BOOL
+WINAPI
+LookupAccountSidW(
+ LPCWSTR lpSystemName,
+ PSID Sid,
+ LPWSTR Name,
+ LPDWORD cbName,
+ LPWSTR ReferencedDomainName,
+ LPDWORD cbReferencedDomainName,
+ PSID_NAME_USE peUse
+ );
+#ifdef UNICODE
+#define LookupAccountSid LookupAccountSidW
+#else
+#define LookupAccountSid LookupAccountSidA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+LookupAccountNameA(
+ LPCSTR lpSystemName,
+ LPCSTR lpAccountName,
+ PSID Sid,
+ LPDWORD cbSid,
+ LPSTR ReferencedDomainName,
+ LPDWORD cbReferencedDomainName,
+ PSID_NAME_USE peUse
+ );
+WINADVAPI
+BOOL
+WINAPI
+LookupAccountNameW(
+ LPCWSTR lpSystemName,
+ LPCWSTR lpAccountName,
+ PSID Sid,
+ LPDWORD cbSid,
+ LPWSTR ReferencedDomainName,
+ LPDWORD cbReferencedDomainName,
+ PSID_NAME_USE peUse
+ );
+#ifdef UNICODE
+#define LookupAccountName LookupAccountNameW
+#else
+#define LookupAccountName LookupAccountNameA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+LookupPrivilegeValueA(
+ LPCSTR lpSystemName,
+ LPCSTR lpName,
+ PLUID lpLuid
+ );
+WINADVAPI
+BOOL
+WINAPI
+LookupPrivilegeValueW(
+ LPCWSTR lpSystemName,
+ LPCWSTR lpName,
+ PLUID lpLuid
+ );
+#ifdef UNICODE
+#define LookupPrivilegeValue LookupPrivilegeValueW
+#else
+#define LookupPrivilegeValue LookupPrivilegeValueA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+LookupPrivilegeNameA(
+ LPCSTR lpSystemName,
+ PLUID lpLuid,
+ LPSTR lpName,
+ LPDWORD cbName
+ );
+WINADVAPI
+BOOL
+WINAPI
+LookupPrivilegeNameW(
+ LPCWSTR lpSystemName,
+ PLUID lpLuid,
+ LPWSTR lpName,
+ LPDWORD cbName
+ );
+#ifdef UNICODE
+#define LookupPrivilegeName LookupPrivilegeNameW
+#else
+#define LookupPrivilegeName LookupPrivilegeNameA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+LookupPrivilegeDisplayNameA(
+ LPCSTR lpSystemName,
+ LPCSTR lpName,
+ LPSTR lpDisplayName,
+ LPDWORD cbDisplayName,
+ LPDWORD lpLanguageId
+ );
+WINADVAPI
+BOOL
+WINAPI
+LookupPrivilegeDisplayNameW(
+ LPCWSTR lpSystemName,
+ LPCWSTR lpName,
+ LPWSTR lpDisplayName,
+ LPDWORD cbDisplayName,
+ LPDWORD lpLanguageId
+ );
+#ifdef UNICODE
+#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
+#else
+#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+AllocateLocallyUniqueId(
+ PLUID Luid
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+BuildCommDCBA(
+ LPCSTR lpDef,
+ LPDCB lpDCB
+ );
+WINBASEAPI
+BOOL
+WINAPI
+BuildCommDCBW(
+ LPCWSTR lpDef,
+ LPDCB lpDCB
+ );
+#ifdef UNICODE
+#define BuildCommDCB BuildCommDCBW
+#else
+#define BuildCommDCB BuildCommDCBA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+BuildCommDCBAndTimeoutsA(
+ LPCSTR lpDef,
+ LPDCB lpDCB,
+ LPCOMMTIMEOUTS lpCommTimeouts
+ );
+WINBASEAPI
+BOOL
+WINAPI
+BuildCommDCBAndTimeoutsW(
+ LPCWSTR lpDef,
+ LPDCB lpDCB,
+ LPCOMMTIMEOUTS lpCommTimeouts
+ );
+#ifdef UNICODE
+#define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW
+#else
+#define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+CommConfigDialogA(
+ LPCSTR lpszName,
+ HWND hWnd,
+ LPCOMMCONFIG lpCC
+ );
+WINBASEAPI
+BOOL
+WINAPI
+CommConfigDialogW(
+ LPCWSTR lpszName,
+ HWND hWnd,
+ LPCOMMCONFIG lpCC
+ );
+#ifdef UNICODE
+#define CommConfigDialog CommConfigDialogW
+#else
+#define CommConfigDialog CommConfigDialogA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+GetDefaultCommConfigA(
+ LPCSTR lpszName,
+ LPCOMMCONFIG lpCC,
+ LPDWORD lpdwSize
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetDefaultCommConfigW(
+ LPCWSTR lpszName,
+ LPCOMMCONFIG lpCC,
+ LPDWORD lpdwSize
+ );
+#ifdef UNICODE
+#define GetDefaultCommConfig GetDefaultCommConfigW
+#else
+#define GetDefaultCommConfig GetDefaultCommConfigA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+SetDefaultCommConfigA(
+ LPCSTR lpszName,
+ LPCOMMCONFIG lpCC,
+ DWORD dwSize
+ );
+WINBASEAPI
+BOOL
+WINAPI
+SetDefaultCommConfigW(
+ LPCWSTR lpszName,
+ LPCOMMCONFIG lpCC,
+ DWORD dwSize
+ );
+#ifdef UNICODE
+#define SetDefaultCommConfig SetDefaultCommConfigW
+#else
+#define SetDefaultCommConfig SetDefaultCommConfigA
+#endif // !UNICODE
+
+#define MAX_COMPUTERNAME_LENGTH 15
+
+WINBASEAPI
+BOOL
+WINAPI
+GetComputerNameA (
+ LPSTR lpBuffer,
+ LPDWORD nSize
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetComputerNameW (
+ LPWSTR lpBuffer,
+ LPDWORD nSize
+ );
+#ifdef UNICODE
+#define GetComputerName GetComputerNameW
+#else
+#define GetComputerName GetComputerNameA
+#endif // !UNICODE
+
+WINBASEAPI
+BOOL
+WINAPI
+SetComputerNameA (
+ LPCSTR lpComputerName
+ );
+WINBASEAPI
+BOOL
+WINAPI
+SetComputerNameW (
+ LPCWSTR lpComputerName
+ );
+#ifdef UNICODE
+#define SetComputerName SetComputerNameW
+#else
+#define SetComputerName SetComputerNameA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+GetUserNameA (
+ LPSTR lpBuffer,
+ LPDWORD nSize
+ );
+WINADVAPI
+BOOL
+WINAPI
+GetUserNameW (
+ LPWSTR lpBuffer,
+ LPDWORD nSize
+ );
+#ifdef UNICODE
+#define GetUserName GetUserNameW
+#else
+#define GetUserName GetUserNameA
+#endif // !UNICODE
+
+//
+// Logon Support APIs
+//
+
+#define LOGON32_LOGON_INTERACTIVE 2
+#define LOGON32_LOGON_NETWORK 3
+#define LOGON32_LOGON_BATCH 4
+#define LOGON32_LOGON_SERVICE 5
+
+#define LOGON32_PROVIDER_DEFAULT 0
+#define LOGON32_PROVIDER_WINNT35 1
+#if(_WIN32_WINNT >= 0x0400)
+#define LOGON32_PROVIDER_WINNT40 2
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+
+
+WINADVAPI
+BOOL
+WINAPI
+LogonUserA (
+ LPSTR lpszUsername,
+ LPSTR lpszDomain,
+ LPSTR lpszPassword,
+ DWORD dwLogonType,
+ DWORD dwLogonProvider,
+ PHANDLE phToken
+ );
+WINADVAPI
+BOOL
+WINAPI
+LogonUserW (
+ LPWSTR lpszUsername,
+ LPWSTR lpszDomain,
+ LPWSTR lpszPassword,
+ DWORD dwLogonType,
+ DWORD dwLogonProvider,
+ PHANDLE phToken
+ );
+#ifdef UNICODE
+#define LogonUser LogonUserW
+#else
+#define LogonUser LogonUserA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+ImpersonateLoggedOnUser(
+ HANDLE hToken
+ );
+
+WINADVAPI
+BOOL
+WINAPI
+CreateProcessAsUserA (
+ HANDLE hToken,
+ LPCSTR lpApplicationName,
+ LPSTR lpCommandLine,
+ LPSECURITY_ATTRIBUTES lpProcessAttributes,
+ LPSECURITY_ATTRIBUTES lpThreadAttributes,
+ BOOL bInheritHandles,
+ DWORD dwCreationFlags,
+ LPVOID lpEnvironment,
+ LPCSTR lpCurrentDirectory,
+ LPSTARTUPINFOA lpStartupInfo,
+ LPPROCESS_INFORMATION lpProcessInformation
+ );
+WINADVAPI
+BOOL
+WINAPI
+CreateProcessAsUserW (
+ HANDLE hToken,
+ LPCWSTR lpApplicationName,
+ LPWSTR lpCommandLine,
+ LPSECURITY_ATTRIBUTES lpProcessAttributes,
+ LPSECURITY_ATTRIBUTES lpThreadAttributes,
+ BOOL bInheritHandles,
+ DWORD dwCreationFlags,
+ LPVOID lpEnvironment,
+ LPCWSTR lpCurrentDirectory,
+ LPSTARTUPINFOW lpStartupInfo,
+ LPPROCESS_INFORMATION lpProcessInformation
+ );
+#ifdef UNICODE
+#define CreateProcessAsUser CreateProcessAsUserW
+#else
+#define CreateProcessAsUser CreateProcessAsUserA
+#endif // !UNICODE
+
+WINADVAPI
+BOOL
+WINAPI
+DuplicateTokenEx(
+ HANDLE hExistingToken,
+ DWORD dwDesiredAccess,
+ LPSECURITY_ATTRIBUTES lpTokenAttributes,
+ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
+ TOKEN_TYPE TokenType,
+ PHANDLE phNewToken);
+
+
+#if(_WIN32_WINNT >= 0x0400)
+//
+// Plug-and-Play API's
+//
+
+#define HW_PROFILE_GUIDLEN 39 // 36-characters plus NULL terminator
+#define MAX_PROFILE_LEN 80
+
+#define DOCKINFO_UNDOCKED (0x1)
+#define DOCKINFO_DOCKED (0x2)
+#define DOCKINFO_USER_SUPPLIED (0x4)
+#define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED)
+#define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED)
+
+typedef struct tagHW_PROFILE_INFOA {
+ DWORD dwDockInfo;
+ CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
+ CHAR szHwProfileName[MAX_PROFILE_LEN];
+} HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA;
+typedef struct tagHW_PROFILE_INFOW {
+ DWORD dwDockInfo;
+ WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
+ WCHAR szHwProfileName[MAX_PROFILE_LEN];
+} HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW;
+#ifdef UNICODE
+typedef HW_PROFILE_INFOW HW_PROFILE_INFO;
+typedef LPHW_PROFILE_INFOW LPHW_PROFILE_INFO;
+#else
+typedef HW_PROFILE_INFOA HW_PROFILE_INFO;
+typedef LPHW_PROFILE_INFOA LPHW_PROFILE_INFO;
+#endif // UNICODE
+
+
+WINADVAPI
+BOOL
+WINAPI
+GetCurrentHwProfileA (
+ OUT LPHW_PROFILE_INFOA lpHwProfileInfo
+ );
+WINADVAPI
+BOOL
+WINAPI
+GetCurrentHwProfileW (
+ OUT LPHW_PROFILE_INFOW lpHwProfileInfo
+ );
+#ifdef UNICODE
+#define GetCurrentHwProfile GetCurrentHwProfileW
+#else
+#define GetCurrentHwProfile GetCurrentHwProfileA
+#endif // !UNICODE
+#endif /* _WIN32_WINNT >= 0x0400 */
+
+//
+// Performance counter API's
+//
+
+WINBASEAPI
+BOOL
+WINAPI
+QueryPerformanceCounter(
+ LARGE_INTEGER *lpPerformanceCount
+ );
+
+WINBASEAPI
+BOOL
+WINAPI
+QueryPerformanceFrequency(
+ LARGE_INTEGER *lpFrequency
+ );
+
+typedef struct _OSVERSIONINFOA {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage
+} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
+typedef struct _OSVERSIONINFOW {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage
+} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW;
+#ifdef UNICODE
+typedef OSVERSIONINFOW OSVERSIONINFO;
+typedef POSVERSIONINFOW POSVERSIONINFO;
+typedef LPOSVERSIONINFOW LPOSVERSIONINFO;
+#else
+typedef OSVERSIONINFOA OSVERSIONINFO;
+typedef POSVERSIONINFOA POSVERSIONINFO;
+typedef LPOSVERSIONINFOA LPOSVERSIONINFO;
+#endif // UNICODE
+
+//
+// dwPlatformId defines:
+//
+
+#define VER_PLATFORM_WIN32s 0
+#define VER_PLATFORM_WIN32_WINDOWS 1
+#define VER_PLATFORM_WIN32_NT 2
+
+
+WINBASEAPI
+BOOL
+WINAPI
+GetVersionExA(
+ LPOSVERSIONINFOA lpVersionInformation
+ );
+WINBASEAPI
+BOOL
+WINAPI
+GetVersionExW(
+ LPOSVERSIONINFOW lpVersionInformation
+ );
+#ifdef UNICODE
+#define GetVersionEx GetVersionExW
+#else
+#define GetVersionEx GetVersionExA
+#endif // !UNICODE
+
+
+// DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base
+// API functions.
+//
+
+#include <winerror.h>
+
+/* Abnormal termination codes */
+
+#define TC_NORMAL 0
+#define TC_HARDERR 1
+#define TC_GP_TRAP 2
+#define TC_SIGNAL 3
+
+#if(WINVER >= 0x0400)
+//
+// Power Management APIs
+//
+
+#define AC_LINE_OFFLINE 0x00
+#define AC_LINE_ONLINE 0x01
+#define AC_LINE_BACKUP_POWER 0x02
+#define AC_LINE_UNKNOWN 0xFF
+
+#define BATTERY_FLAG_HIGH 0x01
+#define BATTERY_FLAG_LOW 0x02
+#define BATTERY_FLAG_CRITICAL 0x04
+#define BATTERY_FLAG_CHARGING 0x08
+#define BATTERY_FLAG_NO_BATTERY 0x80
+#define BATTERY_FLAG_UNKNOWN 0xFF
+
+#define BATTERY_PERCENTAGE_UNKNOWN 0xFF
+
+#define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF
+
+typedef struct _SYSTEM_POWER_STATUS {
+ BYTE ACLineStatus;
+ BYTE BatteryFlag;
+ BYTE BatteryLifePercent;
+ BYTE Reserved1;
+ DWORD BatteryLifeTime;
+ DWORD BatteryFullLifeTime;
+} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
+
+BOOL
+WINAPI
+GetSystemPowerStatus(
+ LPSYSTEM_POWER_STATUS lpSystemPowerStatus
+ );
+
+BOOL
+WINAPI
+SetSystemPowerState(
+ BOOL fSuspend,
+ BOOL fForce
+ );
+
+#endif /* WINVER >= 0x0400 */
+
+
+
+
+///////////////////////////////////////////////////////////////
+// //
+// Win Certificate API and Structures //
+// //
+///////////////////////////////////////////////////////////////
+
+//
+// Structures
+//
+
+typedef struct _WIN_CERTIFICATE {
+ DWORD dwLength;
+ WORD wRevision;
+ WORD wCertificateType; // WIN_CERT_TYPE_xxx
+ BYTE bCertificate[ANYSIZE_ARRAY];
+} WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
+
+//
+// Currently, the only defined certificate revision is WIN_CERT_REVISION_1_0
+//
+
+#define WIN_CERT_REVISION_1_0 (0x0100)
+
+//
+// Possible certificate types are specified by the following values
+//
+
+#define WIN_CERT_TYPE_X509 (0x0001) // bCertificate contains an X.509 Certificate
+#define WIN_CERT_TYPE_PKCS_SIGNED_DATA (0x0002) // bCertificate contains a PKCS SignedData structure
+#define WIN_CERT_TYPE_RESERVED_1 (0x0003) // Reserved
+
+//
+// API
+//
+
+
+
+
+BOOL
+WINAPI
+WinSubmitCertificate(
+ LPWIN_CERTIFICATE lpCertificate
+ );
+
+
+
+///////////////////////////////////////////////////////////////
+// //
+// Trust API and Structures //
+// //
+///////////////////////////////////////////////////////////////
+
+LONG
+WINAPI
+WinVerifyTrust(
+ HWND hwnd,
+ GUID * ActionID,
+ LPVOID ActionData
+ );
+
+
+BOOL
+WINAPI
+WinLoadTrustProvider(
+ GUID * ActionID
+ );
+
+///////////////////////////////////////////////////////////////
+// //
+// Common Trust API Data Structures //
+// //
+///////////////////////////////////////////////////////////////
+
+
+//
+// Data type commonly used in ActionData structures
+//
+
+typedef LPVOID WIN_TRUST_SUBJECT;
+
+//
+// Two commonly used ActionData structures
+//
+
+typedef struct _WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT {
+
+ HANDLE hClientToken;
+ GUID * SubjectType;
+ WIN_TRUST_SUBJECT Subject;
+
+} WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT, *LPWIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT ;
+
+
+typedef struct _WIN_TRUST_ACTDATA_SUBJECT_ONLY {
+
+ GUID * SubjectType;
+ WIN_TRUST_SUBJECT Subject;
+
+} WIN_TRUST_ACTDATA_SUBJECT_ONLY, *LPWIN_TRUST_ACTDATA_SUBJECT_ONLY;
+
+
+////////////////////////////////////////////////////////////////////
+// /
+// SUBJECT FORM DEFINITIONS /
+// /
+////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////
+// /
+// Currently defined Subject Type Identifiers. All of the below /
+// use the WIN_TRUST_SUBJECT_FILE subject form, defined below. /
+// /
+////////////////////////////////////////////////////////////////////
+
+/* RawFile == 959dc450-8d9e-11cf-8736-00aa00a485eb */
+#define WIN_TRUST_SUBJTYPE_RAW_FILE \
+ { 0x959dc450, \
+ 0x8d9e, \
+ 0x11cf, \
+ {0x87, 0x36, 0x00, 0xaa, 0x00, 0xa4, 0x85, 0xeb} \
+ }
+
+/* PeImage == 43c9a1e0-8da0-11cf-8736-00aa00a485eb */
+#define WIN_TRUST_SUBJTYPE_PE_IMAGE \
+ { 0x43c9a1e0, \
+ 0x8da0, \
+ 0x11cf, \
+ {0x87, 0x36, 0x00, 0xaa, 0x00, 0xa4, 0x85, 0xeb} \
+ }
+
+
+/* JavaClass = 08ad3990-8da1-11cf-8736-00aa00a485eb */
+#define WIN_TRUST_SUBJTYPE_JAVA_CLASS \
+ { 0x08ad3990, \
+ 0x8da1, \
+ 0x11cf, \
+ {0x87, 0x36, 0x00, 0xaa, 0x00, 0xa4, 0x85, 0xeb} \
+ }
+/* Cabinet = d17c5374-a392-11cf-9df5-00aa00c184e0 */
+#define WIN_TRUST_SUBJTYPE_CABINET \
+ { 0xd17c5374, \
+ 0xa392, \
+ 0x11cf, \
+ { 0x9d, 0xf5, 0x0, 0xaa, 0x0, 0xc1, 0x84, 0xe0 } \
+ }
+
+//
+// Associated Subject Data Structure:
+//
+
+typedef struct _WIN_TRUST_SUBJECT_FILE {
+
+ HANDLE hFile;
+ LPCWSTR lpPath;
+
+} WIN_TRUST_SUBJECT_FILE, *LPWIN_TRUST_SUBJECT_FILE;
+
+
+
+
+////////////////////////////////////////////////////////////////////
+// /
+// The following subject types use the /
+// WIN_TRUST_SUBJECT_FILE_AND_DISPLAY subject type, defined /
+// below. /
+// /
+////////////////////////////////////////////////////////////////////
+
+#define WIN_TRUST_SUBJTYPE_RAW_FILEEX \
+ { 0x6f458110, \
+ 0xc2f1, \
+ 0x11cf, \
+ { 0x8a, 0x69, 0x0, 0xaa, 0x0, 0x6c, 0x37, 0x6 } \
+ }
+
+#define WIN_TRUST_SUBJTYPE_PE_IMAGEEX \
+ { 0x6f458111, \
+ 0xc2f1, \
+ 0x11cf, \
+ { 0x8a, 0x69, 0x0, 0xaa, 0x0, 0x6c, 0x37, 0x6 } \
+ }
+
+#define WIN_TRUST_SUBJTYPE_JAVA_CLASSEX \
+ { 0x6f458113, \
+ 0xc2f1, \
+ 0x11cf, \
+ { 0x8a, 0x69, 0x0, 0xaa, 0x0, 0x6c, 0x37, 0x6 } \
+ }
+
+#define WIN_TRUST_SUBJTYPE_CABINETEX \
+ { 0x6f458114, \
+ 0xc2f1, \
+ 0x11cf, \
+ { 0x8a, 0x69, 0x0, 0xaa, 0x0, 0x6c, 0x37, 0x6 } \
+ }
+
+//
+// Associated Subject Data Structure:
+//
+
+typedef struct _WIN_TRUST_SUBJECT_FILE_AND_DISPLAY {
+
+ HANDLE hFile; // handle to the open file if you got it
+ LPCWSTR lpPath; // the path to open if you don't
+ LPCWSTR lpDisplayName; // (optional) display name to show to user
+ // in place of path
+
+} WIN_TRUST_SUBJECT_FILE_AND_DISPLAY, *LPWIN_TRUST_SUBJECT_FILE_AND_DISPLAY;
+
+
+////////////////////////////////////////////////////////////////////
+// /
+// Other subject types: /
+// /
+////////////////////////////////////////////////////////////////////
+
+/* OleStorage == c257e740-8da0-11cf-8736-00aa00a485eb */
+#define WIN_TRUST_SUBJTYPE_OLE_STORAGE \
+ { 0xc257e740, \
+ 0x8da0, \
+ 0x11cf, \
+ {0x87, 0x36, 0x00, 0xaa, 0x00, 0xa4, 0x85, 0xeb} \
+ }
+
+
+////////////////////////////////////////////////////////////////////
+// /
+// TRUST PROVIDER SPECIFIC DEFINITIONS /
+// /
+// /
+// Each trust provider will have the following /
+// sections defined: /
+// /
+// Actions - What actions are supported by the trust /
+// provider. /
+// /
+// SubjectForms - Subjects that may be evaluated by this /
+// trust provider. /
+// /
+// and /
+// /
+// Data structures to support the subject forms. /
+// /
+// /
+////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////////
+// /
+// Software Publisher Trust Provider /
+// /
+////////////////////////////////////////////////////////////////////
+
+//
+// Actions:
+//
+
+/* TrustedPublisher == 66426730-8da1-11cf-8736-00aa00a485eb */
+#define WIN_SPUB_ACTION_TRUSTED_PUBLISHER \
+ { 0x66426730, \
+ 0x8da1, \
+ 0x11cf, \
+ {0x87, 0x36, 0x00, 0xaa, 0x00, 0xa4, 0x85, 0xeb} \
+ }
+
+/* NtActivateImage == 8bc96b00-8da1-11cf-8736-00aa00a485eb */
+#define WIN_SPUB_ACTION_NT_ACTIVATE_IMAGE \
+ { 0x8bc96b00, \
+ 0x8da1, \
+ 0x11cf, \
+ {0x87, 0x36, 0x00, 0xaa, 0x00, 0xa4, 0x85, 0xeb} \
+ }
+
+/* PublishedSoftware == 64b9d180-8da2-11cf-8736-00aa00a485eb */
+#define WIN_SPUB_ACTION_PUBLISHED_SOFTWARE \
+ { 0x64b9d180, \
+ 0x8da2, \
+ 0x11cf, \
+ {0x87, 0x36, 0x00, 0xaa, 0x00, 0xa4, 0x85, 0xeb} \
+ }
+
+//
+// Data Structures:
+//
+// WIN_SPUB_ACTION_TRUSTED_PUBLISHER:
+//
+// Uses WIN_SPUB_TRUSTED_PUBLISHER_DATA
+//
+// WIN_SPUB_ACTION_NT_ACTIVATE_IMAGE:
+//
+// Uses WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT
+//
+// WIN_SPUB_ACTION_PUBLISHED_SOFTWARE:
+//
+// Uses WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT
+//
+
+typedef struct _WIN_SPUB_TRUSTED_PUBLISHER_DATA {
+
+ HANDLE hClientToken;
+ LPWIN_CERTIFICATE lpCertificate;
+
+} WIN_SPUB_TRUSTED_PUBLISHER_DATA, *LPWIN_SPUB_TRUSTED_PUBLISHER_DATA;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+#endif // _WINBASE_