|
|
1.1 ! root 1: /*++ BUILD Version: 0001 // Increment this if a change has global effects ! 2: ! 3: Copyright (c) 1990 Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: winbase.h ! 8: ! 9: Abstract: ! 10: ! 11: This module defines the 32-Bit Windows Base APIs ! 12: ! 13: Created: ! 14: ! 15: 18-Sep-1990 ! 16: ! 17: Revision History: ! 18: ! 19: --*/ ! 20: ! 21: #ifndef _WINBASE_ ! 22: #define _WINBASE_ ! 23: ! 24: /* ! 25: * Compatability macros ! 26: */ ! 27: ! 28: #define DefineHandleTable(w) ((w),TRUE) ! 29: #define LimitEmsPages(dw) ! 30: #define SetSwapAreaSize(w) (w) ! 31: #define LockSegment(w) GlobalFix((HANDLE)(w)) ! 32: #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) ! 33: #define GetCurrentTime() GetTickCount() ! 34: ! 35: #define Yield() ! 36: ! 37: #define INVALID_HANDLE_VALUE (HANDLE)-1 ! 38: #define FILE_BEGIN 0 ! 39: #define FILE_CURRENT 1 ! 40: #define FILE_END 2 ! 41: ! 42: #define WAIT_OBJECT_0 ((STATUS_WAIT_0 ) + 0 ) ! 43: ! 44: #define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0 ) + 0 ) ! 45: #define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0 ) + 0 ) ! 46: ! 47: #define WAIT_TIMEOUT STATUS_TIMEOUT ! 48: #define WAIT_IO_COMPLETION STATUS_USER_APC ! 49: #define STILL_ACTIVE STATUS_PENDING ! 50: #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION ! 51: #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT ! 52: #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT ! 53: #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP ! 54: #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED ! 55: #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND ! 56: #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO ! 57: #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT ! 58: #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION ! 59: #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW ! 60: #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK ! 61: #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW ! 62: #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO ! 63: #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW ! 64: #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION ! 65: #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT ! 66: ! 67: // ! 68: // File creation flags must start at the high end since they ! 69: // are combined with the attributes ! 70: // ! 71: ! 72: #define FILE_FLAG_WRITE_THROUGH 0x80000000 ! 73: #define FILE_FLAG_OVERLAPPED 0x40000000 ! 74: #define FILE_FLAG_NO_BUFFERING 0x20000000 ! 75: #define FILE_FLAG_RANDOM_ACCESS 0x10000000 ! 76: #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000 ! 77: #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000 ! 78: #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 ! 79: ! 80: #define CREATE_NEW 1 ! 81: #define CREATE_ALWAYS 2 ! 82: #define OPEN_EXISTING 3 ! 83: #define OPEN_ALWAYS 4 ! 84: #define TRUNCATE_EXISTING 5 ! 85: ! 86: // ! 87: // Define the NamedPipe definitions ! 88: // ! 89: ! 90: ! 91: // ! 92: // Define the dwOpenMode values for CreateNamedPipe ! 93: // ! 94: ! 95: #define PIPE_ACCESS_INBOUND 0x00000001 ! 96: #define PIPE_ACCESS_OUTBOUND 0x00000002 ! 97: #define PIPE_ACCESS_DUPLEX 0x00000003 ! 98: ! 99: // ! 100: // Define the Named Pipe End flags for GetNamedPipeInfo ! 101: // ! 102: ! 103: #define PIPE_CLIENT_END 0x00000000 ! 104: #define PIPE_SERVER_END 0x00000001 ! 105: ! 106: // ! 107: // Define the dwPipeMode values for CreateNamedPipe ! 108: // ! 109: ! 110: #define PIPE_WAIT 0x00000000 ! 111: #define PIPE_NOWAIT 0x00000001 ! 112: #define PIPE_READMODE_BYTE 0x00000000 ! 113: #define PIPE_READMODE_MESSAGE 0x00000002 ! 114: #define PIPE_TYPE_BYTE 0x00000000 ! 115: #define PIPE_TYPE_MESSAGE 0x00000004 ! 116: ! 117: // ! 118: // Define the well known values for CreateNamedPipe nMaxInstances ! 119: // ! 120: ! 121: #define PIPE_UNLIMITED_INSTANCES 255 ! 122: ! 123: // ! 124: // Define the Security Quality of Service bits to be passed ! 125: // into CreateFile ! 126: // ! 127: ! 128: #define SECURITY_ANONYMOUS ( SecurityAnonymous << 16 ) ! 129: #define SECURITY_IDENTIFICATION ( SecurityIdentification << 16 ) ! 130: #define SECURITY_IMPERSONATION ( SecurityImpersonation << 16 ) ! 131: #define SECURITY_DELEGATION ( SecurityDelegation << 16 ) ! 132: ! 133: #define SECURITY_CONTEXT_TRACKING 0x00040000 ! 134: #define SECURITY_EFFECTIVE_ONLY 0x00080000 ! 135: ! 136: #define SECURITY_SQOS_PRESENT 0x00100000 ! 137: #define SECURITY_VALID_SQOS_FLAGS 0x001F0000 ! 138: ! 139: ! 140: // ! 141: // Special values for mailslot information. ! 142: // ! 143: ! 144: // ! 145: // Special value for NextMessageSize to indicate that there is no next ! 146: // message. ! 147: // ! 148: ! 149: #define MAILSLOT_NO_MESSAGE ((ULONG)-1) ! 150: ! 151: // ! 152: // Special value for read timeout to indicate that mailslot reads should ! 153: // never timeout. ! 154: // ! 155: ! 156: #define MAILSLOT_WAIT_FOREVER ((ULONG)-1) ! 157: ! 158: // ! 159: // File structures ! 160: // ! 161: ! 162: typedef struct _OVERLAPPED { ! 163: DWORD Internal; ! 164: DWORD InternalHigh; ! 165: DWORD Offset; ! 166: DWORD OffsetHigh; ! 167: HANDLE hEvent; ! 168: } OVERLAPPED, *LPOVERLAPPED; ! 169: ! 170: typedef struct _SECURITY_ATTRIBUTES { ! 171: DWORD nLength; ! 172: LPVOID lpSecurityDescriptor; ! 173: BOOL bInheritHandle; ! 174: } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; ! 175: ! 176: typedef struct _PROCESS_INFORMATION { ! 177: HANDLE hProcess; ! 178: HANDLE hThread; ! 179: DWORD dwProcessId; ! 180: DWORD dwThreadId; ! 181: } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; ! 182: ! 183: // ! 184: // File System time stamps are represented with the following structure: ! 185: // ! 186: ! 187: typedef struct _FILETIME { ! 188: DWORD dwLowDateTime; ! 189: DWORD dwHighDateTime; ! 190: } FILETIME, *PFILETIME, *LPFILETIME; ! 191: ! 192: // ! 193: // System time is represented with the following structure: ! 194: // ! 195: ! 196: typedef struct _SYSTEMTIME { ! 197: WORD wYear; ! 198: WORD wMonth; ! 199: WORD wDayOfWeek; ! 200: WORD wDay; ! 201: WORD wHour; ! 202: WORD wMinute; ! 203: WORD wSecond; ! 204: WORD wMilliseconds; ! 205: } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; ! 206: ! 207: typedef DWORD (*PTHREAD_START_ROUTINE)( ! 208: LPVOID lpThreadParameter ! 209: ); ! 210: typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; ! 211: ! 212: typedef RTL_CRITICAL_SECTION CRITICAL_SECTION; ! 213: typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION; ! 214: typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; ! 215: ! 216: #ifdef i386 ! 217: typedef PLDT_ENTRY LPLDT_ENTRY; ! 218: #else ! 219: typedef LPVOID LPLDT_ENTRY; ! 220: #endif ! 221: ! 222: #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE ! 223: #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS ! 224: ! 225: // ! 226: // Serial provider type. ! 227: // ! 228: ! 229: #define SP_SERIALCOMM ((DWORD)0x00000001) ! 230: ! 231: // ! 232: // Provider SubTypes ! 233: // ! 234: ! 235: #define PST_UNSPECIFIED ((DWORD)0x00000000) ! 236: #define PST_RS232 ((DWORD)0x00000001) ! 237: #define PST_PARALLELPORT ((DWORD)0x00000002) ! 238: #define PST_RS422 ((DWORD)0x00000003) ! 239: #define PST_RS423 ((DWORD)0x00000004) ! 240: #define PST_RS449 ((DWORD)0x00000005) ! 241: #define PST_FAX ((DWORD)0x00000021) ! 242: #define PST_SCANNER ((DWORD)0x00000022) ! 243: #define PST_NETWORK_BRIDGE ((DWORD)0x00000100) ! 244: #define PST_LAT ((DWORD)0x00000101) ! 245: #define PST_TCPIP_TELNET ((DWORD)0x00000102) ! 246: #define PST_X25 ((DWORD)0x00000103) ! 247: ! 248: ! 249: // ! 250: // Provider capabilities flags. ! 251: // ! 252: ! 253: #define PCF_DTRDSR ((DWORD)0x0001) ! 254: #define PCF_RTSCTS ((DWORD)0x0002) ! 255: #define PCF_RLSD ((DWORD)0x0004) ! 256: #define PCF_PARITY_CHECK ((DWORD)0x0008) ! 257: #define PCF_XONXOFF ((DWORD)0x0010) ! 258: #define PCF_SETXCHAR ((DWORD)0x0020) ! 259: #define PCF_TOTALTIMEOUTS ((DWORD)0x0040) ! 260: #define PCF_INTTIMEOUTS ((DWORD)0x0080) ! 261: #define PCF_SPECIALCHARS ((DWORD)0x0100) ! 262: #define PCF_16BITMODE ((DWORD)0x0200) ! 263: ! 264: // ! 265: // Comm provider settable parameters. ! 266: // ! 267: ! 268: #define SP_PARITY ((DWORD)0x0001) ! 269: #define SP_BAUD ((DWORD)0x0002) ! 270: #define SP_DATABITS ((DWORD)0x0004) ! 271: #define SP_STOPBITS ((DWORD)0x0008) ! 272: #define SP_HANDSHAKING ((DWORD)0x0010) ! 273: #define SP_PARITY_CHECK ((DWORD)0x0020) ! 274: #define SP_RLSD ((DWORD)0x0040) ! 275: ! 276: // ! 277: // Settable baud rates in the provider. ! 278: // ! 279: ! 280: #define BAUD_075 ((DWORD)0x00000001) ! 281: #define BAUD_110 ((DWORD)0x00000002) ! 282: #define BAUD_134_5 ((DWORD)0x00000004) ! 283: #define BAUD_150 ((DWORD)0x00000008) ! 284: #define BAUD_300 ((DWORD)0x00000010) ! 285: #define BAUD_600 ((DWORD)0x00000020) ! 286: #define BAUD_1200 ((DWORD)0x00000040) ! 287: #define BAUD_1800 ((DWORD)0x00000080) ! 288: #define BAUD_2400 ((DWORD)0x00000100) ! 289: #define BAUD_4800 ((DWORD)0x00000200) ! 290: #define BAUD_7200 ((DWORD)0x00000400) ! 291: #define BAUD_9600 ((DWORD)0x00000800) ! 292: #define BAUD_14400 ((DWORD)0x00001000) ! 293: #define BAUD_19200 ((DWORD)0x00002000) ! 294: #define BAUD_38400 ((DWORD)0x00004000) ! 295: #define BAUD_56K ((DWORD)0x00008000) ! 296: #define BAUD_128K ((DWORD)0x00010000) ! 297: #define BAUD_USER ((DWORD)0x10000000) ! 298: ! 299: // ! 300: // Settable Data Bits ! 301: // ! 302: ! 303: #define DATABITS_5 ((WORD)0x0001) ! 304: #define DATABITS_6 ((WORD)0x0002) ! 305: #define DATABITS_7 ((WORD)0x0004) ! 306: #define DATABITS_8 ((WORD)0x0008) ! 307: #define DATABITS_16 ((WORD)0x0010) ! 308: #define DATABITS_16X ((WORD)0x0020) ! 309: ! 310: // ! 311: // Settable Stop and Parity bits. ! 312: // ! 313: ! 314: #define STOPBITS_10 ((WORD)0x0001) ! 315: #define STOPBITS_15 ((WORD)0x0002) ! 316: #define STOPBITS_20 ((WORD)0x0004) ! 317: #define PARITY_NONE ((WORD)0x0100) ! 318: #define PARITY_ODD ((WORD)0x0200) ! 319: #define PARITY_EVEN ((WORD)0x0400) ! 320: #define PARITY_MARK ((WORD)0x0800) ! 321: #define PARITY_SPACE ((WORD)0x1000) ! 322: ! 323: typedef struct _COMMPROP { ! 324: WORD wPacketLength; ! 325: WORD wPacketVersion; ! 326: DWORD dwServiceMask; ! 327: DWORD dwReserved1; ! 328: DWORD dwMaxTxQueue; ! 329: DWORD dwMaxRxQueue; ! 330: DWORD dwMaxBaud; ! 331: DWORD dwProvSubType; ! 332: DWORD dwProvCapabilities; ! 333: DWORD dwSettableParams; ! 334: DWORD dwSettableBaud; ! 335: WORD wSettableData; ! 336: WORD wSettableStopParity; ! 337: DWORD dwCurrentTxQueue; ! 338: DWORD dwCurrentRxQueue; ! 339: DWORD dwProvSpec1; ! 340: DWORD dwProvSpec2; ! 341: WCHAR wcProvChar[1]; ! 342: } COMMPROP,*LPCOMMPROP; ! 343: ! 344: typedef struct _COMSTAT { ! 345: DWORD fCtsHold : 1; ! 346: DWORD fDsrHold : 1; ! 347: DWORD fRlsdHold : 1; ! 348: DWORD fXoffHold : 1; ! 349: DWORD fXoffSent : 1; ! 350: DWORD fEof : 1; ! 351: DWORD fTxim : 1; ! 352: DWORD fReserved : 17; ! 353: DWORD cbInQue; ! 354: DWORD cbOutQue; ! 355: } COMSTAT, *LPCOMSTAT; ! 356: ! 357: // ! 358: // DTR Control Flow Values. ! 359: // ! 360: #define DTR_CONTROL_DISABLE 0x00 ! 361: #define DTR_CONTROL_ENABLE 0x01 ! 362: #define DTR_CONTROL_HANDSHAKE 0x02 ! 363: ! 364: // ! 365: // RTS Control Flow Values ! 366: // ! 367: #define RTS_CONTROL_DISABLE 0x00 ! 368: #define RTS_CONTROL_ENABLE 0x01 ! 369: #define RTS_CONTROL_HANDSHAKE 0x02 ! 370: #define RTS_CONTROL_TOGGLE 0x03 ! 371: ! 372: typedef struct _DCB { ! 373: DWORD DCBlength; /* sizeof(DCB) */ ! 374: DWORD BaudRate; /* Baudrate at which running */ ! 375: DWORD fBinary: 1; /* Binary Mode (skip EOF check) */ ! 376: DWORD fParity: 1; /* Enable parity checking */ ! 377: DWORD fOutxCtsFlow:1; /* CTS handshaking on output */ ! 378: DWORD fOutxDsrFlow:1; /* DSR handshaking on output */ ! 379: DWORD fDtrControl:2; /* DTR Flow control */ ! 380: DWORD fDsrSensitivity:1; /* DSR Sensitivity */ ! 381: DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */ ! 382: DWORD fOutX: 1; /* Enable output X-ON/X-OFF */ ! 383: DWORD fInX: 1; /* Enable input X-ON/X-OFF */ ! 384: DWORD fErrorChar: 1; /* Enable Err Replacement */ ! 385: DWORD fNull: 1; /* Enable Null stripping */ ! 386: DWORD fRtsControl:2; /* Rts Flow control */ ! 387: DWORD fAbortOnError:1; /* Abort all reads and writes on Error */ ! 388: DWORD fDummy2:1; /* Reserved */ ! 389: WORD wReserved; /* Not currently used */ ! 390: WORD XonLim; /* Transmit X-ON threshold */ ! 391: WORD XoffLim; /* Transmit X-OFF threshold */ ! 392: BYTE ByteSize; /* Number of bits/byte, 4-8 */ ! 393: BYTE Parity; /* 0-4=None,Odd,Even,Mark,Space */ ! 394: BYTE StopBits; /* 0,1,2 = 1, 1.5, 2 */ ! 395: char XonChar; /* Tx and Rx X-ON character */ ! 396: char XoffChar; /* Tx and Rx X-OFF character */ ! 397: char ErrorChar; /* Error replacement char */ ! 398: char EofChar; /* End of Input character */ ! 399: char EvtChar; /* Recieved Event character */ ! 400: } DCB, *LPDCB; ! 401: ! 402: typedef struct _COMMTIMEOUTS { ! 403: DWORD ReadIntervalTimeout; /* Maximum time between read chars. */ ! 404: DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */ ! 405: DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */ ! 406: DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */ ! 407: DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */ ! 408: } COMMTIMEOUTS,*LPCOMMTIMEOUTS; ! 409: ! 410: typedef struct _SYSTEM_INFO { ! 411: DWORD dwOemId; ! 412: DWORD dwPageSize; ! 413: LPVOID lpMinimumApplicationAddress; ! 414: LPVOID lpMaximumApplicationAddress; ! 415: DWORD dwActiveProcessorMask; ! 416: DWORD dwNumberOfProcessors; ! 417: DWORD dwProcessorType; ! 418: DWORD dwProcessorRevision; ! 419: DWORD dwProcessorOptions; ! 420: } SYSTEM_INFO, *LPSYSTEM_INFO; ! 421: ! 422: #define FreeModule(hLibModule) FreeLibrary((hLibModule)) ! 423: #define MakeProcInstance(lpProc,hInstance) (lpProc) ! 424: #define FreeProcInstance(lpProc) ! 425: ! 426: /* Global Memory Flags */ ! 427: #define GMEM_FIXED 0x0000 ! 428: #define GMEM_MOVEABLE 0x0002 ! 429: #define GMEM_NOCOMPACT 0x0010 ! 430: #define GMEM_NODISCARD 0x0020 ! 431: #define GMEM_ZEROINIT 0x0040 ! 432: #define GMEM_MODIFY 0x0080 ! 433: #define GMEM_DISCARDABLE 0x0100 ! 434: #define GMEM_NOT_BANKED 0x1000 ! 435: #define GMEM_SHARE 0x2000 ! 436: #define GMEM_DDESHARE 0x2000 ! 437: #define GMEM_NOTIFY 0x4000 ! 438: #define GMEM_LOWER GMEM_NOT_BANKED ! 439: #define GMEM_VALID_FLAGS 0x7F72 ! 440: #define GMEM_INVALID_HANDLE 0x8000 ! 441: ! 442: #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT) ! 443: #define GPTR (GMEM_FIXED | GMEM_ZEROINIT) ! 444: ! 445: #define GlobalLRUNewest( h ) (HANDLE)(h) ! 446: #define GlobalLRUOldest( h ) (HANDLE)(h) ! 447: #define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE ) ! 448: ! 449: /* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */ ! 450: #define GMEM_DISCARDED 0x4000 ! 451: #define GMEM_LOCKCOUNT 0x00FF ! 452: ! 453: typedef struct _MEMORYSTATUS { ! 454: DWORD dwLength; ! 455: DWORD dwMemoryLoad; ! 456: DWORD dwTotalPhys; ! 457: DWORD dwAvailPhys; ! 458: DWORD dwTotalPageFile; ! 459: DWORD dwAvailPageFile; ! 460: DWORD dwTotalVirtual; ! 461: DWORD dwAvailVirtual; ! 462: } MEMORYSTATUS, *LPMEMORYSTATUS; ! 463: ! 464: /* Local Memory Flags */ ! 465: #define LMEM_FIXED 0x0000 ! 466: #define LMEM_MOVEABLE 0x0002 ! 467: #define LMEM_NOCOMPACT 0x0010 ! 468: #define LMEM_NODISCARD 0x0020 ! 469: #define LMEM_ZEROINIT 0x0040 ! 470: #define LMEM_MODIFY 0x0080 ! 471: #define LMEM_DISCARDABLE 0x0F00 ! 472: #define LMEM_VALID_FLAGS 0x0F72 ! 473: #define LMEM_INVALID_HANDLE 0x8000 ! 474: ! 475: #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT) ! 476: #define LPTR (LMEM_FIXED | LMEM_ZEROINIT) ! 477: ! 478: #define NONZEROLHND (LMEM_MOVEABLE) ! 479: #define NONZEROLPTR (LMEM_FIXED) ! 480: ! 481: #define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE ) ! 482: ! 483: /* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */ ! 484: #define LMEM_DISCARDED 0x4000 ! 485: #define LMEM_LOCKCOUNT 0x00FF ! 486: ! 487: // ! 488: // dwCreationFlag values ! 489: // ! 490: ! 491: #define DEBUG_PROCESS 0x00000001 ! 492: #define DEBUG_ONLY_THIS_PROCESS 0x00000002 ! 493: ! 494: #define CREATE_SUSPENDED 0x00000004 ! 495: ! 496: #define DETACHED_PROCESS 0x00000008 ! 497: ! 498: #define CREATE_NEW_CONSOLE 0x00000010 ! 499: ! 500: #define NORMAL_PRIORITY_CLASS 0x00000020 ! 501: #define IDLE_PRIORITY_CLASS 0x00000040 ! 502: #define HIGH_PRIORITY_CLASS 0x00000080 ! 503: ! 504: #define CREATE_NO_WINDOW 0x08000000 ! 505: ! 506: #define PROFILE_USER 0x10000000 ! 507: #define PROFILE_KERNEL 0x20000000 ! 508: #define PROFILE_SERVER 0x40000000 ! 509: ! 510: #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN ! 511: #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1) ! 512: #define THREAD_PRIORITY_NORMAL 0 ! 513: #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX ! 514: #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1) ! 515: #define THREAD_PRIORITY_ERROR_RETURN (MAXLONG) ! 516: ! 517: // ! 518: // Debug APIs ! 519: // ! 520: #define EXCEPTION_DEBUG_EVENT 1 ! 521: #define CREATE_THREAD_DEBUG_EVENT 2 ! 522: #define CREATE_PROCESS_DEBUG_EVENT 3 ! 523: #define EXIT_THREAD_DEBUG_EVENT 4 ! 524: #define EXIT_PROCESS_DEBUG_EVENT 5 ! 525: #define LOAD_DLL_DEBUG_EVENT 6 ! 526: #define UNLOAD_DLL_DEBUG_EVENT 7 ! 527: #define OUTPUT_DEBUG_STRING_EVENT 8 ! 528: #define RIP_EVENT 9 ! 529: ! 530: typedef struct _EXCEPTION_DEBUG_INFO { ! 531: EXCEPTION_RECORD ExceptionRecord; ! 532: DWORD dwFirstChance; ! 533: } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO; ! 534: ! 535: typedef struct _CREATE_THREAD_DEBUG_INFO { ! 536: HANDLE hThread; ! 537: LPTHREAD_START_ROUTINE lpStartAddress; ! 538: } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO; ! 539: ! 540: typedef struct _CREATE_PROCESS_DEBUG_INFO { ! 541: HANDLE hFile; ! 542: HANDLE hProcess; ! 543: HANDLE hThread; ! 544: LPVOID lpBaseOfImage; ! 545: DWORD dwDebugInfoFileOffset; ! 546: DWORD nDebugInfoSize; ! 547: LPTHREAD_START_ROUTINE lpStartAddress; ! 548: } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO; ! 549: ! 550: typedef struct _EXIT_THREAD_DEBUG_INFO { ! 551: DWORD dwExitCode; ! 552: } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO; ! 553: ! 554: typedef struct _EXIT_PROCESS_DEBUG_INFO { ! 555: DWORD dwExitCode; ! 556: } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO; ! 557: ! 558: typedef struct _LOAD_DLL_DEBUG_INFO { ! 559: HANDLE hFile; ! 560: LPVOID lpBaseOfDll; ! 561: DWORD dwDebugInfoFileOffset; ! 562: DWORD nDebugInfoSize; ! 563: } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO; ! 564: ! 565: typedef struct _UNLOAD_DLL_DEBUG_INFO { ! 566: LPVOID lpBaseOfDll; ! 567: } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO; ! 568: ! 569: typedef struct _OUTPUT_DEBUG_STRING_INFO { ! 570: LPSTR lpDebugStringData; ! 571: WORD fUnicode; ! 572: WORD nDebugStringLength; ! 573: } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO; ! 574: ! 575: typedef struct _RIP_INFO { ! 576: DWORD dwError; ! 577: DWORD dwType; ! 578: } RIP_INFO, *LPRIP_INFO; ! 579: ! 580: ! 581: typedef struct _DEBUG_EVENT { ! 582: DWORD dwDebugEventCode; ! 583: DWORD dwProcessId; ! 584: DWORD dwThreadId; ! 585: union { ! 586: EXCEPTION_DEBUG_INFO Exception; ! 587: CREATE_THREAD_DEBUG_INFO CreateThread; ! 588: CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; ! 589: EXIT_THREAD_DEBUG_INFO ExitThread; ! 590: EXIT_THREAD_DEBUG_INFO ExitProcess; ! 591: LOAD_DLL_DEBUG_INFO LoadDll; ! 592: UNLOAD_DLL_DEBUG_INFO UnloadDll; ! 593: OUTPUT_DEBUG_STRING_INFO DebugString; ! 594: RIP_INFO RipInfo; ! 595: } u; ! 596: } DEBUG_EVENT, *LPDEBUG_EVENT; ! 597: ! 598: typedef PCONTEXT LPCONTEXT; ! 599: typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD; ! 600: typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS; ! 601: ! 602: #define DRIVE_REMOVABLE 2 ! 603: #define DRIVE_FIXED 3 ! 604: #define DRIVE_REMOTE 4 ! 605: #define DRIVE_CDROM 5 ! 606: #define DRIVE_RAMDISK 6 ! 607: ! 608: ! 609: #define GetFreeSpace(w) (0x100000L) ! 610: ! 611: ! 612: #define FILE_TYPE_UNKNOWN 0x0000 ! 613: #define FILE_TYPE_DISK 0x0001 ! 614: #define FILE_TYPE_CHAR 0x0002 ! 615: #define FILE_TYPE_PIPE 0x0003 ! 616: #define FILE_TYPE_REMOTE 0x8000 ! 617: ! 618: ! 619: #define STD_INPUT_HANDLE (DWORD)-10 ! 620: #define STD_OUTPUT_HANDLE (DWORD)-11 ! 621: #define STD_ERROR_HANDLE (DWORD)-12 ! 622: ! 623: #define NOPARITY 0 ! 624: #define ODDPARITY 1 ! 625: #define EVENPARITY 2 ! 626: #define MARKPARITY 3 ! 627: #define SPACEPARITY 4 ! 628: ! 629: #define ONESTOPBIT 0 ! 630: #define ONE5STOPBITS 1 ! 631: #define TWOSTOPBITS 2 ! 632: ! 633: #define IGNORE 0 // Ignore signal ! 634: #define INFINITE 0xFFFFFFFF // Infinite timeout ! 635: ! 636: // ! 637: // Basud rates at which the communication device operates ! 638: // ! 639: ! 640: #define CBR_110 110 ! 641: #define CBR_300 300 ! 642: #define CBR_600 600 ! 643: #define CBR_1200 1200 ! 644: #define CBR_2400 2400 ! 645: #define CBR_4800 4800 ! 646: #define CBR_9600 9600 ! 647: #define CBR_14400 14400 ! 648: #define CBR_19200 19200 ! 649: #define CBR_38400 38400 ! 650: #define CBR_56000 56000 ! 651: #define CBR_128000 128000 ! 652: #define CBR_256000 256000 ! 653: ! 654: // ! 655: // Error Flags ! 656: // ! 657: ! 658: #define CE_RXOVER 0x0001 // Receive Queue overflow ! 659: #define CE_OVERRUN 0x0002 // Receive Overrun Error ! 660: #define CE_RXPARITY 0x0004 // Receive Parity Error ! 661: #define CE_FRAME 0x0008 // Receive Framing error ! 662: #define CE_BREAK 0x0010 // Break Detected ! 663: #define CE_TXFULL 0x0100 // TX Queue is full ! 664: #define CE_PTO 0x0200 // LPTx Timeout ! 665: #define CE_IOE 0x0400 // LPTx I/O Error ! 666: #define CE_DNS 0x0800 // LPTx Device not selected ! 667: #define CE_OOP 0x1000 // LPTx Out-Of-Paper ! 668: #define CE_MODE 0x8000 // Requested mode unsupported ! 669: ! 670: #define IE_BADID (-1) // Invalid or unsupported id ! 671: #define IE_OPEN (-2) // Device Already Open ! 672: #define IE_NOPEN (-3) // Device Not Open ! 673: #define IE_MEMORY (-4) // Unable to allocate queues ! 674: #define IE_DEFAULT (-5) // Error in default parameters ! 675: #define IE_HARDWARE (-10) // Hardware Not Present ! 676: #define IE_BYTESIZE (-11) // Illegal Byte Size ! 677: #define IE_BAUDRATE (-12) // Unsupported BaudRate ! 678: ! 679: // ! 680: // Events ! 681: // ! 682: ! 683: #define EV_RXCHAR 0x0001 // Any Character received ! 684: #define EV_RXFLAG 0x0002 // Received certain character ! 685: #define EV_TXEMPTY 0x0004 // Transmitt Queue Empty ! 686: #define EV_CTS 0x0008 // CTS changed state ! 687: #define EV_DSR 0x0010 // DSR changed state ! 688: #define EV_RLSD 0x0020 // RLSD changed state ! 689: #define EV_BREAK 0x0040 // BREAK received ! 690: #define EV_ERR 0x0080 // Line status error occurred ! 691: #define EV_RING 0x0100 // Ring signal detected ! 692: #define EV_PERR 0x0200 // Printer error occured ! 693: #define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full ! 694: #define EV_EVENT1 0x0800 // Provider specific event 1 ! 695: #define EV_EVENT2 0x1000 // Provider specific event 2 ! 696: ! 697: // ! 698: // Escape Functions ! 699: // ! 700: ! 701: #define SETXOFF 1 // Simulate XOFF received ! 702: #define SETXON 2 // Simulate XON received ! 703: #define SETRTS 3 // Set RTS high ! 704: #define CLRRTS 4 // Set RTS low ! 705: #define SETDTR 5 // Set DTR high ! 706: #define CLRDTR 6 // Set DTR low ! 707: #define RESETDEV 7 // Reset device if possible ! 708: #define SETBREAK 8 // Set the device break line. ! 709: #define CLRBREAK 9 // Clear the device break line. ! 710: ! 711: // ! 712: // PURGE function flags. ! 713: // ! 714: #define PURGE_TXABORT 0x0001 // Kill the pending/current writes to the comm port. ! 715: #define PURGE_RXABORT 0x0002 // Kill the pending/current reads to the comm port. ! 716: #define PURGE_TXCLEAR 0x0004 // Kill the transmit queue if there. ! 717: #define PURGE_RXCLEAR 0x0008 // Kill the typeahead buffer if there. ! 718: ! 719: #define LPTx 0x80 // Set if ID is for LPT device ! 720: ! 721: // ! 722: // Modem Status Flags ! 723: // ! 724: #define MS_CTS_ON ((DWORD)0x0010) ! 725: #define MS_DSR_ON ((DWORD)0x0020) ! 726: #define MS_RING_ON ((DWORD)0x0040) ! 727: #define MS_RLSD_ON ((DWORD)0x0080) ! 728: ! 729: // ! 730: // WaitSoundState() Constants ! 731: // ! 732: ! 733: #define S_QUEUEEMPTY 0 ! 734: #define S_THRESHOLD 1 ! 735: #define S_ALLTHRESHOLD 2 ! 736: ! 737: // ! 738: // Accent Modes ! 739: // ! 740: ! 741: #define S_NORMAL 0 ! 742: #define S_LEGATO 1 ! 743: #define S_STACCATO 2 ! 744: ! 745: // ! 746: // SetSoundNoise() Sources ! 747: // ! 748: ! 749: #define S_PERIOD512 0 // Freq = N/512 high pitch, less coarse hiss ! 750: #define S_PERIOD1024 1 // Freq = N/1024 ! 751: #define S_PERIOD2048 2 // Freq = N/2048 low pitch, more coarse hiss ! 752: #define S_PERIODVOICE 3 // Source is frequency from voice channel (3) ! 753: #define S_WHITE512 4 // Freq = N/512 high pitch, less coarse hiss ! 754: #define S_WHITE1024 5 // Freq = N/1024 ! 755: #define S_WHITE2048 6 // Freq = N/2048 low pitch, more coarse hiss ! 756: #define S_WHITEVOICE 7 // Source is frequency from voice channel (3) ! 757: ! 758: #define S_SERDVNA (-1) // Device not available ! 759: #define S_SEROFM (-2) // Out of memory ! 760: #define S_SERMACT (-3) // Music active ! 761: #define S_SERQFUL (-4) // Queue full ! 762: #define S_SERBDNT (-5) // Invalid note ! 763: #define S_SERDLN (-6) // Invalid note length ! 764: #define S_SERDCC (-7) // Invalid note count ! 765: #define S_SERDTP (-8) // Invalid tempo ! 766: #define S_SERDVL (-9) // Invalid volume ! 767: #define S_SERDMD (-10) // Invalid mode ! 768: #define S_SERDSH (-11) // Invalid shape ! 769: #define S_SERDPT (-12) // Invalid pitch ! 770: #define S_SERDFQ (-13) // Invalid frequency ! 771: #define S_SERDDR (-14) // Invalid duration ! 772: #define S_SERDSR (-15) // Invalid source ! 773: #define S_SERDST (-16) // Invalid state ! 774: ! 775: #define NMPWAIT_WAIT_FOREVER 0xffffffff ! 776: #define NMPWAIT_NOWAIT 0x00000001 ! 777: #define NMPWAIT_USE_DEFAULT_WAIT 0x00000000 ! 778: ! 779: #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES ! 780: #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH ! 781: #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK ! 782: ! 783: #define FILE_MAP_WRITE SECTION_MAP_WRITE ! 784: #define FILE_MAP_READ SECTION_MAP_READ ! 785: #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS ! 786: ! 787: #define OF_READ 0x00000000 ! 788: #define OF_WRITE 0x00000001 ! 789: #define OF_READWRITE 0x00000002 ! 790: #define OF_SHARE_COMPAT 0x00000000 ! 791: #define OF_SHARE_EXCLUSIVE 0x00000010 ! 792: #define OF_SHARE_DENY_WRITE 0x00000020 ! 793: #define OF_SHARE_DENY_READ 0x00000030 ! 794: #define OF_SHARE_DENY_NONE 0x00000040 ! 795: #define OF_PARSE 0x00000100 ! 796: #define OF_DELETE 0x00000200 ! 797: #define OF_VERIFY 0x00000400 ! 798: #define OF_CANCEL 0x00000800 ! 799: #define OF_CREATE 0x00001000 ! 800: #define OF_PROMPT 0x00002000 ! 801: #define OF_EXIST 0x00004000 ! 802: #define OF_REOPEN 0x00008000 ! 803: ! 804: #define OFS_MAXPATHNAME 128 ! 805: typedef struct _OFSTRUCT { ! 806: BYTE cBytes; ! 807: BYTE fFixedDisk; ! 808: WORD nErrCode; ! 809: WORD Reserved1; ! 810: WORD Reserved2; ! 811: BYTE szPathName[OFS_MAXPATHNAME]; ! 812: } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT; ! 813: ! 814: LONG ! 815: WINAPI ! 816: InterlockedIncrement( ! 817: LPLONG lpAddend ! 818: ); ! 819: ! 820: LONG ! 821: WINAPI ! 822: InterlockedDecrement( ! 823: LPLONG lpAddend ! 824: ); ! 825: ! 826: BOOL ! 827: WINAPI ! 828: FreeResource( ! 829: HGLOBAL hResData ! 830: ); ! 831: ! 832: LPVOID ! 833: WINAPI ! 834: LockResource( ! 835: HGLOBAL hResData ! 836: ); ! 837: ! 838: #define UnlockResource(hResData) ((hResData), 0) ! 839: #define MAXINTATOM 0xC000 ! 840: #define MAKEINTATOM(i) (LPTSTR)((DWORD)((WORD)(i))) ! 841: #define INVALID_ATOM ((ATOM)0) ! 842: ! 843: int ! 844: WINAPI ! 845: WinMain( ! 846: HINSTANCE hInstance, ! 847: HINSTANCE hPrevInstance, ! 848: LPSTR lpCmdLine, ! 849: int nShowCmd ! 850: ); ! 851: ! 852: BOOL ! 853: WINAPI ! 854: FreeLibrary( ! 855: HINSTANCE hLibModule ! 856: ); ! 857: ! 858: FARPROC ! 859: WINAPI ! 860: GetProcAddress( ! 861: HINSTANCE hModule, ! 862: LPCSTR lpProcName ! 863: ); ! 864: ! 865: DWORD ! 866: WINAPI ! 867: GetVersion( VOID ); ! 868: ! 869: HGLOBAL ! 870: WINAPI ! 871: GlobalAlloc( ! 872: UINT uFlags, ! 873: DWORD dwBytes ! 874: ); ! 875: ! 876: HGLOBAL ! 877: WINAPI ! 878: GlobalReAlloc( ! 879: HGLOBAL hMem, ! 880: DWORD dwBytes, ! 881: UINT uFlags ! 882: ); ! 883: ! 884: DWORD ! 885: WINAPI ! 886: GlobalSize( ! 887: HGLOBAL hMem ! 888: ); ! 889: ! 890: UINT ! 891: WINAPI ! 892: GlobalFlags( ! 893: HGLOBAL hMem ! 894: ); ! 895: ! 896: ! 897: LPVOID ! 898: WINAPI ! 899: GlobalLock( ! 900: HGLOBAL hMem ! 901: ); ! 902: ! 903: //!!!MWH My version win31 = DWORD WINAPI GlobalHandle(UINT) ! 904: HGLOBAL ! 905: WINAPI ! 906: GlobalHandle( ! 907: LPVOID pMem ! 908: ); ! 909: ! 910: ! 911: BOOL ! 912: WINAPI ! 913: GlobalUnlock( ! 914: HGLOBAL hMem ! 915: ); ! 916: ! 917: ! 918: HGLOBAL ! 919: WINAPI ! 920: GlobalFree( ! 921: HGLOBAL hMem ! 922: ); ! 923: ! 924: UINT ! 925: WINAPI ! 926: GlobalCompact( ! 927: DWORD dwMinFree ! 928: ); ! 929: ! 930: VOID ! 931: WINAPI ! 932: GlobalFix( ! 933: HGLOBAL hMem ! 934: ); ! 935: ! 936: VOID ! 937: WINAPI ! 938: GlobalUnfix( ! 939: HGLOBAL hMem ! 940: ); ! 941: ! 942: LPVOID ! 943: WINAPI ! 944: GlobalWire( ! 945: HGLOBAL hMem ! 946: ); ! 947: ! 948: BOOL ! 949: WINAPI ! 950: GlobalUnWire( ! 951: HGLOBAL hMem ! 952: ); ! 953: ! 954: VOID ! 955: WINAPI ! 956: GlobalMemoryStatus( ! 957: LPMEMORYSTATUS lpBuffer ! 958: ); ! 959: ! 960: HLOCAL ! 961: WINAPI ! 962: LocalAlloc( ! 963: UINT uFlags, ! 964: UINT uBytes ! 965: ); ! 966: ! 967: HLOCAL ! 968: WINAPI ! 969: LocalReAlloc( ! 970: HLOCAL hMem, ! 971: UINT uBytes, ! 972: UINT uFlags ! 973: ); ! 974: ! 975: LPVOID ! 976: WINAPI ! 977: LocalLock( ! 978: HLOCAL hMem ! 979: ); ! 980: ! 981: HLOCAL ! 982: WINAPI ! 983: LocalHandle( ! 984: LPVOID pMem ! 985: ); ! 986: ! 987: BOOL ! 988: WINAPI ! 989: LocalUnlock( ! 990: HLOCAL hMem ! 991: ); ! 992: ! 993: UINT ! 994: WINAPI ! 995: LocalSize( ! 996: HLOCAL hMem ! 997: ); ! 998: ! 999: UINT ! 1000: WINAPI ! 1001: LocalFlags( ! 1002: HLOCAL hMem ! 1003: ); ! 1004: ! 1005: HLOCAL ! 1006: WINAPI ! 1007: LocalFree( ! 1008: HLOCAL hMem ! 1009: ); ! 1010: ! 1011: UINT ! 1012: WINAPI ! 1013: LocalShrink( ! 1014: HLOCAL hMem, ! 1015: UINT cbNewSize ! 1016: ); ! 1017: ! 1018: UINT ! 1019: WINAPI ! 1020: LocalCompact( ! 1021: UINT uMinFree ! 1022: ); ! 1023: ! 1024: BOOL ! 1025: WINAPI ! 1026: FlushInstructionCache( ! 1027: HANDLE hProcess, ! 1028: LPVOID lpBaseAddress, ! 1029: DWORD dwSize ! 1030: ); ! 1031: ! 1032: LPVOID ! 1033: WINAPI ! 1034: VirtualAlloc( ! 1035: LPVOID lpAddress, ! 1036: DWORD dwSize, ! 1037: DWORD flAllocationType, ! 1038: DWORD flProtect ! 1039: ); ! 1040: ! 1041: BOOL ! 1042: WINAPI ! 1043: VirtualFree( ! 1044: LPVOID lpAddress, ! 1045: DWORD dwSize, ! 1046: DWORD dwFreeType ! 1047: ); ! 1048: ! 1049: BOOL ! 1050: WINAPI ! 1051: VirtualProtect( ! 1052: LPVOID lpAddress, ! 1053: DWORD dwSize, ! 1054: DWORD flNewProtect, ! 1055: PDWORD lpflOldProtect ! 1056: ); ! 1057: ! 1058: DWORD ! 1059: WINAPI ! 1060: VirtualQuery( ! 1061: LPVOID lpAddress, ! 1062: PMEMORY_BASIC_INFORMATION lpBuffer, ! 1063: DWORD dwLength ! 1064: ); ! 1065: ! 1066: BOOL ! 1067: WINAPI ! 1068: VirtualProtectEx( ! 1069: HANDLE hProcess, ! 1070: LPVOID lpAddress, ! 1071: DWORD dwSize, ! 1072: DWORD flNewProtect, ! 1073: PDWORD lpflOldProtect ! 1074: ); ! 1075: ! 1076: DWORD ! 1077: WINAPI ! 1078: VirtualQueryEx( ! 1079: HANDLE hProcess, ! 1080: LPVOID lpAddress, ! 1081: PMEMORY_BASIC_INFORMATION lpBuffer, ! 1082: DWORD dwLength ! 1083: ); ! 1084: ! 1085: HANDLE ! 1086: WINAPI ! 1087: HeapCreate( ! 1088: DWORD flOptions, ! 1089: DWORD dwInitialSize, ! 1090: DWORD dwMaximumSize ! 1091: ); ! 1092: ! 1093: BOOL ! 1094: WINAPI ! 1095: HeapDestroy( ! 1096: HANDLE hHeap ! 1097: ); ! 1098: ! 1099: LPSTR ! 1100: WINAPI ! 1101: HeapAlloc( ! 1102: HANDLE hHeap, ! 1103: DWORD dwBytes ! 1104: ); ! 1105: ! 1106: BOOL ! 1107: WINAPI ! 1108: HeapFree( ! 1109: HANDLE hHeap, ! 1110: LPSTR lpMem ! 1111: ); ! 1112: ! 1113: DWORD ! 1114: WINAPI ! 1115: HeapSize( ! 1116: HANDLE hHeap, ! 1117: LPSTR lpMem ! 1118: ); ! 1119: ! 1120: ! 1121: HANDLE ! 1122: WINAPI ! 1123: OpenProcess( ! 1124: DWORD dwDesiredAccess, ! 1125: BOOL bInheritHandle, ! 1126: DWORD dwProcessId ! 1127: ); ! 1128: ! 1129: HANDLE ! 1130: WINAPI ! 1131: GetCurrentProcess( ! 1132: VOID ! 1133: ); ! 1134: ! 1135: DWORD ! 1136: WINAPI ! 1137: GetCurrentProcessId( ! 1138: VOID ! 1139: ); ! 1140: ! 1141: VOID ! 1142: WINAPI ! 1143: ExitProcess( ! 1144: UINT uExitCode ! 1145: ); ! 1146: ! 1147: BOOL ! 1148: WINAPI ! 1149: TerminateProcess( ! 1150: HANDLE hProcess, ! 1151: UINT uExitCode ! 1152: ); ! 1153: ! 1154: BOOL ! 1155: WINAPI ! 1156: GetExitCodeProcess( ! 1157: HANDLE hProcess, ! 1158: LPDWORD lpExitCode ! 1159: ); ! 1160: ! 1161: ! 1162: VOID ! 1163: WINAPI ! 1164: FatalExit( ! 1165: int ExitCode ! 1166: ); ! 1167: ! 1168: LPVOID ! 1169: WINAPI ! 1170: GetEnvironmentStrings( ! 1171: VOID ! 1172: ); ! 1173: ! 1174: VOID ! 1175: WINAPI ! 1176: RaiseException( ! 1177: DWORD dwExceptionCode, ! 1178: DWORD dwExceptionFlags, ! 1179: DWORD nNumberOfArguments, ! 1180: LPDWORD lpArguments ! 1181: ); ! 1182: ! 1183: EXCEPTION_DISPOSITION ! 1184: WINAPI ! 1185: UnhandledExceptionFilter( ! 1186: struct _EXCEPTION_POINTERS *ExceptionInfo ! 1187: ); ! 1188: ! 1189: HANDLE ! 1190: WINAPI ! 1191: CreateThread( ! 1192: LPSECURITY_ATTRIBUTES lpThreadAttributes, ! 1193: DWORD dwStackSize, ! 1194: LPTHREAD_START_ROUTINE lpStartAddress, ! 1195: LPVOID lpParameter, ! 1196: DWORD dwCreationFlags, ! 1197: LPDWORD lpThreadId ! 1198: ); ! 1199: ! 1200: HANDLE ! 1201: WINAPI ! 1202: CreateRemoteThread( ! 1203: HANDLE hProcess, ! 1204: LPSECURITY_ATTRIBUTES lpThreadAttributes, ! 1205: DWORD dwStackSize, ! 1206: LPTHREAD_START_ROUTINE lpStartAddress, ! 1207: LPVOID lpParameter, ! 1208: DWORD dwCreationFlags, ! 1209: LPDWORD lpThreadId ! 1210: ); ! 1211: ! 1212: HANDLE ! 1213: WINAPI ! 1214: GetCurrentThread( ! 1215: VOID ! 1216: ); ! 1217: ! 1218: DWORD ! 1219: WINAPI ! 1220: GetCurrentThreadId( ! 1221: VOID ! 1222: ); ! 1223: ! 1224: BOOL ! 1225: WINAPI ! 1226: SetThreadPriority( ! 1227: HANDLE hThread, ! 1228: int nPriority ! 1229: ); ! 1230: ! 1231: int ! 1232: WINAPI ! 1233: GetThreadPriority( ! 1234: HANDLE hThread ! 1235: ); ! 1236: ! 1237: VOID ! 1238: WINAPI ! 1239: ExitThread( ! 1240: DWORD dwExitCode ! 1241: ); ! 1242: ! 1243: BOOL ! 1244: WINAPI ! 1245: TerminateThread( ! 1246: HANDLE hThread, ! 1247: DWORD dwExitCode ! 1248: ); ! 1249: ! 1250: BOOL ! 1251: WINAPI ! 1252: GetExitCodeThread( ! 1253: HANDLE hThread, ! 1254: LPDWORD lpExitCode ! 1255: ); ! 1256: ! 1257: BOOL ! 1258: WINAPI ! 1259: GetThreadSelectorEntry( ! 1260: HANDLE hThread, ! 1261: DWORD dwSelector, ! 1262: LPLDT_ENTRY lpSelectorEntry ! 1263: ); ! 1264: ! 1265: DWORD ! 1266: WINAPI ! 1267: GetLastError( ! 1268: VOID ! 1269: ); ! 1270: ! 1271: VOID ! 1272: WINAPI ! 1273: SetLastError( ! 1274: DWORD dwErrCode ! 1275: ); ! 1276: ! 1277: // ! 1278: // SetLastErrorEx() types. ! 1279: // ! 1280: #define SLE_ERROR 0x00000001 ! 1281: #define SLE_MINORERROR 0x00000002 ! 1282: #define SLE_WARNING 0x00000003 ! 1283: ! 1284: VOID ! 1285: SetLastErrorEx( ! 1286: DWORD dwErrCode, ! 1287: DWORD dwType ! 1288: ); ! 1289: ! 1290: BOOL ! 1291: WINAPI ! 1292: GetOverlappedResult( ! 1293: HANDLE hFile, ! 1294: LPOVERLAPPED lpOverlapped, ! 1295: LPDWORD lpNumberOfBytesTransferred, ! 1296: BOOL bWait ! 1297: ); ! 1298: ! 1299: #define SEM_FAILCRITICALERRORS 0x0001 ! 1300: #define SEM_NOGPFAULTERRORBOX 0x0002 ! 1301: #define SEM_NOOPENFILEERRORBOX 0x8000 ! 1302: ! 1303: VOID ! 1304: WINAPI ! 1305: SetDebugErrorLevel( ! 1306: DWORD dwLevel ! 1307: ); ! 1308: ! 1309: UINT ! 1310: WINAPI ! 1311: SetErrorMode( ! 1312: UINT uMode ! 1313: ); ! 1314: ! 1315: ! 1316: BOOL ! 1317: WINAPI ! 1318: ReadProcessMemory( ! 1319: HANDLE hProcess, ! 1320: LPVOID lpBaseAddress, ! 1321: LPVOID lpBuffer, ! 1322: DWORD nSize, ! 1323: LPDWORD lpNumberOfBytesRead ! 1324: ); ! 1325: ! 1326: BOOL ! 1327: WINAPI ! 1328: WriteProcessMemory( ! 1329: HANDLE hProcess, ! 1330: LPVOID lpBaseAddress, ! 1331: LPVOID lpBuffer, ! 1332: DWORD nSize, ! 1333: LPDWORD lpNumberOfBytesWritten ! 1334: ); ! 1335: ! 1336: BOOL ! 1337: WINAPI ! 1338: GetThreadContext( ! 1339: HANDLE hThread, ! 1340: LPCONTEXT lpContext ! 1341: ); ! 1342: ! 1343: BOOL ! 1344: WINAPI ! 1345: SetThreadContext( ! 1346: HANDLE hThread, ! 1347: LPCONTEXT lpContext ! 1348: ); ! 1349: ! 1350: DWORD ! 1351: WINAPI ! 1352: SuspendThread( ! 1353: HANDLE hThread ! 1354: ); ! 1355: ! 1356: DWORD ! 1357: WINAPI ! 1358: ResumeThread( ! 1359: HANDLE hThread ! 1360: ); ! 1361: ! 1362: VOID ! 1363: WINAPI ! 1364: DebugBreak( ! 1365: VOID ! 1366: ); ! 1367: ! 1368: BOOL ! 1369: WINAPI ! 1370: WaitForDebugEvent( ! 1371: LPDEBUG_EVENT lpDebugEvent, ! 1372: DWORD dwMilliseconds ! 1373: ); ! 1374: ! 1375: BOOL ! 1376: WINAPI ! 1377: ContinueDebugEvent( ! 1378: DWORD dwProcessId, ! 1379: DWORD dwThreadId, ! 1380: DWORD dwContinueStatus ! 1381: ); ! 1382: ! 1383: BOOL ! 1384: WINAPI ! 1385: DebugActiveProcess( ! 1386: DWORD dwProcessId ! 1387: ); ! 1388: ! 1389: HANDLE ! 1390: WINAPI ! 1391: DebugSnapShotProcessHeaps( ! 1392: DWORD dwProcessId ! 1393: ); ! 1394: ! 1395: typedef struct _DEBUG_HEAP_BACKTRACE { ! 1396: DWORD Depth; ! 1397: DWORD ReturnAddresses[ 1 ]; ! 1398: } DEBUG_HEAP_BACKTRACE, *PDEBUG_HEAP_BACKTRACE; ! 1399: ! 1400: typedef struct _DEBUG_HEAP_ALLOCATOR { ! 1401: DWORD TotalBytesAllocated; ! 1402: DWORD OffsetToBackTrace; ! 1403: } DEBUG_HEAP_ALLOCATOR, *PDEBUG_HEAP_ALLOCATOR; ! 1404: ! 1405: typedef struct _DEBUG_HEAP_ENTRY { ! 1406: DWORD Address; ! 1407: USHORT Size; ! 1408: USHORT Allocator; ! 1409: } DEBUG_HEAP_ENTRY, *PDEBUG_HEAP_ENTRY; ! 1410: ! 1411: #define DEBUG_HEAP_ENTRY_FREE (USHORT)-1 ! 1412: ! 1413: typedef struct _DEBUG_HEAP_INFO { ! 1414: USHORT Creator; ! 1415: USHORT HeaderSizeLog2; ! 1416: USHORT ReservedPages; ! 1417: USHORT CommittedPages; ! 1418: USHORT AllocatorReservedPages; ! 1419: USHORT AllocatorCommittedPages; ! 1420: DWORD NumberOfEntries; ! 1421: DEBUG_HEAP_ENTRY Entries[ 1 ]; ! 1422: } DEBUG_HEAP_INFO, *PDEBUG_HEAP_INFO; ! 1423: ! 1424: typedef struct _DEBUG_HEAP_DUMP { ! 1425: DWORD OffsetToAllocatorTable; ! 1426: DWORD NumberOfHeaps; ! 1427: DEBUG_HEAP_INFO HeapInfo[ 1 ]; ! 1428: } DEBUG_HEAP_DUMP, *PDEBUG_HEAP_DUMP; ! 1429: ! 1430: VOID ! 1431: WINAPI ! 1432: InitializeCriticalSection( ! 1433: LPCRITICAL_SECTION lpCriticalSection ! 1434: ); ! 1435: ! 1436: VOID ! 1437: WINAPI ! 1438: EnterCriticalSection( ! 1439: LPCRITICAL_SECTION lpCriticalSection ! 1440: ); ! 1441: ! 1442: VOID ! 1443: WINAPI ! 1444: LeaveCriticalSection( ! 1445: LPCRITICAL_SECTION lpCriticalSection ! 1446: ); ! 1447: ! 1448: VOID ! 1449: WINAPI ! 1450: DeleteCriticalSection( ! 1451: LPCRITICAL_SECTION lpCriticalSection ! 1452: ); ! 1453: ! 1454: BOOL ! 1455: WINAPI ! 1456: SetEvent( ! 1457: HANDLE hEvent ! 1458: ); ! 1459: ! 1460: BOOL ! 1461: WINAPI ! 1462: ResetEvent( ! 1463: HANDLE hEvent ! 1464: ); ! 1465: ! 1466: BOOL ! 1467: WINAPI ! 1468: PulseEvent( ! 1469: HANDLE hEvent ! 1470: ); ! 1471: ! 1472: BOOL ! 1473: WINAPI ! 1474: ReleaseSemaphore( ! 1475: HANDLE hSemaphore, ! 1476: LONG lReleaseCount, ! 1477: LPLONG lpPreviousCount ! 1478: ); ! 1479: ! 1480: BOOL ! 1481: WINAPI ! 1482: ReleaseMutex( ! 1483: HANDLE hMutex ! 1484: ); ! 1485: ! 1486: DWORD ! 1487: WINAPI ! 1488: WaitForSingleObject( ! 1489: HANDLE hHandle, ! 1490: DWORD dwMilliseconds ! 1491: ); ! 1492: ! 1493: DWORD ! 1494: WINAPI ! 1495: WaitForMultipleObjects( ! 1496: DWORD nCount, ! 1497: LPHANDLE lpHandles, ! 1498: BOOL bWaitAll, ! 1499: DWORD dwMilliseconds ! 1500: ); ! 1501: ! 1502: VOID ! 1503: WINAPI ! 1504: Sleep( ! 1505: DWORD dwMilliseconds ! 1506: ); ! 1507: ! 1508: HRSRC ! 1509: WINAPI ! 1510: LoadResource( ! 1511: HINSTANCE hModule, ! 1512: HRSRC hResInfo ! 1513: ); ! 1514: ! 1515: DWORD ! 1516: WINAPI ! 1517: SizeofResource( ! 1518: HINSTANCE hModule, ! 1519: HRSRC hResInfo ! 1520: ); ! 1521: ! 1522: ATOM ! 1523: WINAPI ! 1524: GlobalDeleteAtom( ! 1525: ATOM nAtom ! 1526: ); ! 1527: ! 1528: BOOL ! 1529: WINAPI ! 1530: InitAtomTable( ! 1531: DWORD nSize ! 1532: ); ! 1533: ! 1534: ATOM ! 1535: WINAPI ! 1536: DeleteAtom( ! 1537: ATOM nAtom ! 1538: ); ! 1539: ! 1540: UINT ! 1541: WINAPI ! 1542: SetHandleCount( ! 1543: UINT uNumber ! 1544: ); ! 1545: ! 1546: DWORD ! 1547: WINAPI ! 1548: GetLogicalDrives( ! 1549: VOID ! 1550: ); ! 1551: ! 1552: BOOL ! 1553: WINAPI ! 1554: LockFile( ! 1555: HANDLE hFile, ! 1556: DWORD dwFileOffsetLow, ! 1557: DWORD dwFileOffsetHigh, ! 1558: DWORD nNumberOfBytesToLockLow, ! 1559: DWORD nNumberOfBytesToLockHigh ! 1560: ); ! 1561: ! 1562: BOOL ! 1563: WINAPI ! 1564: UnlockFile( ! 1565: HANDLE hFile, ! 1566: DWORD dwFileOffsetLow, ! 1567: DWORD dwFileOffsetHigh, ! 1568: DWORD nNumberOfBytesToUnlockLow, ! 1569: DWORD nNumberOfBytesToUnlockHigh ! 1570: ); ! 1571: ! 1572: typedef struct _BY_HANDLE_FILE_INFORMATION { ! 1573: DWORD dwFileAttributes; ! 1574: FILETIME ftCreationTime; ! 1575: FILETIME ftLastAccessTime; ! 1576: FILETIME ftLastWriteTime; ! 1577: DWORD dwVolumeSerialNumber; ! 1578: DWORD nFileSizeHigh; ! 1579: DWORD nFileSizeLow; ! 1580: DWORD nNumberOfLinks; ! 1581: DWORD nFileIndexHigh; ! 1582: DWORD nFileIndexLow; ! 1583: } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION; ! 1584: ! 1585: BOOL ! 1586: WINAPI ! 1587: GetFileInformationByHandle( ! 1588: HANDLE hFile, ! 1589: LPBY_HANDLE_FILE_INFORMATION lpFileInformation ! 1590: ); ! 1591: ! 1592: DWORD ! 1593: WINAPI ! 1594: GetFileType( ! 1595: HANDLE hFile ! 1596: ); ! 1597: ! 1598: DWORD ! 1599: WINAPI ! 1600: GetFileSize( ! 1601: HANDLE hFile, ! 1602: LPDWORD lpFileSizeHigh ! 1603: ); ! 1604: ! 1605: HANDLE ! 1606: WINAPI ! 1607: GetStdHandle( ! 1608: DWORD nStdHandle ! 1609: ); ! 1610: ! 1611: BOOL ! 1612: WINAPI ! 1613: SetStdHandle( ! 1614: DWORD nStdHandle, ! 1615: HANDLE hHandle ! 1616: ); ! 1617: ! 1618: BOOL ! 1619: WINAPI ! 1620: WriteFile( ! 1621: HANDLE hFile, ! 1622: CONST VOID *lpBuffer, ! 1623: DWORD nNumberOfBytesToWrite, ! 1624: LPDWORD lpNumberOfBytesWritten, ! 1625: LPOVERLAPPED lpOverlapped ! 1626: ); ! 1627: ! 1628: BOOL ! 1629: WINAPI ! 1630: ReadFile( ! 1631: HANDLE hFile, ! 1632: LPVOID lpBuffer, ! 1633: DWORD nNumberOfBytesToRead, ! 1634: LPDWORD lpNumberOfBytesRead, ! 1635: LPOVERLAPPED lpOverlapped ! 1636: ); ! 1637: ! 1638: BOOL ! 1639: WINAPI ! 1640: FlushFileBuffers( ! 1641: HANDLE hFile ! 1642: ); ! 1643: ! 1644: BOOL ! 1645: WINAPI ! 1646: DeviceIoControl( ! 1647: HANDLE hDevice, ! 1648: DWORD dwIoControlCode, ! 1649: LPVOID lpInBuffer, ! 1650: DWORD nInBufferSize, ! 1651: LPVOID lpOutBuffer, ! 1652: DWORD nOutBufferSize, ! 1653: LPDWORD lpBytesReturned, ! 1654: LPOVERLAPPED lpOverlapped ! 1655: ); ! 1656: ! 1657: BOOL ! 1658: WINAPI ! 1659: SetEndOfFile( ! 1660: HANDLE hFile ! 1661: ); ! 1662: ! 1663: DWORD ! 1664: WINAPI ! 1665: SetFilePointer( ! 1666: HANDLE hFile, ! 1667: LONG lDistanceToMove, ! 1668: PLONG lpDistanceToMoveHigh, ! 1669: DWORD dwMoveMethod ! 1670: ); ! 1671: ! 1672: BOOL ! 1673: WINAPI ! 1674: FindClose( ! 1675: HANDLE hFindFile ! 1676: ); ! 1677: ! 1678: BOOL ! 1679: WINAPI ! 1680: GetFileTime( ! 1681: HANDLE hFile, ! 1682: LPFILETIME lpCreationTime, ! 1683: LPFILETIME lpLastAccessTime, ! 1684: LPFILETIME lpLastWriteTime ! 1685: ); ! 1686: ! 1687: BOOL ! 1688: WINAPI ! 1689: SetFileTime( ! 1690: HANDLE hFile, ! 1691: LPFILETIME lpCreationTime, ! 1692: LPFILETIME lpLastAccessTime, ! 1693: LPFILETIME lpLastWriteTime ! 1694: ); ! 1695: ! 1696: BOOL ! 1697: WINAPI ! 1698: CloseHandle( ! 1699: HANDLE hObject ! 1700: ); ! 1701: ! 1702: BOOL ! 1703: WINAPI ! 1704: DuplicateHandle( ! 1705: HANDLE hSourceProcessHandle, ! 1706: HANDLE hSourceHandle, ! 1707: HANDLE hTargetProcessHandle, ! 1708: LPHANDLE lpTargetHandle, ! 1709: DWORD dwDesiredAccess, ! 1710: BOOL bInheritHandle, ! 1711: DWORD dwOptions ! 1712: ); ! 1713: ! 1714: DWORD ! 1715: WINAPI ! 1716: LoadModule( ! 1717: LPCSTR lpModuleName, ! 1718: LPVOID lpParameterBlock ! 1719: ); ! 1720: ! 1721: UINT ! 1722: WINAPI ! 1723: WinExec( ! 1724: LPCSTR lpCmdLine, ! 1725: UINT uCmdShow ! 1726: ); ! 1727: ! 1728: BOOL ! 1729: WINAPI ! 1730: BuildCommDCB( ! 1731: LPSTR lpDef, ! 1732: LPDCB lpDCB ! 1733: ); ! 1734: ! 1735: BOOL ! 1736: WINAPI ! 1737: ClearCommBreak( ! 1738: HANDLE hFile ! 1739: ); ! 1740: ! 1741: BOOL ! 1742: WINAPI ! 1743: ClearCommError( ! 1744: HANDLE hFile, ! 1745: LPDWORD lpErrors, ! 1746: LPCOMSTAT lpStat ! 1747: ); ! 1748: ! 1749: BOOL ! 1750: WINAPI ! 1751: SetupComm( ! 1752: HANDLE hFile, ! 1753: DWORD dwInQueue, ! 1754: DWORD dwOutQueue ! 1755: ); ! 1756: ! 1757: BOOL ! 1758: WINAPI ! 1759: EscapeCommFunction( ! 1760: HANDLE hFile, ! 1761: DWORD dwFunc ! 1762: ); ! 1763: ! 1764: BOOL ! 1765: WINAPI ! 1766: GetCommMask( ! 1767: HANDLE hFile, ! 1768: LPDWORD lpEvtMask ! 1769: ); ! 1770: ! 1771: BOOL ! 1772: WINAPI ! 1773: GetCommProperties( ! 1774: HANDLE hFile, ! 1775: LPCOMMPROP lpCommProp ! 1776: ); ! 1777: ! 1778: BOOL ! 1779: WINAPI ! 1780: GetCommModemStatus( ! 1781: HANDLE hFile, ! 1782: LPDWORD lpModemStat ! 1783: ); ! 1784: ! 1785: BOOL ! 1786: WINAPI ! 1787: GetCommState( ! 1788: HANDLE hFile, ! 1789: LPDCB lpDCB ! 1790: ); ! 1791: ! 1792: BOOL ! 1793: WINAPI ! 1794: GetCommTimeouts( ! 1795: HANDLE hFile, ! 1796: LPCOMMTIMEOUTS lpCommTimeouts ! 1797: ); ! 1798: ! 1799: BOOL ! 1800: WINAPI ! 1801: PurgeComm( ! 1802: HANDLE hFile, ! 1803: DWORD dwFlags ! 1804: ); ! 1805: ! 1806: BOOL ! 1807: WINAPI ! 1808: SetCommBreak( ! 1809: HANDLE hFile ! 1810: ); ! 1811: ! 1812: BOOL ! 1813: WINAPI ! 1814: SetCommMask( ! 1815: HANDLE hFile, ! 1816: DWORD dwEvtMask ! 1817: ); ! 1818: ! 1819: BOOL ! 1820: WINAPI ! 1821: SetCommState( ! 1822: HANDLE hFile, ! 1823: LPDCB lpDCB ! 1824: ); ! 1825: ! 1826: BOOL ! 1827: WINAPI ! 1828: SetCommTimeouts( ! 1829: HANDLE hFile, ! 1830: LPCOMMTIMEOUTS lpCommTimeouts ! 1831: ); ! 1832: ! 1833: BOOL ! 1834: WINAPI ! 1835: TransmitCommChar( ! 1836: HANDLE hFile, ! 1837: char cChar ! 1838: ); ! 1839: ! 1840: BOOL ! 1841: WINAPI ! 1842: WaitCommEvent( ! 1843: HANDLE hFile, ! 1844: LPDWORD lpEvtMask, ! 1845: LPOVERLAPPED lpOverlapped ! 1846: ); ! 1847: ! 1848: ! 1849: DWORD ! 1850: WINAPI ! 1851: SetTapePosition( ! 1852: HANDLE hDevice, ! 1853: DWORD dwPositionMethod, ! 1854: DWORD dwPartition, ! 1855: DWORD dwOffset, ! 1856: LPDWORD lpdwOffsetHigh, ! 1857: LPOVERLAPPED lpOverlapped ! 1858: ); ! 1859: ! 1860: DWORD ! 1861: WINAPI ! 1862: GetTapePosition( ! 1863: HANDLE hDevice, ! 1864: LPDWORD lpdwPartition, ! 1865: LPDWORD lpdwOffsetHigh, ! 1866: LPOVERLAPPED lpOverlapped ! 1867: ); ! 1868: ! 1869: DWORD ! 1870: WINAPI ! 1871: PrepareTape( ! 1872: HANDLE hDevice, ! 1873: DWORD dwTapeOperation, ! 1874: LPOVERLAPPED lpOverlapped ! 1875: ); ! 1876: ! 1877: DWORD ! 1878: WINAPI ! 1879: EraseTape( ! 1880: HANDLE hDevice, ! 1881: DWORD dwPartition, ! 1882: DWORD dwEraseType, ! 1883: LPOVERLAPPED lpOverlapped ! 1884: ); ! 1885: ! 1886: DWORD ! 1887: CreateTapePartition( ! 1888: HANDLE hDevice, ! 1889: DWORD dwSize, ! 1890: LPVOID lpPartitionParameters, ! 1891: LPOVERLAPPED lpOverlapped ! 1892: ); ! 1893: ! 1894: DWORD ! 1895: WINAPI ! 1896: WriteTapemark( ! 1897: HANDLE hDevice, ! 1898: DWORD dwTapemarkType, ! 1899: DWORD dwTapemarkCount, ! 1900: LPOVERLAPPED lpOverlapped ! 1901: ); ! 1902: ! 1903: DWORD ! 1904: WINAPI ! 1905: GetTapeStatus( ! 1906: HANDLE hDevice, ! 1907: LPVOID lpTapeStatus, ! 1908: LPOVERLAPPED lpOverlapped ! 1909: ); ! 1910: ! 1911: DWORD ! 1912: WINAPI ! 1913: GetTapeParameters( ! 1914: HANDLE hDevice, ! 1915: DWORD dwOperation, ! 1916: LPVOID lpTapeInformation, ! 1917: LPOVERLAPPED lpOverlapped ! 1918: ); ! 1919: ! 1920: #define GET_TAPE_MEDIA_INFORMATION 0 ! 1921: #define GET_TAPE_DRIVE_INFORMATION 1 ! 1922: ! 1923: DWORD ! 1924: WINAPI ! 1925: SetTapeParameters( ! 1926: HANDLE hDevice, ! 1927: DWORD dwOperation, ! 1928: LPVOID lpTapeInformation, ! 1929: LPOVERLAPPED lpOverlapped ! 1930: ); ! 1931: ! 1932: #define SET_TAPE_MEDIA_INFORMATION 0 ! 1933: #define SET_TAPE_DRIVE_INFORMATION 1 ! 1934: ! 1935: BOOL ! 1936: WINAPI ! 1937: Beep( ! 1938: DWORD dwFreq, ! 1939: DWORD dwDuration ! 1940: ); ! 1941: ! 1942: VOID ! 1943: WINAPI ! 1944: OpenSound( ! 1945: VOID ! 1946: ); ! 1947: ! 1948: VOID ! 1949: WINAPI ! 1950: CloseSound( ! 1951: VOID ! 1952: ); ! 1953: ! 1954: VOID ! 1955: WINAPI ! 1956: StartSound( ! 1957: VOID ! 1958: ); ! 1959: ! 1960: VOID ! 1961: WINAPI ! 1962: StopSound( ! 1963: VOID ! 1964: ); ! 1965: ! 1966: DWORD ! 1967: WINAPI ! 1968: WaitSoundState( ! 1969: DWORD nState ! 1970: ); ! 1971: ! 1972: DWORD ! 1973: WINAPI ! 1974: SyncAllVoices( ! 1975: VOID ! 1976: ); ! 1977: ! 1978: DWORD ! 1979: WINAPI ! 1980: CountVoiceNotes( ! 1981: DWORD nVoice ! 1982: ); ! 1983: ! 1984: LPDWORD ! 1985: WINAPI ! 1986: GetThresholdEvent( ! 1987: VOID ! 1988: ); ! 1989: ! 1990: DWORD ! 1991: WINAPI ! 1992: GetThresholdStatus( ! 1993: VOID ! 1994: ); ! 1995: ! 1996: DWORD ! 1997: WINAPI ! 1998: SetSoundNoise( ! 1999: DWORD nSource, ! 2000: DWORD nDuration ! 2001: ); ! 2002: ! 2003: DWORD ! 2004: WINAPI ! 2005: SetVoiceAccent( ! 2006: DWORD nVoice, ! 2007: DWORD nTempo, ! 2008: DWORD nVolume, ! 2009: DWORD nMode, ! 2010: DWORD nPitch ! 2011: ); ! 2012: ! 2013: DWORD ! 2014: WINAPI ! 2015: SetVoiceEnvelope( ! 2016: DWORD nVoice, ! 2017: DWORD nShape, ! 2018: DWORD nRepeat ! 2019: ); ! 2020: ! 2021: DWORD ! 2022: WINAPI ! 2023: SetVoiceNote( ! 2024: DWORD nVoice, ! 2025: DWORD nValue, ! 2026: DWORD nLength, ! 2027: DWORD nCdots ! 2028: ); ! 2029: ! 2030: DWORD ! 2031: WINAPI ! 2032: SetVoiceQueueSize( ! 2033: DWORD nVoice, ! 2034: DWORD nBytes ! 2035: ); ! 2036: ! 2037: DWORD ! 2038: WINAPI ! 2039: SetVoiceSound( ! 2040: DWORD nVoice, ! 2041: DWORD Frequency, ! 2042: DWORD nDuration ! 2043: ); ! 2044: ! 2045: DWORD ! 2046: WINAPI ! 2047: SetVoiceThreshold( ! 2048: DWORD nVoice, ! 2049: DWORD nNotes ! 2050: ); ! 2051: ! 2052: int ! 2053: WINAPI ! 2054: MulDiv( ! 2055: int nNumber, ! 2056: int nNumerator, ! 2057: int nDenominator ! 2058: ); ! 2059: ! 2060: VOID ! 2061: WINAPI ! 2062: GetSystemTime( ! 2063: LPSYSTEMTIME lpSystemTime ! 2064: ); ! 2065: ! 2066: BOOL ! 2067: WINAPI ! 2068: SetSystemTime( ! 2069: LPSYSTEMTIME lpSystemTime ! 2070: ); ! 2071: ! 2072: VOID ! 2073: WINAPI ! 2074: GetSystemInfo( ! 2075: LPSYSTEM_INFO lpSystemInfo ! 2076: ); ! 2077: ! 2078: ! 2079: // ! 2080: // Routines to convert back and forth between system time and file time ! 2081: // ! 2082: ! 2083: BOOL ! 2084: WINAPI ! 2085: SystemTimeToFileTime( ! 2086: LPSYSTEMTIME lpSystemTime, ! 2087: LPFILETIME lpFileTime ! 2088: ); ! 2089: ! 2090: BOOL ! 2091: WINAPI ! 2092: FileTimeToSystemTime( ! 2093: LPFILETIME lpFileTime, ! 2094: LPSYSTEMTIME lpSystemTime ! 2095: ); ! 2096: ! 2097: LONG ! 2098: WINAPI ! 2099: CompareFileTime( ! 2100: LPFILETIME lpFileTime1, ! 2101: LPFILETIME lpFileTime2 ! 2102: ); ! 2103: ! 2104: BOOL ! 2105: WINAPI ! 2106: FileTimeToDosDateTime( ! 2107: LPFILETIME lpFileTime, ! 2108: LPWORD lpFatDate, ! 2109: LPWORD lpFatTime ! 2110: ); ! 2111: ! 2112: BOOL ! 2113: WINAPI ! 2114: DosDateTimeToFileTime( ! 2115: WORD wFatDate, ! 2116: WORD wFatTime, ! 2117: LPFILETIME lpFileTime ! 2118: ); ! 2119: ! 2120: DWORD ! 2121: WINAPI ! 2122: GetTickCount( ! 2123: VOID ! 2124: ); ! 2125: ! 2126: DWORD ! 2127: WINAPI ! 2128: FormatMessage( ! 2129: DWORD dwFlags, ! 2130: LPVOID lpSource, ! 2131: DWORD dwMessageId, ! 2132: DWORD dwLanguageId, ! 2133: LPSTR lpBuffer, ! 2134: DWORD nSize, ! 2135: LPVOID lpArguments ! 2136: ); ! 2137: ! 2138: #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100 ! 2139: #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200 ! 2140: #define FORMAT_MESSAGE_FROM_STRING 0x00000400 ! 2141: #define FORMAT_MESSAGE_FROM_HMODULE 0x00000800 ! 2142: #define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000 ! 2143: #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF ! 2144: ! 2145: ! 2146: BOOL ! 2147: WINAPI ! 2148: CreatePipe( ! 2149: PHANDLE hReadPipe, ! 2150: PHANDLE hWritePipe, ! 2151: LPSECURITY_ATTRIBUTES lpPipeAttributes, ! 2152: DWORD nSize ! 2153: ); ! 2154: ! 2155: BOOL ! 2156: WINAPI ! 2157: ConnectNamedPipe( ! 2158: HANDLE hNamedPipe, ! 2159: LPOVERLAPPED lpOverlapped ! 2160: ); ! 2161: ! 2162: BOOL ! 2163: WINAPI ! 2164: DisconnectNamedPipe( ! 2165: HANDLE hNamedPipe ! 2166: ); ! 2167: ! 2168: BOOL ! 2169: WINAPI ! 2170: SetNamedPipeHandleState( ! 2171: HANDLE hNamedPipe, ! 2172: LPDWORD lpMode, ! 2173: LPDWORD lpMaxCollectionCount, ! 2174: LPDWORD lpCollectDataTimeout ! 2175: ); ! 2176: ! 2177: BOOL ! 2178: WINAPI ! 2179: GetNamedPipeInfo( ! 2180: HANDLE hNamedPipe, ! 2181: LPDWORD lpFlags, ! 2182: LPDWORD lpOutBufferSize, ! 2183: LPDWORD lpInBufferSize, ! 2184: LPDWORD lpMaxInstances ! 2185: ); ! 2186: ! 2187: BOOL ! 2188: WINAPI ! 2189: PeekNamedPipe( ! 2190: HANDLE hNamedPipe, ! 2191: LPVOID lpBuffer, ! 2192: DWORD nBufferSize, ! 2193: LPDWORD lpBytesRead, ! 2194: LPDWORD lpTotalBytesAvail, ! 2195: LPDWORD lpBytesLeftThisMessage ! 2196: ); ! 2197: ! 2198: BOOL ! 2199: WINAPI ! 2200: TransactNamedPipe( ! 2201: HANDLE hNamedPipe, ! 2202: LPVOID lpInBuffer, ! 2203: DWORD nInBufferSize, ! 2204: LPVOID lpOutBuffer, ! 2205: DWORD nOutBufferSize, ! 2206: LPDWORD lpBytesRead, ! 2207: LPOVERLAPPED lpOverlapped ! 2208: ); ! 2209: ! 2210: HANDLE ! 2211: WINAPI ! 2212: CreateMailslotA( ! 2213: LPSTR lpName, ! 2214: DWORD nMaxMessageSize, ! 2215: DWORD lReadTimeout, ! 2216: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 2217: ); ! 2218: HANDLE ! 2219: WINAPI ! 2220: CreateMailslotW( ! 2221: LPWSTR lpName, ! 2222: DWORD nMaxMessageSize, ! 2223: DWORD lReadTimeout, ! 2224: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 2225: ); ! 2226: #ifdef UNICODE ! 2227: #define CreateMailslot CreateMailslotW ! 2228: #else ! 2229: #define CreateMailslot CreateMailslotA ! 2230: #endif // !UNICODE ! 2231: ! 2232: BOOL ! 2233: WINAPI ! 2234: GetMailslotInfo( ! 2235: HANDLE hMailslot, ! 2236: LPDWORD lpMaxMessageSize, ! 2237: LPDWORD lpNextSize, ! 2238: LPDWORD lpMessageCount, ! 2239: LPDWORD lpReadTimeout ! 2240: ); ! 2241: ! 2242: BOOL ! 2243: WINAPI ! 2244: SetMailslotInfo( ! 2245: HANDLE hMailslot, ! 2246: DWORD lReadTimeout ! 2247: ); ! 2248: ! 2249: LPVOID ! 2250: WINAPI ! 2251: MapViewOfFile( ! 2252: HANDLE hFileMappingObject, ! 2253: DWORD dwDesiredAccess, ! 2254: DWORD dwFileOffsetHigh, ! 2255: DWORD dwFileOffsetLow, ! 2256: DWORD dwNumberOfBytesToMap ! 2257: ); ! 2258: ! 2259: BOOL ! 2260: WINAPI ! 2261: FlushViewOfFile( ! 2262: LPVOID lpBaseAddress, ! 2263: DWORD dwNumberOfBytesToFlush ! 2264: ); ! 2265: ! 2266: BOOL ! 2267: WINAPI ! 2268: UnmapViewOfFile( ! 2269: LPVOID lpBaseAddress ! 2270: ); ! 2271: ! 2272: // ! 2273: // _l Compat Functions ! 2274: // ! 2275: ! 2276: int ! 2277: WINAPI ! 2278: lstrcmpA( ! 2279: LPCSTR lpString1, ! 2280: LPCSTR lpString2 ! 2281: ); ! 2282: int ! 2283: WINAPI ! 2284: lstrcmpW( ! 2285: LPCWSTR lpString1, ! 2286: LPCWSTR lpString2 ! 2287: ); ! 2288: #ifdef UNICODE ! 2289: #define lstrcmp lstrcmpW ! 2290: #else ! 2291: #define lstrcmp lstrcmpA ! 2292: #endif // !UNICODE ! 2293: ! 2294: int ! 2295: WINAPI ! 2296: lstrcmpiA( ! 2297: LPCSTR lpString1, ! 2298: LPCSTR lpString2 ! 2299: ); ! 2300: int ! 2301: WINAPI ! 2302: lstrcmpiW( ! 2303: LPCWSTR lpString1, ! 2304: LPCWSTR lpString2 ! 2305: ); ! 2306: #ifdef UNICODE ! 2307: #define lstrcmpi lstrcmpiW ! 2308: #else ! 2309: #define lstrcmpi lstrcmpiA ! 2310: #endif // !UNICODE ! 2311: ! 2312: LPSTR ! 2313: WINAPI ! 2314: lstrcpyA( ! 2315: LPSTR lpString1, ! 2316: LPCSTR lpString2 ! 2317: ); ! 2318: LPWSTR ! 2319: WINAPI ! 2320: lstrcpyW( ! 2321: LPWSTR lpString1, ! 2322: LPCWSTR lpString2 ! 2323: ); ! 2324: #ifdef UNICODE ! 2325: #define lstrcpy lstrcpyW ! 2326: #else ! 2327: #define lstrcpy lstrcpyA ! 2328: #endif // !UNICODE ! 2329: ! 2330: LPSTR ! 2331: WINAPI ! 2332: lstrcatA( ! 2333: LPSTR lpString1, ! 2334: LPCSTR lpString2 ! 2335: ); ! 2336: LPWSTR ! 2337: WINAPI ! 2338: lstrcatW( ! 2339: LPWSTR lpString1, ! 2340: LPCWSTR lpString2 ! 2341: ); ! 2342: #ifdef UNICODE ! 2343: #define lstrcat lstrcatW ! 2344: #else ! 2345: #define lstrcat lstrcatA ! 2346: #endif // !UNICODE ! 2347: ! 2348: int ! 2349: WINAPI ! 2350: lstrlenA( ! 2351: LPCSTR lpString ! 2352: ); ! 2353: int ! 2354: WINAPI ! 2355: lstrlenW( ! 2356: LPCWSTR lpString ! 2357: ); ! 2358: #ifdef UNICODE ! 2359: #define lstrlen lstrlenW ! 2360: #else ! 2361: #define lstrlen lstrlenA ! 2362: #endif // !UNICODE ! 2363: ! 2364: HFILE ! 2365: WINAPI ! 2366: OpenFile( ! 2367: LPCSTR lpFileName, ! 2368: LPOFSTRUCT lpReOpenBuff, ! 2369: UINT uStyle ! 2370: ); ! 2371: ! 2372: HFILE ! 2373: WINAPI ! 2374: _lopen( ! 2375: LPCSTR lpPathName, ! 2376: int iReadWrite ! 2377: ); ! 2378: ! 2379: HFILE ! 2380: WINAPI ! 2381: _lcreat( ! 2382: LPCSTR lpPathName, ! 2383: int iAttribute ! 2384: ); ! 2385: ! 2386: UINT ! 2387: WINAPI ! 2388: _lread( ! 2389: HFILE hFile, ! 2390: LPVOID lpBuffer, ! 2391: UINT uBytes ! 2392: ); ! 2393: ! 2394: UINT ! 2395: WINAPI ! 2396: _lwrite( ! 2397: HFILE hFile, ! 2398: LPCSTR lpBuffer, ! 2399: UINT uBytes ! 2400: ); ! 2401: ! 2402: HFILE ! 2403: WINAPI ! 2404: _lclose( ! 2405: HFILE hFile ! 2406: ); ! 2407: ! 2408: LONG ! 2409: WINAPI ! 2410: _llseek( ! 2411: HFILE hFile, ! 2412: LONG lOffset, ! 2413: int iOrigin ! 2414: ); ! 2415: ! 2416: DWORD ! 2417: WINAPI ! 2418: TlsAlloc( ! 2419: VOID ! 2420: ); ! 2421: ! 2422: LPVOID ! 2423: WINAPI ! 2424: TlsGetValue( ! 2425: DWORD dwTlsIndex ! 2426: ); ! 2427: ! 2428: BOOL ! 2429: WINAPI ! 2430: TlsSetValue( ! 2431: DWORD dwTlsIndex, ! 2432: LPVOID lpTlsValue ! 2433: ); ! 2434: ! 2435: BOOL ! 2436: WINAPI ! 2437: TlsFree( ! 2438: DWORD dwTlsIndex ! 2439: ); ! 2440: ! 2441: typedef ! 2442: VOID ! 2443: (*LPOVERLAPPED_COMPLETION_ROUTINE)( ! 2444: DWORD dwErrorCode, ! 2445: DWORD dwNumberOfBytesTransfered, ! 2446: LPOVERLAPPED lpOverlapped ! 2447: ); ! 2448: ! 2449: DWORD ! 2450: WINAPI ! 2451: SleepEx( ! 2452: DWORD dwMilliseconds, ! 2453: BOOL bAlertable ! 2454: ); ! 2455: ! 2456: DWORD ! 2457: WINAPI ! 2458: WaitForSingleObjectEx( ! 2459: HANDLE hHandle, ! 2460: DWORD dwMilliseconds, ! 2461: BOOL bAlertable ! 2462: ); ! 2463: ! 2464: DWORD ! 2465: WINAPI ! 2466: WaitForMultipleObjectsEx( ! 2467: DWORD nCount, ! 2468: LPHANDLE lpHandles, ! 2469: BOOL bWaitAll, ! 2470: DWORD dwMilliseconds, ! 2471: BOOL bAlertable ! 2472: ); ! 2473: ! 2474: BOOL ! 2475: WINAPI ! 2476: ReadFileEx( ! 2477: HANDLE hFile, ! 2478: LPVOID lpBuffer, ! 2479: DWORD nNumberOfBytesToRead, ! 2480: LPOVERLAPPED lpOverlapped, ! 2481: LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ! 2482: ); ! 2483: ! 2484: BOOL ! 2485: WINAPI ! 2486: WriteFileEx( ! 2487: HANDLE hFile, ! 2488: LPVOID lpBuffer, ! 2489: DWORD nNumberOfBytesToWrite, ! 2490: LPOVERLAPPED lpOverlapped, ! 2491: LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ! 2492: ); ! 2493: ! 2494: BOOL ! 2495: WINAPI ! 2496: BackupRead( ! 2497: HANDLE hFile, ! 2498: LPBYTE lpBuffer, ! 2499: DWORD nNumberOfBytesToRead, ! 2500: LPDWORD lpNumberOfBytesRead, ! 2501: BOOL fAbort , ! 2502: LPVOID *lpContext ! 2503: ); ! 2504: ! 2505: BOOL ! 2506: WINAPI ! 2507: BackupWrite( ! 2508: HANDLE hFile, ! 2509: LPBYTE lpBuffer, ! 2510: DWORD nNumberOfBytesToWrite, ! 2511: LPDWORD lpNumberOfBytesWritten, ! 2512: BOOL fAbort , ! 2513: LPVOID *lpContext ! 2514: ); ! 2515: ! 2516: // ! 2517: // Dual Mode API below this line. Dual Mode Structures also included. ! 2518: // ! 2519: ! 2520: #define STARTF_USESHOWWINDOW 0x00000001 ! 2521: #define STARTF_USESIZE 0x00000002 ! 2522: #define STARTF_USEPOSITION 0x00000004 ! 2523: #define STARTF_USECOUNTCHARS 0x00000008 ! 2524: #define STARTF_USEFILLATTRIBUTE 0x00000010 ! 2525: #define STARTF_RUNFULLSCREEN 0x00000020 // ignored for non-x86 platforms ! 2526: #define STARTF_FORCEONFEEDBACK 0x00000040 ! 2527: #define STARTF_FORCEOFFFEEDBACK 0x00000080 ! 2528: ! 2529: typedef struct _STARTUPINFOA { ! 2530: DWORD cb; ! 2531: LPSTR lpReserved; ! 2532: LPSTR lpDesktop; ! 2533: LPSTR lpTitle; ! 2534: DWORD dwX; ! 2535: DWORD dwY; ! 2536: DWORD dwXSize; ! 2537: DWORD dwYSize; ! 2538: DWORD dwXCountChars; ! 2539: DWORD dwYCountChars; ! 2540: DWORD dwFillAttribute; ! 2541: DWORD dwFlags; ! 2542: WORD wShowWindow; ! 2543: WORD cbReserved2; ! 2544: LPBYTE lpReserved2; ! 2545: } STARTUPINFOA, *LPSTARTUPINFOA; ! 2546: typedef struct _STARTUPINFOW { ! 2547: DWORD cb; ! 2548: LPWSTR lpReserved; ! 2549: LPWSTR lpDesktop; ! 2550: LPWSTR lpTitle; ! 2551: DWORD dwX; ! 2552: DWORD dwY; ! 2553: DWORD dwXSize; ! 2554: DWORD dwYSize; ! 2555: DWORD dwXCountChars; ! 2556: DWORD dwYCountChars; ! 2557: DWORD dwFillAttribute; ! 2558: DWORD dwFlags; ! 2559: WORD wShowWindow; ! 2560: WORD cbReserved2; ! 2561: LPBYTE lpReserved2; ! 2562: } STARTUPINFOW, *LPSTARTUPINFOW; ! 2563: #ifdef UNICODE ! 2564: #define STARTUPINFO STARTUPINFOW ! 2565: #define LPSTARTUPINFO LPSTARTUPINFOW ! 2566: #else ! 2567: #define STARTUPINFO STARTUPINFOA ! 2568: #define LPSTARTUPINFO LPSTARTUPINFOA ! 2569: #endif // UNICODE ! 2570: ! 2571: typedef struct _WIN32_FIND_DATAA { ! 2572: DWORD dwFileAttributes; ! 2573: FILETIME ftCreationTime; ! 2574: FILETIME ftLastAccessTime; ! 2575: FILETIME ftLastWriteTime; ! 2576: DWORD nFileSizeHigh; ! 2577: DWORD nFileSizeLow; ! 2578: DWORD dwReserved0; ! 2579: DWORD dwReserved1; ! 2580: CHAR cFileName[ MAX_PATH ]; ! 2581: CHAR cAlternateFileName[ 14 ]; ! 2582: } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; ! 2583: typedef struct _WIN32_FIND_DATAW { ! 2584: DWORD dwFileAttributes; ! 2585: FILETIME ftCreationTime; ! 2586: FILETIME ftLastAccessTime; ! 2587: FILETIME ftLastWriteTime; ! 2588: DWORD nFileSizeHigh; ! 2589: DWORD nFileSizeLow; ! 2590: DWORD dwReserved0; ! 2591: DWORD dwReserved1; ! 2592: WCHAR cFileName[ MAX_PATH ]; ! 2593: WCHAR cAlternateFileName[ 14 ]; ! 2594: } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW; ! 2595: #ifdef UNICODE ! 2596: #define WIN32_FIND_DATA WIN32_FIND_DATAW ! 2597: #define PWIN32_FIND_DATA PWIN32_FIND_DATAW ! 2598: #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAW ! 2599: #else ! 2600: #define WIN32_FIND_DATA WIN32_FIND_DATAA ! 2601: #define PWIN32_FIND_DATA PWIN32_FIND_DATAA ! 2602: #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAA ! 2603: #endif // UNICODE ! 2604: ! 2605: ! 2606: ! 2607: HANDLE ! 2608: WINAPI ! 2609: CreateMutexA( ! 2610: LPSECURITY_ATTRIBUTES lpMutexAttributes, ! 2611: BOOL bInitialOwner, ! 2612: LPSTR lpName ! 2613: ); ! 2614: HANDLE ! 2615: WINAPI ! 2616: CreateMutexW( ! 2617: LPSECURITY_ATTRIBUTES lpMutexAttributes, ! 2618: BOOL bInitialOwner, ! 2619: LPWSTR lpName ! 2620: ); ! 2621: #ifdef UNICODE ! 2622: #define CreateMutex CreateMutexW ! 2623: #else ! 2624: #define CreateMutex CreateMutexA ! 2625: #endif // !UNICODE ! 2626: ! 2627: HANDLE ! 2628: WINAPI ! 2629: OpenMutexA( ! 2630: DWORD dwDesiredAccess, ! 2631: BOOL bInheritHandle, ! 2632: LPSTR lpName ! 2633: ); ! 2634: HANDLE ! 2635: WINAPI ! 2636: OpenMutexW( ! 2637: DWORD dwDesiredAccess, ! 2638: BOOL bInheritHandle, ! 2639: LPWSTR lpName ! 2640: ); ! 2641: #ifdef UNICODE ! 2642: #define OpenMutex OpenMutexW ! 2643: #else ! 2644: #define OpenMutex OpenMutexA ! 2645: #endif // !UNICODE ! 2646: ! 2647: HANDLE ! 2648: WINAPI ! 2649: CreateEventA( ! 2650: LPSECURITY_ATTRIBUTES lpEventAttributes, ! 2651: BOOL bManualReset, ! 2652: BOOL bInitialState, ! 2653: LPSTR lpName ! 2654: ); ! 2655: HANDLE ! 2656: WINAPI ! 2657: CreateEventW( ! 2658: LPSECURITY_ATTRIBUTES lpEventAttributes, ! 2659: BOOL bManualReset, ! 2660: BOOL bInitialState, ! 2661: LPWSTR lpName ! 2662: ); ! 2663: #ifdef UNICODE ! 2664: #define CreateEvent CreateEventW ! 2665: #else ! 2666: #define CreateEvent CreateEventA ! 2667: #endif // !UNICODE ! 2668: ! 2669: HANDLE ! 2670: WINAPI ! 2671: OpenEventA( ! 2672: DWORD dwDesiredAccess, ! 2673: BOOL bInheritHandle, ! 2674: LPSTR lpName ! 2675: ); ! 2676: HANDLE ! 2677: WINAPI ! 2678: OpenEventW( ! 2679: DWORD dwDesiredAccess, ! 2680: BOOL bInheritHandle, ! 2681: LPWSTR lpName ! 2682: ); ! 2683: #ifdef UNICODE ! 2684: #define OpenEvent OpenEventW ! 2685: #else ! 2686: #define OpenEvent OpenEventA ! 2687: #endif // !UNICODE ! 2688: ! 2689: HANDLE ! 2690: WINAPI ! 2691: CreateSemaphoreA( ! 2692: LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, ! 2693: LONG lInitialCount, ! 2694: LONG lMaximumCount, ! 2695: LPSTR lpName ! 2696: ); ! 2697: HANDLE ! 2698: WINAPI ! 2699: CreateSemaphoreW( ! 2700: LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, ! 2701: LONG lInitialCount, ! 2702: LONG lMaximumCount, ! 2703: LPWSTR lpName ! 2704: ); ! 2705: #ifdef UNICODE ! 2706: #define CreateSemaphore CreateSemaphoreW ! 2707: #else ! 2708: #define CreateSemaphore CreateSemaphoreA ! 2709: #endif // !UNICODE ! 2710: ! 2711: HANDLE ! 2712: WINAPI ! 2713: OpenSemaphoreA( ! 2714: DWORD dwDesiredAccess, ! 2715: BOOL bInheritHandle, ! 2716: LPSTR lpName ! 2717: ); ! 2718: HANDLE ! 2719: WINAPI ! 2720: OpenSemaphoreW( ! 2721: DWORD dwDesiredAccess, ! 2722: BOOL bInheritHandle, ! 2723: LPWSTR lpName ! 2724: ); ! 2725: #ifdef UNICODE ! 2726: #define OpenSemaphore OpenSemaphoreW ! 2727: #else ! 2728: #define OpenSemaphore OpenSemaphoreA ! 2729: #endif // !UNICODE ! 2730: ! 2731: HANDLE ! 2732: WINAPI ! 2733: CreateFileMappingA( ! 2734: HANDLE hFile, ! 2735: LPSECURITY_ATTRIBUTES lpFileMappingAttributes, ! 2736: DWORD flProtect, ! 2737: DWORD dwMaximumSizeHigh, ! 2738: DWORD dwMaximumSizeLow, ! 2739: LPSTR lpName ! 2740: ); ! 2741: HANDLE ! 2742: WINAPI ! 2743: CreateFileMappingW( ! 2744: HANDLE hFile, ! 2745: LPSECURITY_ATTRIBUTES lpFileMappingAttributes, ! 2746: DWORD flProtect, ! 2747: DWORD dwMaximumSizeHigh, ! 2748: DWORD dwMaximumSizeLow, ! 2749: LPWSTR lpName ! 2750: ); ! 2751: #ifdef UNICODE ! 2752: #define CreateFileMapping CreateFileMappingW ! 2753: #else ! 2754: #define CreateFileMapping CreateFileMappingA ! 2755: #endif // !UNICODE ! 2756: ! 2757: HANDLE ! 2758: WINAPI ! 2759: OpenFileMappingA( ! 2760: DWORD dwDesiredAccess, ! 2761: BOOL bInheritHandle, ! 2762: LPSTR lpName ! 2763: ); ! 2764: HANDLE ! 2765: WINAPI ! 2766: OpenFileMappingW( ! 2767: DWORD dwDesiredAccess, ! 2768: BOOL bInheritHandle, ! 2769: LPWSTR lpName ! 2770: ); ! 2771: #ifdef UNICODE ! 2772: #define OpenFileMapping OpenFileMappingW ! 2773: #else ! 2774: #define OpenFileMapping OpenFileMappingA ! 2775: #endif // !UNICODE ! 2776: ! 2777: DWORD ! 2778: WINAPI ! 2779: GetLogicalDriveStringsA( ! 2780: DWORD nBufferLength, ! 2781: LPSTR lpBuffer ! 2782: ); ! 2783: DWORD ! 2784: WINAPI ! 2785: GetLogicalDriveStringsW( ! 2786: DWORD nBufferLength, ! 2787: LPWSTR lpBuffer ! 2788: ); ! 2789: #ifdef UNICODE ! 2790: #define GetLogicalDriveStrings GetLogicalDriveStringsW ! 2791: #else ! 2792: #define GetLogicalDriveStrings GetLogicalDriveStringsA ! 2793: #endif // !UNICODE ! 2794: ! 2795: HINSTANCE ! 2796: WINAPI ! 2797: LoadLibraryA( ! 2798: LPCSTR lpLibFileName ! 2799: ); ! 2800: HINSTANCE ! 2801: WINAPI ! 2802: LoadLibraryW( ! 2803: LPCWSTR lpLibFileName ! 2804: ); ! 2805: #ifdef UNICODE ! 2806: #define LoadLibrary LoadLibraryW ! 2807: #else ! 2808: #define LoadLibrary LoadLibraryA ! 2809: #endif // !UNICODE ! 2810: ! 2811: DWORD ! 2812: WINAPI ! 2813: GetModuleFileNameA( ! 2814: HINSTANCE hModule, ! 2815: LPSTR lpFilename, ! 2816: DWORD nSize ! 2817: ); ! 2818: DWORD ! 2819: WINAPI ! 2820: GetModuleFileNameW( ! 2821: HINSTANCE hModule, ! 2822: LPWSTR lpFilename, ! 2823: DWORD nSize ! 2824: ); ! 2825: #ifdef UNICODE ! 2826: #define GetModuleFileName GetModuleFileNameW ! 2827: #else ! 2828: #define GetModuleFileName GetModuleFileNameA ! 2829: #endif // !UNICODE ! 2830: ! 2831: HMODULE ! 2832: WINAPI ! 2833: GetModuleHandleA( ! 2834: LPCSTR lpModuleName ! 2835: ); ! 2836: HMODULE ! 2837: WINAPI ! 2838: GetModuleHandleW( ! 2839: LPCWSTR lpModuleName ! 2840: ); ! 2841: #ifdef UNICODE ! 2842: #define GetModuleHandle GetModuleHandleW ! 2843: #else ! 2844: #define GetModuleHandle GetModuleHandleA ! 2845: #endif // !UNICODE ! 2846: ! 2847: BOOL ! 2848: WINAPI ! 2849: CreateProcessA( ! 2850: LPCSTR lpApplicationName, ! 2851: LPCSTR lpCommandLine, ! 2852: LPSECURITY_ATTRIBUTES lpProcessAttributes, ! 2853: LPSECURITY_ATTRIBUTES lpThreadAttributes, ! 2854: BOOL bInheritHandles, ! 2855: DWORD dwCreationFlags, ! 2856: LPVOID lpEnvironment, ! 2857: LPSTR lpCurrentDirectory, ! 2858: LPSTARTUPINFOA lpStartupInfo, ! 2859: LPPROCESS_INFORMATION lpProcessInformation ! 2860: ); ! 2861: BOOL ! 2862: WINAPI ! 2863: CreateProcessW( ! 2864: LPCWSTR lpApplicationName, ! 2865: LPCWSTR lpCommandLine, ! 2866: LPSECURITY_ATTRIBUTES lpProcessAttributes, ! 2867: LPSECURITY_ATTRIBUTES lpThreadAttributes, ! 2868: BOOL bInheritHandles, ! 2869: DWORD dwCreationFlags, ! 2870: LPVOID lpEnvironment, ! 2871: LPWSTR lpCurrentDirectory, ! 2872: LPSTARTUPINFOW lpStartupInfo, ! 2873: LPPROCESS_INFORMATION lpProcessInformation ! 2874: ); ! 2875: #ifdef UNICODE ! 2876: #define CreateProcess CreateProcessW ! 2877: #else ! 2878: #define CreateProcess CreateProcessA ! 2879: #endif // !UNICODE ! 2880: ! 2881: VOID ! 2882: WINAPI ! 2883: FatalAppExitA( ! 2884: UINT uAction, ! 2885: LPCSTR lpMessageText ! 2886: ); ! 2887: VOID ! 2888: WINAPI ! 2889: FatalAppExitW( ! 2890: UINT uAction, ! 2891: LPCWSTR lpMessageText ! 2892: ); ! 2893: #ifdef UNICODE ! 2894: #define FatalAppExit FatalAppExitW ! 2895: #else ! 2896: #define FatalAppExit FatalAppExitA ! 2897: #endif // !UNICODE ! 2898: ! 2899: VOID ! 2900: WINAPI ! 2901: GetStartupInfoA( ! 2902: LPSTARTUPINFOA lpStartupInfo ! 2903: ); ! 2904: VOID ! 2905: WINAPI ! 2906: GetStartupInfoW( ! 2907: LPSTARTUPINFOW lpStartupInfo ! 2908: ); ! 2909: #ifdef UNICODE ! 2910: #define GetStartupInfo GetStartupInfoW ! 2911: #else ! 2912: #define GetStartupInfo GetStartupInfoA ! 2913: #endif // !UNICODE ! 2914: ! 2915: LPSTR ! 2916: WINAPI ! 2917: GetCommandLineA( ! 2918: VOID ! 2919: ); ! 2920: LPWSTR ! 2921: WINAPI ! 2922: GetCommandLineW( ! 2923: VOID ! 2924: ); ! 2925: #ifdef UNICODE ! 2926: #define GetCommandLine GetCommandLineW ! 2927: #else ! 2928: #define GetCommandLine GetCommandLineA ! 2929: #endif // !UNICODE ! 2930: ! 2931: DWORD ! 2932: WINAPI ! 2933: GetEnvironmentVariableA( ! 2934: LPSTR lpName, ! 2935: LPSTR lpBuffer, ! 2936: DWORD nSize ! 2937: ); ! 2938: DWORD ! 2939: WINAPI ! 2940: GetEnvironmentVariableW( ! 2941: LPWSTR lpName, ! 2942: LPWSTR lpBuffer, ! 2943: DWORD nSize ! 2944: ); ! 2945: #ifdef UNICODE ! 2946: #define GetEnvironmentVariable GetEnvironmentVariableW ! 2947: #else ! 2948: #define GetEnvironmentVariable GetEnvironmentVariableA ! 2949: #endif // !UNICODE ! 2950: ! 2951: BOOL ! 2952: WINAPI ! 2953: SetEnvironmentVariableA( ! 2954: LPSTR lpName, ! 2955: LPSTR lpValue ! 2956: ); ! 2957: BOOL ! 2958: WINAPI ! 2959: SetEnvironmentVariableW( ! 2960: LPWSTR lpName, ! 2961: LPWSTR lpValue ! 2962: ); ! 2963: #ifdef UNICODE ! 2964: #define SetEnvironmentVariable SetEnvironmentVariableW ! 2965: #else ! 2966: #define SetEnvironmentVariable SetEnvironmentVariableA ! 2967: #endif // !UNICODE ! 2968: ! 2969: DWORD ! 2970: WINAPI ! 2971: ExpandEnvironmentStringsA( ! 2972: LPCSTR lpSrc, ! 2973: LPSTR lpDst, ! 2974: DWORD nSize ! 2975: ); ! 2976: DWORD ! 2977: WINAPI ! 2978: ExpandEnvironmentStringsW( ! 2979: LPCWSTR lpSrc, ! 2980: LPWSTR lpDst, ! 2981: DWORD nSize ! 2982: ); ! 2983: #ifdef UNICODE ! 2984: #define ExpandEnvironmentStrings ExpandEnvironmentStringsW ! 2985: #else ! 2986: #define ExpandEnvironmentStrings ExpandEnvironmentStringsA ! 2987: #endif // !UNICODE ! 2988: ! 2989: VOID ! 2990: WINAPI ! 2991: OutputDebugStringA( ! 2992: LPCSTR lpOutputString ! 2993: ); ! 2994: VOID ! 2995: WINAPI ! 2996: OutputDebugStringW( ! 2997: LPCWSTR lpOutputString ! 2998: ); ! 2999: #ifdef UNICODE ! 3000: #define OutputDebugString OutputDebugStringW ! 3001: #else ! 3002: #define OutputDebugString OutputDebugStringA ! 3003: #endif // !UNICODE ! 3004: ! 3005: HRSRC ! 3006: WINAPI ! 3007: FindResourceA( ! 3008: HINSTANCE hModule, ! 3009: LPCSTR lpName, ! 3010: LPCSTR lpType ! 3011: ); ! 3012: HRSRC ! 3013: WINAPI ! 3014: FindResourceW( ! 3015: HINSTANCE hModule, ! 3016: LPCWSTR lpName, ! 3017: LPCWSTR lpType ! 3018: ); ! 3019: #ifdef UNICODE ! 3020: #define FindResource FindResourceW ! 3021: #else ! 3022: #define FindResource FindResourceA ! 3023: #endif // !UNICODE ! 3024: ! 3025: HRSRC ! 3026: WINAPI ! 3027: FindResourceExA( ! 3028: HINSTANCE hModule, ! 3029: LPCSTR lpType, ! 3030: LPCSTR lpName, ! 3031: WORD wLanguage ! 3032: ); ! 3033: HRSRC ! 3034: WINAPI ! 3035: FindResourceExW( ! 3036: HINSTANCE hModule, ! 3037: LPCWSTR lpType, ! 3038: LPCWSTR lpName, ! 3039: WORD wLanguage ! 3040: ); ! 3041: #ifdef UNICODE ! 3042: #define FindResourceEx FindResourceExW ! 3043: #else ! 3044: #define FindResourceEx FindResourceExA ! 3045: #endif // !UNICODE ! 3046: ! 3047: #ifdef STRICT ! 3048: typedef BOOL (CALLBACK* ENUMRESTYPEPROC)(HANDLE hModule, LPTSTR lpType, ! 3049: LONG lParam); ! 3050: typedef BOOL (CALLBACK* ENUMRESNAMEPROC)(HANDLE hModule, LPCTSTR lpType, ! 3051: LPTSTR lpName, LONG lParam); ! 3052: typedef BOOL (CALLBACK* ENUMRESLANGPROC)(HANDLE hModule, LPCTSTR lpType, ! 3053: LPCTSTR lpName, WORD wLanguage, LONG lParam); ! 3054: #else ! 3055: typedef FARPROC ENUMRESTYPEPROC; ! 3056: typedef FARPROC ENUMRESNAMEPROC; ! 3057: typedef FARPROC ENUMRESLANGPROC; ! 3058: #endif ! 3059: ! 3060: BOOL ! 3061: WINAPI ! 3062: EnumResourceTypesA( ! 3063: HANDLE hModule, ! 3064: ENUMRESTYPEPROC lpEnumFunc, ! 3065: LONG lParam ! 3066: ); ! 3067: BOOL ! 3068: WINAPI ! 3069: EnumResourceTypesW( ! 3070: HANDLE hModule, ! 3071: ENUMRESTYPEPROC lpEnumFunc, ! 3072: LONG lParam ! 3073: ); ! 3074: #ifdef UNICODE ! 3075: #define EnumResourceTypes EnumResourceTypesW ! 3076: #else ! 3077: #define EnumResourceTypes EnumResourceTypesA ! 3078: #endif // !UNICODE ! 3079: ! 3080: ! 3081: BOOL ! 3082: WINAPI ! 3083: EnumResourceNamesA( ! 3084: HANDLE hModule, ! 3085: LPCSTR lpType, ! 3086: ENUMRESNAMEPROC lpEnumFunc, ! 3087: LONG lParam ! 3088: ); ! 3089: BOOL ! 3090: WINAPI ! 3091: EnumResourceNamesW( ! 3092: HANDLE hModule, ! 3093: LPCWSTR lpType, ! 3094: ENUMRESNAMEPROC lpEnumFunc, ! 3095: LONG lParam ! 3096: ); ! 3097: #ifdef UNICODE ! 3098: #define EnumResourceNames EnumResourceNamesW ! 3099: #else ! 3100: #define EnumResourceNames EnumResourceNamesA ! 3101: #endif // !UNICODE ! 3102: ! 3103: BOOL ! 3104: WINAPI ! 3105: EnumResourceLanguagesA( ! 3106: HANDLE hModule, ! 3107: LPCSTR lpType, ! 3108: LPCSTR lpName, ! 3109: ENUMRESLANGPROC lpEnumFunc, ! 3110: LONG lParam ! 3111: ); ! 3112: BOOL ! 3113: WINAPI ! 3114: EnumResourceLanguagesW( ! 3115: HANDLE hModule, ! 3116: LPCWSTR lpType, ! 3117: LPCWSTR lpName, ! 3118: ENUMRESLANGPROC lpEnumFunc, ! 3119: LONG lParam ! 3120: ); ! 3121: #ifdef UNICODE ! 3122: #define EnumResourceLanguages EnumResourceLanguagesW ! 3123: #else ! 3124: #define EnumResourceLanguages EnumResourceLanguagesA ! 3125: #endif // !UNICODE ! 3126: ! 3127: HANDLE ! 3128: WINAPI ! 3129: BeginUpdateResourceA( ! 3130: LPSTR pFileName ! 3131: ); ! 3132: HANDLE ! 3133: WINAPI ! 3134: BeginUpdateResourceW( ! 3135: LPWSTR pFileName ! 3136: ); ! 3137: #ifdef UNICODE ! 3138: #define BeginUpdateResource BeginUpdateResourceW ! 3139: #else ! 3140: #define BeginUpdateResource BeginUpdateResourceA ! 3141: #endif // !UNICODE ! 3142: ! 3143: BOOL ! 3144: WINAPI ! 3145: UpdateResourceA( ! 3146: HANDLE hUpdate, ! 3147: LPSTR lpType, ! 3148: LPSTR lpName, ! 3149: WORD wLanguage, ! 3150: LPVOID lpData, ! 3151: DWORD cbData ! 3152: ); ! 3153: BOOL ! 3154: WINAPI ! 3155: UpdateResourceW( ! 3156: HANDLE hUpdate, ! 3157: LPWSTR lpType, ! 3158: LPWSTR lpName, ! 3159: WORD wLanguage, ! 3160: LPVOID lpData, ! 3161: DWORD cbData ! 3162: ); ! 3163: #ifdef UNICODE ! 3164: #define UpdateResource UpdateResourceW ! 3165: #else ! 3166: #define UpdateResource UpdateResourceA ! 3167: #endif // !UNICODE ! 3168: ! 3169: BOOL ! 3170: WINAPI ! 3171: EndUpdateResourceA( ! 3172: HANDLE hUpdate, ! 3173: BOOL fDiscard ! 3174: ); ! 3175: BOOL ! 3176: WINAPI ! 3177: EndUpdateResourceW( ! 3178: HANDLE hUpdate, ! 3179: BOOL fDiscard ! 3180: ); ! 3181: #ifdef UNICODE ! 3182: #define EndUpdateResource EndUpdateResourceW ! 3183: #else ! 3184: #define EndUpdateResource EndUpdateResourceA ! 3185: #endif // !UNICODE ! 3186: ! 3187: ATOM ! 3188: WINAPI ! 3189: GlobalAddAtomA( ! 3190: LPCSTR lpString ! 3191: ); ! 3192: ATOM ! 3193: WINAPI ! 3194: GlobalAddAtomW( ! 3195: LPCWSTR lpString ! 3196: ); ! 3197: #ifdef UNICODE ! 3198: #define GlobalAddAtom GlobalAddAtomW ! 3199: #else ! 3200: #define GlobalAddAtom GlobalAddAtomA ! 3201: #endif // !UNICODE ! 3202: ! 3203: ATOM ! 3204: WINAPI ! 3205: GlobalFindAtomA( ! 3206: LPCSTR lpString ! 3207: ); ! 3208: ATOM ! 3209: WINAPI ! 3210: GlobalFindAtomW( ! 3211: LPCWSTR lpString ! 3212: ); ! 3213: #ifdef UNICODE ! 3214: #define GlobalFindAtom GlobalFindAtomW ! 3215: #else ! 3216: #define GlobalFindAtom GlobalFindAtomA ! 3217: #endif // !UNICODE ! 3218: ! 3219: UINT ! 3220: WINAPI ! 3221: GlobalGetAtomNameA( ! 3222: ATOM nAtom, ! 3223: LPSTR lpBuffer, ! 3224: int nSize ! 3225: ); ! 3226: UINT ! 3227: WINAPI ! 3228: GlobalGetAtomNameW( ! 3229: ATOM nAtom, ! 3230: LPWSTR lpBuffer, ! 3231: int nSize ! 3232: ); ! 3233: #ifdef UNICODE ! 3234: #define GlobalGetAtomName GlobalGetAtomNameW ! 3235: #else ! 3236: #define GlobalGetAtomName GlobalGetAtomNameA ! 3237: #endif // !UNICODE ! 3238: ! 3239: ATOM ! 3240: WINAPI ! 3241: AddAtomA( ! 3242: LPCSTR lpString ! 3243: ); ! 3244: ATOM ! 3245: WINAPI ! 3246: AddAtomW( ! 3247: LPCWSTR lpString ! 3248: ); ! 3249: #ifdef UNICODE ! 3250: #define AddAtom AddAtomW ! 3251: #else ! 3252: #define AddAtom AddAtomA ! 3253: #endif // !UNICODE ! 3254: ! 3255: ATOM ! 3256: WINAPI ! 3257: FindAtomA( ! 3258: LPCSTR lpString ! 3259: ); ! 3260: ATOM ! 3261: WINAPI ! 3262: FindAtomW( ! 3263: LPCWSTR lpString ! 3264: ); ! 3265: #ifdef UNICODE ! 3266: #define FindAtom FindAtomW ! 3267: #else ! 3268: #define FindAtom FindAtomA ! 3269: #endif // !UNICODE ! 3270: ! 3271: UINT ! 3272: WINAPI ! 3273: GetAtomNameA( ! 3274: ATOM nAtom, ! 3275: LPSTR lpBuffer, ! 3276: int nSize ! 3277: ); ! 3278: UINT ! 3279: WINAPI ! 3280: GetAtomNameW( ! 3281: ATOM nAtom, ! 3282: LPWSTR lpBuffer, ! 3283: int nSize ! 3284: ); ! 3285: #ifdef UNICODE ! 3286: #define GetAtomName GetAtomNameW ! 3287: #else ! 3288: #define GetAtomName GetAtomNameA ! 3289: #endif // !UNICODE ! 3290: ! 3291: UINT ! 3292: WINAPI ! 3293: GetProfileIntA( ! 3294: LPCSTR lpAppName, ! 3295: LPCSTR lpKeyName, ! 3296: DWORD nDefault ! 3297: ); ! 3298: UINT ! 3299: WINAPI ! 3300: GetProfileIntW( ! 3301: LPCWSTR lpAppName, ! 3302: LPCWSTR lpKeyName, ! 3303: DWORD nDefault ! 3304: ); ! 3305: #ifdef UNICODE ! 3306: #define GetProfileInt GetProfileIntW ! 3307: #else ! 3308: #define GetProfileInt GetProfileIntA ! 3309: #endif // !UNICODE ! 3310: ! 3311: DWORD ! 3312: WINAPI ! 3313: GetProfileStringA( ! 3314: LPCSTR lpAppName, ! 3315: LPCSTR lpKeyName, ! 3316: LPCSTR lpDefault, ! 3317: LPSTR lpReturnedString, ! 3318: DWORD nSize ! 3319: ); ! 3320: DWORD ! 3321: WINAPI ! 3322: GetProfileStringW( ! 3323: LPCWSTR lpAppName, ! 3324: LPCWSTR lpKeyName, ! 3325: LPCWSTR lpDefault, ! 3326: LPWSTR lpReturnedString, ! 3327: DWORD nSize ! 3328: ); ! 3329: #ifdef UNICODE ! 3330: #define GetProfileString GetProfileStringW ! 3331: #else ! 3332: #define GetProfileString GetProfileStringA ! 3333: #endif // !UNICODE ! 3334: ! 3335: BOOL ! 3336: WINAPI ! 3337: WriteProfileStringA( ! 3338: LPCSTR lpAppName, ! 3339: LPCSTR lpKeyName, ! 3340: LPCSTR lpString ! 3341: ); ! 3342: BOOL ! 3343: WINAPI ! 3344: WriteProfileStringW( ! 3345: LPCWSTR lpAppName, ! 3346: LPCWSTR lpKeyName, ! 3347: LPCWSTR lpString ! 3348: ); ! 3349: #ifdef UNICODE ! 3350: #define WriteProfileString WriteProfileStringW ! 3351: #else ! 3352: #define WriteProfileString WriteProfileStringA ! 3353: #endif // !UNICODE ! 3354: ! 3355: DWORD ! 3356: WINAPI ! 3357: GetProfileSectionA( ! 3358: LPCSTR lpAppName, ! 3359: LPSTR lpReturnedString, ! 3360: DWORD nSize ! 3361: ); ! 3362: DWORD ! 3363: WINAPI ! 3364: GetProfileSectionW( ! 3365: LPCWSTR lpAppName, ! 3366: LPWSTR lpReturnedString, ! 3367: DWORD nSize ! 3368: ); ! 3369: #ifdef UNICODE ! 3370: #define GetProfileSection GetProfileSectionW ! 3371: #else ! 3372: #define GetProfileSection GetProfileSectionA ! 3373: #endif // !UNICODE ! 3374: ! 3375: BOOL ! 3376: WINAPI ! 3377: WriteProfileSectionA( ! 3378: LPCSTR lpAppName, ! 3379: LPCSTR lpString ! 3380: ); ! 3381: BOOL ! 3382: WINAPI ! 3383: WriteProfileSectionW( ! 3384: LPCWSTR lpAppName, ! 3385: LPCWSTR lpString ! 3386: ); ! 3387: #ifdef UNICODE ! 3388: #define WriteProfileSection WriteProfileSectionW ! 3389: #else ! 3390: #define WriteProfileSection WriteProfileSectionA ! 3391: #endif // !UNICODE ! 3392: ! 3393: UINT ! 3394: WINAPI ! 3395: GetPrivateProfileIntA( ! 3396: LPCSTR lpAppName, ! 3397: LPCSTR lpKeyName, ! 3398: DWORD nDefault, ! 3399: LPCSTR lpFileName ! 3400: ); ! 3401: UINT ! 3402: WINAPI ! 3403: GetPrivateProfileIntW( ! 3404: LPCWSTR lpAppName, ! 3405: LPCWSTR lpKeyName, ! 3406: DWORD nDefault, ! 3407: LPCWSTR lpFileName ! 3408: ); ! 3409: #ifdef UNICODE ! 3410: #define GetPrivateProfileInt GetPrivateProfileIntW ! 3411: #else ! 3412: #define GetPrivateProfileInt GetPrivateProfileIntA ! 3413: #endif // !UNICODE ! 3414: ! 3415: DWORD ! 3416: WINAPI ! 3417: GetPrivateProfileStringA( ! 3418: LPCSTR lpAppName, ! 3419: LPCSTR lpKeyName, ! 3420: LPCSTR lpDefault, ! 3421: LPSTR lpReturnedString, ! 3422: DWORD nSize, ! 3423: LPCSTR lpFileName ! 3424: ); ! 3425: DWORD ! 3426: WINAPI ! 3427: GetPrivateProfileStringW( ! 3428: LPCWSTR lpAppName, ! 3429: LPCWSTR lpKeyName, ! 3430: LPCWSTR lpDefault, ! 3431: LPWSTR lpReturnedString, ! 3432: DWORD nSize, ! 3433: LPCWSTR lpFileName ! 3434: ); ! 3435: #ifdef UNICODE ! 3436: #define GetPrivateProfileString GetPrivateProfileStringW ! 3437: #else ! 3438: #define GetPrivateProfileString GetPrivateProfileStringA ! 3439: #endif // !UNICODE ! 3440: ! 3441: BOOL ! 3442: WINAPI ! 3443: WritePrivateProfileStringA( ! 3444: LPCSTR lpAppName, ! 3445: LPCSTR lpKeyName, ! 3446: LPCSTR lpString, ! 3447: LPCSTR lpFileName ! 3448: ); ! 3449: BOOL ! 3450: WINAPI ! 3451: WritePrivateProfileStringW( ! 3452: LPCWSTR lpAppName, ! 3453: LPCWSTR lpKeyName, ! 3454: LPCWSTR lpString, ! 3455: LPCWSTR lpFileName ! 3456: ); ! 3457: #ifdef UNICODE ! 3458: #define WritePrivateProfileString WritePrivateProfileStringW ! 3459: #else ! 3460: #define WritePrivateProfileString WritePrivateProfileStringA ! 3461: #endif // !UNICODE ! 3462: ! 3463: DWORD ! 3464: WINAPI ! 3465: GetPrivateProfileSectionA( ! 3466: LPCSTR lpAppName, ! 3467: LPSTR lpReturnedString, ! 3468: DWORD nSize, ! 3469: LPCSTR lpFileName ! 3470: ); ! 3471: DWORD ! 3472: WINAPI ! 3473: GetPrivateProfileSectionW( ! 3474: LPCWSTR lpAppName, ! 3475: LPWSTR lpReturnedString, ! 3476: DWORD nSize, ! 3477: LPCWSTR lpFileName ! 3478: ); ! 3479: #ifdef UNICODE ! 3480: #define GetPrivateProfileSection GetPrivateProfileSectionW ! 3481: #else ! 3482: #define GetPrivateProfileSection GetPrivateProfileSectionA ! 3483: #endif // !UNICODE ! 3484: ! 3485: BOOL ! 3486: WINAPI ! 3487: WritePrivateProfileSectionA( ! 3488: LPCSTR lpAppName, ! 3489: LPCSTR lpString, ! 3490: LPCSTR lpFileName ! 3491: ); ! 3492: BOOL ! 3493: WINAPI ! 3494: WritePrivateProfileSectionW( ! 3495: LPCWSTR lpAppName, ! 3496: LPCWSTR lpString, ! 3497: LPCWSTR lpFileName ! 3498: ); ! 3499: #ifdef UNICODE ! 3500: #define WritePrivateProfileSection WritePrivateProfileSectionW ! 3501: #else ! 3502: #define WritePrivateProfileSection WritePrivateProfileSectionA ! 3503: #endif // !UNICODE ! 3504: ! 3505: UINT ! 3506: WINAPI ! 3507: GetDriveTypeA( ! 3508: LPSTR lpRootPathName ! 3509: ); ! 3510: UINT ! 3511: WINAPI ! 3512: GetDriveTypeW( ! 3513: LPWSTR lpRootPathName ! 3514: ); ! 3515: #ifdef UNICODE ! 3516: #define GetDriveType GetDriveTypeW ! 3517: #else ! 3518: #define GetDriveType GetDriveTypeA ! 3519: #endif // !UNICODE ! 3520: ! 3521: UINT ! 3522: WINAPI ! 3523: GetSystemDirectoryA( ! 3524: LPSTR lpBuffer, ! 3525: UINT uSize ! 3526: ); ! 3527: UINT ! 3528: WINAPI ! 3529: GetSystemDirectoryW( ! 3530: LPWSTR lpBuffer, ! 3531: UINT uSize ! 3532: ); ! 3533: #ifdef UNICODE ! 3534: #define GetSystemDirectory GetSystemDirectoryW ! 3535: #else ! 3536: #define GetSystemDirectory GetSystemDirectoryA ! 3537: #endif // !UNICODE ! 3538: ! 3539: DWORD ! 3540: WINAPI ! 3541: GetTempPathA( ! 3542: DWORD nBufferLength, ! 3543: LPSTR lpBuffer ! 3544: ); ! 3545: DWORD ! 3546: WINAPI ! 3547: GetTempPathW( ! 3548: DWORD nBufferLength, ! 3549: LPWSTR lpBuffer ! 3550: ); ! 3551: #ifdef UNICODE ! 3552: #define GetTempPath GetTempPathW ! 3553: #else ! 3554: #define GetTempPath GetTempPathA ! 3555: #endif // !UNICODE ! 3556: ! 3557: UINT ! 3558: WINAPI ! 3559: GetTempFileNameA( ! 3560: LPCSTR lpPathName, ! 3561: LPCSTR lpPrefixString, ! 3562: UINT uUnique, ! 3563: LPSTR lpTempFileName ! 3564: ); ! 3565: UINT ! 3566: WINAPI ! 3567: GetTempFileNameW( ! 3568: LPCWSTR lpPathName, ! 3569: LPCWSTR lpPrefixString, ! 3570: UINT uUnique, ! 3571: LPWSTR lpTempFileName ! 3572: ); ! 3573: #ifdef UNICODE ! 3574: #define GetTempFileName GetTempFileNameW ! 3575: #else ! 3576: #define GetTempFileName GetTempFileNameA ! 3577: #endif // !UNICODE ! 3578: ! 3579: UINT ! 3580: WINAPI ! 3581: GetWindowsDirectoryA( ! 3582: LPSTR lpBuffer, ! 3583: UINT uSize ! 3584: ); ! 3585: UINT ! 3586: WINAPI ! 3587: GetWindowsDirectoryW( ! 3588: LPWSTR lpBuffer, ! 3589: UINT uSize ! 3590: ); ! 3591: #ifdef UNICODE ! 3592: #define GetWindowsDirectory GetWindowsDirectoryW ! 3593: #else ! 3594: #define GetWindowsDirectory GetWindowsDirectoryA ! 3595: #endif // !UNICODE ! 3596: ! 3597: BOOL ! 3598: WINAPI ! 3599: SetCurrentDirectoryA( ! 3600: LPSTR lpPathName ! 3601: ); ! 3602: BOOL ! 3603: WINAPI ! 3604: SetCurrentDirectoryW( ! 3605: LPWSTR lpPathName ! 3606: ); ! 3607: #ifdef UNICODE ! 3608: #define SetCurrentDirectory SetCurrentDirectoryW ! 3609: #else ! 3610: #define SetCurrentDirectory SetCurrentDirectoryA ! 3611: #endif // !UNICODE ! 3612: ! 3613: DWORD ! 3614: WINAPI ! 3615: GetCurrentDirectoryA( ! 3616: DWORD nBufferLength, ! 3617: LPSTR lpBuffer ! 3618: ); ! 3619: DWORD ! 3620: WINAPI ! 3621: GetCurrentDirectoryW( ! 3622: DWORD nBufferLength, ! 3623: LPWSTR lpBuffer ! 3624: ); ! 3625: #ifdef UNICODE ! 3626: #define GetCurrentDirectory GetCurrentDirectoryW ! 3627: #else ! 3628: #define GetCurrentDirectory GetCurrentDirectoryA ! 3629: #endif // !UNICODE ! 3630: ! 3631: BOOL ! 3632: WINAPI ! 3633: GetDiskFreeSpaceA( ! 3634: LPSTR lpRootPathName, ! 3635: LPDWORD lpSectorsPerCluster, ! 3636: LPDWORD lpBytesPerSector, ! 3637: LPDWORD lpNumberOfFreeClusters, ! 3638: LPDWORD lpTotalNumberOfClusters ! 3639: ); ! 3640: BOOL ! 3641: WINAPI ! 3642: GetDiskFreeSpaceW( ! 3643: LPWSTR lpRootPathName, ! 3644: LPDWORD lpSectorsPerCluster, ! 3645: LPDWORD lpBytesPerSector, ! 3646: LPDWORD lpNumberOfFreeClusters, ! 3647: LPDWORD lpTotalNumberOfClusters ! 3648: ); ! 3649: #ifdef UNICODE ! 3650: #define GetDiskFreeSpace GetDiskFreeSpaceW ! 3651: #else ! 3652: #define GetDiskFreeSpace GetDiskFreeSpaceA ! 3653: #endif // !UNICODE ! 3654: ! 3655: BOOL ! 3656: WINAPI ! 3657: CreateDirectoryA( ! 3658: LPSTR lpPathName, ! 3659: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 3660: ); ! 3661: BOOL ! 3662: WINAPI ! 3663: CreateDirectoryW( ! 3664: LPWSTR lpPathName, ! 3665: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 3666: ); ! 3667: #ifdef UNICODE ! 3668: #define CreateDirectory CreateDirectoryW ! 3669: #else ! 3670: #define CreateDirectory CreateDirectoryA ! 3671: #endif // !UNICODE ! 3672: ! 3673: BOOL ! 3674: WINAPI ! 3675: RemoveDirectoryA( ! 3676: LPSTR lpPathName ! 3677: ); ! 3678: BOOL ! 3679: WINAPI ! 3680: RemoveDirectoryW( ! 3681: LPWSTR lpPathName ! 3682: ); ! 3683: #ifdef UNICODE ! 3684: #define RemoveDirectory RemoveDirectoryW ! 3685: #else ! 3686: #define RemoveDirectory RemoveDirectoryA ! 3687: #endif // !UNICODE ! 3688: ! 3689: DWORD ! 3690: WINAPI ! 3691: GetFullPathNameA( ! 3692: LPCSTR lpFileName, ! 3693: DWORD nBufferLength, ! 3694: LPSTR lpBuffer, ! 3695: LPSTR *lpFilePart ! 3696: ); ! 3697: DWORD ! 3698: WINAPI ! 3699: GetFullPathNameW( ! 3700: LPCWSTR lpFileName, ! 3701: DWORD nBufferLength, ! 3702: LPWSTR lpBuffer, ! 3703: LPWSTR *lpFilePart ! 3704: ); ! 3705: #ifdef UNICODE ! 3706: #define GetFullPathName GetFullPathNameW ! 3707: #else ! 3708: #define GetFullPathName GetFullPathNameA ! 3709: #endif // !UNICODE ! 3710: ! 3711: #define EXPAND_LOCAL_DRIVES ! 3712: ! 3713: ! 3714: HANDLE ! 3715: WINAPI ! 3716: CreateFileA( ! 3717: LPCSTR lpFileName, ! 3718: DWORD dwDesiredAccess, ! 3719: DWORD dwShareMode, ! 3720: LPSECURITY_ATTRIBUTES lpSecurityAttributes, ! 3721: DWORD dwCreationDisposition, ! 3722: DWORD dwFlagsAndAttributes, ! 3723: HANDLE hTemplateFile ! 3724: ); ! 3725: HANDLE ! 3726: WINAPI ! 3727: CreateFileW( ! 3728: LPCWSTR lpFileName, ! 3729: DWORD dwDesiredAccess, ! 3730: DWORD dwShareMode, ! 3731: LPSECURITY_ATTRIBUTES lpSecurityAttributes, ! 3732: DWORD dwCreationDisposition, ! 3733: DWORD dwFlagsAndAttributes, ! 3734: HANDLE hTemplateFile ! 3735: ); ! 3736: #ifdef UNICODE ! 3737: #define CreateFile CreateFileW ! 3738: #else ! 3739: #define CreateFile CreateFileA ! 3740: #endif // !UNICODE ! 3741: ! 3742: BOOL ! 3743: WINAPI ! 3744: SetFileAttributesA( ! 3745: LPSTR lpFileName, ! 3746: DWORD dwFileAttributes ! 3747: ); ! 3748: BOOL ! 3749: WINAPI ! 3750: SetFileAttributesW( ! 3751: LPWSTR lpFileName, ! 3752: DWORD dwFileAttributes ! 3753: ); ! 3754: #ifdef UNICODE ! 3755: #define SetFileAttributes SetFileAttributesW ! 3756: #else ! 3757: #define SetFileAttributes SetFileAttributesA ! 3758: #endif // !UNICODE ! 3759: ! 3760: DWORD ! 3761: WINAPI ! 3762: GetFileAttributesA( ! 3763: LPSTR lpFileName ! 3764: ); ! 3765: DWORD ! 3766: WINAPI ! 3767: GetFileAttributesW( ! 3768: LPWSTR lpFileName ! 3769: ); ! 3770: #ifdef UNICODE ! 3771: #define GetFileAttributes GetFileAttributesW ! 3772: #else ! 3773: #define GetFileAttributes GetFileAttributesA ! 3774: #endif // !UNICODE ! 3775: ! 3776: BOOL ! 3777: WINAPI ! 3778: DeleteFileA( ! 3779: LPSTR lpFileName ! 3780: ); ! 3781: BOOL ! 3782: WINAPI ! 3783: DeleteFileW( ! 3784: LPWSTR lpFileName ! 3785: ); ! 3786: #ifdef UNICODE ! 3787: #define DeleteFile DeleteFileW ! 3788: #else ! 3789: #define DeleteFile DeleteFileA ! 3790: #endif // !UNICODE ! 3791: ! 3792: HANDLE ! 3793: WINAPI ! 3794: FindFirstFileA( ! 3795: LPSTR lpFileName, ! 3796: LPWIN32_FIND_DATAA lpFindFileData ! 3797: ); ! 3798: HANDLE ! 3799: WINAPI ! 3800: FindFirstFileW( ! 3801: LPWSTR lpFileName, ! 3802: LPWIN32_FIND_DATAW lpFindFileData ! 3803: ); ! 3804: #ifdef UNICODE ! 3805: #define FindFirstFile FindFirstFileW ! 3806: #else ! 3807: #define FindFirstFile FindFirstFileA ! 3808: #endif // !UNICODE ! 3809: ! 3810: BOOL ! 3811: WINAPI ! 3812: FindNextFileA( ! 3813: HANDLE hFindFile, ! 3814: LPWIN32_FIND_DATAA lpFindFileData ! 3815: ); ! 3816: BOOL ! 3817: WINAPI ! 3818: FindNextFileW( ! 3819: HANDLE hFindFile, ! 3820: LPWIN32_FIND_DATAW lpFindFileData ! 3821: ); ! 3822: #ifdef UNICODE ! 3823: #define FindNextFile FindNextFileW ! 3824: #else ! 3825: #define FindNextFile FindNextFileA ! 3826: #endif // !UNICODE ! 3827: ! 3828: DWORD ! 3829: WINAPI ! 3830: SearchPathA( ! 3831: LPCSTR lpPath, ! 3832: LPCSTR lpFileName, ! 3833: LPCSTR lpExtension, ! 3834: DWORD nBufferLength, ! 3835: LPSTR lpBuffer, ! 3836: LPSTR *lpFilePart ! 3837: ); ! 3838: DWORD ! 3839: WINAPI ! 3840: SearchPathW( ! 3841: LPCWSTR lpPath, ! 3842: LPCWSTR lpFileName, ! 3843: LPCWSTR lpExtension, ! 3844: DWORD nBufferLength, ! 3845: LPWSTR lpBuffer, ! 3846: LPWSTR *lpFilePart ! 3847: ); ! 3848: #ifdef UNICODE ! 3849: #define SearchPath SearchPathW ! 3850: #else ! 3851: #define SearchPath SearchPathA ! 3852: #endif // !UNICODE ! 3853: ! 3854: BOOL ! 3855: WINAPI ! 3856: CopyFileA( ! 3857: LPSTR lpExistingFileName, ! 3858: LPSTR lpNewFileName, ! 3859: BOOL bFailIfExists ! 3860: ); ! 3861: BOOL ! 3862: WINAPI ! 3863: CopyFileW( ! 3864: LPWSTR lpExistingFileName, ! 3865: LPWSTR lpNewFileName, ! 3866: BOOL bFailIfExists ! 3867: ); ! 3868: #ifdef UNICODE ! 3869: #define CopyFile CopyFileW ! 3870: #else ! 3871: #define CopyFile CopyFileA ! 3872: #endif // !UNICODE ! 3873: ! 3874: BOOL ! 3875: WINAPI ! 3876: MoveFileA( ! 3877: LPSTR lpExistingFileName, ! 3878: LPSTR lpNewFileName ! 3879: ); ! 3880: BOOL ! 3881: WINAPI ! 3882: MoveFileW( ! 3883: LPWSTR lpExistingFileName, ! 3884: LPWSTR lpNewFileName ! 3885: ); ! 3886: #ifdef UNICODE ! 3887: #define MoveFile MoveFileW ! 3888: #else ! 3889: #define MoveFile MoveFileA ! 3890: #endif // !UNICODE ! 3891: ! 3892: HANDLE ! 3893: WINAPI ! 3894: CreateNamedPipeA( ! 3895: LPSTR lpName, ! 3896: DWORD dwOpenMode, ! 3897: DWORD dwPipeMode, ! 3898: DWORD nMaxInstances, ! 3899: DWORD nOutBufferSize, ! 3900: DWORD nInBufferSize, ! 3901: DWORD nDefaultTimeOut, ! 3902: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 3903: ); ! 3904: HANDLE ! 3905: WINAPI ! 3906: CreateNamedPipeW( ! 3907: LPWSTR lpName, ! 3908: DWORD dwOpenMode, ! 3909: DWORD dwPipeMode, ! 3910: DWORD nMaxInstances, ! 3911: DWORD nOutBufferSize, ! 3912: DWORD nInBufferSize, ! 3913: DWORD nDefaultTimeOut, ! 3914: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 3915: ); ! 3916: #ifdef UNICODE ! 3917: #define CreateNamedPipe CreateNamedPipeW ! 3918: #else ! 3919: #define CreateNamedPipe CreateNamedPipeA ! 3920: #endif // !UNICODE ! 3921: ! 3922: BOOL ! 3923: WINAPI ! 3924: GetNamedPipeHandleStateA( ! 3925: HANDLE hNamedPipe, ! 3926: LPDWORD lpState, ! 3927: LPDWORD lpCurInstances, ! 3928: LPDWORD lpMaxCollectionCount, ! 3929: LPDWORD lpCollectDataTimeout, ! 3930: LPSTR lpUserName, ! 3931: DWORD nMaxUserNameSize ! 3932: ); ! 3933: BOOL ! 3934: WINAPI ! 3935: GetNamedPipeHandleStateW( ! 3936: HANDLE hNamedPipe, ! 3937: LPDWORD lpState, ! 3938: LPDWORD lpCurInstances, ! 3939: LPDWORD lpMaxCollectionCount, ! 3940: LPDWORD lpCollectDataTimeout, ! 3941: LPWSTR lpUserName, ! 3942: DWORD nMaxUserNameSize ! 3943: ); ! 3944: #ifdef UNICODE ! 3945: #define GetNamedPipeHandleState GetNamedPipeHandleStateW ! 3946: #else ! 3947: #define GetNamedPipeHandleState GetNamedPipeHandleStateA ! 3948: #endif // !UNICODE ! 3949: ! 3950: BOOL ! 3951: WINAPI ! 3952: CallNamedPipeA( ! 3953: LPSTR lpNamedPipeName, ! 3954: LPVOID lpInBuffer, ! 3955: DWORD nInBufferSize, ! 3956: LPVOID lpOutBuffer, ! 3957: DWORD nOutBufferSize, ! 3958: LPDWORD lpBytesRead, ! 3959: DWORD nTimeOut ! 3960: ); ! 3961: BOOL ! 3962: WINAPI ! 3963: CallNamedPipeW( ! 3964: LPWSTR lpNamedPipeName, ! 3965: LPVOID lpInBuffer, ! 3966: DWORD nInBufferSize, ! 3967: LPVOID lpOutBuffer, ! 3968: DWORD nOutBufferSize, ! 3969: LPDWORD lpBytesRead, ! 3970: DWORD nTimeOut ! 3971: ); ! 3972: #ifdef UNICODE ! 3973: #define CallNamedPipe CallNamedPipeW ! 3974: #else ! 3975: #define CallNamedPipe CallNamedPipeA ! 3976: #endif // !UNICODE ! 3977: ! 3978: BOOL ! 3979: WINAPI ! 3980: WaitNamedPipeA( ! 3981: LPSTR lpNamedPipeName, ! 3982: DWORD nTimeOut ! 3983: ); ! 3984: BOOL ! 3985: WINAPI ! 3986: WaitNamedPipeW( ! 3987: LPWSTR lpNamedPipeName, ! 3988: DWORD nTimeOut ! 3989: ); ! 3990: #ifdef UNICODE ! 3991: #define WaitNamedPipe WaitNamedPipeW ! 3992: #else ! 3993: #define WaitNamedPipe WaitNamedPipeA ! 3994: #endif // !UNICODE ! 3995: ! 3996: BOOL ! 3997: WINAPI ! 3998: GetVolumeInformationA( ! 3999: LPSTR lpRootPathName, ! 4000: LPSTR lpVolumeNameBuffer, ! 4001: DWORD nVolumeNameSize, ! 4002: LPDWORD lpVolumeSerialNumber, ! 4003: LPDWORD lpMaximumComponentLength, ! 4004: LPDWORD lpFileSystemFlags, ! 4005: LPSTR lpFileSystemNameBuffer, ! 4006: DWORD nFileSystemNameSize ! 4007: ); ! 4008: BOOL ! 4009: WINAPI ! 4010: GetVolumeInformationW( ! 4011: LPWSTR lpRootPathName, ! 4012: LPWSTR lpVolumeNameBuffer, ! 4013: DWORD nVolumeNameSize, ! 4014: LPDWORD lpVolumeSerialNumber, ! 4015: LPDWORD lpMaximumComponentLength, ! 4016: LPDWORD lpFileSystemFlags, ! 4017: LPWSTR lpFileSystemNameBuffer, ! 4018: DWORD nFileSystemNameSize ! 4019: ); ! 4020: #ifdef UNICODE ! 4021: #define GetVolumeInformation GetVolumeInformationW ! 4022: #else ! 4023: #define GetVolumeInformation GetVolumeInformationA ! 4024: #endif // !UNICODE ! 4025: ! 4026: // ! 4027: // Event logging APIs ! 4028: // ! 4029: ! 4030: BOOL ! 4031: WINAPI ! 4032: ClearEventLogA ( ! 4033: HANDLE hEventLog, ! 4034: LPSTR lpBackupFileName ! 4035: ); ! 4036: BOOL ! 4037: WINAPI ! 4038: ClearEventLogW ( ! 4039: HANDLE hEventLog, ! 4040: LPWSTR lpBackupFileName ! 4041: ); ! 4042: #ifdef UNICODE ! 4043: #define ClearEventLog ClearEventLogW ! 4044: #else ! 4045: #define ClearEventLog ClearEventLogA ! 4046: #endif // !UNICODE ! 4047: ! 4048: BOOL ! 4049: WINAPI ! 4050: BackupEventLogA ( ! 4051: HANDLE hEventLog, ! 4052: LPSTR lpBackupFileName ! 4053: ); ! 4054: BOOL ! 4055: WINAPI ! 4056: BackupEventLogW ( ! 4057: HANDLE hEventLog, ! 4058: LPWSTR lpBackupFileName ! 4059: ); ! 4060: #ifdef UNICODE ! 4061: #define BackupEventLog BackupEventLogW ! 4062: #else ! 4063: #define BackupEventLog BackupEventLogA ! 4064: #endif // !UNICODE ! 4065: ! 4066: BOOL ! 4067: WINAPI ! 4068: CloseEventLog ( ! 4069: HANDLE hEventLog ! 4070: ); ! 4071: ! 4072: BOOL ! 4073: WINAPI ! 4074: DeregisterEventSource ( ! 4075: HANDLE hEventLog ! 4076: ); ! 4077: ! 4078: ! 4079: BOOL ! 4080: WINAPI ! 4081: GetNumberOfEventLogRecords ( ! 4082: HANDLE hEventLog, ! 4083: PDWORD NumberOfRecords ! 4084: ); ! 4085: ! 4086: BOOL ! 4087: WINAPI ! 4088: GetOldestEventLogRecord ( ! 4089: HANDLE hEventLog, ! 4090: PDWORD OldestRecord ! 4091: ); ! 4092: ! 4093: HANDLE ! 4094: WINAPI ! 4095: OpenEventLogA ( ! 4096: LPSTR lpUNCServerName, ! 4097: LPSTR lpSourceName ! 4098: ); ! 4099: HANDLE ! 4100: WINAPI ! 4101: OpenEventLogW ( ! 4102: LPWSTR lpUNCServerName, ! 4103: LPWSTR lpSourceName ! 4104: ); ! 4105: #ifdef UNICODE ! 4106: #define OpenEventLog OpenEventLogW ! 4107: #else ! 4108: #define OpenEventLog OpenEventLogA ! 4109: #endif // !UNICODE ! 4110: ! 4111: HANDLE ! 4112: WINAPI ! 4113: RegisterEventSourceA ( ! 4114: LPSTR lpUNCServerName, ! 4115: LPSTR lpSourceName ! 4116: ); ! 4117: HANDLE ! 4118: WINAPI ! 4119: RegisterEventSourceW ( ! 4120: LPWSTR lpUNCServerName, ! 4121: LPWSTR lpSourceName ! 4122: ); ! 4123: #ifdef UNICODE ! 4124: #define RegisterEventSource RegisterEventSourceW ! 4125: #else ! 4126: #define RegisterEventSource RegisterEventSourceA ! 4127: #endif // !UNICODE ! 4128: ! 4129: HANDLE ! 4130: WINAPI ! 4131: OpenBackupEventLogA ( ! 4132: LPSTR lpUNCServerName, ! 4133: LPSTR lpFileName ! 4134: ); ! 4135: HANDLE ! 4136: WINAPI ! 4137: OpenBackupEventLogW ( ! 4138: LPWSTR lpUNCServerName, ! 4139: LPWSTR lpFileName ! 4140: ); ! 4141: #ifdef UNICODE ! 4142: #define OpenBackupEventLog OpenBackupEventLogW ! 4143: #else ! 4144: #define OpenBackupEventLog OpenBackupEventLogA ! 4145: #endif // !UNICODE ! 4146: ! 4147: BOOL ! 4148: WINAPI ! 4149: ReadEventLogA ( ! 4150: HANDLE hEventLog, ! 4151: DWORD dwReadFlags, ! 4152: DWORD dwRecordOffset, ! 4153: LPVOID lpBuffer, ! 4154: DWORD nNumberOfBytesToRead, ! 4155: DWORD *pnBytesRead, ! 4156: DWORD *pnMinNumberOfBytesNeeded ! 4157: ); ! 4158: BOOL ! 4159: WINAPI ! 4160: ReadEventLogW ( ! 4161: HANDLE hEventLog, ! 4162: DWORD dwReadFlags, ! 4163: DWORD dwRecordOffset, ! 4164: LPVOID lpBuffer, ! 4165: DWORD nNumberOfBytesToRead, ! 4166: DWORD *pnBytesRead, ! 4167: DWORD *pnMinNumberOfBytesNeeded ! 4168: ); ! 4169: #ifdef UNICODE ! 4170: #define ReadEventLog ReadEventLogW ! 4171: #else ! 4172: #define ReadEventLog ReadEventLogA ! 4173: #endif // !UNICODE ! 4174: ! 4175: BOOL ! 4176: WINAPI ! 4177: ReportEventA ( ! 4178: HANDLE hEventLog, ! 4179: WORD wType, ! 4180: WORD wCategory, ! 4181: DWORD dwEventID, ! 4182: PSID lpUserSid, ! 4183: WORD wNumStrings, ! 4184: DWORD dwDataSize, ! 4185: LPSTR *lpStrings, ! 4186: LPVOID lpRawData ! 4187: ); ! 4188: BOOL ! 4189: WINAPI ! 4190: ReportEventW ( ! 4191: HANDLE hEventLog, ! 4192: WORD wType, ! 4193: WORD wCategory, ! 4194: DWORD dwEventID, ! 4195: PSID lpUserSid, ! 4196: WORD wNumStrings, ! 4197: DWORD dwDataSize, ! 4198: LPWSTR *lpStrings, ! 4199: LPVOID lpRawData ! 4200: ); ! 4201: #ifdef UNICODE ! 4202: #define ReportEvent ReportEventW ! 4203: #else ! 4204: #define ReportEvent ReportEventA ! 4205: #endif // !UNICODE ! 4206: ! 4207: // ! 4208: // ! 4209: // Security APIs ! 4210: // ! 4211: ! 4212: ! 4213: BOOL ! 4214: WINAPI ! 4215: DuplicateToken( ! 4216: HANDLE ExistingTokenHandle, ! 4217: SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, ! 4218: PHANDLE DuplicateTokenHandle ! 4219: ); ! 4220: ! 4221: BOOL ! 4222: WINAPI ! 4223: GetKernelObjectSecurity ( ! 4224: HANDLE Handle, ! 4225: SECURITY_INFORMATION RequestedInformation, ! 4226: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4227: DWORD nLength, ! 4228: LPDWORD lpnLengthNeeded ! 4229: ); ! 4230: ! 4231: BOOL ! 4232: WINAPI ! 4233: ImpersonateNamedPipeClient( ! 4234: HANDLE hNamedPipe ! 4235: ); ! 4236: ! 4237: BOOL ! 4238: WINAPI ! 4239: ImpersonateSelf( ! 4240: SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ! 4241: ); ! 4242: ! 4243: ! 4244: BOOL ! 4245: WINAPI ! 4246: RevertToSelf ( ! 4247: VOID ! 4248: ); ! 4249: ! 4250: ! 4251: BOOL ! 4252: WINAPI ! 4253: AccessCheck ( ! 4254: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4255: HANDLE ClientToken, ! 4256: DWORD DesiredAccess, ! 4257: PGENERIC_MAPPING GenericMapping, ! 4258: PPRIVILEGE_SET PrivilegeSet, ! 4259: LPDWORD PrivilegeSetLength, ! 4260: LPDWORD GrantedAccess, ! 4261: LPBOOL AccessStatus ! 4262: ); ! 4263: ! 4264: ! 4265: BOOL ! 4266: WINAPI ! 4267: OpenProcessToken ( ! 4268: HANDLE ProcessHandle, ! 4269: DWORD DesiredAccess, ! 4270: PHANDLE TokenHandle ! 4271: ); ! 4272: ! 4273: ! 4274: BOOL ! 4275: WINAPI ! 4276: OpenThreadToken ( ! 4277: HANDLE ThreadHandle, ! 4278: DWORD DesiredAccess, ! 4279: BOOL OpenAsSelf, ! 4280: PHANDLE TokenHandle ! 4281: ); ! 4282: ! 4283: ! 4284: BOOL ! 4285: WINAPI ! 4286: GetTokenInformation ( ! 4287: HANDLE TokenHandle, ! 4288: TOKEN_INFORMATION_CLASS TokenInformationClass, ! 4289: LPVOID TokenInformation, ! 4290: DWORD TokenInformationLength, ! 4291: PDWORD ReturnLength ! 4292: ); ! 4293: ! 4294: ! 4295: BOOL ! 4296: WINAPI ! 4297: SetTokenInformation ( ! 4298: HANDLE TokenHandle, ! 4299: TOKEN_INFORMATION_CLASS TokenInformationClass, ! 4300: LPVOID TokenInformation, ! 4301: DWORD TokenInformationLength ! 4302: ); ! 4303: ! 4304: ! 4305: BOOL ! 4306: WINAPI ! 4307: AdjustTokenPrivileges ( ! 4308: HANDLE TokenHandle, ! 4309: BOOL DisableAllPrivileges, ! 4310: PTOKEN_PRIVILEGES NewState, ! 4311: DWORD BufferLength, ! 4312: PTOKEN_PRIVILEGES PreviousState, ! 4313: PDWORD ReturnLength ! 4314: ); ! 4315: ! 4316: ! 4317: BOOL ! 4318: WINAPI ! 4319: AdjustTokenGroups ( ! 4320: HANDLE TokenHandle, ! 4321: BOOL ResetToDefault, ! 4322: PTOKEN_GROUPS NewState, ! 4323: DWORD BufferLength, ! 4324: PTOKEN_GROUPS PreviousState, ! 4325: PDWORD ReturnLength ! 4326: ); ! 4327: ! 4328: ! 4329: BOOL ! 4330: WINAPI ! 4331: PrivilegeCheck ( ! 4332: HANDLE ClientToken, ! 4333: PPRIVILEGE_SET RequiredPrivileges, ! 4334: LPBOOL pfResult ! 4335: ); ! 4336: ! 4337: ! 4338: BOOL ! 4339: WINAPI ! 4340: AccessCheckAndAuditAlarmA ( ! 4341: LPSTR SubsystemName, ! 4342: LPVOID HandleId, ! 4343: LPSTR ObjectTypeName, ! 4344: LPSTR ObjectName, ! 4345: PSECURITY_DESCRIPTOR SecurityDescriptor, ! 4346: DWORD DesiredAccess, ! 4347: PGENERIC_MAPPING GenericMapping, ! 4348: BOOL ObjectCreation, ! 4349: LPDWORD GrantedAccess, ! 4350: LPBOOL AccessStatus, ! 4351: LPBOOL pfGenerateOnClose ! 4352: ); ! 4353: BOOL ! 4354: WINAPI ! 4355: AccessCheckAndAuditAlarmW ( ! 4356: LPWSTR SubsystemName, ! 4357: LPVOID HandleId, ! 4358: LPWSTR ObjectTypeName, ! 4359: LPWSTR ObjectName, ! 4360: PSECURITY_DESCRIPTOR SecurityDescriptor, ! 4361: DWORD DesiredAccess, ! 4362: PGENERIC_MAPPING GenericMapping, ! 4363: BOOL ObjectCreation, ! 4364: LPDWORD GrantedAccess, ! 4365: LPBOOL AccessStatus, ! 4366: LPBOOL pfGenerateOnClose ! 4367: ); ! 4368: #ifdef UNICODE ! 4369: #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW ! 4370: #else ! 4371: #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA ! 4372: #endif // !UNICODE ! 4373: ! 4374: ! 4375: BOOL ! 4376: WINAPI ! 4377: ObjectOpenAuditAlarmA ( ! 4378: LPSTR SubsystemName, ! 4379: LPVOID HandleId, ! 4380: LPSTR ObjectTypeName, ! 4381: LPSTR ObjectName, ! 4382: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4383: HANDLE ClientToken, ! 4384: DWORD DesiredAccess, ! 4385: DWORD GrantedAccess, ! 4386: PPRIVILEGE_SET Privileges, ! 4387: BOOL ObjectCreation, ! 4388: BOOL AccessGranted, ! 4389: LPBOOL GenerateOnClose ! 4390: ); ! 4391: BOOL ! 4392: WINAPI ! 4393: ObjectOpenAuditAlarmW ( ! 4394: LPWSTR SubsystemName, ! 4395: LPVOID HandleId, ! 4396: LPWSTR ObjectTypeName, ! 4397: LPWSTR ObjectName, ! 4398: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4399: HANDLE ClientToken, ! 4400: DWORD DesiredAccess, ! 4401: DWORD GrantedAccess, ! 4402: PPRIVILEGE_SET Privileges, ! 4403: BOOL ObjectCreation, ! 4404: BOOL AccessGranted, ! 4405: LPBOOL GenerateOnClose ! 4406: ); ! 4407: #ifdef UNICODE ! 4408: #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW ! 4409: #else ! 4410: #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA ! 4411: #endif // !UNICODE ! 4412: ! 4413: ! 4414: BOOL ! 4415: WINAPI ! 4416: ObjectPrivilegeAuditAlarmA ( ! 4417: LPSTR SubsystemName, ! 4418: LPVOID HandleId, ! 4419: HANDLE ClientToken, ! 4420: DWORD DesiredAccess, ! 4421: PPRIVILEGE_SET Privileges, ! 4422: BOOL AccessGranted ! 4423: ); ! 4424: BOOL ! 4425: WINAPI ! 4426: ObjectPrivilegeAuditAlarmW ( ! 4427: LPWSTR SubsystemName, ! 4428: LPVOID HandleId, ! 4429: HANDLE ClientToken, ! 4430: DWORD DesiredAccess, ! 4431: PPRIVILEGE_SET Privileges, ! 4432: BOOL AccessGranted ! 4433: ); ! 4434: #ifdef UNICODE ! 4435: #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW ! 4436: #else ! 4437: #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA ! 4438: #endif // !UNICODE ! 4439: ! 4440: ! 4441: BOOL ! 4442: WINAPI ! 4443: ObjectCloseAuditAlarmA ( ! 4444: LPSTR SubsystemName, ! 4445: LPVOID HandleId, ! 4446: BOOL GenerateOnClose ! 4447: ); ! 4448: BOOL ! 4449: WINAPI ! 4450: ObjectCloseAuditAlarmW ( ! 4451: LPWSTR SubsystemName, ! 4452: LPVOID HandleId, ! 4453: BOOL GenerateOnClose ! 4454: ); ! 4455: #ifdef UNICODE ! 4456: #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW ! 4457: #else ! 4458: #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA ! 4459: #endif // !UNICODE ! 4460: ! 4461: ! 4462: BOOL ! 4463: WINAPI ! 4464: PrivilegedServiceAuditAlarmA ( ! 4465: LPSTR SubsystemName, ! 4466: LPSTR ServiceName, ! 4467: HANDLE ClientToken, ! 4468: PPRIVILEGE_SET Privileges, ! 4469: BOOL AccessGranted ! 4470: ); ! 4471: BOOL ! 4472: WINAPI ! 4473: PrivilegedServiceAuditAlarmW ( ! 4474: LPWSTR SubsystemName, ! 4475: LPWSTR ServiceName, ! 4476: HANDLE ClientToken, ! 4477: PPRIVILEGE_SET Privileges, ! 4478: BOOL AccessGranted ! 4479: ); ! 4480: #ifdef UNICODE ! 4481: #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW ! 4482: #else ! 4483: #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA ! 4484: #endif // !UNICODE ! 4485: ! 4486: ! 4487: BOOL ! 4488: WINAPI ! 4489: IsValidSid ( ! 4490: PSID pSid ! 4491: ); ! 4492: ! 4493: ! 4494: BOOL ! 4495: WINAPI ! 4496: EqualSid ( ! 4497: PSID pSid1, ! 4498: PSID pSid2 ! 4499: ); ! 4500: ! 4501: ! 4502: BOOL ! 4503: WINAPI ! 4504: EqualPrefixSid ( ! 4505: PSID pSid1, ! 4506: PSID pSid2 ! 4507: ); ! 4508: ! 4509: ! 4510: DWORD ! 4511: WINAPI ! 4512: GetSidLengthRequired ( ! 4513: UCHAR nSubAuthorityCount ! 4514: ); ! 4515: ! 4516: ! 4517: BOOL ! 4518: WINAPI ! 4519: AllocateAndInitializeSid ( ! 4520: PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, ! 4521: BYTE nSubAuthorityCount, ! 4522: DWORD nSubAuthority0, ! 4523: DWORD nSubAuthority1, ! 4524: DWORD nSubAuthority2, ! 4525: DWORD nSubAuthority3, ! 4526: DWORD nSubAuthority4, ! 4527: DWORD nSubAuthority5, ! 4528: DWORD nSubAuthority6, ! 4529: DWORD nSubAuthority7, ! 4530: PSID *pSid ! 4531: ); ! 4532: ! 4533: PVOID ! 4534: WINAPI ! 4535: FreeSid( ! 4536: PSID pSid ! 4537: ); ! 4538: ! 4539: BOOL ! 4540: WINAPI ! 4541: InitializeSid ( ! 4542: PSID Sid, ! 4543: PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, ! 4544: BYTE nSubAuthorityCount ! 4545: ); ! 4546: ! 4547: ! 4548: PSID_IDENTIFIER_AUTHORITY ! 4549: WINAPI ! 4550: GetSidIdentifierAuthority ( ! 4551: PSID pSid ! 4552: ); ! 4553: ! 4554: ! 4555: PDWORD ! 4556: WINAPI ! 4557: GetSidSubAuthority ( ! 4558: PSID pSid, ! 4559: DWORD nSubAuthority ! 4560: ); ! 4561: ! 4562: ! 4563: PUCHAR ! 4564: WINAPI ! 4565: GetSidSubAuthorityCount ( ! 4566: PSID pSid ! 4567: ); ! 4568: ! 4569: ! 4570: DWORD ! 4571: WINAPI ! 4572: GetLengthSid ( ! 4573: PSID pSid ! 4574: ); ! 4575: ! 4576: ! 4577: BOOL ! 4578: WINAPI ! 4579: CopySid ( ! 4580: DWORD nDestinationSidLength, ! 4581: PSID pDestinationSid, ! 4582: PSID pSourceSid ! 4583: ); ! 4584: ! 4585: ! 4586: BOOL ! 4587: WINAPI ! 4588: AreAllAccessesGranted ( ! 4589: DWORD GrantedAccess, ! 4590: DWORD DesiredAccess ! 4591: ); ! 4592: ! 4593: ! 4594: BOOL ! 4595: WINAPI ! 4596: AreAnyAccessesGranted ( ! 4597: DWORD GrantedAccess, ! 4598: DWORD DesiredAccess ! 4599: ); ! 4600: ! 4601: ! 4602: VOID ! 4603: WINAPI ! 4604: MapGenericMask ( ! 4605: PDWORD AccessMask, ! 4606: PGENERIC_MAPPING GenericMapping ! 4607: ); ! 4608: ! 4609: ! 4610: BOOL ! 4611: WINAPI ! 4612: IsValidAcl ( ! 4613: PACL pAcl ! 4614: ); ! 4615: ! 4616: ! 4617: BOOL ! 4618: WINAPI ! 4619: InitializeAcl ( ! 4620: PACL pAcl, ! 4621: DWORD nAclLength, ! 4622: DWORD dwAclRevision ! 4623: ); ! 4624: ! 4625: ! 4626: BOOL ! 4627: WINAPI ! 4628: GetAclInformation ( ! 4629: PACL pAcl, ! 4630: LPVOID pAclInformation, ! 4631: DWORD nAclInformationLength, ! 4632: ACL_INFORMATION_CLASS dwAclInformationClass ! 4633: ); ! 4634: ! 4635: ! 4636: BOOL ! 4637: WINAPI ! 4638: SetAclInformation ( ! 4639: PACL pAcl, ! 4640: LPVOID pAclInformation, ! 4641: DWORD nAclInformationLength, ! 4642: ACL_INFORMATION_CLASS dwAclInformationClass ! 4643: ); ! 4644: ! 4645: ! 4646: BOOL ! 4647: WINAPI ! 4648: AddAce ( ! 4649: PACL pAcl, ! 4650: DWORD dwAceRevision, ! 4651: DWORD dwStartingAceIndex, ! 4652: LPVOID pAceList, ! 4653: DWORD nAceListLength ! 4654: ); ! 4655: ! 4656: ! 4657: BOOL ! 4658: WINAPI ! 4659: DeleteAce ( ! 4660: PACL pAcl, ! 4661: DWORD dwAceIndex ! 4662: ); ! 4663: ! 4664: ! 4665: BOOL ! 4666: WINAPI ! 4667: GetAce ( ! 4668: PACL pAcl, ! 4669: DWORD dwAceIndex, ! 4670: LPVOID *pAce ! 4671: ); ! 4672: ! 4673: ! 4674: BOOL ! 4675: WINAPI ! 4676: AddAccessAllowedAce ( ! 4677: PACL pAcl, ! 4678: DWORD dwAceRevision, ! 4679: DWORD AccessMask, ! 4680: PSID pSid ! 4681: ); ! 4682: ! 4683: ! 4684: BOOL ! 4685: WINAPI ! 4686: AddAccessDeniedAce ( ! 4687: PACL pAcl, ! 4688: DWORD dwAceRevision, ! 4689: DWORD AccessMask, ! 4690: PSID pSid ! 4691: ); ! 4692: ! 4693: ! 4694: BOOL ! 4695: WINAPI ! 4696: AddAuditAccessAce( ! 4697: PACL pAcl, ! 4698: DWORD dwAceRevision, ! 4699: DWORD dwAccessMask, ! 4700: PSID pSid, ! 4701: BOOL bAuditSuccess, ! 4702: BOOL bAuditFailure ! 4703: ); ! 4704: ! 4705: ! 4706: BOOL ! 4707: WINAPI ! 4708: FindFirstFreeAce ( ! 4709: PACL pAcl, ! 4710: LPVOID *pAce ! 4711: ); ! 4712: ! 4713: ! 4714: BOOL ! 4715: WINAPI ! 4716: InitializeSecurityDescriptor ( ! 4717: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4718: DWORD dwRevision ! 4719: ); ! 4720: ! 4721: ! 4722: BOOL ! 4723: WINAPI ! 4724: IsValidSecurityDescriptor ( ! 4725: PSECURITY_DESCRIPTOR pSecurityDescriptor ! 4726: ); ! 4727: ! 4728: ! 4729: DWORD ! 4730: WINAPI ! 4731: GetSecurityDescriptorLength ( ! 4732: PSECURITY_DESCRIPTOR pSecurityDescriptor ! 4733: ); ! 4734: ! 4735: ! 4736: BOOL ! 4737: WINAPI ! 4738: GetSecurityDescriptorControl ( ! 4739: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4740: PSECURITY_DESCRIPTOR_CONTROL pControl, ! 4741: LPDWORD lpdwRevision ! 4742: ); ! 4743: ! 4744: ! 4745: BOOL ! 4746: WINAPI ! 4747: SetSecurityDescriptorDacl ( ! 4748: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4749: BOOL bDaclPresent, ! 4750: PACL pDacl, ! 4751: BOOL bDaclDefaulted ! 4752: ); ! 4753: ! 4754: ! 4755: BOOL ! 4756: WINAPI ! 4757: GetSecurityDescriptorDacl ( ! 4758: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4759: LPBOOL lpbDaclPresent, ! 4760: PACL *pDacl, ! 4761: LPBOOL lpbDaclDefaulted ! 4762: ); ! 4763: ! 4764: ! 4765: BOOL ! 4766: WINAPI ! 4767: SetSecurityDescriptorSacl ( ! 4768: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4769: BOOL bSaclPresent, ! 4770: PACL pSacl, ! 4771: BOOL bSaclDefaulted ! 4772: ); ! 4773: ! 4774: ! 4775: BOOL ! 4776: WINAPI ! 4777: GetSecurityDescriptorSacl ( ! 4778: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4779: LPBOOL lpbSaclPresent, ! 4780: PACL *pSacl, ! 4781: LPBOOL lpbSaclDefaulted ! 4782: ); ! 4783: ! 4784: ! 4785: BOOL ! 4786: WINAPI ! 4787: SetSecurityDescriptorOwner ( ! 4788: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4789: PSID pOwner, ! 4790: BOOL bOwnerDefaulted ! 4791: ); ! 4792: ! 4793: ! 4794: BOOL ! 4795: WINAPI ! 4796: GetSecurityDescriptorOwner ( ! 4797: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4798: PSID *pOwner, ! 4799: LPBOOL lpbOwnerDefaulted ! 4800: ); ! 4801: ! 4802: ! 4803: BOOL ! 4804: WINAPI ! 4805: SetSecurityDescriptorGroup ( ! 4806: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4807: PSID pGroup, ! 4808: BOOL bGroupDefaulted ! 4809: ); ! 4810: ! 4811: ! 4812: BOOL ! 4813: WINAPI ! 4814: GetSecurityDescriptorGroup ( ! 4815: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4816: PSID *pGroup, ! 4817: LPBOOL lpbGroupDefaulted ! 4818: ); ! 4819: ! 4820: ! 4821: BOOL ! 4822: WINAPI ! 4823: CreatePrivateObjectSecurity ( ! 4824: PSECURITY_DESCRIPTOR ParentDescriptor, ! 4825: PSECURITY_DESCRIPTOR CreatorDescriptor, ! 4826: PSECURITY_DESCRIPTOR * NewDescriptor, ! 4827: BOOL IsDirectoryObject, ! 4828: HANDLE Token, ! 4829: PGENERIC_MAPPING GenericMapping ! 4830: ); ! 4831: ! 4832: ! 4833: BOOL ! 4834: WINAPI ! 4835: SetPrivateObjectSecurity ( ! 4836: SECURITY_INFORMATION SecurityInformation, ! 4837: PSECURITY_DESCRIPTOR ModificationDescriptor, ! 4838: PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, ! 4839: PGENERIC_MAPPING GenericMapping, ! 4840: HANDLE Token ! 4841: ); ! 4842: ! 4843: ! 4844: BOOL ! 4845: WINAPI ! 4846: GetPrivateObjectSecurity ( ! 4847: PSECURITY_DESCRIPTOR ObjectDescriptor, ! 4848: SECURITY_INFORMATION SecurityInformation, ! 4849: PSECURITY_DESCRIPTOR ResultantDescriptor, ! 4850: DWORD DescriptorLength, ! 4851: PDWORD ReturnLength ! 4852: ); ! 4853: ! 4854: ! 4855: BOOL ! 4856: WINAPI ! 4857: DestroyPrivateObjectSecurity ( ! 4858: PSECURITY_DESCRIPTOR * ObjectDescriptor ! 4859: ); ! 4860: ! 4861: ! 4862: BOOL ! 4863: WINAPI ! 4864: MakeSelfRelativeSD ( ! 4865: PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, ! 4866: PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, ! 4867: LPDWORD lpdwBufferLength ! 4868: ); ! 4869: ! 4870: ! 4871: BOOL ! 4872: WINAPI ! 4873: MakeAbsoluteSD ( ! 4874: PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, ! 4875: PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, ! 4876: LPDWORD lpdwAbsoluteSecurityDescriptorSize, ! 4877: PACL pDacl, ! 4878: LPDWORD lpdwDaclSize, ! 4879: PACL pSacl, ! 4880: LPDWORD lpdwSaclSize, ! 4881: PSID pOwner, ! 4882: LPDWORD lpdwOwnerSize, ! 4883: PSID pPrimaryGroup, ! 4884: LPDWORD lpdwPrimaryGroupSize ! 4885: ); ! 4886: ! 4887: ! 4888: BOOL ! 4889: WINAPI ! 4890: SetFileSecurityA ( ! 4891: LPSTR lpFileName, ! 4892: SECURITY_INFORMATION SecurityInformation, ! 4893: PSECURITY_DESCRIPTOR pSecurityDescriptor ! 4894: ); ! 4895: BOOL ! 4896: WINAPI ! 4897: SetFileSecurityW ( ! 4898: LPWSTR lpFileName, ! 4899: SECURITY_INFORMATION SecurityInformation, ! 4900: PSECURITY_DESCRIPTOR pSecurityDescriptor ! 4901: ); ! 4902: #ifdef UNICODE ! 4903: #define SetFileSecurity SetFileSecurityW ! 4904: #else ! 4905: #define SetFileSecurity SetFileSecurityA ! 4906: #endif // !UNICODE ! 4907: ! 4908: ! 4909: BOOL ! 4910: WINAPI ! 4911: GetFileSecurityA ( ! 4912: LPSTR lpFileName, ! 4913: SECURITY_INFORMATION RequestedInformation, ! 4914: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4915: DWORD nLength, ! 4916: LPDWORD lpnLengthNeeded ! 4917: ); ! 4918: BOOL ! 4919: WINAPI ! 4920: GetFileSecurityW ( ! 4921: LPWSTR lpFileName, ! 4922: SECURITY_INFORMATION RequestedInformation, ! 4923: PSECURITY_DESCRIPTOR pSecurityDescriptor, ! 4924: DWORD nLength, ! 4925: LPDWORD lpnLengthNeeded ! 4926: ); ! 4927: #ifdef UNICODE ! 4928: #define GetFileSecurity GetFileSecurityW ! 4929: #else ! 4930: #define GetFileSecurity GetFileSecurityA ! 4931: #endif // !UNICODE ! 4932: ! 4933: ! 4934: BOOL ! 4935: WINAPI ! 4936: SetKernelObjectSecurity ( ! 4937: HANDLE Handle, ! 4938: SECURITY_INFORMATION SecurityInformation, ! 4939: PSECURITY_DESCRIPTOR SecurityDescriptor ! 4940: ); ! 4941: ! 4942: ! 4943: ! 4944: HANDLE ! 4945: WINAPI ! 4946: FindFirstChangeNotificationA( ! 4947: LPSTR lpPathName, ! 4948: BOOL bWatchSubtree, ! 4949: DWORD dwNotifyFilter ! 4950: ); ! 4951: HANDLE ! 4952: WINAPI ! 4953: FindFirstChangeNotificationW( ! 4954: LPWSTR lpPathName, ! 4955: BOOL bWatchSubtree, ! 4956: DWORD dwNotifyFilter ! 4957: ); ! 4958: #ifdef UNICODE ! 4959: #define FindFirstChangeNotification FindFirstChangeNotificationW ! 4960: #else ! 4961: #define FindFirstChangeNotification FindFirstChangeNotificationA ! 4962: #endif // !UNICODE ! 4963: BOOL ! 4964: WINAPI ! 4965: FindNextChangeNotification( ! 4966: HANDLE hChangeHandle ! 4967: ); ! 4968: ! 4969: BOOL ! 4970: WINAPI ! 4971: FindCloseChangeNotification( ! 4972: HANDLE hChangeHandle ! 4973: ); ! 4974: ! 4975: BOOL ! 4976: WINAPI ! 4977: VirtualLock( ! 4978: LPVOID lpAddress, ! 4979: DWORD dwSize ! 4980: ); ! 4981: ! 4982: BOOL ! 4983: WINAPI ! 4984: VirtualUnlock( ! 4985: LPVOID lpAddress, ! 4986: DWORD dwSize ! 4987: ); ! 4988: ! 4989: LPVOID ! 4990: WINAPI ! 4991: MapViewOfFileEx( ! 4992: HANDLE hFileMappingObject, ! 4993: DWORD dwDesiredAccess, ! 4994: DWORD dwFileOffsetHigh, ! 4995: DWORD dwFileOffsetLow, ! 4996: DWORD dwNumberOfBytesToMap, ! 4997: LPVOID lpBaseAddress ! 4998: ); ! 4999: ! 5000: BOOL ! 5001: WINAPI ! 5002: SetPriorityClass( ! 5003: HANDLE hProcess, ! 5004: DWORD dwPriorityClass ! 5005: ); ! 5006: ! 5007: DWORD ! 5008: WINAPI ! 5009: GetPriorityClass( ! 5010: HANDLE hProcess ! 5011: ); ! 5012: ! 5013: BOOL ! 5014: WINAPI ! 5015: IsBadReadPtr( ! 5016: CONST VOID *lp, ! 5017: UINT ucb ! 5018: ); ! 5019: ! 5020: BOOL ! 5021: WINAPI ! 5022: IsBadWritePtr( ! 5023: LPVOID lp, ! 5024: UINT ucb ! 5025: ); ! 5026: ! 5027: BOOL ! 5028: WINAPI ! 5029: IsBadHugeReadPtr( ! 5030: CONST VOID *lp, ! 5031: UINT ucb ! 5032: ); ! 5033: ! 5034: BOOL ! 5035: WINAPI ! 5036: IsBadHugeWritePtr( ! 5037: LPVOID lp, ! 5038: UINT ucb ! 5039: ); ! 5040: ! 5041: BOOL ! 5042: WINAPI ! 5043: IsBadCodePtr( ! 5044: FARPROC lpfn ! 5045: ); ! 5046: ! 5047: BOOL ! 5048: WINAPI ! 5049: IsBadStringPtrA( ! 5050: LPCSTR lpsz, ! 5051: UINT ucchMax ! 5052: ); ! 5053: BOOL ! 5054: WINAPI ! 5055: IsBadStringPtrW( ! 5056: LPCWSTR lpsz, ! 5057: UINT ucchMax ! 5058: ); ! 5059: #ifdef UNICODE ! 5060: #define IsBadStringPtr IsBadStringPtrW ! 5061: #else ! 5062: #define IsBadStringPtr IsBadStringPtrA ! 5063: #endif // !UNICODE ! 5064: ! 5065: BOOL ! 5066: WINAPI ! 5067: LookupAccountSidA( ! 5068: LPSTR lpSystemName, ! 5069: PSID Sid, ! 5070: LPSTR Name, ! 5071: LPDWORD cbName, ! 5072: LPSTR ReferencedDomainName, ! 5073: LPDWORD cbReferencedDomainName, ! 5074: PSID_NAME_USE peUse ! 5075: ); ! 5076: BOOL ! 5077: WINAPI ! 5078: LookupAccountSidW( ! 5079: LPWSTR lpSystemName, ! 5080: PSID Sid, ! 5081: LPWSTR Name, ! 5082: LPDWORD cbName, ! 5083: LPWSTR ReferencedDomainName, ! 5084: LPDWORD cbReferencedDomainName, ! 5085: PSID_NAME_USE peUse ! 5086: ); ! 5087: #ifdef UNICODE ! 5088: #define LookupAccountSid LookupAccountSidW ! 5089: #else ! 5090: #define LookupAccountSid LookupAccountSidA ! 5091: #endif // !UNICODE ! 5092: ! 5093: BOOL ! 5094: WINAPI ! 5095: LookupAccountNameA( ! 5096: LPSTR lpSystemName, ! 5097: LPSTR lpAccountName, ! 5098: PSID Sid, ! 5099: LPDWORD cbSid, ! 5100: LPSTR ReferencedDomainName, ! 5101: LPDWORD cbReferencedDomainName, ! 5102: PSID_NAME_USE peUse ! 5103: ); ! 5104: BOOL ! 5105: WINAPI ! 5106: LookupAccountNameW( ! 5107: LPWSTR lpSystemName, ! 5108: LPWSTR lpAccountName, ! 5109: PSID Sid, ! 5110: LPDWORD cbSid, ! 5111: LPWSTR ReferencedDomainName, ! 5112: LPDWORD cbReferencedDomainName, ! 5113: PSID_NAME_USE peUse ! 5114: ); ! 5115: #ifdef UNICODE ! 5116: #define LookupAccountName LookupAccountNameW ! 5117: #else ! 5118: #define LookupAccountName LookupAccountNameA ! 5119: #endif // !UNICODE ! 5120: ! 5121: BOOL ! 5122: WINAPI ! 5123: LookupPrivilegeValueA( ! 5124: LPSTR lpSystemName, ! 5125: LPSTR lpName, ! 5126: PLUID lpLuid ! 5127: ); ! 5128: BOOL ! 5129: WINAPI ! 5130: LookupPrivilegeValueW( ! 5131: LPWSTR lpSystemName, ! 5132: LPWSTR lpName, ! 5133: PLUID lpLuid ! 5134: ); ! 5135: #ifdef UNICODE ! 5136: #define LookupPrivilegeValue LookupPrivilegeValueW ! 5137: #else ! 5138: #define LookupPrivilegeValue LookupPrivilegeValueA ! 5139: #endif // !UNICODE ! 5140: ! 5141: BOOL ! 5142: WINAPI ! 5143: LookupPrivilegeNameA( ! 5144: LPSTR lpSystemName, ! 5145: PLUID lpLuid, ! 5146: LPSTR lpName, ! 5147: LPDWORD cbName ! 5148: ); ! 5149: BOOL ! 5150: WINAPI ! 5151: LookupPrivilegeNameW( ! 5152: LPWSTR lpSystemName, ! 5153: PLUID lpLuid, ! 5154: LPWSTR lpName, ! 5155: LPDWORD cbName ! 5156: ); ! 5157: #ifdef UNICODE ! 5158: #define LookupPrivilegeName LookupPrivilegeNameW ! 5159: #else ! 5160: #define LookupPrivilegeName LookupPrivilegeNameA ! 5161: #endif // !UNICODE ! 5162: ! 5163: BOOL ! 5164: WINAPI ! 5165: LookupPrivilegeDisplayNameA( ! 5166: LPSTR lpSystemName, ! 5167: LPSTR lpName, ! 5168: LPSTR lpDisplayName, ! 5169: LPDWORD cbDisplayName, ! 5170: LPDWORD lpLanguageId ! 5171: ); ! 5172: BOOL ! 5173: WINAPI ! 5174: LookupPrivilegeDisplayNameW( ! 5175: LPWSTR lpSystemName, ! 5176: LPWSTR lpName, ! 5177: LPWSTR lpDisplayName, ! 5178: LPDWORD cbDisplayName, ! 5179: LPDWORD lpLanguageId ! 5180: ); ! 5181: #ifdef UNICODE ! 5182: #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW ! 5183: #else ! 5184: #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA ! 5185: #endif // !UNICODE ! 5186: ! 5187: BOOL ! 5188: WINAPI ! 5189: AllocateLocallyUniqueId( ! 5190: PLUID Luid ! 5191: ); ! 5192: ! 5193: BOOL ! 5194: WINAPI ! 5195: BuildCommDCBA( ! 5196: LPSTR lpDef, ! 5197: LPDCB lpDCB ! 5198: ); ! 5199: BOOL ! 5200: WINAPI ! 5201: BuildCommDCBW( ! 5202: LPWSTR lpDef, ! 5203: LPDCB lpDCB ! 5204: ); ! 5205: #ifdef UNICODE ! 5206: #define BuildCommDCB BuildCommDCBW ! 5207: #else ! 5208: #define BuildCommDCB BuildCommDCBA ! 5209: #endif // !UNICODE ! 5210: ! 5211: #define MAX_COMPUTERNAME_LENGTH 80 ! 5212: ! 5213: BOOL ! 5214: WINAPI ! 5215: GetComputerNameA ( ! 5216: LPSTR lpBuffer, ! 5217: LPDWORD nSize ! 5218: ); ! 5219: BOOL ! 5220: WINAPI ! 5221: GetComputerNameW ( ! 5222: LPWSTR lpBuffer, ! 5223: LPDWORD nSize ! 5224: ); ! 5225: #ifdef UNICODE ! 5226: #define GetComputerName GetComputerNameW ! 5227: #else ! 5228: #define GetComputerName GetComputerNameA ! 5229: #endif // !UNICODE ! 5230: ! 5231: BOOL ! 5232: WINAPI ! 5233: SetComputerNameA ( ! 5234: LPSTR lpComputerName ! 5235: ); ! 5236: BOOL ! 5237: WINAPI ! 5238: SetComputerNameW ( ! 5239: LPWSTR lpComputerName ! 5240: ); ! 5241: #ifdef UNICODE ! 5242: #define SetComputerName SetComputerNameW ! 5243: #else ! 5244: #define SetComputerName SetComputerNameA ! 5245: #endif // !UNICODE ! 5246: ! 5247: BOOL ! 5248: WINAPI ! 5249: GetUserNameA ( ! 5250: LPSTR lpBuffer, ! 5251: LPDWORD nSize ! 5252: ); ! 5253: BOOL ! 5254: WINAPI ! 5255: GetUserNameW ( ! 5256: LPWSTR lpBuffer, ! 5257: LPDWORD nSize ! 5258: ); ! 5259: #ifdef UNICODE ! 5260: #define GetUserName GetUserNameW ! 5261: #else ! 5262: #define GetUserName GetUserNameA ! 5263: #endif // !UNICODE ! 5264: ! 5265: // ! 5266: // Performance counter API's ! 5267: // ! 5268: ! 5269: BOOL ! 5270: WINAPI ! 5271: QueryPerformanceCounter( ! 5272: LARGE_INTEGER *lpPerformanceCount ! 5273: ); ! 5274: ! 5275: BOOL ! 5276: WINAPI ! 5277: QueryPerformanceFrequency( ! 5278: LARGE_INTEGER *lpFrequency ! 5279: ); ! 5280: ! 5281: ! 5282: ! 5283: // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base ! 5284: // API functions. ! 5285: // ! 5286: ! 5287: #include <winerror.h> ! 5288: ! 5289: /* Abnormal termination codes */ ! 5290: ! 5291: #define TC_NORMAL 0 ! 5292: #define TC_HARDERR 1 ! 5293: #define TC_GP_TRAP 2 ! 5294: #define TC_SIGNAL 3 ! 5295: ! 5296: #endif // _WINBASE_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.