|
|
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: ! 34: #define Yield() ! 35: ! 36: #define INVALID_HANDLE_VALUE (HANDLE)-1 ! 37: #define FILE_BEGIN 0 ! 38: #define FILE_CURRENT 1 ! 39: #define FILE_END 2 ! 40: #define FILE_ATTRIBUTE_DIRECTORY 0x00000010 ! 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 STILL_ACTIVE STATUS_PENDING ! 49: #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION ! 50: #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT ! 51: #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT ! 52: #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP ! 53: #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT ! 54: ! 55: // ! 56: // File creation flags must start in second byte since they ! 57: // are combined with the attributes ! 58: // ! 59: ! 60: #define FILE_FLAG_WRITE_THROUGH 0x00000100 ! 61: #define FILE_FLAG_OVERLAPPED 0x00000200 ! 62: #define FILE_FLAG_NO_BUFFERING 0x00000400 ! 63: #define FILE_FLAG_RANDOM_ACCESS 0x00000800 ! 64: #define FILE_FLAG_SEQUENTIAL_SCAN 0x00001000 ! 65: ! 66: #define CREATE_NEW 1 ! 67: #define CREATE_ALWAYS 2 ! 68: #define OPEN_EXISTING 3 ! 69: #define OPEN_ALWAYS 4 ! 70: #define TRUNCATE_EXISTING 5 ! 71: ! 72: // ! 73: // Define the NamedPipe definitions ! 74: // ! 75: ! 76: ! 77: // ! 78: // Define the dwOpenMode values for CreateNamedPipe ! 79: // ! 80: ! 81: #define PIPE_ACCESS_INBOUND 0x00000001 ! 82: #define PIPE_ACCESS_OUTBOUND 0x00000002 ! 83: #define PIPE_ACCESS_DUPLEX 0x00000003 ! 84: ! 85: // ! 86: // Define the Named Pipe End flags for GetNamedPipeInfo ! 87: // ! 88: ! 89: #define PIPE_CLIENT_END 0x00000000 ! 90: #define PIPE_SERVER_END 0x00000001 ! 91: ! 92: // ! 93: // Define the dwPipeMode values for CreateNamedPipe ! 94: // ! 95: ! 96: #define PIPE_WAIT 0x00000000 ! 97: #define PIPE_NOWAIT 0x00000001 ! 98: #define PIPE_READMODE_BYTE 0x00000000 ! 99: #define PIPE_READMODE_MESSAGE 0x00000002 ! 100: #define PIPE_TYPE_BYTE 0x00000000 ! 101: #define PIPE_TYPE_MESSAGE 0x00000004 ! 102: ! 103: // ! 104: // Define the well known values for CreateNamedPipe nMaxInstances ! 105: // ! 106: ! 107: #define PIPE_UNLIMITED_INSTANCES 255 ! 108: ! 109: // ! 110: // Special values for mailslot information. ! 111: // ! 112: ! 113: // ! 114: // Special value for NextMessageSize to indicate that there is no next ! 115: // message. ! 116: // ! 117: ! 118: #define MAILSLOT_NO_MESSAGE -1 ! 119: ! 120: // ! 121: // Special value for mailslot size creation to indicate that the system ! 122: // should choose the size of the mailslot buffer. ! 123: // ! 124: ! 125: #define MAILSLOT_SIZE_AUTO 0 ! 126: ! 127: // ! 128: // Special value for read timeout to indicate that mailslot reads should ! 129: // never timeout. ! 130: // ! 131: ! 132: #define MAILSLOT_WAIT_FOREVER -1 ! 133: ! 134: // ! 135: // File structures ! 136: // ! 137: ! 138: typedef struct _OVERLAPPED { ! 139: DWORD Internal; ! 140: DWORD InternalHigh; ! 141: DWORD Offset; ! 142: DWORD OffsetHigh; ! 143: HANDLE hEvent; ! 144: } OVERLAPPED, *LPOVERLAPPED; ! 145: ! 146: typedef struct _SECURITY_ATTRIBUTES { ! 147: DWORD nLength; ! 148: LPVOID lpSecurityDescriptor; ! 149: BOOL bInheritHandle; ! 150: } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; ! 151: ! 152: typedef struct _PROCESS_INFORMATION { ! 153: HANDLE hProcess; ! 154: HANDLE hThread; ! 155: DWORD dwProcessId; ! 156: DWORD dwThreadId; ! 157: } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; ! 158: ! 159: // ! 160: // File System time stamps are represented with the following structure: ! 161: // ! 162: ! 163: typedef struct _FILETIME { ! 164: DWORD dwLowDateTime; ! 165: DWORD dwHighDateTime; ! 166: } FILETIME, *PFILETIME, *LPFILETIME; ! 167: ! 168: // ! 169: // System time is represented with the following structure: ! 170: // ! 171: ! 172: typedef struct _SYSTEMTIME { ! 173: WORD wYear; ! 174: WORD wMonth; ! 175: WORD wDayOfWeek; ! 176: WORD wDay; ! 177: WORD wHour; ! 178: WORD wMinute; ! 179: WORD wSecond; ! 180: WORD wMilliseconds; ! 181: } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; ! 182: ! 183: typedef DWORD (*PTHREAD_START_ROUTINE)( ! 184: LPVOID lpThreadParameter ! 185: ); ! 186: typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; ! 187: ! 188: typedef RTL_CRITICAL_SECTION CRITICAL_SECTION; ! 189: typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION; ! 190: typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; ! 191: ! 192: #ifdef i386 ! 193: typedef PLDT_ENTRY LPLDT_ENTRY; ! 194: #else ! 195: typedef LPVOID LPLDT_ENTRY; ! 196: #endif ! 197: ! 198: #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE ! 199: #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS ! 200: ! 201: // ! 202: // Provider capabilities flags. ! 203: // ! 204: ! 205: #define PCF_DTRDTS ((DWORD)0x0001) ! 206: #define PCF_RTSCTS ((DWORD)0x0002) ! 207: #define PCF_CD ((DWORD)0x0004) ! 208: #define PCF_PARITY_CHECK ((DWORD)0x0008) ! 209: #define PCF_XONXOFF ((DWORD)0x0010) ! 210: #define PCF_SETXCHAR ((DWORD)0x0020) ! 211: #define PCF_TOTTIMEOUTS ((DWORD)0x0040) ! 212: #define PCF_INTTIMEOUTS ((DWORD)0x0080) ! 213: #define PCF_SPECIALCHARS ((DWORD)0x0100) ! 214: #define PCF_16BITMODE ((DWORD)0x0200) ! 215: ! 216: // ! 217: // Comm provider settable parameters. ! 218: // ! 219: ! 220: #define SP_PARITY ((DWORD)0x0001) ! 221: #define SP_BAUD ((DWORD)0x0002) ! 222: #define SP_DATABITS ((DWORD)0x0004) ! 223: #define SP_STOPBITS ((DWORD)0x0008) ! 224: #define SP_HANDSHAKING ((DWORD)0x0010) ! 225: #define SP_PARITY_CHECK ((DWORD)0x0020) ! 226: #define SP_CARRIER_DETECT ((DWORD)0x0040) ! 227: ! 228: // ! 229: // Settable baud rates in the provider. ! 230: // ! 231: ! 232: #define BAUD_075 ((DWORD)0x00000001) ! 233: #define BAUD_110 ((DWORD)0x00000002) ! 234: #define BAUD_134_5 ((DWORD)0x00000004) ! 235: #define BAUD_150 ((DWORD)0x00000008) ! 236: #define BAUD_300 ((DWORD)0x00000010) ! 237: #define BAUD_600 ((DWORD)0x00000020) ! 238: #define BAUD_1200 ((DWORD)0x00000040) ! 239: #define BAUD_1800 ((DWORD)0x00000080) ! 240: #define BAUD_2400 ((DWORD)0x00000100) ! 241: #define BAUD_4800 ((DWORD)0x00000200) ! 242: #define BAUD_7200 ((DWORD)0x00000400) ! 243: #define BAUD_9600 ((DWORD)0x00000800) ! 244: #define BAUD_14400 ((DWORD)0x00001000) ! 245: #define BAUD_19200 ((DWORD)0x00002000) ! 246: #define BAUD_38400 ((DWORD)0x00004000) ! 247: #define BAUD_56K ((DWORD)0x00008000) ! 248: #define BAUD_USER ((DWORD)0x10000000) ! 249: ! 250: // ! 251: // Settable Data Bits ! 252: // ! 253: ! 254: #define DATABITS_5 ((WORD)0x0001) ! 255: #define DATABITS_6 ((WORD)0x0002) ! 256: #define DATABITS_7 ((WORD)0x0004) ! 257: #define DATABITS_8 ((WORD)0x0008) ! 258: #define DATABITS_16 ((WORD)0x0010) ! 259: #define DATABITS_16X ((WORD)0x0020) ! 260: ! 261: // ! 262: // Settable Stop and Parity bits. ! 263: // ! 264: ! 265: #define STOPBITS_10 ((WORD)0x0001) ! 266: #define STOPBITS_15 ((WORD)0x0002) ! 267: #define STOPBITS_20 ((WORD)0x0004) ! 268: #define PARITY_NONE ((WORD)0x0100) ! 269: #define PARITY_ODD ((WORD)0x0200) ! 270: #define PARITY_EVEN ((WORD)0x0400) ! 271: #define PARITY_MARK ((WORD)0x0800) ! 272: #define PARITY_SPACE ((WORD)0x1000) ! 273: ! 274: typedef struct _COMMPROP { ! 275: WORD wPacketLength; ! 276: WORD wPacketVersion; ! 277: DWORD dwServiceMask; ! 278: DWORD dwMaxConfigData; ! 279: DWORD dwMaxTxQueue; ! 280: DWORD dwMaxRxQueue; ! 281: DWORD dwMaxBaud; ! 282: DWORD dwDefTxQueue; ! 283: DWORD dwDefRxQueue; ! 284: DWORD dwDefBaud; ! 285: WORD wDefDataBits; ! 286: WORD wDefStopParity; ! 287: DWORD dwProvSubType; ! 288: DWORD dwProvCapabilities; ! 289: DWORD dwSettableParams; ! 290: DWORD dwSettableBaud; ! 291: WORD wSettableData; ! 292: WORD wSettableStopParity; ! 293: DWORD dwCurrentTxQueue; ! 294: DWORD dwCurrentRxQueue; ! 295: DWORD dwProvSpec1; ! 296: DWORD dwProvSpec2; ! 297: WCHAR ProvChar[1]; ! 298: } COMMPROP,*LPCOMMPROP; ! 299: ! 300: typedef struct _COMSTAT { ! 301: DWORD fCtsHold : 1; ! 302: DWORD fDsrHold : 1; ! 303: DWORD fRlsdHold : 1; ! 304: DWORD fXoffHold : 1; ! 305: DWORD fXoffSent : 1; ! 306: DWORD fEof : 1; ! 307: DWORD fTxim : 1; ! 308: DWORD fReserved : 17; ! 309: DWORD cbInQue; ! 310: DWORD cbOutQue; ! 311: } COMSTAT, *LPCOMSTAT; ! 312: ! 313: // ! 314: // DTR Control Flow Values. ! 315: // ! 316: #define DTR_CONTROL_DISABLE 0x00 ! 317: #define DTR_CONTROL_ENABLE 0x01 ! 318: #define DTR_CONTROL_HANDSHAKE 0x02 ! 319: ! 320: // ! 321: // RTS Control Flow Values ! 322: // ! 323: #define RTS_CONTROL_DISABLE 0x00 ! 324: #define RTS_CONTROL_ENABLE 0x01 ! 325: #define RTS_CONTROL_HANDSHAKE 0x02 ! 326: ! 327: typedef struct _DCB { ! 328: DWORD DCBlength; /* sizeof(DCB) */ ! 329: DWORD BaudRate; /* Baudrate at which running */ ! 330: DWORD fBinary: 1; /* Binary Mode (skip EOF check) */ ! 331: DWORD fParity: 1; /* Enable parity checking */ ! 332: DWORD fOutxCtsFlow:1; /* CTS handshaking on output */ ! 333: DWORD fOutxDsrFlow:1; /* DSR handshaking on output */ ! 334: DWORD fDtrControl:2; /* DTR Flow control */ ! 335: DWORD fDummy: 2; /* Reserved */ ! 336: DWORD fOutX: 1; /* Enable output X-ON/X-OFF */ ! 337: DWORD fInX: 1; /* Enable input X-ON/X-OFF */ ! 338: DWORD fPeChar: 1; /* Enable Parity Err Replacement */ ! 339: DWORD fNull: 1; /* Enable Null stripping */ ! 340: DWORD fRtsControl:2; /* Rts Flow control */ ! 341: DWORD fDummy2:2; /* Reserved */ ! 342: WORD TxDelay; /* Amount of time between chars */ ! 343: WORD XonLim; /* Transmit X-ON threshold */ ! 344: WORD XoffLim; /* Transmit X-OFF threshold */ ! 345: BYTE ByteSize; /* Number of bits/byte, 4-8 */ ! 346: BYTE Parity; /* 0-4=None,Odd,Even,Mark,Space */ ! 347: BYTE StopBits; /* 0,1,2 = 1, 1.5, 2 */ ! 348: char XonChar; /* Tx and Rx X-ON character */ ! 349: char XoffChar; /* Tx and Rx X-OFF character */ ! 350: char PeChar; /* Parity error replacement char */ ! 351: char EofChar; /* End of Input character */ ! 352: char EvtChar; /* Recieved Event character */ ! 353: } DCB, *LPDCB; ! 354: ! 355: typedef struct _COMMTIMEOUTS { ! 356: DWORD ReadIntervalTimeout; /* Maximum time between read chars. */ ! 357: DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */ ! 358: DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */ ! 359: DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */ ! 360: DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */ ! 361: } COMMTIMEOUTS,*LPCOMMTIMEOUTS; ! 362: ! 363: typedef struct _SYSTEM_INFO { ! 364: DWORD dwOemId; ! 365: DWORD dwPageSize; ! 366: LPVOID lpMinimumApplicationAddress; ! 367: LPVOID lpMaximumApplicationAddress; ! 368: DWORD dwActiveProcessorMask; ! 369: DWORD dwNumberOfProcessors; ! 370: DWORD dwProcessorType; ! 371: DWORD dwProcessorRevision; ! 372: DWORD dwProcessorOptions; ! 373: } SYSTEM_INFO, *LPSYSTEM_INFO; ! 374: ! 375: #define FreeModule(hLibModule) FreeLibrary((hLibModule)) ! 376: #define MakeProcInstance(lpProc,hInstance) (lpProc) ! 377: #define FreeProcInstance(lpProc) ! 378: ! 379: /* Global Memory Flags */ ! 380: #define GMEM_FIXED 0x0000 ! 381: #define GMEM_MOVEABLE 0x0002 ! 382: #define GMEM_NOCOMPACT 0x0010 ! 383: #define GMEM_NODISCARD 0x0020 ! 384: #define GMEM_ZEROINIT 0x0040 ! 385: #define GMEM_MODIFY 0x0080 ! 386: #define GMEM_DISCARDABLE 0x0100 ! 387: #define GMEM_NOT_BANKED 0x1000 ! 388: #define GMEM_SHARE 0x2000 ! 389: #define GMEM_DDESHARE 0x2000 ! 390: #define GMEM_NOTIFY 0x4000 ! 391: #define GMEM_LOWER GMEM_NOT_BANKED ! 392: #define GMEM_VALID_FLAGS 0x7F72 ! 393: #define GMEM_INVALID_HANDLE 0x8000 ! 394: ! 395: #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT) ! 396: #define GPTR (GMEM_FIXED | GMEM_ZEROINIT) ! 397: ! 398: #define GlobalDiscard( h ) (HANDLE)(h) ! 399: #define GlobalLRUNewest( h ) (HANDLE)(h) ! 400: #define GlobalLRUOldest( h ) (HANDLE)(h) ! 401: #define GlobalCompact( dw ) (0x100000L) ! 402: #define GlobalFix( h ) (h) ! 403: #define GlobalUnfix( h ) ((BOOL)h) ! 404: #define GlobalUnWire( h ) (TRUE) ! 405: #define GlobalWire( h ) (LPSTR)(h) ! 406: ! 407: /* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */ ! 408: #define GMEM_DISCARDED 0x4000 ! 409: #define GMEM_LOCKCOUNT 0x00FF ! 410: ! 411: typedef struct _MEMORYSTATUS { ! 412: DWORD dwLength; ! 413: DWORD dwMemoryLoad; ! 414: DWORD dwTotalPhys; ! 415: DWORD dwAvailPhys; ! 416: DWORD dwTotalPageFile; ! 417: DWORD dwAvailPageFile; ! 418: DWORD dwTotalVirtual; ! 419: DWORD dwAvailVirtual; ! 420: } MEMORYSTATUS, *LPMEMORYSTATUS; ! 421: ! 422: /* Local Memory Flags */ ! 423: #define LMEM_FIXED 0x0000 ! 424: #define LMEM_MOVEABLE 0x0002 ! 425: #define LMEM_NOCOMPACT 0x0010 ! 426: #define LMEM_NODISCARD 0x0020 ! 427: #define LMEM_ZEROINIT 0x0040 ! 428: #define LMEM_MODIFY 0x0080 ! 429: #define LMEM_DISCARDABLE 0x0F00 ! 430: #define LMEM_VALID_FLAGS 0x0F72 ! 431: #define LMEM_INVALID_HANDLE 0x8000 ! 432: ! 433: #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT) ! 434: #define LPTR (LMEM_FIXED | LMEM_ZEROINIT) ! 435: ! 436: #define NONZEROLHND (LMEM_MOVEABLE) ! 437: #define NONZEROLPTR (LMEM_FIXED) ! 438: ! 439: #define LocalShrink( h, n ) (0x10000) ! 440: #define LocalCompact( h ) (0x10000) ! 441: #define LocalDiscard( h ) (NULL) ! 442: ! 443: /* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */ ! 444: #define LMEM_DISCARDED 0x4000 ! 445: #define LMEM_LOCKCOUNT 0x00FF ! 446: ! 447: // ! 448: // dwCreationFlag values ! 449: // ! 450: ! 451: #define DEBUG_PROCESS 0x00000001 ! 452: #define DEBUG_ONLY_THIS_PROCESS 0x00000002 ! 453: ! 454: #define CREATE_SUSPENDED 0x00000004 ! 455: ! 456: #define DETACHED_PROCESS 0x00000008 ! 457: ! 458: #define CREATE_NEW_CONSOLE 0x00000010 ! 459: ! 460: #define PROFILE_USER 0x10000000 ! 461: #define PROFILE_KERNEL 0x20000000 ! 462: #define PROFILE_SERVER 0x40000000 ! 463: ! 464: #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN ! 465: #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1) ! 466: #define THREAD_PRIORITY_NORMAL 0 ! 467: #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX ! 468: #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1) ! 469: #define THREAD_PRIORITY_ERROR_RETURN (MAXLONG) ! 470: ! 471: // ! 472: // Debug APIs ! 473: // ! 474: #define EXCEPTION_DEBUG_EVENT 1 ! 475: #define CREATE_THREAD_DEBUG_EVENT 2 ! 476: #define CREATE_PROCESS_DEBUG_EVENT 3 ! 477: #define EXIT_THREAD_DEBUG_EVENT 4 ! 478: #define EXIT_PROCESS_DEBUG_EVENT 5 ! 479: #define LOAD_DLL_DEBUG_EVENT 6 ! 480: #define UNLOAD_DLL_DEBUG_EVENT 7 ! 481: #define OUTPUT_DEBUG_STRING_EVENT 8 ! 482: ! 483: typedef struct _EXCEPTION_DEBUG_INFO { ! 484: EXCEPTION_RECORD ExceptionRecord; ! 485: DWORD dwFirstChance; ! 486: } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO; ! 487: ! 488: typedef struct _CREATE_THREAD_DEBUG_INFO { ! 489: HANDLE hThread; ! 490: LPTHREAD_START_ROUTINE lpStartAddress; ! 491: } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO; ! 492: ! 493: typedef struct _CREATE_PROCESS_DEBUG_INFO { ! 494: HANDLE hFile; ! 495: HANDLE hProcess; ! 496: HANDLE hThread; ! 497: LPVOID lpBaseOfImage; ! 498: DWORD dwDebugInfoFileOffset; ! 499: DWORD nDebugInfoSize; ! 500: LPTHREAD_START_ROUTINE lpStartAddress; ! 501: } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO; ! 502: ! 503: typedef struct _EXIT_THREAD_DEBUG_INFO { ! 504: DWORD dwExitCode; ! 505: } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO; ! 506: ! 507: typedef struct _EXIT_PROCESS_DEBUG_INFO { ! 508: DWORD dwExitCode; ! 509: } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO; ! 510: ! 511: typedef struct _LOAD_DLL_DEBUG_INFO { ! 512: HANDLE hFile; ! 513: LPVOID lpBaseOfDll; ! 514: DWORD dwDebugInfoFileOffset; ! 515: DWORD nDebugInfoSize; ! 516: } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO; ! 517: ! 518: typedef struct _UNLOAD_DLL_DEBUG_INFO { ! 519: LPVOID lpBaseOfDll; ! 520: } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO; ! 521: ! 522: typedef struct _OUTPUT_DEBUG_STRING_INFO { ! 523: LPSTR lpDebugStringData; ! 524: WORD fUnicode; ! 525: WORD nDebugStringLength; ! 526: } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO; ! 527: ! 528: typedef struct _DEBUG_EVENT { ! 529: DWORD dwDebugEventCode; ! 530: DWORD dwProcessId; ! 531: DWORD dwThreadId; ! 532: union { ! 533: EXCEPTION_DEBUG_INFO Exception; ! 534: CREATE_THREAD_DEBUG_INFO CreateThread; ! 535: CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; ! 536: EXIT_THREAD_DEBUG_INFO ExitThread; ! 537: EXIT_THREAD_DEBUG_INFO ExitProcess; ! 538: LOAD_DLL_DEBUG_INFO LoadDll; ! 539: UNLOAD_DLL_DEBUG_INFO UnloadDll; ! 540: OUTPUT_DEBUG_STRING_INFO DebugString; ! 541: } u; ! 542: } DEBUG_EVENT, *LPDEBUG_EVENT; ! 543: ! 544: typedef PCONTEXT LPCONTEXT; ! 545: typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD; ! 546: typedef EXCEPTION_POINTERS LPEXCEPTION_POINTERS; ! 547: ! 548: #define DRIVE_REMOVABLE 2 ! 549: #define DRIVE_FIXED 3 ! 550: #define DRIVE_REMOTE 4 ! 551: #define DRIVE_CDROM 5 ! 552: #define DRIVE_RAMDISK 6 ! 553: ! 554: ! 555: #define GetFreeSpace(w) (0x100000L) ! 556: ! 557: ! 558: #define FILE_TYPE_UNKNOWN 0x0000 ! 559: #define FILE_TYPE_DISK 0x0001 ! 560: #define FILE_TYPE_CHAR 0x0002 ! 561: #define FILE_TYPE_PIPE 0x0003 ! 562: #define FILE_TYPE_REMOTE 0x8000 ! 563: ! 564: ! 565: #define STD_INPUT_HANDLE (DWORD)-10 ! 566: #define STD_OUTPUT_HANDLE (DWORD)-11 ! 567: #define STD_ERROR_HANDLE (DWORD)-12 ! 568: ! 569: #define NOPARITY 0 ! 570: #define ODDPARITY 1 ! 571: #define EVENPARITY 2 ! 572: #define MARKPARITY 3 ! 573: #define SPACEPARITY 4 ! 574: ! 575: #define ONESTOPBIT 0 ! 576: #define ONE5STOPBITS 1 ! 577: #define TWOSTOPBITS 2 ! 578: ! 579: #define IGNORE 0 // Ignore signal ! 580: #define INFINITE 0xFFFFFFFF // Infinite timeout ! 581: ! 582: // ! 583: // Basud rates at which the communication device operates ! 584: // ! 585: ! 586: #define CBR_110 110 ! 587: #define CBR_300 300 ! 588: #define CBR_600 600 ! 589: #define CBR_1200 1200 ! 590: #define CBR_2400 2400 ! 591: #define CBR_4800 4800 ! 592: #define CBR_9600 9600 ! 593: #define CBR_14400 14400 ! 594: #define CBR_19200 19200 ! 595: #define CBR_38400 38400 ! 596: #define CBR_56000 56000 ! 597: #define CBR_128000 128000 ! 598: #define CBR_256000 256000 ! 599: ! 600: // ! 601: // Error Flags ! 602: // ! 603: ! 604: #define CE_RXOVER 0x0001 // Receive Queue overflow ! 605: #define CE_OVERRUN 0x0002 // Receive Overrun Error ! 606: #define CE_RXPARITY 0x0004 // Receive Parity Error ! 607: #define CE_FRAME 0x0008 // Receive Framing error ! 608: #define CE_BREAK 0x0010 // Break Detected ! 609: #define CE_TXFULL 0x0100 // TX Queue is full ! 610: #define CE_PTO 0x0200 // LPTx Timeout ! 611: #define CE_IOE 0x0400 // LPTx I/O Error ! 612: #define CE_DNS 0x0800 // LPTx Device not selected ! 613: #define CE_OOP 0x1000 // LPTx Out-Of-Paper ! 614: #define CE_MODE 0x8000 // Requested mode unsupported ! 615: ! 616: #define IE_BADID (-1) // Invalid or unsupported id ! 617: #define IE_OPEN (-2) // Device Already Open ! 618: #define IE_NOPEN (-3) // Device Not Open ! 619: #define IE_MEMORY (-4) // Unable to allocate queues ! 620: #define IE_DEFAULT (-5) // Error in default parameters ! 621: #define IE_HARDWARE (-10) // Hardware Not Present ! 622: #define IE_BYTESIZE (-11) // Illegal Byte Size ! 623: #define IE_BAUDRATE (-12) // Unsupported BaudRate ! 624: ! 625: // ! 626: // Events ! 627: // ! 628: ! 629: #define EV_RXCHAR 0x0001 // Any Character received ! 630: #define EV_RXFLAG 0x0002 // Received certain character ! 631: #define EV_TXEMPTY 0x0004 // Transmitt Queue Empty ! 632: #define EV_CTS 0x0008 // CTS changed state ! 633: #define EV_DSR 0x0010 // DSR changed state ! 634: #define EV_RLSD 0x0020 // RLSD changed state ! 635: #define EV_BREAK 0x0040 // BREAK received ! 636: #define EV_ERR 0x0080 // Line status error occurred ! 637: #define EV_RING 0x0100 // Ring signal detected ! 638: #define EV_PERR 0x0200 // Printer error occured ! 639: #define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full ! 640: #define EV_EVENT1 0x0800 // Provider specific event 1 ! 641: #define EV_EVENT2 0x1000 // Provider specific event 2 ! 642: ! 643: // ! 644: // Escape Functions ! 645: // ! 646: ! 647: #define SETXOFF 1 // Simulate XOFF received ! 648: #define SETXON 2 // Simulate XON received ! 649: #define SETRTS 3 // Set RTS high ! 650: #define CLRRTS 4 // Set RTS low ! 651: #define SETDTR 5 // Set DTR high ! 652: #define CLRDTR 6 // Set DTR low ! 653: #define RESETDEV 7 // Reset device if possible ! 654: #define SETBREAK 8 // Set the device break line. ! 655: #define CLRBREAK 9 // Clear the device break line. ! 656: ! 657: // ! 658: // PURGE function flags. ! 659: // ! 660: #define PURGE_TXABORT 0x0001 // Kill the pending/current writes to the comm port. ! 661: #define PURGE_RXABORT 0x0002 // Kill the pending/current reads to the comm port. ! 662: #define PURGE_TXCLEAR 0x0004 // Kill the transmit queue if there. ! 663: #define PURGE_RXCLEAR 0x0008 // Kill the typeahead buffer if there. ! 664: ! 665: #define LPTx 0x80 // Set if ID is for LPT device ! 666: ! 667: // ! 668: // Modem Status Flags ! 669: // ! 670: #define MS_CTS_ON ((DWORD)0x0010) ! 671: #define MS_DSR_ON ((DWORD)0x0020) ! 672: #define MS_RING_ON ((DWORD)0x0040) ! 673: #define MS_RLSD_ON ((DWORD)0x0080) ! 674: ! 675: // ! 676: // WaitSoundState() Constants ! 677: // ! 678: ! 679: #define S_QUEUEEMPTY 0 ! 680: #define S_THRESHOLD 1 ! 681: #define S_ALLTHRESHOLD 2 ! 682: ! 683: // ! 684: // Accent Modes ! 685: // ! 686: ! 687: #define S_NORMAL 0 ! 688: #define S_LEGATO 1 ! 689: #define S_STACCATO 2 ! 690: ! 691: // ! 692: // SetSoundNoise() Sources ! 693: // ! 694: ! 695: #define S_PERIOD512 0 // Freq = N/512 high pitch, less coarse hiss ! 696: #define S_PERIOD1024 1 // Freq = N/1024 ! 697: #define S_PERIOD2048 2 // Freq = N/2048 low pitch, more coarse hiss ! 698: #define S_PERIODVOICE 3 // Source is frequency from voice channel (3) ! 699: #define S_WHITE512 4 // Freq = N/512 high pitch, less coarse hiss ! 700: #define S_WHITE1024 5 // Freq = N/1024 ! 701: #define S_WHITE2048 6 // Freq = N/2048 low pitch, more coarse hiss ! 702: #define S_WHITEVOICE 7 // Source is frequency from voice channel (3) ! 703: ! 704: #define S_SERDVNA (-1) // Device not available ! 705: #define S_SEROFM (-2) // Out of memory ! 706: #define S_SERMACT (-3) // Music active ! 707: #define S_SERQFUL (-4) // Queue full ! 708: #define S_SERBDNT (-5) // Invalid note ! 709: #define S_SERDLN (-6) // Invalid note length ! 710: #define S_SERDCC (-7) // Invalid note count ! 711: #define S_SERDTP (-8) // Invalid tempo ! 712: #define S_SERDVL (-9) // Invalid volume ! 713: #define S_SERDMD (-10) // Invalid mode ! 714: #define S_SERDSH (-11) // Invalid shape ! 715: #define S_SERDPT (-12) // Invalid pitch ! 716: #define S_SERDFQ (-13) // Invalid frequency ! 717: #define S_SERDDR (-14) // Invalid duration ! 718: #define S_SERDSR (-15) // Invalid source ! 719: #define S_SERDST (-16) // Invalid state ! 720: ! 721: #define NMPWAIT_WAIT_FOREVER 0xffffffff ! 722: #define NMPWAIT_NOWAIT 0x00000001 ! 723: #define NMPWAIT_USE_DEFAULT_WAIT 0x00000000 ! 724: ! 725: #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES ! 726: #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH ! 727: #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK ! 728: ! 729: #define FILE_MAP_WRITE SECTION_MAP_WRITE ! 730: #define FILE_MAP_READ SECTION_MAP_READ ! 731: #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS ! 732: ! 733: #define OF_READ 0x00000000 ! 734: #define OF_WRITE 0x00000001 ! 735: #define OF_READWRITE 0x00000002 ! 736: #define OF_SHARE_COMPAT 0x00000000 ! 737: #define OF_SHARE_EXCLUSIVE 0x00000010 ! 738: #define OF_SHARE_DENY_WRITE 0x00000020 ! 739: #define OF_SHARE_DENY_READ 0x00000030 ! 740: #define OF_SHARE_DENY_NONE 0x00000040 ! 741: #define OF_PARSE 0x00000100 ! 742: #define OF_DELETE 0x00000200 ! 743: #define OF_VERIFY 0x00000400 ! 744: #define OF_CANCEL 0x00000800 ! 745: #define OF_CREATE 0x00001000 ! 746: #define OF_PROMPT 0x00002000 ! 747: #define OF_EXIST 0x00004000 ! 748: #define OF_REOPEN 0x00008000 ! 749: ! 750: typedef struct _OFSTRUCT { ! 751: BYTE cBytes; ! 752: BYTE fFixedDisk; ! 753: WORD nErrCode; ! 754: WORD Reserved1; ! 755: WORD Reserved2; ! 756: BYTE szPathName[120]; ! 757: } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT; ! 758: ! 759: LONG ! 760: APIENTRY ! 761: InterlockedIncrement( ! 762: LPLONG lpAddend ! 763: ); ! 764: ! 765: LONG ! 766: APIENTRY ! 767: InterlockedDecrement( ! 768: LPLONG lpAddend ! 769: ); ! 770: ! 771: // MVDM related Stuff ! 772: #define MAXIMUM_VDM_COMMAND_LENGTH 128 ! 773: #define MAXIMUM_VDM_ENVIORNMENT 32*1024 ! 774: #define MAXIMUM_VDM_CURRENT_DIR 64 ! 775: ! 776: // VDMState defines ! 777: #define ASKING_FOR_FIRST_COMMAND 1 // Very First call. ! 778: #define ASKING_FOR_WOW_BINARY 2 // Caller is WOWVDM ! 779: #define ASKING_FOR_DOS_BINARY 4 // Caller is DOSVDM ! 780: #define ASKING_FOR_SECOND_TIME 8 // Caller is asking second time after ! 781: // allocating bigger buffers. ! 782: typedef struct _VDMINFO { ! 783: LPVOID CmdLine; ! 784: LPVOID Enviornment; ! 785: USHORT CmdSize; ! 786: USHORT CurDrive; ! 787: ULONG EnviornmentSize; ! 788: ULONG ErrorCode; ! 789: ULONG VDMState; ! 790: ULONG iTask; ! 791: } VDMINFO, *PVDMINFO; ! 792: ! 793: DWORD ! 794: APIENTRY ! 795: FreeResource( ! 796: HANDLE hResData ! 797: ); ! 798: ! 799: LPSTR ! 800: APIENTRY ! 801: LockResource( ! 802: HANDLE hResData ! 803: ); ! 804: ! 805: #define UnlockResource(hResData) ((hResData), 0) ! 806: #define MAXINTATOM 0xC000 ! 807: #define MAKEINTATOM(i) (LPSTR)((DWORD)((WORD)(i))) ! 808: ! 809: int ! 810: APIENTRY ! 811: WinMain( ! 812: HANDLE hInstance, ! 813: HANDLE hPrevInstance, ! 814: LPSTR lpCmdLine, ! 815: int nShowCmd ! 816: ); ! 817: ! 818: BOOL ! 819: APIENTRY ! 820: FreeLibrary( ! 821: HANDLE hLibModule ! 822: ); ! 823: ! 824: FARPROC ! 825: APIENTRY ! 826: GetProcAddress( ! 827: HANDLE hModule, ! 828: LPSTR lpProcName ! 829: ); ! 830: ! 831: DWORD ! 832: APIENTRY ! 833: GetVersion( VOID ); ! 834: ! 835: HANDLE ! 836: APIENTRY ! 837: GlobalAlloc( ! 838: DWORD dwFlags, ! 839: DWORD dwBytes ! 840: ); ! 841: ! 842: HANDLE ! 843: APIENTRY ! 844: GlobalReAlloc( ! 845: HANDLE hMem, ! 846: DWORD dwBytes, ! 847: DWORD dwFlags ! 848: ); ! 849: ! 850: DWORD ! 851: APIENTRY ! 852: GlobalSize( ! 853: HANDLE hMem ! 854: ); ! 855: ! 856: DWORD ! 857: APIENTRY ! 858: GlobalFlags( ! 859: HANDLE hMem ! 860: ); ! 861: ! 862: ! 863: LPSTR ! 864: APIENTRY ! 865: GlobalLock( ! 866: HANDLE hMem ! 867: ); ! 868: ! 869: ! 870: HANDLE ! 871: APIENTRY ! 872: GlobalHandle( ! 873: LPSTR pMem ! 874: ); ! 875: ! 876: ! 877: BOOL ! 878: APIENTRY ! 879: GlobalUnlock( ! 880: HANDLE hMem ! 881: ); ! 882: ! 883: ! 884: LPVOID ! 885: APIENTRY ! 886: GlobalFree( ! 887: HANDLE hMem ! 888: ); ! 889: ! 890: ! 891: VOID ! 892: APIENTRY ! 893: GlobalMemoryStatus( ! 894: LPMEMORYSTATUS lpBuffer ! 895: ); ! 896: ! 897: HANDLE ! 898: APIENTRY ! 899: LocalAlloc( ! 900: DWORD dwFlags, ! 901: DWORD dwBytes ! 902: ); ! 903: ! 904: HANDLE ! 905: APIENTRY ! 906: LocalReAlloc( ! 907: HANDLE hMem, ! 908: DWORD dwBytes, ! 909: DWORD dwFlags ! 910: ); ! 911: ! 912: LPSTR ! 913: APIENTRY ! 914: LocalLock( ! 915: HANDLE hMem ! 916: ); ! 917: ! 918: HANDLE ! 919: APIENTRY ! 920: LocalHandle( ! 921: LPSTR pMem ! 922: ); ! 923: ! 924: BOOL ! 925: APIENTRY ! 926: LocalUnlock( ! 927: HANDLE hMem ! 928: ); ! 929: ! 930: DWORD ! 931: APIENTRY ! 932: LocalSize( ! 933: HANDLE hMem ! 934: ); ! 935: ! 936: DWORD ! 937: LocalFlags( ! 938: HANDLE hMem ! 939: ); ! 940: ! 941: HANDLE ! 942: APIENTRY ! 943: LocalFree( ! 944: HANDLE hMem ! 945: ); ! 946: ! 947: LPVOID ! 948: APIENTRY ! 949: VirtualAlloc( ! 950: LPVOID lpAddress, ! 951: DWORD dwSize, ! 952: DWORD flAllocationType, ! 953: DWORD flProtect ! 954: ); ! 955: ! 956: BOOL ! 957: APIENTRY ! 958: VirtualFree( ! 959: LPVOID lpAddress, ! 960: DWORD dwSize, ! 961: DWORD dwFreeType ! 962: ); ! 963: ! 964: BOOL ! 965: APIENTRY ! 966: VirtualProtect( ! 967: LPVOID lpAddress, ! 968: DWORD dwSize, ! 969: DWORD flNewProtect, ! 970: PDWORD lpflOldProtect ! 971: ); ! 972: ! 973: DWORD ! 974: APIENTRY ! 975: VirtualQuery( ! 976: LPVOID lpAddress, ! 977: PMEMORY_BASIC_INFORMATION lpBuffer, ! 978: DWORD dwLength ! 979: ); ! 980: ! 981: HANDLE ! 982: APIENTRY ! 983: HeapCreate( ! 984: DWORD flOptions, ! 985: DWORD dwInitialSize, ! 986: DWORD dwMaximumSize ! 987: ); ! 988: ! 989: BOOL ! 990: APIENTRY ! 991: HeapDestroy( ! 992: HANDLE hHeap ! 993: ); ! 994: ! 995: LPSTR ! 996: APIENTRY ! 997: HeapAlloc( ! 998: HANDLE hHeap, ! 999: DWORD dwBytes ! 1000: ); ! 1001: ! 1002: BOOL ! 1003: APIENTRY ! 1004: HeapFree( ! 1005: HANDLE hHeap, ! 1006: LPSTR lpMem ! 1007: ); ! 1008: ! 1009: DWORD ! 1010: APIENTRY ! 1011: HeapSize( ! 1012: HANDLE hHeap, ! 1013: LPSTR lpMem ! 1014: ); ! 1015: ! 1016: ! 1017: HANDLE ! 1018: APIENTRY ! 1019: OpenProcess( ! 1020: DWORD dwDesiredAccess, ! 1021: BOOL bInheritHandle, ! 1022: DWORD dwProcessId ! 1023: ); ! 1024: ! 1025: HANDLE ! 1026: APIENTRY ! 1027: GetCurrentProcess( ! 1028: VOID ! 1029: ); ! 1030: ! 1031: DWORD ! 1032: APIENTRY ! 1033: GetCurrentProcessId( ! 1034: VOID ! 1035: ); ! 1036: ! 1037: VOID ! 1038: APIENTRY ! 1039: ExitProcess( ! 1040: DWORD dwExitCode ! 1041: ); ! 1042: ! 1043: BOOL ! 1044: APIENTRY ! 1045: TerminateProcess( ! 1046: HANDLE hProcess, ! 1047: DWORD dwExitCode ! 1048: ); ! 1049: ! 1050: BOOL ! 1051: APIENTRY ! 1052: GetExitCodeProcess( ! 1053: HANDLE hProcess, ! 1054: LPDWORD lpExitCode ! 1055: ); ! 1056: ! 1057: ! 1058: VOID ! 1059: APIENTRY ! 1060: FatalExit( ! 1061: DWORD dwExitCode ! 1062: ); ! 1063: ! 1064: LPVOID ! 1065: APIENTRY ! 1066: GetEnvironmentStrings( ! 1067: VOID ! 1068: ); ! 1069: ! 1070: VOID ! 1071: APIENTRY ! 1072: RaiseException( ! 1073: DWORD dwExceptionCode, ! 1074: DWORD dwExceptionFlags, ! 1075: DWORD nNumberOfArguments, ! 1076: LPDWORD lpArguments ! 1077: ); ! 1078: ! 1079: EXCEPTION_DISPOSITION ! 1080: APIENTRY ! 1081: UnhandledExceptionFilter( ! 1082: struct _EXCEPTION_POINTERS *ExceptionInfo ! 1083: ); ! 1084: ! 1085: HANDLE ! 1086: APIENTRY ! 1087: CreateThread( ! 1088: LPSECURITY_ATTRIBUTES lpThreadAttributes, ! 1089: DWORD dwStackSize, ! 1090: LPTHREAD_START_ROUTINE lpStartAddress, ! 1091: LPVOID lpParameter, ! 1092: DWORD dwCreationFlags, ! 1093: LPDWORD lpThreadId ! 1094: ); ! 1095: ! 1096: HANDLE ! 1097: APIENTRY ! 1098: GetCurrentThread( ! 1099: VOID ! 1100: ); ! 1101: ! 1102: DWORD ! 1103: APIENTRY ! 1104: GetCurrentThreadId( ! 1105: VOID ! 1106: ); ! 1107: ! 1108: BOOL ! 1109: APIENTRY ! 1110: SetThreadPriority( ! 1111: HANDLE hThread, ! 1112: int nPriority ! 1113: ); ! 1114: ! 1115: int ! 1116: APIENTRY ! 1117: GetThreadPriority( ! 1118: HANDLE hThread ! 1119: ); ! 1120: ! 1121: VOID ! 1122: APIENTRY ! 1123: ExitThread( ! 1124: DWORD dwExitCode ! 1125: ); ! 1126: ! 1127: BOOL ! 1128: APIENTRY ! 1129: TerminateThread( ! 1130: HANDLE hThread, ! 1131: DWORD dwExitCode ! 1132: ); ! 1133: ! 1134: BOOL ! 1135: APIENTRY ! 1136: GetExitCodeThread( ! 1137: HANDLE hThread, ! 1138: LPDWORD lpExitCode ! 1139: ); ! 1140: ! 1141: BOOL ! 1142: APIENTRY ! 1143: GetThreadSelectorEntry( ! 1144: HANDLE hThread, ! 1145: DWORD dwSelector, ! 1146: LPLDT_ENTRY lpSelectorEntry ! 1147: ); ! 1148: ! 1149: DWORD ! 1150: APIENTRY ! 1151: GetLastError( ! 1152: VOID ! 1153: ); ! 1154: ! 1155: VOID ! 1156: APIENTRY ! 1157: SetLastError( ! 1158: DWORD dwErrCode ! 1159: ); ! 1160: ! 1161: BOOL ! 1162: APIENTRY ! 1163: GetOverlappedResult( ! 1164: HANDLE hFile, ! 1165: LPOVERLAPPED lpOverlapped, ! 1166: LPDWORD lpNumberOfBytesTransferred, ! 1167: BOOL bWait ! 1168: ); ! 1169: ! 1170: BOOL ! 1171: APIENTRY ! 1172: SetErrorMode( ! 1173: BOOL bMode ! 1174: ); ! 1175: ! 1176: ! 1177: BOOL ! 1178: APIENTRY ! 1179: ReadProcessMemory( ! 1180: HANDLE hProcess, ! 1181: LPVOID lpBaseAddress, ! 1182: LPVOID lpBuffer, ! 1183: DWORD nSize, ! 1184: LPDWORD lpNumberOfBytesRead ! 1185: ); ! 1186: ! 1187: BOOL ! 1188: APIENTRY ! 1189: WriteProcessMemory( ! 1190: HANDLE hProcess, ! 1191: LPVOID lpBaseAddress, ! 1192: LPVOID lpBuffer, ! 1193: DWORD nSize, ! 1194: LPDWORD lpNumberOfBytesWritten ! 1195: ); ! 1196: ! 1197: BOOL ! 1198: APIENTRY ! 1199: GetThreadContext( ! 1200: HANDLE hThread, ! 1201: LPCONTEXT lpContext ! 1202: ); ! 1203: ! 1204: BOOL ! 1205: APIENTRY ! 1206: SetThreadContext( ! 1207: HANDLE hThread, ! 1208: LPCONTEXT lpContext ! 1209: ); ! 1210: ! 1211: DWORD ! 1212: APIENTRY ! 1213: SuspendThread( ! 1214: HANDLE hThread ! 1215: ); ! 1216: ! 1217: DWORD ! 1218: APIENTRY ! 1219: ResumeThread( ! 1220: IN HANDLE hThread ! 1221: ); ! 1222: ! 1223: VOID ! 1224: APIENTRY ! 1225: DebugBreak( ! 1226: VOID ! 1227: ); ! 1228: ! 1229: BOOL ! 1230: APIENTRY ! 1231: WaitForDebugEvent( ! 1232: LPDEBUG_EVENT lpDebugEvent, ! 1233: DWORD dwMilliseconds ! 1234: ); ! 1235: ! 1236: BOOL ! 1237: APIENTRY ! 1238: ContinueDebugEvent( ! 1239: DWORD dwProcessId, ! 1240: DWORD dwThreadId, ! 1241: DWORD dwContinueStatus ! 1242: ); ! 1243: ! 1244: BOOL ! 1245: APIENTRY ! 1246: DebugActiveProcess( ! 1247: DWORD dwProcessId ! 1248: ); ! 1249: ! 1250: VOID ! 1251: APIENTRY ! 1252: InitializeCriticalSection( ! 1253: LPCRITICAL_SECTION lpCriticalSection ! 1254: ); ! 1255: ! 1256: VOID ! 1257: APIENTRY ! 1258: EnterCriticalSection( ! 1259: LPCRITICAL_SECTION lpCriticalSection ! 1260: ); ! 1261: ! 1262: VOID ! 1263: APIENTRY ! 1264: LeaveCriticalSection( ! 1265: LPCRITICAL_SECTION lpCriticalSection ! 1266: ); ! 1267: ! 1268: VOID ! 1269: APIENTRY ! 1270: DeleteCriticalSection( ! 1271: LPCRITICAL_SECTION lpCriticalSection ! 1272: ); ! 1273: ! 1274: BOOL ! 1275: APIENTRY ! 1276: SetEvent( ! 1277: HANDLE hEvent ! 1278: ); ! 1279: ! 1280: BOOL ! 1281: APIENTRY ! 1282: ResetEvent( ! 1283: HANDLE hEvent ! 1284: ); ! 1285: ! 1286: BOOL ! 1287: APIENTRY ! 1288: PulseEvent( ! 1289: HANDLE hEvent ! 1290: ); ! 1291: ! 1292: BOOL ! 1293: APIENTRY ! 1294: ReleaseSemaphore( ! 1295: HANDLE hSemaphore, ! 1296: LONG lReleaseCount, ! 1297: LPLONG lpPreviousCount ! 1298: ); ! 1299: ! 1300: BOOL ! 1301: APIENTRY ! 1302: ReleaseMutex( ! 1303: HANDLE hMutex ! 1304: ); ! 1305: ! 1306: DWORD ! 1307: APIENTRY ! 1308: WaitForSingleObject( ! 1309: HANDLE hHandle, ! 1310: DWORD dwMilliseconds ! 1311: ); ! 1312: ! 1313: DWORD ! 1314: APIENTRY ! 1315: WaitForMultipleObjects( ! 1316: DWORD nCount, ! 1317: LPHANDLE lpHandles, ! 1318: BOOL bWaitAll, ! 1319: DWORD dwMilliseconds ! 1320: ); ! 1321: ! 1322: VOID ! 1323: APIENTRY ! 1324: Sleep( ! 1325: DWORD dwMilliseconds ! 1326: ); ! 1327: ! 1328: HANDLE ! 1329: APIENTRY ! 1330: LoadResource( ! 1331: HANDLE hModule, ! 1332: HANDLE hResInfo ! 1333: ); ! 1334: ! 1335: DWORD ! 1336: APIENTRY ! 1337: SizeofResource( ! 1338: HANDLE hModule, ! 1339: HANDLE hResInfo ! 1340: ); ! 1341: ! 1342: ATOM ! 1343: APIENTRY ! 1344: GlobalDeleteAtom( ! 1345: ATOM nAtom ! 1346: ); ! 1347: ! 1348: BOOL ! 1349: APIENTRY ! 1350: InitAtomTable( ! 1351: DWORD nSize ! 1352: ); ! 1353: ! 1354: ATOM ! 1355: APIENTRY ! 1356: DeleteAtom( ! 1357: ATOM nAtom ! 1358: ); ! 1359: ! 1360: DWORD ! 1361: APIENTRY ! 1362: SetHandleCount( ! 1363: DWORD dwNumber ! 1364: ); ! 1365: ! 1366: DWORD ! 1367: APIENTRY ! 1368: GetLogicalDrives( ! 1369: VOID ! 1370: ); ! 1371: ! 1372: BOOL ! 1373: APIENTRY ! 1374: LockFile( ! 1375: HANDLE hFile, ! 1376: DWORD dwFileOffsetHigh, ! 1377: DWORD dwFileOffsetLow, ! 1378: DWORD nNumberOfBytesToLock ! 1379: ); ! 1380: ! 1381: BOOL ! 1382: APIENTRY ! 1383: UnlockFile( ! 1384: HANDLE hFile, ! 1385: DWORD dwFileOffsetHigh, ! 1386: DWORD dwFileOffsetLow, ! 1387: DWORD nNumberOfBytesToUnlock ! 1388: ); ! 1389: ! 1390: DWORD ! 1391: APIENTRY ! 1392: GetFileType( ! 1393: HANDLE hFile ! 1394: ); ! 1395: ! 1396: DWORD ! 1397: APIENTRY ! 1398: GetFileSize( ! 1399: HANDLE hFile, ! 1400: LPDWORD lpFileSizeHigh ! 1401: ); ! 1402: ! 1403: HANDLE ! 1404: APIENTRY ! 1405: GetStdHandle( ! 1406: DWORD nStdHandle ! 1407: ); ! 1408: ! 1409: BOOL ! 1410: APIENTRY ! 1411: SetStdHandle( ! 1412: DWORD nStdHandle, ! 1413: HANDLE hHandle ! 1414: ); ! 1415: ! 1416: BOOL ! 1417: APIENTRY ! 1418: WriteFile( ! 1419: HANDLE hFile, ! 1420: LPVOID lpBuffer, ! 1421: DWORD nNumberOfBytesToWrite, ! 1422: LPDWORD lpNumberOfBytesWritten, ! 1423: LPOVERLAPPED lpOverlapped ! 1424: ); ! 1425: ! 1426: BOOL ! 1427: APIENTRY ! 1428: ReadFile( ! 1429: HANDLE hFile, ! 1430: LPVOID lpBuffer, ! 1431: DWORD nNumberOfBytesToRead, ! 1432: LPDWORD lpNumberOfBytesRead, ! 1433: LPOVERLAPPED lpOverlapped ! 1434: ); ! 1435: ! 1436: BOOL ! 1437: APIENTRY ! 1438: FlushFileBuffers( ! 1439: HANDLE hFile ! 1440: ); ! 1441: ! 1442: BOOL ! 1443: APIENTRY ! 1444: SetEndOfFile( ! 1445: HANDLE hFile ! 1446: ); ! 1447: ! 1448: DWORD ! 1449: APIENTRY ! 1450: SetFilePointer( ! 1451: HANDLE hFile, ! 1452: LONG lDistanceToMove, ! 1453: PLONG lpDistanceToMoveHigh, ! 1454: DWORD dwMoveMethod ! 1455: ); ! 1456: ! 1457: BOOL ! 1458: APIENTRY ! 1459: FindClose( ! 1460: HANDLE hFindFile ! 1461: ); ! 1462: ! 1463: BOOL ! 1464: APIENTRY ! 1465: GetFileTime( ! 1466: HANDLE hFile, ! 1467: LPFILETIME lpCreationTime, ! 1468: LPFILETIME lpLastAccessTime, ! 1469: LPFILETIME lpLastWriteTime ! 1470: ); ! 1471: ! 1472: BOOL ! 1473: APIENTRY ! 1474: SetFileTime( ! 1475: HANDLE hFile, ! 1476: LPFILETIME lpCreationTime, ! 1477: LPFILETIME lpLastAccessTime, ! 1478: LPFILETIME lpLastWriteTime ! 1479: ); ! 1480: ! 1481: BOOL ! 1482: APIENTRY ! 1483: CloseHandle( ! 1484: HANDLE hObject ! 1485: ); ! 1486: ! 1487: BOOL ! 1488: APIENTRY ! 1489: DuplicateHandle( ! 1490: HANDLE hSourceProcessHandle, ! 1491: HANDLE hSourceHandle, ! 1492: HANDLE hTargetProcessHandle, ! 1493: LPHANDLE lpTargetHandle, ! 1494: DWORD dwDesiredAccess, ! 1495: BOOL bInheritHandle, ! 1496: DWORD dwOptions ! 1497: ); ! 1498: ! 1499: DWORD ! 1500: APIENTRY ! 1501: LoadModule( ! 1502: LPSTR lpModuleName, ! 1503: LPVOID lpParameterBlock ! 1504: ); ! 1505: ! 1506: DWORD ! 1507: APIENTRY ! 1508: WinExec( ! 1509: LPSTR lpCmdLine, ! 1510: WORD nCmdShow ! 1511: ); ! 1512: ! 1513: BOOL ! 1514: APIENTRY ! 1515: BuildCommDCB( ! 1516: LPSTR lpDef, ! 1517: LPDCB lpDCB ! 1518: ); ! 1519: ! 1520: BOOL ! 1521: APIENTRY ! 1522: ClearCommBreak( ! 1523: HANDLE hFile ! 1524: ); ! 1525: ! 1526: BOOL ! 1527: APIENTRY ! 1528: ClearCommError( ! 1529: HANDLE hFile, ! 1530: LPDWORD lpErrors, ! 1531: LPCOMSTAT lpStat ! 1532: ); ! 1533: ! 1534: BOOL ! 1535: APIENTRY ! 1536: SetupComm( ! 1537: HANDLE hFile, ! 1538: DWORD dwInQueue, ! 1539: DWORD dwOutQueue ! 1540: ); ! 1541: ! 1542: BOOL ! 1543: APIENTRY ! 1544: EnableCommNotification( ! 1545: HANDLE hFile, ! 1546: HANDLE hWnd, ! 1547: DWORD dwInTrigger, ! 1548: DWORD dwOutTrigger ! 1549: ); ! 1550: ! 1551: BOOL ! 1552: APIENTRY ! 1553: EscapeCommFunction( ! 1554: HANDLE hFile, ! 1555: DWORD dwFunc ! 1556: ); ! 1557: ! 1558: BOOL ! 1559: APIENTRY ! 1560: ExtendedProviderFunction( ! 1561: HANDLE hFile, ! 1562: WORD wCatagory, ! 1563: WORD wFunction, ! 1564: LPVOID lpParam, ! 1565: LPVOID lpData, ! 1566: DWORD dwParamLength, ! 1567: LPDWORD lpDataLength ! 1568: ); ! 1569: ! 1570: BOOL ! 1571: APIENTRY ! 1572: GetCommConfig( ! 1573: HANDLE hFile, ! 1574: LPVOID lpCOMMCONFIG, ! 1575: DWORD dwSize ! 1576: ); ! 1577: ! 1578: BOOL ! 1579: APIENTRY ! 1580: GetCommMask( ! 1581: HANDLE hFile, ! 1582: LPDWORD lpEvtMask ! 1583: ); ! 1584: ! 1585: BOOL ! 1586: APIENTRY ! 1587: GetCommModemStatus( ! 1588: HANDLE hFile, ! 1589: LPDWORD lpModemStat ! 1590: ); ! 1591: ! 1592: BOOL ! 1593: APIENTRY ! 1594: GetCommState( ! 1595: HANDLE hFile, ! 1596: LPDCB lpDCB ! 1597: ); ! 1598: ! 1599: BOOL ! 1600: APIENTRY ! 1601: GetCommTimeouts( ! 1602: HANDLE hFile, ! 1603: LPCOMMTIMEOUTS lpCommTimeouts ! 1604: ); ! 1605: ! 1606: BOOL ! 1607: APIENTRY ! 1608: PurgeComm( ! 1609: HANDLE hFile, ! 1610: DWORD dwFlags ! 1611: ); ! 1612: ! 1613: BOOL ! 1614: APIENTRY ! 1615: SetCommBreak( ! 1616: HANDLE hFile ! 1617: ); ! 1618: ! 1619: BOOL ! 1620: APIENTRY ! 1621: SetCommConfig( ! 1622: HANDLE hFile, ! 1623: LPVOID lpCOMMCONFIG, ! 1624: DWORD dwSize ! 1625: ); ! 1626: ! 1627: BOOL ! 1628: APIENTRY ! 1629: SetCommMask( ! 1630: HANDLE hFile, ! 1631: DWORD dwEvtMask ! 1632: ); ! 1633: ! 1634: BOOL ! 1635: APIENTRY ! 1636: SetCommState( ! 1637: HANDLE hFile, ! 1638: LPDCB lpDCB ! 1639: ); ! 1640: ! 1641: BOOL ! 1642: APIENTRY ! 1643: SetCommTimeouts( ! 1644: HANDLE hFile, ! 1645: LPCOMMTIMEOUTS lpCommTimeouts ! 1646: ); ! 1647: ! 1648: BOOL ! 1649: APIENTRY ! 1650: TransmitCommChar( ! 1651: HANDLE hFile, ! 1652: char cChar ! 1653: ); ! 1654: ! 1655: BOOL ! 1656: APIENTRY ! 1657: WaitCommEvent( ! 1658: HANDLE hFile, ! 1659: LPDWORD lpEvtMask, ! 1660: HANDLE hEvent ! 1661: ); ! 1662: ! 1663: BOOL ! 1664: APIENTRY ! 1665: Beep( ! 1666: DWORD dwFreq, ! 1667: DWORD dwDuration ! 1668: ); ! 1669: ! 1670: VOID ! 1671: APIENTRY ! 1672: OpenSound( ! 1673: VOID ! 1674: ); ! 1675: ! 1676: VOID ! 1677: APIENTRY ! 1678: CloseSound( ! 1679: VOID ! 1680: ); ! 1681: ! 1682: VOID ! 1683: APIENTRY ! 1684: StartSound( ! 1685: VOID ! 1686: ); ! 1687: ! 1688: VOID ! 1689: APIENTRY ! 1690: StopSound( ! 1691: VOID ! 1692: ); ! 1693: ! 1694: DWORD ! 1695: APIENTRY ! 1696: WaitSoundState( ! 1697: DWORD nState ! 1698: ); ! 1699: ! 1700: DWORD ! 1701: APIENTRY ! 1702: SyncAllVoices( ! 1703: VOID ! 1704: ); ! 1705: ! 1706: DWORD ! 1707: APIENTRY ! 1708: CountVoiceNotes( ! 1709: DWORD nVoice ! 1710: ); ! 1711: ! 1712: LPDWORD ! 1713: APIENTRY ! 1714: GetThresholdEvent( ! 1715: VOID ! 1716: ); ! 1717: ! 1718: DWORD ! 1719: APIENTRY ! 1720: GetThresholdStatus( ! 1721: VOID ! 1722: ); ! 1723: ! 1724: DWORD ! 1725: APIENTRY ! 1726: SetSoundNoise( ! 1727: DWORD nSource, ! 1728: DWORD nDuration ! 1729: ); ! 1730: ! 1731: DWORD ! 1732: APIENTRY ! 1733: SetVoiceAccent( ! 1734: DWORD nVoice, ! 1735: DWORD nTempo, ! 1736: DWORD nVolume, ! 1737: DWORD nMode, ! 1738: DWORD nPitch ! 1739: ); ! 1740: ! 1741: DWORD ! 1742: APIENTRY ! 1743: SetVoiceEnvelope( ! 1744: DWORD nVoice, ! 1745: DWORD nShape, ! 1746: DWORD nRepeat ! 1747: ); ! 1748: ! 1749: DWORD ! 1750: APIENTRY ! 1751: SetVoiceNote( ! 1752: DWORD nVoice, ! 1753: DWORD nValue, ! 1754: DWORD nLength, ! 1755: DWORD nCdots ! 1756: ); ! 1757: ! 1758: DWORD ! 1759: APIENTRY ! 1760: SetVoiceQueueSize( ! 1761: DWORD nVoice, ! 1762: DWORD nBytes ! 1763: ); ! 1764: ! 1765: DWORD ! 1766: APIENTRY ! 1767: SetVoiceSound( ! 1768: DWORD nVoice, ! 1769: LONG lFrequency, ! 1770: DWORD nDuration ! 1771: ); ! 1772: ! 1773: DWORD ! 1774: APIENTRY ! 1775: SetVoiceThreshold( ! 1776: DWORD nVoice, ! 1777: DWORD nNotes ! 1778: ); ! 1779: ! 1780: int ! 1781: APIENTRY ! 1782: MulDiv( ! 1783: int nNumber, ! 1784: int nNumerator, ! 1785: int nDenominator ! 1786: ); ! 1787: ! 1788: VOID ! 1789: APIENTRY ! 1790: GetSystemTime( ! 1791: LPSYSTEMTIME lpSystemTime ! 1792: ); ! 1793: ! 1794: BOOL ! 1795: APIENTRY ! 1796: SetSystemTime( ! 1797: LPSYSTEMTIME lpSystemTime ! 1798: ); ! 1799: ! 1800: VOID ! 1801: APIENTRY ! 1802: GetSystemInfo( ! 1803: LPSYSTEM_INFO lpSystemInfo ! 1804: ); ! 1805: ! 1806: ! 1807: // ! 1808: // Routines to convert back and forth between system time and file time ! 1809: // ! 1810: ! 1811: BOOL ! 1812: APIENTRY ! 1813: SystemTimeToFileTime( ! 1814: LPSYSTEMTIME lpSystemTime, ! 1815: LPFILETIME lpFileTime ! 1816: ); ! 1817: ! 1818: BOOL ! 1819: APIENTRY ! 1820: FileTimeToSystemTime( ! 1821: LPFILETIME lpFileTime, ! 1822: LPSYSTEMTIME lpSystemTime ! 1823: ); ! 1824: ! 1825: LONG ! 1826: APIENTRY ! 1827: CompareFileTime( ! 1828: LPFILETIME lpFileTime1, ! 1829: LPFILETIME lpFileTime2 ! 1830: ); ! 1831: ! 1832: BOOL ! 1833: APIENTRY ! 1834: FileTimeToDosDateTime( ! 1835: LPFILETIME lpFileTime, ! 1836: LPWORD lpFatDate, ! 1837: LPWORD lpFatTime ! 1838: ); ! 1839: ! 1840: BOOL ! 1841: APIENTRY ! 1842: DosDateTimeToFileTime( ! 1843: WORD wFatDate, ! 1844: WORD wFatTime, ! 1845: LPFILETIME lpFileTime ! 1846: ); ! 1847: ! 1848: DWORD ! 1849: APIENTRY ! 1850: GetTickCount( ! 1851: VOID ! 1852: ); ! 1853: ! 1854: DWORD ! 1855: APIENTRY ! 1856: FormatMessage( ! 1857: DWORD dwFlags, ! 1858: LPVOID lpSource, ! 1859: DWORD dwMessageId, ! 1860: DWORD dwLanguageId, ! 1861: LPSTR lpBuffer, ! 1862: DWORD nSize, ! 1863: LPVOID lpArguments ! 1864: ); ! 1865: ! 1866: #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100 ! 1867: #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200 ! 1868: #define FORMAT_MESSAGE_FROM_STRING 0x00000400 ! 1869: #define FORMAT_MESSAGE_FROM_HMODULE 0x00000800 ! 1870: #define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000 ! 1871: #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF ! 1872: ! 1873: ! 1874: BOOL ! 1875: APIENTRY ! 1876: CreatePipe( ! 1877: PHANDLE hReadPipe, ! 1878: PHANDLE hWritePipe, ! 1879: LPSECURITY_ATTRIBUTES lpPipeAttributes, ! 1880: DWORD nSize ! 1881: ); ! 1882: ! 1883: BOOL ! 1884: APIENTRY ! 1885: ConnectNamedPipe( ! 1886: HANDLE hNamedPipe, ! 1887: LPOVERLAPPED lpOverlapped ! 1888: ); ! 1889: ! 1890: BOOL ! 1891: APIENTRY ! 1892: DisconnectNamedPipe( ! 1893: HANDLE hNamedPipe ! 1894: ); ! 1895: ! 1896: BOOL ! 1897: APIENTRY ! 1898: SetNamedPipeHandleState( ! 1899: HANDLE hNamedPipe, ! 1900: LPDWORD lpMode, ! 1901: LPDWORD lpMaxCollectionCount, ! 1902: LPDWORD lpCollectDataTimeout ! 1903: ); ! 1904: ! 1905: BOOL ! 1906: APIENTRY ! 1907: GetNamedPipeInfo( ! 1908: HANDLE hNamedPipe, ! 1909: LPDWORD lpFlags, ! 1910: LPDWORD lpOutBufferSize, ! 1911: LPDWORD lpInBufferSize, ! 1912: LPDWORD lpMaxInstances ! 1913: ); ! 1914: ! 1915: BOOL ! 1916: APIENTRY ! 1917: PeekNamedPipe( ! 1918: HANDLE hNamedPipe, ! 1919: LPVOID lpBuffer, ! 1920: DWORD nBufferSize, ! 1921: LPDWORD lpBytesRead, ! 1922: LPDWORD lpTotalBytesAvail, ! 1923: LPDWORD lpBytesLeftThisMessage ! 1924: ); ! 1925: ! 1926: BOOL ! 1927: APIENTRY ! 1928: TransactNamedPipe( ! 1929: HANDLE hNamedPipe, ! 1930: LPVOID lpInBuffer, ! 1931: DWORD nInBufferSize, ! 1932: LPVOID lpOutBuffer, ! 1933: DWORD nOutBufferSize, ! 1934: LPDWORD lpBytesRead, ! 1935: LPOVERLAPPED lpOverlapped ! 1936: ); ! 1937: ! 1938: HANDLE ! 1939: APIENTRY ! 1940: CreateMailslotA( ! 1941: IN LPSTR lpName, ! 1942: IN DWORD nMaxMessageSize, ! 1943: IN DWORD nMailslotSize, ! 1944: IN DWORD lReadTimeout, ! 1945: IN LPSECURITY_ATTRIBUTES lpSecurityAttributes OPTIONAL ! 1946: ); ! 1947: HANDLE ! 1948: APIENTRY ! 1949: CreateMailslotW( ! 1950: IN LPWSTR lpName, ! 1951: IN DWORD nMaxMessageSize, ! 1952: IN DWORD nMailslotSize, ! 1953: IN DWORD lReadTimeout, ! 1954: IN LPSECURITY_ATTRIBUTES lpSecurityAttributes OPTIONAL ! 1955: ); ! 1956: #ifdef UNICODE ! 1957: #define CreateMailslot CreateMailslotW ! 1958: #else ! 1959: #define CreateMailslot CreateMailslotA ! 1960: #endif // !UNICODE ! 1961: ! 1962: BOOL ! 1963: APIENTRY ! 1964: GetMailslotInfo( ! 1965: IN HANDLE hMailslot, ! 1966: OUT LPDWORD lpMaxMessageSize OPTIONAL, ! 1967: OUT LPDWORD lpMailslotSize OPTIONAL, ! 1968: OUT LPDWORD lpNextSize OPTIONAL, ! 1969: OUT LPDWORD lpMessageCount OPTIONAL, ! 1970: OUT LPDWORD lpReadTimeout OPTIONAL ! 1971: ); ! 1972: ! 1973: BOOL ! 1974: APIENTRY ! 1975: SetMailslotInfo( ! 1976: IN HANDLE hMailslot, ! 1977: IN DWORD lReadTimeout ! 1978: ); ! 1979: ! 1980: LPVOID ! 1981: APIENTRY ! 1982: MapViewOfFile( ! 1983: HANDLE hFileMappingObject, ! 1984: DWORD dwDesiredAccess, ! 1985: DWORD dwFileOffsetHigh, ! 1986: DWORD dwFileOffsetLow, ! 1987: DWORD dwNumberOfBytesToMap ! 1988: ); ! 1989: ! 1990: BOOL ! 1991: APIENTRY ! 1992: FlushViewOfFile( ! 1993: LPVOID lpBaseAddress, ! 1994: DWORD dwNumberOfBytesToFlush ! 1995: ); ! 1996: ! 1997: BOOL ! 1998: APIENTRY ! 1999: UnmapViewOfFile( ! 2000: LPVOID lpBaseAddress ! 2001: ); ! 2002: ! 2003: // ! 2004: // _l Compat Functions ! 2005: // ! 2006: ! 2007: int ! 2008: APIENTRY ! 2009: lstrcmp( ! 2010: LPSTR lpString1, ! 2011: LPSTR lpString2 ! 2012: ); ! 2013: ! 2014: int ! 2015: APIENTRY ! 2016: lstrcmpi( ! 2017: LPSTR lpString1, ! 2018: LPSTR lpString2 ! 2019: ); ! 2020: ! 2021: LPSTR ! 2022: APIENTRY ! 2023: lstrcpy( ! 2024: LPSTR lpString1, ! 2025: LPSTR lpString2 ! 2026: ); ! 2027: ! 2028: LPSTR ! 2029: APIENTRY ! 2030: lstrcat( ! 2031: LPSTR lpString1, ! 2032: LPSTR lpString2 ! 2033: ); ! 2034: ! 2035: int ! 2036: APIENTRY ! 2037: lstrlen( ! 2038: LPSTR lpString ! 2039: ); ! 2040: ! 2041: int ! 2042: APIENTRY ! 2043: OpenFile( ! 2044: LPSTR lpFileName, ! 2045: LPOFSTRUCT lpReOpenBuff, ! 2046: WORD wStyle ! 2047: ); ! 2048: ! 2049: int ! 2050: APIENTRY ! 2051: OpenSystemFile( ! 2052: LPSTR lpFileName, ! 2053: LPOFSTRUCT lpReOpenBuff, ! 2054: WORD wStyle ! 2055: ); ! 2056: ! 2057: int ! 2058: APIENTRY ! 2059: _lopen( ! 2060: LPSTR lpPathName, ! 2061: int iReadWrite ! 2062: ); ! 2063: ! 2064: int ! 2065: APIENTRY ! 2066: _lcreat( ! 2067: LPSTR lpPathName, ! 2068: WORD iAttribute ! 2069: ); ! 2070: ! 2071: DWORD ! 2072: APIENTRY ! 2073: _lread( ! 2074: int hFile, ! 2075: LPSTR lpBuffer, ! 2076: int nBytes ! 2077: ); ! 2078: ! 2079: DWORD ! 2080: APIENTRY ! 2081: _lwrite( ! 2082: int hFile, ! 2083: LPSTR lpBuffer, ! 2084: int nBytes ! 2085: ); ! 2086: ! 2087: int ! 2088: APIENTRY ! 2089: _lclose( ! 2090: int hFile ! 2091: ); ! 2092: ! 2093: int ! 2094: APIENTRY ! 2095: _llseek( ! 2096: int hFile, ! 2097: int lOffset, ! 2098: int iOrigin ! 2099: ); ! 2100: ! 2101: DWORD ! 2102: APIENTRY ! 2103: TlsAlloc( ! 2104: VOID ! 2105: ); ! 2106: ! 2107: LPVOID ! 2108: APIENTRY ! 2109: TlsGetValue( ! 2110: DWORD dwTlsIndex ! 2111: ); ! 2112: ! 2113: BOOL ! 2114: APIENTRY ! 2115: TlsSetValue( ! 2116: DWORD dwTlsIndex, ! 2117: LPVOID lpTlsValue ! 2118: ); ! 2119: ! 2120: BOOL ! 2121: APIENTRY ! 2122: TlsFree( ! 2123: DWORD dwTlsIndex ! 2124: ); ! 2125: ! 2126: // ! 2127: // Dual Mode API below this line. Dual Mode Structures also included. ! 2128: // ! 2129: ! 2130: #define STARTF_USESHOWWINDOW 1 ! 2131: #define STARTF_USESIZE 2 ! 2132: #define STARTF_USEPOSITION 4 ! 2133: #define STARTF_USECOUNTCHARS 8 ! 2134: #define STARTF_USEFILLATTRIBUTE 16 ! 2135: ! 2136: typedef struct _STARTUPINFOA { ! 2137: DWORD cb; ! 2138: LPSTR lpReserved; ! 2139: LPSTR lpDesktop; ! 2140: LPSTR lpTitle; ! 2141: DWORD dwX; ! 2142: DWORD dwY; ! 2143: DWORD dwXSize; ! 2144: DWORD dwYSize; ! 2145: DWORD dwXCountChars; ! 2146: DWORD dwYCountChars; ! 2147: DWORD dwFillAttribute; ! 2148: DWORD dwFlags; ! 2149: WORD wShowWindow; ! 2150: WORD cbReserved2; ! 2151: LPBYTE lpReserved2; ! 2152: } STARTUPINFOA, *LPSTARTUPINFOA; ! 2153: typedef struct _STARTUPINFOW { ! 2154: DWORD cb; ! 2155: LPWSTR lpReserved; ! 2156: LPWSTR lpDesktop; ! 2157: LPWSTR lpTitle; ! 2158: DWORD dwX; ! 2159: DWORD dwY; ! 2160: DWORD dwXSize; ! 2161: DWORD dwYSize; ! 2162: DWORD dwXCountChars; ! 2163: DWORD dwYCountChars; ! 2164: DWORD dwFillAttribute; ! 2165: DWORD dwFlags; ! 2166: WORD wShowWindow; ! 2167: WORD cbReserved2; ! 2168: LPBYTE lpReserved2; ! 2169: } STARTUPINFOW, *LPSTARTUPINFOW; ! 2170: #ifdef UNICODE ! 2171: #define STARTUPINFO STARTUPINFOW ! 2172: #define LPSTARTUPINFO LPSTARTUPINFOW ! 2173: #else ! 2174: #define STARTUPINFO STARTUPINFOA ! 2175: #define LPSTARTUPINFO LPSTARTUPINFOA ! 2176: #endif // UNICODE ! 2177: ! 2178: typedef struct _WIN32_FIND_DATAA { ! 2179: DWORD dwFileAttributes; ! 2180: FILETIME ftCreationTime; ! 2181: FILETIME ftLastAccessTime; ! 2182: FILETIME ftLastWriteTime; ! 2183: DWORD nFileSizeHigh; ! 2184: DWORD nFileSizeLow; ! 2185: CHAR cFileName[ MAX_PATH ]; ! 2186: } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; ! 2187: typedef struct _WIN32_FIND_DATAW { ! 2188: DWORD dwFileAttributes; ! 2189: FILETIME ftCreationTime; ! 2190: FILETIME ftLastAccessTime; ! 2191: FILETIME ftLastWriteTime; ! 2192: DWORD nFileSizeHigh; ! 2193: DWORD nFileSizeLow; ! 2194: WCHAR cFileName[ MAX_PATH ]; ! 2195: } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW; ! 2196: #ifdef UNICODE ! 2197: #define WIN32_FIND_DATA WIN32_FIND_DATAW ! 2198: #define PWIN32_FIND_DATA PWIN32_FIND_DATAW ! 2199: #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAW ! 2200: #else ! 2201: #define WIN32_FIND_DATA WIN32_FIND_DATAA ! 2202: #define PWIN32_FIND_DATA PWIN32_FIND_DATAA ! 2203: #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAA ! 2204: #endif // UNICODE ! 2205: ! 2206: HANDLE ! 2207: APIENTRY ! 2208: CreateMutexA( ! 2209: LPSECURITY_ATTRIBUTES lpMutexAttributes, ! 2210: BOOL bInitialOwner, ! 2211: LPSTR lpName ! 2212: ); ! 2213: HANDLE ! 2214: APIENTRY ! 2215: CreateMutexW( ! 2216: LPSECURITY_ATTRIBUTES lpMutexAttributes, ! 2217: BOOL bInitialOwner, ! 2218: LPWSTR lpName ! 2219: ); ! 2220: #ifdef UNICODE ! 2221: #define CreateMutex CreateMutexW ! 2222: #else ! 2223: #define CreateMutex CreateMutexA ! 2224: #endif // !UNICODE ! 2225: ! 2226: HANDLE ! 2227: APIENTRY ! 2228: OpenMutexA( ! 2229: DWORD dwDesiredAccess, ! 2230: BOOL bInheritHandle, ! 2231: LPSTR lpName ! 2232: ); ! 2233: HANDLE ! 2234: APIENTRY ! 2235: OpenMutexW( ! 2236: DWORD dwDesiredAccess, ! 2237: BOOL bInheritHandle, ! 2238: LPWSTR lpName ! 2239: ); ! 2240: #ifdef UNICODE ! 2241: #define OpenMutex OpenMutexW ! 2242: #else ! 2243: #define OpenMutex OpenMutexA ! 2244: #endif // !UNICODE ! 2245: ! 2246: HANDLE ! 2247: APIENTRY ! 2248: CreateEventA( ! 2249: LPSECURITY_ATTRIBUTES lpEventAttributes, ! 2250: BOOL bManualReset, ! 2251: BOOL bInitialState, ! 2252: LPSTR lpName ! 2253: ); ! 2254: HANDLE ! 2255: APIENTRY ! 2256: CreateEventW( ! 2257: LPSECURITY_ATTRIBUTES lpEventAttributes, ! 2258: BOOL bManualReset, ! 2259: BOOL bInitialState, ! 2260: LPWSTR lpName ! 2261: ); ! 2262: #ifdef UNICODE ! 2263: #define CreateEvent CreateEventW ! 2264: #else ! 2265: #define CreateEvent CreateEventA ! 2266: #endif // !UNICODE ! 2267: ! 2268: HANDLE ! 2269: APIENTRY ! 2270: OpenEventA( ! 2271: DWORD dwDesiredAccess, ! 2272: BOOL bInheritHandle, ! 2273: LPSTR lpName ! 2274: ); ! 2275: HANDLE ! 2276: APIENTRY ! 2277: OpenEventW( ! 2278: DWORD dwDesiredAccess, ! 2279: BOOL bInheritHandle, ! 2280: LPWSTR lpName ! 2281: ); ! 2282: #ifdef UNICODE ! 2283: #define OpenEvent OpenEventW ! 2284: #else ! 2285: #define OpenEvent OpenEventA ! 2286: #endif // !UNICODE ! 2287: ! 2288: HANDLE ! 2289: APIENTRY ! 2290: CreateSemaphoreA( ! 2291: LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, ! 2292: LONG lInitialCount, ! 2293: LONG lMaximumCount, ! 2294: LPSTR lpName ! 2295: ); ! 2296: HANDLE ! 2297: APIENTRY ! 2298: CreateSemaphoreW( ! 2299: LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, ! 2300: LONG lInitialCount, ! 2301: LONG lMaximumCount, ! 2302: LPWSTR lpName ! 2303: ); ! 2304: #ifdef UNICODE ! 2305: #define CreateSemaphore CreateSemaphoreW ! 2306: #else ! 2307: #define CreateSemaphore CreateSemaphoreA ! 2308: #endif // !UNICODE ! 2309: ! 2310: HANDLE ! 2311: APIENTRY ! 2312: OpenSemaphoreA( ! 2313: DWORD dwDesiredAccess, ! 2314: BOOL bInheritHandle, ! 2315: LPSTR lpName ! 2316: ); ! 2317: HANDLE ! 2318: APIENTRY ! 2319: OpenSemaphoreW( ! 2320: DWORD dwDesiredAccess, ! 2321: BOOL bInheritHandle, ! 2322: LPWSTR lpName ! 2323: ); ! 2324: #ifdef UNICODE ! 2325: #define OpenSemaphore OpenSemaphoreW ! 2326: #else ! 2327: #define OpenSemaphore OpenSemaphoreA ! 2328: #endif // !UNICODE ! 2329: ! 2330: HANDLE ! 2331: APIENTRY ! 2332: CreateFileMappingA( ! 2333: HANDLE hFile, ! 2334: LPSECURITY_ATTRIBUTES lpFileMappingAttributes, ! 2335: DWORD flProtect, ! 2336: DWORD dwMaximumSizeHigh, ! 2337: DWORD dwMaximumSizeLow, ! 2338: LPSTR lpName ! 2339: ); ! 2340: HANDLE ! 2341: APIENTRY ! 2342: CreateFileMappingW( ! 2343: HANDLE hFile, ! 2344: LPSECURITY_ATTRIBUTES lpFileMappingAttributes, ! 2345: DWORD flProtect, ! 2346: DWORD dwMaximumSizeHigh, ! 2347: DWORD dwMaximumSizeLow, ! 2348: LPWSTR lpName ! 2349: ); ! 2350: #ifdef UNICODE ! 2351: #define CreateFileMapping CreateFileMappingW ! 2352: #else ! 2353: #define CreateFileMapping CreateFileMappingA ! 2354: #endif // !UNICODE ! 2355: ! 2356: HANDLE ! 2357: APIENTRY ! 2358: OpenFileMappingA( ! 2359: DWORD dwDesiredAccess, ! 2360: BOOL bInheritHandle, ! 2361: LPSTR lpName ! 2362: ); ! 2363: HANDLE ! 2364: APIENTRY ! 2365: OpenFileMappingW( ! 2366: DWORD dwDesiredAccess, ! 2367: BOOL bInheritHandle, ! 2368: LPWSTR lpName ! 2369: ); ! 2370: #ifdef UNICODE ! 2371: #define OpenFileMapping OpenFileMappingW ! 2372: #else ! 2373: #define OpenFileMapping OpenFileMappingA ! 2374: #endif // !UNICODE ! 2375: ! 2376: DWORD ! 2377: APIENTRY ! 2378: GetLogicalDriveStringsA( ! 2379: DWORD nBufferLength, ! 2380: LPSTR lpBuffer ! 2381: ); ! 2382: DWORD ! 2383: APIENTRY ! 2384: GetLogicalDriveStringsW( ! 2385: DWORD nBufferLength, ! 2386: LPWSTR lpBuffer ! 2387: ); ! 2388: #ifdef UNICODE ! 2389: #define GetLogicalDriveStrings GetLogicalDriveStringsW ! 2390: #else ! 2391: #define GetLogicalDriveStrings GetLogicalDriveStringsA ! 2392: #endif // !UNICODE ! 2393: ! 2394: HANDLE ! 2395: APIENTRY ! 2396: LoadLibraryA( ! 2397: LPSTR lpLibFileName ! 2398: ); ! 2399: HANDLE ! 2400: APIENTRY ! 2401: LoadLibraryW( ! 2402: LPWSTR lpLibFileName ! 2403: ); ! 2404: #ifdef UNICODE ! 2405: #define LoadLibrary LoadLibraryW ! 2406: #else ! 2407: #define LoadLibrary LoadLibraryA ! 2408: #endif // !UNICODE ! 2409: ! 2410: DWORD ! 2411: APIENTRY ! 2412: GetModuleFileNameA( ! 2413: HANDLE hModule, ! 2414: LPSTR lpFilename, ! 2415: DWORD nSize ! 2416: ); ! 2417: DWORD ! 2418: APIENTRY ! 2419: GetModuleFileNameW( ! 2420: HANDLE hModule, ! 2421: LPWSTR lpFilename, ! 2422: DWORD nSize ! 2423: ); ! 2424: #ifdef UNICODE ! 2425: #define GetModuleFileName GetModuleFileNameW ! 2426: #else ! 2427: #define GetModuleFileName GetModuleFileNameA ! 2428: #endif // !UNICODE ! 2429: ! 2430: HANDLE ! 2431: APIENTRY ! 2432: GetModuleHandleA( ! 2433: LPSTR lpModuleName ! 2434: ); ! 2435: HANDLE ! 2436: APIENTRY ! 2437: GetModuleHandleW( ! 2438: LPWSTR lpModuleName ! 2439: ); ! 2440: #ifdef UNICODE ! 2441: #define GetModuleHandle GetModuleHandleW ! 2442: #else ! 2443: #define GetModuleHandle GetModuleHandleA ! 2444: #endif // !UNICODE ! 2445: ! 2446: BOOL ! 2447: APIENTRY ! 2448: CreateProcessA( ! 2449: LPSTR lpApplicationName, ! 2450: LPSTR lpCommandLine, ! 2451: LPSECURITY_ATTRIBUTES lpProcessAttributes, ! 2452: LPSECURITY_ATTRIBUTES lpThreadAttributes, ! 2453: BOOL bInheritHandles, ! 2454: DWORD dwCreationFlags, ! 2455: LPVOID lpEnvironment, ! 2456: LPSTR lpCurrentDirectory, ! 2457: LPSTARTUPINFOA lpStartupInfo, ! 2458: LPPROCESS_INFORMATION lpProcessInformation ! 2459: ); ! 2460: BOOL ! 2461: APIENTRY ! 2462: CreateProcessW( ! 2463: LPWSTR lpApplicationName, ! 2464: LPWSTR lpCommandLine, ! 2465: LPSECURITY_ATTRIBUTES lpProcessAttributes, ! 2466: LPSECURITY_ATTRIBUTES lpThreadAttributes, ! 2467: BOOL bInheritHandles, ! 2468: DWORD dwCreationFlags, ! 2469: LPVOID lpEnvironment, ! 2470: LPWSTR lpCurrentDirectory, ! 2471: LPSTARTUPINFOW lpStartupInfo, ! 2472: LPPROCESS_INFORMATION lpProcessInformation ! 2473: ); ! 2474: #ifdef UNICODE ! 2475: #define CreateProcess CreateProcessW ! 2476: #else ! 2477: #define CreateProcess CreateProcessA ! 2478: #endif // !UNICODE ! 2479: ! 2480: VOID ! 2481: APIENTRY ! 2482: FatalAppExitA( ! 2483: WORD wAction, ! 2484: LPSTR lpMessageText ! 2485: ); ! 2486: VOID ! 2487: APIENTRY ! 2488: FatalAppExitW( ! 2489: WORD wAction, ! 2490: LPWSTR lpMessageText ! 2491: ); ! 2492: #ifdef UNICODE ! 2493: #define FatalAppExit FatalAppExitW ! 2494: #else ! 2495: #define FatalAppExit FatalAppExitA ! 2496: #endif // !UNICODE ! 2497: ! 2498: VOID ! 2499: APIENTRY ! 2500: GetStartupInfoA( ! 2501: LPSTARTUPINFOA lpStartupInfo ! 2502: ); ! 2503: VOID ! 2504: APIENTRY ! 2505: GetStartupInfoW( ! 2506: LPSTARTUPINFOW lpStartupInfo ! 2507: ); ! 2508: #ifdef UNICODE ! 2509: #define GetStartupInfo GetStartupInfoW ! 2510: #else ! 2511: #define GetStartupInfo GetStartupInfoA ! 2512: #endif // !UNICODE ! 2513: ! 2514: LPSTR ! 2515: APIENTRY ! 2516: GetCommandLineA( ! 2517: VOID ! 2518: ); ! 2519: LPWSTR ! 2520: APIENTRY ! 2521: GetCommandLineW( ! 2522: VOID ! 2523: ); ! 2524: #ifdef UNICODE ! 2525: #define GetCommandLine GetCommandLineW ! 2526: #else ! 2527: #define GetCommandLine GetCommandLineA ! 2528: #endif // !UNICODE ! 2529: ! 2530: DWORD ! 2531: APIENTRY ! 2532: GetEnvironmentVariableA( ! 2533: LPSTR lpName, ! 2534: LPSTR lpBuffer, ! 2535: DWORD nSize ! 2536: ); ! 2537: DWORD ! 2538: APIENTRY ! 2539: GetEnvironmentVariableW( ! 2540: LPWSTR lpName, ! 2541: LPWSTR lpBuffer, ! 2542: DWORD nSize ! 2543: ); ! 2544: #ifdef UNICODE ! 2545: #define GetEnvironmentVariable GetEnvironmentVariableW ! 2546: #else ! 2547: #define GetEnvironmentVariable GetEnvironmentVariableA ! 2548: #endif // !UNICODE ! 2549: ! 2550: BOOL ! 2551: APIENTRY ! 2552: SetEnvironmentVariableA( ! 2553: LPSTR lpName, ! 2554: LPSTR lpValue ! 2555: ); ! 2556: BOOL ! 2557: APIENTRY ! 2558: SetEnvironmentVariableW( ! 2559: LPWSTR lpName, ! 2560: LPWSTR lpValue ! 2561: ); ! 2562: #ifdef UNICODE ! 2563: #define SetEnvironmentVariable SetEnvironmentVariableW ! 2564: #else ! 2565: #define SetEnvironmentVariable SetEnvironmentVariableA ! 2566: #endif // !UNICODE ! 2567: ! 2568: VOID ! 2569: APIENTRY ! 2570: OutputDebugStringA( ! 2571: LPSTR lpOutputString ! 2572: ); ! 2573: VOID ! 2574: APIENTRY ! 2575: OutputDebugStringW( ! 2576: LPWSTR lpOutputString ! 2577: ); ! 2578: #ifdef UNICODE ! 2579: #define OutputDebugString OutputDebugStringW ! 2580: #else ! 2581: #define OutputDebugString OutputDebugStringA ! 2582: #endif // !UNICODE ! 2583: ! 2584: HANDLE ! 2585: APIENTRY ! 2586: FindResourceA( ! 2587: HANDLE hModule, ! 2588: LPSTR lpName, ! 2589: LPSTR lpType ! 2590: ); ! 2591: HANDLE ! 2592: APIENTRY ! 2593: FindResourceW( ! 2594: HANDLE hModule, ! 2595: LPWSTR lpName, ! 2596: LPWSTR lpType ! 2597: ); ! 2598: #ifdef UNICODE ! 2599: #define FindResource FindResourceW ! 2600: #else ! 2601: #define FindResource FindResourceA ! 2602: #endif // !UNICODE ! 2603: ! 2604: BOOL ! 2605: APIENTRY ! 2606: EnumResourceTypesA( ! 2607: HANDLE hModule, ! 2608: FARPROC lpEnumFunc, ! 2609: LONG lParam ! 2610: ); ! 2611: BOOL ! 2612: APIENTRY ! 2613: EnumResourceTypesW( ! 2614: HANDLE hModule, ! 2615: FARPROC lpEnumFunc, ! 2616: LONG lParam ! 2617: ); ! 2618: #ifdef UNICODE ! 2619: #define EnumResourceTypes EnumResourceTypesW ! 2620: #else ! 2621: #define EnumResourceTypes EnumResourceTypesA ! 2622: #endif // !UNICODE ! 2623: ! 2624: ! 2625: BOOL ! 2626: APIENTRY ! 2627: EnumResourceNamesA( ! 2628: HANDLE hModule, ! 2629: LPSTR lpType, ! 2630: FARPROC lpEnumFunc, ! 2631: LONG lParam ! 2632: ); ! 2633: BOOL ! 2634: APIENTRY ! 2635: EnumResourceNamesW( ! 2636: HANDLE hModule, ! 2637: LPWSTR lpType, ! 2638: FARPROC lpEnumFunc, ! 2639: LONG lParam ! 2640: ); ! 2641: #ifdef UNICODE ! 2642: #define EnumResourceNames EnumResourceNamesW ! 2643: #else ! 2644: #define EnumResourceNames EnumResourceNamesA ! 2645: #endif // !UNICODE ! 2646: ! 2647: ATOM ! 2648: APIENTRY ! 2649: GlobalAddAtomA( ! 2650: LPSTR lpString ! 2651: ); ! 2652: ATOM ! 2653: APIENTRY ! 2654: GlobalAddAtomW( ! 2655: LPWSTR lpString ! 2656: ); ! 2657: #ifdef UNICODE ! 2658: #define GlobalAddAtom GlobalAddAtomW ! 2659: #else ! 2660: #define GlobalAddAtom GlobalAddAtomA ! 2661: #endif // !UNICODE ! 2662: ! 2663: ATOM ! 2664: APIENTRY ! 2665: GlobalFindAtomA( ! 2666: LPSTR lpString ! 2667: ); ! 2668: ATOM ! 2669: APIENTRY ! 2670: GlobalFindAtomW( ! 2671: LPWSTR lpString ! 2672: ); ! 2673: #ifdef UNICODE ! 2674: #define GlobalFindAtom GlobalFindAtomW ! 2675: #else ! 2676: #define GlobalFindAtom GlobalFindAtomA ! 2677: #endif // !UNICODE ! 2678: ! 2679: DWORD ! 2680: APIENTRY ! 2681: GlobalGetAtomNameA( ! 2682: ATOM nAtom, ! 2683: LPSTR lpBuffer, ! 2684: DWORD nSize ! 2685: ); ! 2686: DWORD ! 2687: APIENTRY ! 2688: GlobalGetAtomNameW( ! 2689: ATOM nAtom, ! 2690: LPWSTR lpBuffer, ! 2691: DWORD nSize ! 2692: ); ! 2693: #ifdef UNICODE ! 2694: #define GlobalGetAtomName GlobalGetAtomNameW ! 2695: #else ! 2696: #define GlobalGetAtomName GlobalGetAtomNameA ! 2697: #endif // !UNICODE ! 2698: ! 2699: ATOM ! 2700: APIENTRY ! 2701: AddAtomA( ! 2702: LPSTR lpString ! 2703: ); ! 2704: ATOM ! 2705: APIENTRY ! 2706: AddAtomW( ! 2707: LPWSTR lpString ! 2708: ); ! 2709: #ifdef UNICODE ! 2710: #define AddAtom AddAtomW ! 2711: #else ! 2712: #define AddAtom AddAtomA ! 2713: #endif // !UNICODE ! 2714: ! 2715: ATOM ! 2716: APIENTRY ! 2717: FindAtomA( ! 2718: LPSTR lpString ! 2719: ); ! 2720: ATOM ! 2721: APIENTRY ! 2722: FindAtomW( ! 2723: LPWSTR lpString ! 2724: ); ! 2725: #ifdef UNICODE ! 2726: #define FindAtom FindAtomW ! 2727: #else ! 2728: #define FindAtom FindAtomA ! 2729: #endif // !UNICODE ! 2730: ! 2731: DWORD ! 2732: APIENTRY ! 2733: GetAtomNameA( ! 2734: ATOM nAtom, ! 2735: LPSTR lpBuffer, ! 2736: DWORD nSize ! 2737: ); ! 2738: DWORD ! 2739: APIENTRY ! 2740: GetAtomNameW( ! 2741: ATOM nAtom, ! 2742: LPWSTR lpBuffer, ! 2743: DWORD nSize ! 2744: ); ! 2745: #ifdef UNICODE ! 2746: #define GetAtomName GetAtomNameW ! 2747: #else ! 2748: #define GetAtomName GetAtomNameA ! 2749: #endif // !UNICODE ! 2750: ! 2751: DWORD ! 2752: APIENTRY ! 2753: GetProfileIntA( ! 2754: LPSTR lpAppName, ! 2755: LPSTR lpKeyName, ! 2756: DWORD nDefault ! 2757: ); ! 2758: DWORD ! 2759: APIENTRY ! 2760: GetProfileIntW( ! 2761: LPWSTR lpAppName, ! 2762: LPWSTR lpKeyName, ! 2763: DWORD nDefault ! 2764: ); ! 2765: #ifdef UNICODE ! 2766: #define GetProfileInt GetProfileIntW ! 2767: #else ! 2768: #define GetProfileInt GetProfileIntA ! 2769: #endif // !UNICODE ! 2770: ! 2771: DWORD ! 2772: APIENTRY ! 2773: GetProfileStringA( ! 2774: LPSTR lpAppName, ! 2775: LPSTR lpKeyName, ! 2776: LPSTR lpDefault, ! 2777: LPSTR lpReturnedString, ! 2778: DWORD nSize ! 2779: ); ! 2780: DWORD ! 2781: APIENTRY ! 2782: GetProfileStringW( ! 2783: LPWSTR lpAppName, ! 2784: LPWSTR lpKeyName, ! 2785: LPWSTR lpDefault, ! 2786: LPWSTR lpReturnedString, ! 2787: DWORD nSize ! 2788: ); ! 2789: #ifdef UNICODE ! 2790: #define GetProfileString GetProfileStringW ! 2791: #else ! 2792: #define GetProfileString GetProfileStringA ! 2793: #endif // !UNICODE ! 2794: ! 2795: BOOL ! 2796: APIENTRY ! 2797: WriteProfileStringA( ! 2798: LPSTR lpAppName, ! 2799: LPSTR lpKeyName, ! 2800: LPSTR lpString ! 2801: ); ! 2802: BOOL ! 2803: APIENTRY ! 2804: WriteProfileStringW( ! 2805: LPWSTR lpAppName, ! 2806: LPWSTR lpKeyName, ! 2807: LPWSTR lpString ! 2808: ); ! 2809: #ifdef UNICODE ! 2810: #define WriteProfileString WriteProfileStringW ! 2811: #else ! 2812: #define WriteProfileString WriteProfileStringA ! 2813: #endif // !UNICODE ! 2814: ! 2815: DWORD ! 2816: APIENTRY ! 2817: GetProfileSectionA( ! 2818: LPSTR lpAppName, ! 2819: LPSTR lpReturnedString, ! 2820: DWORD nSize ! 2821: ); ! 2822: DWORD ! 2823: APIENTRY ! 2824: GetProfileSectionW( ! 2825: LPWSTR lpAppName, ! 2826: LPWSTR lpReturnedString, ! 2827: DWORD nSize ! 2828: ); ! 2829: #ifdef UNICODE ! 2830: #define GetProfileSection GetProfileSectionW ! 2831: #else ! 2832: #define GetProfileSection GetProfileSectionA ! 2833: #endif // !UNICODE ! 2834: ! 2835: DWORD ! 2836: APIENTRY ! 2837: WriteProfileSectionA( ! 2838: LPSTR lpAppName, ! 2839: LPSTR lpString ! 2840: ); ! 2841: DWORD ! 2842: APIENTRY ! 2843: WriteProfileSectionW( ! 2844: LPWSTR lpAppName, ! 2845: LPWSTR lpString ! 2846: ); ! 2847: #ifdef UNICODE ! 2848: #define WriteProfileSection WriteProfileSectionW ! 2849: #else ! 2850: #define WriteProfileSection WriteProfileSectionA ! 2851: #endif // !UNICODE ! 2852: ! 2853: DWORD ! 2854: APIENTRY ! 2855: GetPrivateProfileIntA( ! 2856: LPSTR lpAppName, ! 2857: LPSTR lpKeyName, ! 2858: DWORD nDefault, ! 2859: LPSTR lpFileName ! 2860: ); ! 2861: DWORD ! 2862: APIENTRY ! 2863: GetPrivateProfileIntW( ! 2864: LPWSTR lpAppName, ! 2865: LPWSTR lpKeyName, ! 2866: DWORD nDefault, ! 2867: LPWSTR lpFileName ! 2868: ); ! 2869: #ifdef UNICODE ! 2870: #define GetPrivateProfileInt GetPrivateProfileIntW ! 2871: #else ! 2872: #define GetPrivateProfileInt GetPrivateProfileIntA ! 2873: #endif // !UNICODE ! 2874: ! 2875: DWORD ! 2876: APIENTRY ! 2877: GetPrivateProfileStringA( ! 2878: LPSTR lpAppName, ! 2879: LPSTR lpKeyName, ! 2880: LPSTR lpDefault, ! 2881: LPSTR lpReturnedString, ! 2882: DWORD nSize, ! 2883: LPSTR lpFileName ! 2884: ); ! 2885: DWORD ! 2886: APIENTRY ! 2887: GetPrivateProfileStringW( ! 2888: LPWSTR lpAppName, ! 2889: LPWSTR lpKeyName, ! 2890: LPWSTR lpDefault, ! 2891: LPWSTR lpReturnedString, ! 2892: DWORD nSize, ! 2893: LPWSTR lpFileName ! 2894: ); ! 2895: #ifdef UNICODE ! 2896: #define GetPrivateProfileString GetPrivateProfileStringW ! 2897: #else ! 2898: #define GetPrivateProfileString GetPrivateProfileStringA ! 2899: #endif // !UNICODE ! 2900: ! 2901: BOOL ! 2902: APIENTRY ! 2903: WritePrivateProfileStringA( ! 2904: LPSTR lpAppName, ! 2905: LPSTR lpKeyName, ! 2906: LPSTR lpString, ! 2907: LPSTR lpFileName ! 2908: ); ! 2909: BOOL ! 2910: APIENTRY ! 2911: WritePrivateProfileStringW( ! 2912: LPWSTR lpAppName, ! 2913: LPWSTR lpKeyName, ! 2914: LPWSTR lpString, ! 2915: LPWSTR lpFileName ! 2916: ); ! 2917: #ifdef UNICODE ! 2918: #define WritePrivateProfileString WritePrivateProfileStringW ! 2919: #else ! 2920: #define WritePrivateProfileString WritePrivateProfileStringA ! 2921: #endif // !UNICODE ! 2922: ! 2923: DWORD ! 2924: APIENTRY ! 2925: GetPrivateProfileSectionA( ! 2926: LPSTR lpAppName, ! 2927: LPSTR lpReturnedString, ! 2928: DWORD nSize, ! 2929: LPSTR lpFileName ! 2930: ); ! 2931: DWORD ! 2932: APIENTRY ! 2933: GetPrivateProfileSectionW( ! 2934: LPWSTR lpAppName, ! 2935: LPWSTR lpReturnedString, ! 2936: DWORD nSize, ! 2937: LPWSTR lpFileName ! 2938: ); ! 2939: #ifdef UNICODE ! 2940: #define GetPrivateProfileSection GetPrivateProfileSectionW ! 2941: #else ! 2942: #define GetPrivateProfileSection GetPrivateProfileSectionA ! 2943: #endif // !UNICODE ! 2944: ! 2945: DWORD ! 2946: APIENTRY ! 2947: WritePrivateProfileSectionA( ! 2948: LPSTR lpAppName, ! 2949: LPSTR lpString, ! 2950: LPSTR lpFileName ! 2951: ); ! 2952: DWORD ! 2953: APIENTRY ! 2954: WritePrivateProfileSectionW( ! 2955: LPWSTR lpAppName, ! 2956: LPWSTR lpString, ! 2957: LPWSTR lpFileName ! 2958: ); ! 2959: #ifdef UNICODE ! 2960: #define WritePrivateProfileSection WritePrivateProfileSectionW ! 2961: #else ! 2962: #define WritePrivateProfileSection WritePrivateProfileSectionA ! 2963: #endif // !UNICODE ! 2964: ! 2965: DWORD ! 2966: APIENTRY ! 2967: GetDriveTypeA( ! 2968: LPSTR lpRootPathName ! 2969: ); ! 2970: DWORD ! 2971: APIENTRY ! 2972: GetDriveTypeW( ! 2973: LPWSTR lpRootPathName ! 2974: ); ! 2975: #ifdef UNICODE ! 2976: #define GetDriveType GetDriveTypeW ! 2977: #else ! 2978: #define GetDriveType GetDriveTypeA ! 2979: #endif // !UNICODE ! 2980: ! 2981: DWORD ! 2982: APIENTRY ! 2983: GetSystemDirectoryA( ! 2984: LPSTR lpBuffer, ! 2985: DWORD nSize ! 2986: ); ! 2987: DWORD ! 2988: APIENTRY ! 2989: GetSystemDirectoryW( ! 2990: LPWSTR lpBuffer, ! 2991: DWORD nSize ! 2992: ); ! 2993: #ifdef UNICODE ! 2994: #define GetSystemDirectory GetSystemDirectoryW ! 2995: #else ! 2996: #define GetSystemDirectory GetSystemDirectoryA ! 2997: #endif // !UNICODE ! 2998: ! 2999: DWORD ! 3000: APIENTRY ! 3001: GetTempPathA( ! 3002: DWORD nBufferLength, ! 3003: LPSTR lpBuffer ! 3004: ); ! 3005: DWORD ! 3006: APIENTRY ! 3007: GetTempPathW( ! 3008: DWORD nBufferLength, ! 3009: LPWSTR lpBuffer ! 3010: ); ! 3011: #ifdef UNICODE ! 3012: #define GetTempPath GetTempPathW ! 3013: #else ! 3014: #define GetTempPath GetTempPathA ! 3015: #endif // !UNICODE ! 3016: ! 3017: WORD ! 3018: APIENTRY ! 3019: GetTempFileNameA( ! 3020: LPSTR lpPathName, ! 3021: LPSTR lpPrefixString, ! 3022: WORD wUnique, ! 3023: LPSTR lpTempFileName ! 3024: ); ! 3025: WORD ! 3026: APIENTRY ! 3027: GetTempFileNameW( ! 3028: LPWSTR lpPathName, ! 3029: LPWSTR lpPrefixString, ! 3030: WORD wUnique, ! 3031: LPWSTR lpTempFileName ! 3032: ); ! 3033: #ifdef UNICODE ! 3034: #define GetTempFileName GetTempFileNameW ! 3035: #else ! 3036: #define GetTempFileName GetTempFileNameA ! 3037: #endif // !UNICODE ! 3038: ! 3039: DWORD ! 3040: APIENTRY ! 3041: GetWindowsDirectoryA( ! 3042: LPSTR lpBuffer, ! 3043: DWORD nSize ! 3044: ); ! 3045: DWORD ! 3046: APIENTRY ! 3047: GetWindowsDirectoryW( ! 3048: LPWSTR lpBuffer, ! 3049: DWORD nSize ! 3050: ); ! 3051: #ifdef UNICODE ! 3052: #define GetWindowsDirectory GetWindowsDirectoryW ! 3053: #else ! 3054: #define GetWindowsDirectory GetWindowsDirectoryA ! 3055: #endif // !UNICODE ! 3056: ! 3057: BOOL ! 3058: APIENTRY ! 3059: SetCurrentDirectoryA( ! 3060: LPSTR lpPathName ! 3061: ); ! 3062: BOOL ! 3063: APIENTRY ! 3064: SetCurrentDirectoryW( ! 3065: LPWSTR lpPathName ! 3066: ); ! 3067: #ifdef UNICODE ! 3068: #define SetCurrentDirectory SetCurrentDirectoryW ! 3069: #else ! 3070: #define SetCurrentDirectory SetCurrentDirectoryA ! 3071: #endif // !UNICODE ! 3072: ! 3073: DWORD ! 3074: APIENTRY ! 3075: GetCurrentDirectoryA( ! 3076: DWORD nBufferLength, ! 3077: LPSTR lpBuffer ! 3078: ); ! 3079: DWORD ! 3080: APIENTRY ! 3081: GetCurrentDirectoryW( ! 3082: DWORD nBufferLength, ! 3083: LPWSTR lpBuffer ! 3084: ); ! 3085: #ifdef UNICODE ! 3086: #define GetCurrentDirectory GetCurrentDirectoryW ! 3087: #else ! 3088: #define GetCurrentDirectory GetCurrentDirectoryA ! 3089: #endif // !UNICODE ! 3090: ! 3091: BOOL ! 3092: APIENTRY ! 3093: GetDiskFreeSpaceA( ! 3094: LPSTR lpRootPathName, ! 3095: LPDWORD lpSectorsPerCluster, ! 3096: LPDWORD lpBytesPerSector, ! 3097: LPDWORD lpNumberOfFreeClusters, ! 3098: LPDWORD lpTotalNumberOfClusters ! 3099: ); ! 3100: BOOL ! 3101: APIENTRY ! 3102: GetDiskFreeSpaceW( ! 3103: LPWSTR lpRootPathName, ! 3104: LPDWORD lpSectorsPerCluster, ! 3105: LPDWORD lpBytesPerSector, ! 3106: LPDWORD lpNumberOfFreeClusters, ! 3107: LPDWORD lpTotalNumberOfClusters ! 3108: ); ! 3109: #ifdef UNICODE ! 3110: #define GetDiskFreeSpace GetDiskFreeSpaceW ! 3111: #else ! 3112: #define GetDiskFreeSpace GetDiskFreeSpaceA ! 3113: #endif // !UNICODE ! 3114: ! 3115: BOOL ! 3116: APIENTRY ! 3117: CreateDirectoryA( ! 3118: LPSTR lpPathName, ! 3119: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 3120: ); ! 3121: BOOL ! 3122: APIENTRY ! 3123: CreateDirectoryW( ! 3124: LPWSTR lpPathName, ! 3125: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 3126: ); ! 3127: #ifdef UNICODE ! 3128: #define CreateDirectory CreateDirectoryW ! 3129: #else ! 3130: #define CreateDirectory CreateDirectoryA ! 3131: #endif // !UNICODE ! 3132: ! 3133: BOOL ! 3134: APIENTRY ! 3135: RemoveDirectoryA( ! 3136: LPSTR lpPathName ! 3137: ); ! 3138: BOOL ! 3139: APIENTRY ! 3140: RemoveDirectoryW( ! 3141: LPWSTR lpPathName ! 3142: ); ! 3143: #ifdef UNICODE ! 3144: #define RemoveDirectory RemoveDirectoryW ! 3145: #else ! 3146: #define RemoveDirectory RemoveDirectoryA ! 3147: #endif // !UNICODE ! 3148: ! 3149: DWORD ! 3150: APIENTRY ! 3151: GetFullPathNameA( ! 3152: LPSTR lpFileName, ! 3153: DWORD nBufferLength, ! 3154: LPSTR lpBuffer, ! 3155: LPSTR *lpFilePart ! 3156: ); ! 3157: DWORD ! 3158: APIENTRY ! 3159: GetFullPathNameW( ! 3160: LPWSTR lpFileName, ! 3161: DWORD nBufferLength, ! 3162: LPWSTR lpBuffer, ! 3163: LPWSTR *lpFilePart ! 3164: ); ! 3165: #ifdef UNICODE ! 3166: #define GetFullPathName GetFullPathNameW ! 3167: #else ! 3168: #define GetFullPathName GetFullPathNameA ! 3169: #endif // !UNICODE ! 3170: ! 3171: #define EXPAND_LOCAL_DRIVES ! 3172: ! 3173: ! 3174: HANDLE ! 3175: APIENTRY ! 3176: CreateFileA( ! 3177: LPSTR lpFileName, ! 3178: DWORD dwDesiredAccess, ! 3179: DWORD dwShareMode, ! 3180: LPSECURITY_ATTRIBUTES lpSecurityAttributes, ! 3181: DWORD dwCreationDisposition, ! 3182: DWORD dwFlagsAndAttributes, ! 3183: HANDLE hTemplateFile ! 3184: ); ! 3185: HANDLE ! 3186: APIENTRY ! 3187: CreateFileW( ! 3188: LPWSTR lpFileName, ! 3189: DWORD dwDesiredAccess, ! 3190: DWORD dwShareMode, ! 3191: LPSECURITY_ATTRIBUTES lpSecurityAttributes, ! 3192: DWORD dwCreationDisposition, ! 3193: DWORD dwFlagsAndAttributes, ! 3194: HANDLE hTemplateFile ! 3195: ); ! 3196: #ifdef UNICODE ! 3197: #define CreateFile CreateFileW ! 3198: #else ! 3199: #define CreateFile CreateFileA ! 3200: #endif // !UNICODE ! 3201: ! 3202: BOOL ! 3203: APIENTRY ! 3204: SetFileAttributesA( ! 3205: LPSTR lpFileName, ! 3206: DWORD dwFileAttributes ! 3207: ); ! 3208: BOOL ! 3209: APIENTRY ! 3210: SetFileAttributesW( ! 3211: LPWSTR lpFileName, ! 3212: DWORD dwFileAttributes ! 3213: ); ! 3214: #ifdef UNICODE ! 3215: #define SetFileAttributes SetFileAttributesW ! 3216: #else ! 3217: #define SetFileAttributes SetFileAttributesA ! 3218: #endif // !UNICODE ! 3219: ! 3220: DWORD ! 3221: APIENTRY ! 3222: GetFileAttributesA( ! 3223: LPSTR lpFileName ! 3224: ); ! 3225: DWORD ! 3226: APIENTRY ! 3227: GetFileAttributesW( ! 3228: LPWSTR lpFileName ! 3229: ); ! 3230: #ifdef UNICODE ! 3231: #define GetFileAttributes GetFileAttributesW ! 3232: #else ! 3233: #define GetFileAttributes GetFileAttributesA ! 3234: #endif // !UNICODE ! 3235: ! 3236: BOOL ! 3237: APIENTRY ! 3238: DeleteFileA( ! 3239: LPSTR lpFileName ! 3240: ); ! 3241: BOOL ! 3242: APIENTRY ! 3243: DeleteFileW( ! 3244: LPWSTR lpFileName ! 3245: ); ! 3246: #ifdef UNICODE ! 3247: #define DeleteFile DeleteFileW ! 3248: #else ! 3249: #define DeleteFile DeleteFileA ! 3250: #endif // !UNICODE ! 3251: ! 3252: HANDLE ! 3253: APIENTRY ! 3254: FindFirstFileA( ! 3255: LPSTR lpFileName, ! 3256: LPWIN32_FIND_DATAA lpFindFileData ! 3257: ); ! 3258: HANDLE ! 3259: APIENTRY ! 3260: FindFirstFileW( ! 3261: LPWSTR lpFileName, ! 3262: LPWIN32_FIND_DATAW lpFindFileData ! 3263: ); ! 3264: #ifdef UNICODE ! 3265: #define FindFirstFile FindFirstFileW ! 3266: #else ! 3267: #define FindFirstFile FindFirstFileA ! 3268: #endif // !UNICODE ! 3269: ! 3270: BOOL ! 3271: APIENTRY ! 3272: FindNextFileA( ! 3273: HANDLE hFindFile, ! 3274: LPWIN32_FIND_DATAA lpFindFileData ! 3275: ); ! 3276: BOOL ! 3277: APIENTRY ! 3278: FindNextFileW( ! 3279: HANDLE hFindFile, ! 3280: LPWIN32_FIND_DATAW lpFindFileData ! 3281: ); ! 3282: #ifdef UNICODE ! 3283: #define FindNextFile FindNextFileW ! 3284: #else ! 3285: #define FindNextFile FindNextFileA ! 3286: #endif // !UNICODE ! 3287: ! 3288: DWORD ! 3289: APIENTRY ! 3290: SearchPathA( ! 3291: LPSTR lpPath, ! 3292: LPSTR lpFileName, ! 3293: LPSTR lpExtension, ! 3294: DWORD nBufferLength, ! 3295: LPSTR lpBuffer, ! 3296: LPSTR *lpFilePart ! 3297: ); ! 3298: DWORD ! 3299: APIENTRY ! 3300: SearchPathW( ! 3301: LPWSTR lpPath, ! 3302: LPWSTR lpFileName, ! 3303: LPWSTR lpExtension, ! 3304: DWORD nBufferLength, ! 3305: LPWSTR lpBuffer, ! 3306: LPWSTR *lpFilePart ! 3307: ); ! 3308: #ifdef UNICODE ! 3309: #define SearchPath SearchPathW ! 3310: #else ! 3311: #define SearchPath SearchPathA ! 3312: #endif // !UNICODE ! 3313: ! 3314: BOOL ! 3315: APIENTRY ! 3316: CopyFileA( ! 3317: LPSTR lpExistingFileName, ! 3318: LPSTR lpNewFileName, ! 3319: BOOL bFailIfExists ! 3320: ); ! 3321: BOOL ! 3322: APIENTRY ! 3323: CopyFileW( ! 3324: LPWSTR lpExistingFileName, ! 3325: LPWSTR lpNewFileName, ! 3326: BOOL bFailIfExists ! 3327: ); ! 3328: #ifdef UNICODE ! 3329: #define CopyFile CopyFileW ! 3330: #else ! 3331: #define CopyFile CopyFileA ! 3332: #endif // !UNICODE ! 3333: ! 3334: BOOL ! 3335: APIENTRY ! 3336: MoveFileA( ! 3337: LPSTR lpExistingFileName, ! 3338: LPSTR lpNewFileName ! 3339: ); ! 3340: BOOL ! 3341: APIENTRY ! 3342: MoveFileW( ! 3343: LPWSTR lpExistingFileName, ! 3344: LPWSTR lpNewFileName ! 3345: ); ! 3346: #ifdef UNICODE ! 3347: #define MoveFile MoveFileW ! 3348: #else ! 3349: #define MoveFile MoveFileA ! 3350: #endif // !UNICODE ! 3351: ! 3352: HANDLE ! 3353: APIENTRY ! 3354: CreateNamedPipeA( ! 3355: LPSTR lpName, ! 3356: DWORD dwOpenMode, ! 3357: DWORD dwPipeMode, ! 3358: DWORD nMaxInstances, ! 3359: DWORD nOutBufferSize, ! 3360: DWORD nInBufferSize, ! 3361: DWORD nDefaultTimeOut, ! 3362: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 3363: ); ! 3364: HANDLE ! 3365: APIENTRY ! 3366: CreateNamedPipeW( ! 3367: LPWSTR lpName, ! 3368: DWORD dwOpenMode, ! 3369: DWORD dwPipeMode, ! 3370: DWORD nMaxInstances, ! 3371: DWORD nOutBufferSize, ! 3372: DWORD nInBufferSize, ! 3373: DWORD nDefaultTimeOut, ! 3374: LPSECURITY_ATTRIBUTES lpSecurityAttributes ! 3375: ); ! 3376: #ifdef UNICODE ! 3377: #define CreateNamedPipe CreateNamedPipeW ! 3378: #else ! 3379: #define CreateNamedPipe CreateNamedPipeA ! 3380: #endif // !UNICODE ! 3381: ! 3382: BOOL ! 3383: APIENTRY ! 3384: GetNamedPipeHandleStateA( ! 3385: HANDLE hNamedPipe, ! 3386: LPDWORD lpState, ! 3387: LPDWORD lpCurInstances, ! 3388: LPDWORD lpMaxCollectionCount, ! 3389: LPDWORD lpCollectDataTimeout, ! 3390: LPSTR lpUserName, ! 3391: DWORD nMaxUserNameSize ! 3392: ); ! 3393: BOOL ! 3394: APIENTRY ! 3395: GetNamedPipeHandleStateW( ! 3396: HANDLE hNamedPipe, ! 3397: LPDWORD lpState, ! 3398: LPDWORD lpCurInstances, ! 3399: LPDWORD lpMaxCollectionCount, ! 3400: LPDWORD lpCollectDataTimeout, ! 3401: LPWSTR lpUserName, ! 3402: DWORD nMaxUserNameSize ! 3403: ); ! 3404: #ifdef UNICODE ! 3405: #define GetNamedPipeHandleState GetNamedPipeHandleStateW ! 3406: #else ! 3407: #define GetNamedPipeHandleState GetNamedPipeHandleStateA ! 3408: #endif // !UNICODE ! 3409: ! 3410: BOOL ! 3411: APIENTRY ! 3412: CallNamedPipeA( ! 3413: LPSTR lpNamedPipeName, ! 3414: LPVOID lpInBuffer, ! 3415: DWORD nInBufferSize, ! 3416: LPVOID lpOutBuffer, ! 3417: DWORD nOutBufferSize, ! 3418: LPDWORD lpBytesRead, ! 3419: DWORD nTimeOut ! 3420: ); ! 3421: BOOL ! 3422: APIENTRY ! 3423: CallNamedPipeW( ! 3424: LPWSTR lpNamedPipeName, ! 3425: LPVOID lpInBuffer, ! 3426: DWORD nInBufferSize, ! 3427: LPVOID lpOutBuffer, ! 3428: DWORD nOutBufferSize, ! 3429: LPDWORD lpBytesRead, ! 3430: DWORD nTimeOut ! 3431: ); ! 3432: #ifdef UNICODE ! 3433: #define CallNamedPipe CallNamedPipeW ! 3434: #else ! 3435: #define CallNamedPipe CallNamedPipeA ! 3436: #endif // !UNICODE ! 3437: ! 3438: BOOL ! 3439: APIENTRY ! 3440: WaitNamedPipeA( ! 3441: LPSTR lpNamedPipeName, ! 3442: DWORD nTimeOut ! 3443: ); ! 3444: BOOL ! 3445: APIENTRY ! 3446: WaitNamedPipeW( ! 3447: LPWSTR lpNamedPipeName, ! 3448: DWORD nTimeOut ! 3449: ); ! 3450: #ifdef UNICODE ! 3451: #define WaitNamedPipe WaitNamedPipeW ! 3452: #else ! 3453: #define WaitNamedPipe WaitNamedPipeA ! 3454: #endif // !UNICODE ! 3455: ! 3456: BOOL ! 3457: APIENTRY ! 3458: GetVolumeInformationA( ! 3459: LPSTR lpRootPathName, ! 3460: LPSTR lpVolumeNameBuffer, ! 3461: DWORD nVolumeNameSize, ! 3462: LPDWORD lpVolumeSerialNumber, ! 3463: LPDWORD lpMaximumComponentLength, ! 3464: LPDWORD lpFileSystemFlags, ! 3465: LPSTR lpFileSystemNameBuffer, ! 3466: DWORD nFileSystemNameSize ! 3467: ); ! 3468: BOOL ! 3469: APIENTRY ! 3470: GetVolumeInformationW( ! 3471: LPWSTR lpRootPathName, ! 3472: LPWSTR lpVolumeNameBuffer, ! 3473: DWORD nVolumeNameSize, ! 3474: LPDWORD lpVolumeSerialNumber, ! 3475: LPDWORD lpMaximumComponentLength, ! 3476: LPDWORD lpFileSystemFlags, ! 3477: LPWSTR lpFileSystemNameBuffer, ! 3478: DWORD nFileSystemNameSize ! 3479: ); ! 3480: #ifdef UNICODE ! 3481: #define GetVolumeInformation GetVolumeInformationW ! 3482: #else ! 3483: #define GetVolumeInformation GetVolumeInformationA ! 3484: #endif // !UNICODE ! 3485: ! 3486: // ! 3487: // Private MVDM apis ! 3488: // ! 3489: ! 3490: VOID ! 3491: APIENTRY ! 3492: VDMOperationStarted( ! 3493: IN BOOL IsWowCaller ! 3494: ); ! 3495: ! 3496: BOOL ! 3497: APIENTRY ! 3498: GetNextVDMCommand( ! 3499: PVDMINFO pVDMInfo ! 3500: ); ! 3501: ! 3502: VOID ! 3503: APIENTRY ! 3504: ExitVDM( ! 3505: IN BOOL IsWowCaller, ! 3506: IN ULONG iWowTask ! 3507: ); ! 3508: // ! 3509: // Event logging APIs ! 3510: // ! 3511: BOOL ! 3512: APIENTRY ! 3513: ClearEventLogA ( ! 3514: IN HANDLE hEventLog, ! 3515: IN LPSTR lpBackupFileName ! 3516: ); ! 3517: // ! 3518: // Event logging APIs ! 3519: // ! 3520: BOOL ! 3521: APIENTRY ! 3522: ClearEventLogW ( ! 3523: IN HANDLE hEventLog, ! 3524: IN LPWSTR lpBackupFileName ! 3525: ); ! 3526: #ifdef UNICODE ! 3527: #define ClearEventLog ClearEventLogW ! 3528: #else ! 3529: #define ClearEventLog ClearEventLogA ! 3530: #endif // !UNICODE ! 3531: ! 3532: BOOL ! 3533: APIENTRY ! 3534: CloseEventLog ( ! 3535: IN HANDLE hEventLog ! 3536: ); ! 3537: ! 3538: HANDLE ! 3539: APIENTRY ! 3540: OpenEventLogA ( ! 3541: IN LPSTR lpUNCServerName, ! 3542: IN LPSTR lpModuleName ! 3543: ); ! 3544: HANDLE ! 3545: APIENTRY ! 3546: OpenEventLogW ( ! 3547: IN LPWSTR lpUNCServerName, ! 3548: IN LPWSTR lpModuleName ! 3549: ); ! 3550: #ifdef UNICODE ! 3551: #define OpenEventLog OpenEventLogW ! 3552: #else ! 3553: #define OpenEventLog OpenEventLogA ! 3554: #endif // !UNICODE ! 3555: ! 3556: BOOL ! 3557: APIENTRY ! 3558: ReadEventLogA ( ! 3559: IN HANDLE hEventLog, ! 3560: IN DWORD dwReadFlags, ! 3561: IN DWORD dwRecordOffset, ! 3562: OUT LPVOID lpBuffer, ! 3563: IN DWORD nNumberOfBytesToRead, ! 3564: OUT DWORD *pnBytesRead, ! 3565: OUT DWORD *pnMinNumberOfBytesNeeded ! 3566: ); ! 3567: BOOL ! 3568: APIENTRY ! 3569: ReadEventLogW ( ! 3570: IN HANDLE hEventLog, ! 3571: IN DWORD dwReadFlags, ! 3572: IN DWORD dwRecordOffset, ! 3573: OUT LPVOID lpBuffer, ! 3574: IN DWORD nNumberOfBytesToRead, ! 3575: OUT DWORD *pnBytesRead, ! 3576: OUT DWORD *pnMinNumberOfBytesNeeded ! 3577: ); ! 3578: #ifdef UNICODE ! 3579: #define ReadEventLog ReadEventLogW ! 3580: #else ! 3581: #define ReadEventLog ReadEventLogA ! 3582: #endif // !UNICODE ! 3583: ! 3584: BOOL ! 3585: APIENTRY ! 3586: WriteEventLogEntryA ( ! 3587: IN HANDLE hEventLog, ! 3588: IN WORD wType, ! 3589: IN DWORD dwEventID, ! 3590: IN PSID lpUserSid OPTIONAL, ! 3591: IN WORD wNumStrings, ! 3592: IN DWORD dwDataSize, ! 3593: IN LPSTR *lpStrings OPTIONAL, ! 3594: IN LPVOID lpRawData OPTIONAL ! 3595: ); ! 3596: BOOL ! 3597: APIENTRY ! 3598: WriteEventLogEntryW ( ! 3599: IN HANDLE hEventLog, ! 3600: IN WORD wType, ! 3601: IN DWORD dwEventID, ! 3602: IN PSID lpUserSid OPTIONAL, ! 3603: IN WORD wNumStrings, ! 3604: IN DWORD dwDataSize, ! 3605: IN LPWSTR *lpStrings OPTIONAL, ! 3606: IN LPVOID lpRawData OPTIONAL ! 3607: ); ! 3608: #ifdef UNICODE ! 3609: #define WriteEventLogEntry WriteEventLogEntryW ! 3610: #else ! 3611: #define WriteEventLogEntry WriteEventLogEntryA ! 3612: #endif // !UNICODE ! 3613: // ! 3614: // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base ! 3615: // API functions. ! 3616: // ! 3617: ! 3618: #include <winerror.h> ! 3619: ! 3620: /* Abnormal termination codes */ ! 3621: ! 3622: #define TC_NORMAL 0 ! 3623: #define TC_HARDERR 1 ! 3624: #define TC_GP_TRAP 2 ! 3625: #define TC_SIGNAL 3 ! 3626: ! 3627: #endif // _WINBASE_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.