Changeset 208
- Timestamp:
- 09/04/07 20:23:02 (2 years ago)
- Files:
-
- trunk/win32/winbase.d (modified) (93 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/win32/winbase.d
r207 r208 31 31 SIZE_T GlobalCompact(DWORD); 32 32 VOID GlobalFix(HGLOBAL); 33 * MSDN contradicts itself on GlobalFlags: 34 * "This function is provided only for compatibility with 16-bit versions of Windows." 35 * but also requires Windows 2000 or above 33 36 UINT GlobalFlags(HGLOBAL); 34 37 VOID GlobalUnfix(HGLOBAL); … … 90 93 +/ 91 94 92 // ----93 95 // COMMPROP structure, used by GetCommProperties() 96 // ----------------------------------------------- 94 97 95 98 // Communications provider type 96 99 enum : DWORD { 97 PST_UNSPECIFIED =0,100 PST_UNSPECIFIED, 98 101 PST_RS232, 99 102 PST_PARALLELPORT, … … 101 104 PST_RS423, 102 105 PST_RS449, 103 PST_MODEM, // =6104 PST_FAX = 0x 21,105 PST_SCANNER = 0x 22,106 PST_NETWORK_BRIDGE = 0x 100,107 PST_LAT = 0x 101,108 PST_TCPIP_TELNET = 0x 102,109 PST_X25 = 0x 103106 PST_MODEM, // = 6 107 PST_FAX = 0x0021, 108 PST_SCANNER = 0x0022, 109 PST_NETWORK_BRIDGE = 0x0100, 110 PST_LAT = 0x0101, 111 PST_TCPIP_TELNET = 0x0102, 112 PST_X25 = 0x0103 110 113 } 111 114 112 115 // Max baud rate 113 116 enum : DWORD { 114 BAUD_075 = 1, 115 BAUD_110 = 2, 116 BAUD_134_5 = 4, 117 BAUD_150 = 8, 118 BAUD_300 = 16, 119 BAUD_600 = 32, 120 BAUD_1200 = 64, 121 BAUD_1800 = 128, 122 BAUD_2400 = 256, 123 BAUD_4800 = 512, 124 BAUD_7200 = 1024, 125 BAUD_9600 = 2048, 126 BAUD_14400 = 4096, 127 BAUD_19200 = 8192, 128 BAUD_38400 = 16384, 129 BAUD_56K = 32768, 130 BAUD_128K = 65536, 131 132 BAUD_57600 = 262144, 133 BAUD_115200 = 131072, 117 BAUD_075 = 0x00000001, 118 BAUD_110 = 0x00000002, 119 BAUD_134_5 = 0x00000004, 120 BAUD_150 = 0x00000008, 121 BAUD_300 = 0x00000010, 122 BAUD_600 = 0x00000020, 123 BAUD_1200 = 0x00000040, 124 BAUD_1800 = 0x00000080, 125 BAUD_2400 = 0x00000100, 126 BAUD_4800 = 0x00000200, 127 BAUD_7200 = 0x00000400, 128 BAUD_9600 = 0x00000800, 129 BAUD_14400 = 0x00001000, 130 BAUD_19200 = 0x00002000, 131 BAUD_38400 = 0x00004000, 132 BAUD_56K = 0x00008000, 133 BAUD_128K = 0x00010000, 134 BAUD_115200 = 0x00020000, 135 BAUD_57600 = 0x00040000, 134 136 BAUD_USER = 0x10000000 135 137 } … … 137 139 // Comm capabilities 138 140 enum : DWORD { 139 PCF_DTRDSR =1,140 PCF_RTSCTS =2,141 PCF_RLSD =4,142 PCF_PARITY_CHECK =8,143 PCF_XONXOFF = 16,144 PCF_SETXCHAR = 32,145 PCF_TOTALTIMEOUTS = 64,146 PCF_INTTIMEOUTS = 128,147 PCF_SPECIALCHARS = 256,148 PCF_16BITMODE = 512141 PCF_DTRDSR = 0x0001, 142 PCF_RTSCTS = 0x0002, 143 PCF_RLSD = 0x0004, 144 PCF_PARITY_CHECK = 0x0008, 145 PCF_XONXOFF = 0x0010, 146 PCF_SETXCHAR = 0x0020, 147 PCF_TOTALTIMEOUTS = 0x0040, 148 PCF_INTTIMEOUTS = 0x0080, 149 PCF_SPECIALCHARS = 0x0100, 150 PCF_16BITMODE = 0x0200 149 151 } 150 152 … … 169 171 170 172 enum : WORD { 171 STOPBITS_10 = 1,172 STOPBITS_15 = 2,173 STOPBITS_20 = 4,174 PARITY_NONE = 256,175 PARITY_ODD = 512,176 PARITY_EVEN = 1024,177 PARITY_MARK = 2048,178 PARITY_SPACE = 4096173 STOPBITS_10 = 0x0001, 174 STOPBITS_15 = 0x0002, 175 STOPBITS_20 = 0x0004, 176 PARITY_NONE = 0x0100, 177 PARITY_ODD = 0x0200, 178 PARITY_EVEN = 0x0400, 179 PARITY_MARK = 0x0800, 180 PARITY_SPACE = 0x1000 179 181 } 180 182 … … 183 185 184 186 struct COMMPROP { 185 WORD wPacketLength; 186 WORD wPacketVersion; 187 DWORD dwServiceMask; 188 DWORD dwReserved1; 189 DWORD dwMaxTxQueue; 190 DWORD dwMaxRxQueue; 191 DWORD dwMaxBaud; 192 DWORD dwProvSubType; 193 DWORD dwProvCapabilities; 194 DWORD dwSettableParams; 195 DWORD dwSettableBaud; 196 WORD wSettableData; 197 WORD wSettableStopParity; 198 DWORD dwCurrentTxQueue; 199 DWORD dwCurrentRxQueue; 200 DWORD dwProvSpec1; 201 DWORD dwProvSpec2; 202 WCHAR[1] wcProvChar; 187 WORD wPacketLength; 188 WORD wPacketVersion; 189 DWORD dwServiceMask; 190 DWORD dwReserved1; 191 DWORD dwMaxTxQueue; 192 DWORD dwMaxRxQueue; 193 DWORD dwMaxBaud; 194 DWORD dwProvSubType; 195 DWORD dwProvCapabilities; 196 DWORD dwSettableParams; 197 DWORD dwSettableBaud; 198 WORD wSettableData; 199 WORD wSettableStopParity; 200 DWORD dwCurrentTxQueue; 201 DWORD dwCurrentRxQueue; 202 DWORD dwProvSpec1; 203 DWORD dwProvSpec2; 204 WCHAR _wcProvChar; 205 206 WCHAR* wcProvChar() { return &_wcProvChar; } 203 207 } 204 208 alias COMMPROP* LPCOMMPROP; 205 209 206 //------- 210 // ---------- 211 207 212 // for DEBUG_EVENT 208 213 enum : DWORD { … … 218 223 } 219 224 220 const HFILE HFILE_ERROR = cast(HFILE) (-1);225 const HFILE HFILE_ERROR = cast(HFILE) (-1); 221 226 222 227 // for SetFilePointer() … … 231 236 // for OpenFile() 232 237 deprecated enum : UINT { 233 OF_READ = 0,234 OF_WRITE =1,235 OF_READWRITE =2,238 OF_READ = 0, 239 OF_WRITE = 0x0001, 240 OF_READWRITE = 0x0002, 236 241 OF_SHARE_COMPAT = 0, 237 OF_SHARE_EXCLUSIVE = 16,238 OF_SHARE_DENY_WRITE = 32,239 OF_SHARE_DENY_READ = 48,240 OF_SHARE_DENY_NONE = 64,241 OF_PARSE = 256,242 OF_DELETE = 512,243 OF_VERIFY = 1024,244 OF_CANCEL = 2048,245 OF_CREATE = 4096,246 OF_PROMPT = 8192,247 OF_EXIST = 16384,248 OF_REOPEN = 32768242 OF_SHARE_EXCLUSIVE = 0x0010, 243 OF_SHARE_DENY_WRITE = 0x0020, 244 OF_SHARE_DENY_READ = 0x0030, 245 OF_SHARE_DENY_NONE = 0x0040, 246 OF_PARSE = 0x0100, 247 OF_DELETE = 0x0200, 248 OF_VERIFY = 0x0400, 249 OF_CANCEL = 0x0800, 250 OF_CREATE = 0x1000, 251 OF_PROMPT = 0x2000, 252 OF_EXIST = 0x4000, 253 OF_REOPEN = 0x8000 249 254 } 250 255 251 256 enum : DWORD { 252 NMPWAIT_NOWAIT = 1,257 NMPWAIT_NOWAIT = 1, 253 258 NMPWAIT_WAIT_FOREVER = -1, 254 NMPWAIT_USE_DEFAULT_WAIT = 0259 NMPWAIT_USE_DEFAULT_WAIT = 0 255 260 } 256 261 257 262 // for ClearCommError() 258 263 const DWORD 259 CE_RXOVER = 1,260 CE_OVERRUN = 2,261 CE_RXPARITY = 4,262 CE_FRAME = 8,263 CE_BREAK = 16,264 CE_TXFULL = 256,265 CE_PTO = 512,266 CE_IOE = 1024,267 CE_DNS = 2048,268 CE_OOP = 4096,269 CE_MODE = 32768;264 CE_RXOVER = 0x0001, 265 CE_OVERRUN = 0x0002, 266 CE_RXPARITY = 0x0004, 267 CE_FRAME = 0x0008, 268 CE_BREAK = 0x0010, 269 CE_TXFULL = 0x0100, 270 CE_PTO = 0x0200, 271 CE_IOE = 0x0400, 272 CE_DNS = 0x0800, 273 CE_OOP = 0x1000, 274 CE_MODE = 0x8000; 270 275 271 276 // for CopyProgressRoutine callback. … … 292 297 FILE_MAP_WRITE = 2, 293 298 FILE_MAP_READ = 4, 294 FILE_MAP_ALL_ACCESS = 0xf001f 295 } 296 297 const DWORD 298 MUTEX_ALL_ACCESS = 0x1f0001, 299 MUTEX_MODIFY_STATE = 1, 300 SEMAPHORE_ALL_ACCESS = 0x1f0003, 301 SEMAPHORE_MODIFY_STATE = 2, 302 EVENT_ALL_ACCESS = 0x1f0003, 303 EVENT_MODIFY_STATE = 2; 299 FILE_MAP_ALL_ACCESS = 0x000F001F 300 } 301 302 enum : DWORD { 303 MUTEX_ALL_ACCESS = 0x001f0001, 304 MUTEX_MODIFY_STATE = 0x00000001, 305 SEMAPHORE_ALL_ACCESS = 0x001f0003, 306 SEMAPHORE_MODIFY_STATE = 0x00000002, 307 EVENT_ALL_ACCESS = 0x001f0003, 308 EVENT_MODIFY_STATE = 0x00000002 309 } 304 310 305 311 // CreateNamedPipe() … … 326 332 327 333 // dwCreationFlags for CreateProcess() and CreateProcessAsUser() 328 enum : DWORD {334 enum : DWORD { 329 335 DEBUG_PROCESS = 0x00000001, 330 336 DEBUG_ONLY_THIS_PROCESS = 0x00000002, … … 352 358 } 353 359 354 const CONSOLE_TEXTMODE_BUFFER = 1;360 const DWORD CONSOLE_TEXTMODE_BUFFER = 1; 355 361 356 362 // CreateFile() … … 364 370 365 371 // CreateFile() 366 enum : DWORD { 372 const DWORD 367 373 FILE_FLAG_WRITE_THROUGH = 0x80000000, 368 FILE_FLAG_OVERLAPPED = 1073741824, 369 FILE_FLAG_NO_BUFFERING = 536870912, 370 FILE_FLAG_RANDOM_ACCESS = 268435456, 371 FILE_FLAG_SEQUENTIAL_SCAN = 134217728, 372 FILE_FLAG_DELETE_ON_CLOSE = 67108864, 373 FILE_FLAG_BACKUP_SEMANTICS = 33554432, 374 FILE_FLAG_POSIX_SEMANTICS = 16777216, 375 FILE_FLAG_OPEN_REPARSE_POINT = 2097152, 376 FILE_FLAG_OPEN_NO_RECALL = 1048576 374 FILE_FLAG_OVERLAPPED = 0x40000000, 375 FILE_FLAG_NO_BUFFERING = 0x20000000, 376 FILE_FLAG_RANDOM_ACCESS = 0x10000000, 377 FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000, 378 FILE_FLAG_DELETE_ON_CLOSE = 0x04000000, 379 FILE_FLAG_BACKUP_SEMANTICS = 0x02000000, 380 FILE_FLAG_POSIX_SEMANTICS = 0x01000000, 381 FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000, 382 FILE_FLAG_OPEN_NO_RECALL = 0x00100000; 383 384 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 385 const DWORD FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000; 377 386 } 378 387 379 388 // for CreateFile() 380 389 const DWORD 381 SECURITY_ANONYMOUS = (SECURITY_IMPERSONATION_LEVEL.SecurityAnonymous<<16), 382 SECURITY_IDENTIFICATION = (SECURITY_IMPERSONATION_LEVEL.SecurityIdentification<<16), 383 SECURITY_IMPERSONATION = (SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation<<16), 384 SECURITY_DELEGATION = (SECURITY_IMPERSONATION_LEVEL.SecurityDelegation<<16), 385 SECURITY_CONTEXT_TRACKING = 0x40000, 386 SECURITY_EFFECTIVE_ONLY = 0x80000, 387 SECURITY_SQOS_PRESENT = 0x100000, 388 SECURITY_VALID_SQOS_FLAGS = 0x1F0000; 389 390 391 static if (_WIN32_WINNT >= 0x0500) { 392 const FILE_FLAG_FIRST_PIPE_INSTANCE = 524288; 393 } 390 SECURITY_ANONYMOUS = SECURITY_IMPERSONATION_LEVEL.SecurityAnonymous<<16, 391 SECURITY_IDENTIFICATION = SECURITY_IMPERSONATION_LEVEL.SecurityIdentification<<16, 392 SECURITY_IMPERSONATION = SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation<<16, 393 SECURITY_DELEGATION = SECURITY_IMPERSONATION_LEVEL.SecurityDelegation<<16, 394 SECURITY_CONTEXT_TRACKING = 0x00040000, 395 SECURITY_EFFECTIVE_ONLY = 0x00080000, 396 SECURITY_SQOS_PRESENT = 0x00100000, 397 SECURITY_VALID_SQOS_FLAGS = 0x001F0000; 398 394 399 395 400 // Thread exit code 396 401 const DWORD STILL_ACTIVE = 0x103; 397 402 398 const FIND_FIRST_EX_CASE_SENSITIVE = 1; 403 /* ??? The only documentation of this seems to be about Windows CE and to 404 * state what _doesn't_ support it. 405 */ 406 const DWORD FIND_FIRST_EX_CASE_SENSITIVE = 1; 399 407 400 408 // GetBinaryType() … … 408 416 } 409 417 410 const MAX_COMPUTERNAME_LENGTH = 15; 411 412 const HW_PROFILE_GUIDLEN = 39; 413 414 const MAX_PROFILE_LEN = 80; 418 const size_t 419 MAX_COMPUTERNAME_LENGTH = 15, 420 HW_PROFILE_GUIDLEN = 39, 421 MAX_PROFILE_LEN = 80; 415 422 416 423 // HW_PROFILE_INFO … … 421 428 DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED, 422 429 DOCKINFO_USER_DOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED; 423 424 430 425 431 // DriveType(), RealDriveType() … … 449 455 450 456 enum : DWORD { 451 STD_INPUT_HANDLE = 0xfffffff6, 452 STD_OUTPUT_HANDLE = 0xfffffff5, 453 STD_ERROR_HANDLE = 0xfffffff4 454 } 455 456 const INVALID_HANDLE_VALUE = cast(HANDLE)(-1); 457 458 const GET_TAPE_MEDIA_INFORMATION = 0; 459 const GET_TAPE_DRIVE_INFORMATION = 1; 460 const SET_TAPE_MEDIA_INFORMATION = 0; 461 const SET_TAPE_DRIVE_INFORMATION = 1; 457 STD_INPUT_HANDLE = 0xFFFFFFF6, 458 STD_OUTPUT_HANDLE = 0xFFFFFFF5, 459 STD_ERROR_HANDLE = 0xFFFFFFF4 460 } 461 462 const HANDLE INVALID_HANDLE_VALUE = cast(HANDLE) (-1); 463 464 enum : DWORD { 465 GET_TAPE_MEDIA_INFORMATION = 0, 466 GET_TAPE_DRIVE_INFORMATION = 1 467 } 468 469 enum : DWORD { 470 SET_TAPE_MEDIA_INFORMATION = 0, 471 SET_TAPE_DRIVE_INFORMATION = 1 472 } 462 473 463 474 // SetThreadPriority()/GetThreadPriority() 464 const int 465 THREAD_PRIORITY_ABOVE_NORMAL = 1, 466 THREAD_PRIORITY_BELOW_NORMAL = -1, 467 THREAD_PRIORITY_HIGHEST = 2, 475 enum : int { 468 476 THREAD_PRIORITY_IDLE = -15, 469 THREAD_PRIORITY_LOWEST = -2, 470 THREAD_PRIORITY_NORMAL = 0, 471 THREAD_PRIORITY_TIME_CRITICAL = 15; 472 473 const int THREAD_PRIORITY_ERROR_RETURN = 2147483647; 474 475 const TIME_ZONE_ID_UNKNOWN = 0; 476 const TIME_ZONE_ID_STANDARD = 1; 477 const TIME_ZONE_ID_DAYLIGHT = 2; 478 const TIME_ZONE_ID_INVALID = 0xFFFFFFFF; 479 480 const FS_CASE_SENSITIVE = 1; 481 const FS_CASE_IS_PRESERVED = 2; 482 const FS_UNICODE_STORED_ON_DISK = 4; 483 const FS_PERSISTENT_ACLS = 8; 484 const FS_FILE_COMPRESSION = 16; 485 const FS_VOL_IS_COMPRESSED = 32768; 477 THREAD_PRIORITY_LOWEST = -2, 478 THREAD_PRIORITY_BELOW_NORMAL = -1, 479 THREAD_PRIORITY_NORMAL = 0, 480 THREAD_PRIORITY_ABOVE_NORMAL = 1, 481 THREAD_PRIORITY_HIGHEST = 2, 482 THREAD_PRIORITY_TIME_CRITICAL = 15, 483 THREAD_PRIORITY_ERROR_RETURN = 2147483647 484 } 485 486 enum : DWORD { 487 TIME_ZONE_ID_UNKNOWN, 488 TIME_ZONE_ID_STANDARD, 489 TIME_ZONE_ID_DAYLIGHT, 490 TIME_ZONE_ID_INVALID = 0xFFFFFFFF 491 } 492 493 const DWORD 494 FS_CASE_SENSITIVE = 1, 495 FS_CASE_IS_PRESERVED = 2, 496 FS_UNICODE_STORED_ON_DISK = 4, 497 FS_PERSISTENT_ACLS = 8, 498 FS_FILE_COMPRESSION = 16, 499 FS_VOL_IS_COMPRESSED = 32768; 486 500 487 501 // Flags for GlobalAlloc 488 enum : SIZE_T { 489 GMEM_FIXED = 0, 490 GMEM_MOVEABLE = 2, 491 GMEM_ZEROINIT = 64, 492 GPTR = 66, 493 // Used only for GlobalRealloc 494 GMEM_MODIFY = 128 502 const UINT 503 GMEM_FIXED = 0, 504 GMEM_MOVEABLE = 0x0002, 505 GMEM_ZEROINIT = 0x0040, 506 GPTR = 0x0040, 507 GHND = 0x0042, 508 GMEM_MODIFY = 0x0080, // used only for GlobalRealloc 509 GMEM_VALID_FLAGS = 0x7F72; 495 510 496 511 /+ // Obselete flags (Win16 only) … … 504 519 505 520 GMEM_LOCKCOUNT=255; 521 522 // for GlobalFlags() 523 GMEM_DISCARDED = 16384; 524 GMEM_INVALID_HANDLE = 32768; 525 526 GMEM_NOTIFY = 16384; 506 527 +/ 507 } 508 509 // for GlobalFlags(). 510 const GMEM_DISCARDED = 16384; 511 const GMEM_INVALID_HANDLE = 32768; 512 513 const GMEM_NOTIFY = 16384; 514 const GMEM_VALID_FLAGS = 32626; 515 516 const GHND = 64; 517 518 const LMEM_FIXED = 0; 519 const LMEM_MOVEABLE = 2; 520 const LMEM_NONZEROLHND = 2; 521 const LMEM_NONZEROLPTR = 0; 522 const LMEM_DISCARDABLE = 3840; 523 const LMEM_NOCOMPACT = 16; 524 const LMEM_NODISCARD = 32; 525 const LMEM_ZEROINIT = 64; 526 const LMEM_MODIFY = 128; 527 const LMEM_LOCKCOUNT = 255; 528 const LMEM_DISCARDED = 16384; 529 const LMEM_INVALID_HANDLE = 32768; 530 531 const LPTR = 64; 532 const LHND = 66; 533 534 const NONZEROLHND = 2; 535 const NONZEROLPTR = 0; 528 529 const UINT 530 LMEM_FIXED = 0, 531 LMEM_MOVEABLE = 0x0002, 532 LMEM_NONZEROLPTR = 0, 533 NONZEROLPTR = 0, 534 LMEM_NONZEROLHND = 0x0002, 535 NONZEROLHND = 0x0002, 536 LMEM_DISCARDABLE = 0x0F00, 537 LMEM_NOCOMPACT = 0x0010, 538 LMEM_NODISCARD = 0x0020, 539 LMEM_ZEROINIT = 0x0040, 540 LPTR = 0x0040, 541 LHND = 0x0042, 542 LMEM_MODIFY = 0x0080, 543 LMEM_LOCKCOUNT = 0x00FF, 544 LMEM_DISCARDED = 0x4000, 545 LMEM_INVALID_HANDLE = 0x8000; 546 547 536 548 537 549 // used in EXCEPTION_RECORD … … 601 613 // for PROCESS_HEAP_ENTRY 602 614 const WORD 603 PROCESS_HEAP_REGION = 1,604 PROCESS_HEAP_UNCOMMITTED_RANGE = 2,605 PROCESS_HEAP_ENTRY_BUSY = 4,615 PROCESS_HEAP_REGION = 1, 616 PROCESS_HEAP_UNCOMMITTED_RANGE = 2, 617 PROCESS_HEAP_ENTRY_BUSY = 4, 606 618 PROCESS_HEAP_ENTRY_MOVEABLE = 16, 607 619 PROCESS_HEAP_ENTRY_DDESHARE = 32; … … 609 621 // for LoadLibraryEx() 610 622 const DWORD 611 DONT_RESOLVE_DLL_REFERENCES = 1, // not for WinME and earlier612 LOAD_LIBRARY_AS_DATAFILE = 2,613 LOAD_WITH_ALTERED_SEARCH_PATH = 8,623 DONT_RESOLVE_DLL_REFERENCES = 0x01, // not for WinME and earlier 624 LOAD_LIBRARY_AS_DATAFILE = 0x02, 625 LOAD_WITH_ALTERED_SEARCH_PATH = 0x08, 614 626 LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10; // only for XP and later 615 627 … … 619 631 LOCKFILE_EXCLUSIVE_LOCK = 2; 620 632 621 static if (_WIN32_WINNT_ONLY) {622 // for LogonUser()623 enum : DWORD {624 LOGON32_LOGON_INTERACTIVE = 2,625 LOGON32_LOGON_NETWORK = 3,626 LOGON32_LOGON_BATCH = 4,627 LOGON32_LOGON_SERVICE = 5,628 LOGON32_LOGON_UNLOCK = 7629 }630 631 static if (_WIN32_WINNT >= 0x500) enum : DWORD {632 LOGON32_LOGON_NETWORK_CLEARTEXT = 8,633 LOGON32_LOGON_NEW_CREDENTIALS = 9634 }635 636 // for LogonUser()637 enum : DWORD {638 LOGON32_PROVIDER_DEFAULT = 0,639 LOGON32_PROVIDER_WINNT35 = 1,640 LOGON32_PROVIDER_WINNT40 = 2,641 LOGON32_PROVIDER_WINNT50 = 3642 }643 }644 645 // for MoveFileEx()646 const DWORD647 MOVEFILE_REPLACE_EXISTING = 1,648 MOVEFILE_COPY_ALLOWED = 2,649 MOVEFILE_DELAY_UNTIL_REBOOT = 4,650 MOVEFILE_WRITE_THROUGH = 8;651 652 633 const MAXIMUM_WAIT_OBJECTS = 64; 653 634 const MAXIMUM_SUSPEND_COUNT = 0x7F; … … 659 640 660 641 enum : DWORD { 661 WAIT_IO_COMPLETION = 0x C0,662 WAIT_ABANDONED = 128,642 WAIT_IO_COMPLETION = 0x000000C0, 643 WAIT_ABANDONED = 0x00000080, 663 644 WAIT_FAILED = 0xFFFFFFFF 664 645 } … … 690 671 // FormatMessage() 691 672 const DWORD 692 FORMAT_MESSAGE_ALLOCATE_BUFFER = 256,693 FORMAT_MESSAGE_IGNORE_INSERTS = 512,694 FORMAT_MESSAGE_FROM_STRING = 1024,695 FORMAT_MESSAGE_FROM_HMODULE = 2048,696 FORMAT_MESSAGE_FROM_SYSTEM = 4096,697 FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192;673 FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x0100, 674 FORMAT_MESSAGE_IGNORE_INSERTS = 0x0200, 675 FORMAT_MESSAGE_FROM_STRING = 0x0400, 676 FORMAT_MESSAGE_FROM_HMODULE = 0x0800, 677 FORMAT_MESSAGE_FROM_SYSTEM = 0x1000, 678 FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x2000; 698 679 699 680 const DWORD FORMAT_MESSAGE_MAX_WIDTH_MASK = 255; … … 719 700 // Return type for exception filters. 720 701 enum : LONG { 721 EXCEPTION_EXECUTE_HANDLER = 1,702 EXCEPTION_EXECUTE_HANDLER = 1, 722 703 EXCEPTION_CONTINUE_EXECUTION = -1, 723 EXCEPTION_CONTINUE_SEARCH = 0704 EXCEPTION_CONTINUE_SEARCH = 0 724 705 } 725 706 … … 729 710 } 730 711 731 const IGNORE = 0;712 const IGNORE = 0; 732 713 const INFINITE = 0xFFFFFFFF; 733 714 734 715 // EscapeCommFunction() 735 716 enum { 736 SETXOFF = 1,717 SETXOFF = 1, 737 718 SETXON, 738 719 SETRTS, 739 720 CLRRTS, 740 721 SETDTR, 741 CLRDTR, // = 6742 SETBREAK = 8,743 CLRBREAK = 9722 CLRDTR, // = 6 723 SETBREAK = 8, 724 CLRBREAK = 9 744 725 } 745 726 … … 747 728 // for SetCommMask() 748 729 const DWORD 749 EV_RXCHAR = 1,750 EV_RXFLAG = 2,751 EV_TXEMPTY = 4,752 EV_CTS = 8,753 EV_DSR = 16,754 EV_RLSD = 32,755 EV_BREAK = 64,756 EV_ERR = 128,757 EV_RING = 256,758 EV_PERR = 512,759 EV_RX80FULL = 1024,760 EV_EVENT1 = 2048,761 EV_EVENT2 = 4096;730 EV_RXCHAR = 0x0001, 731 EV_RXFLAG = 0x0002, 732 EV_TXEMPTY = 0x0004, 733 EV_CTS = 0x0008, 734 EV_DSR = 0x0010, 735 EV_RLSD = 0x0020, 736 EV_BREAK = 0x0040, 737 EV_ERR = 0x0080, 738 EV_RING = 0x0100, 739 EV_PERR = 0x0200, 740 EV_RX80FULL = 0x0400, 741 EV_EVENT1 = 0x0800, 742 EV_EVENT2 = 0x1000; 762 743 763 744 // GetCommModemStatus() 764 745 const DWORD 765 MS_CTS_ON = 16,766 MS_DSR_ON = 32,767 MS_RING_ON = 64,768 MS_RLSD_ON = 128;746 MS_CTS_ON = 0x0010, 747 MS_DSR_ON = 0x0020, 748 MS_RING_ON = 0x0040, 749 MS_RLSD_ON = 0x0080; 769 750 770 751 … … 785 766 // DCB 786 767 enum : DWORD { 787 CBR_110 = 110,788 CBR_300 = 300,789 CBR_600 = 600,790 CBR_1200 = 1200,791 CBR_2400 = 2400,792 CBR_4800 = 4800,793 CBR_9600 = 9600,794 CBR_14400 = 14400,795 CBR_19200 = 19200,796 CBR_38400 = 38400,797 CBR_56000 = 56000,798 CBR_57600 = 57600,768 CBR_110 = 110, 769 CBR_300 = 300, 770 CBR_600 = 600, 771 CBR_1200 = 1200, 772 CBR_2400 = 2400, 773 CBR_4800 = 4800, 774 CBR_9600 = 9600, 775 CBR_14400 = 14400, 776 CBR_19200 = 19200, 777 CBR_38400 = 38400, 778 CBR_56000 = 56000, 779 CBR_57600 = 57600, 799 780 CBR_115200 = 115200, 800 781 CBR_128000 = 128000, … … 840 821 // STARTUPINFO 841 822 const DWORD 842 STARTF_USESHOWWINDOW = 1,843 STARTF_USESIZE = 2,844 STARTF_USEPOSITION = 4,845 STARTF_USECOUNTCHARS = 8,846 STARTF_USEFILLATTRIBUTE = 16,847 STARTF_RUNFULLSCREEN = 32,848 STARTF_FORCEONFEEDBACK = 64,849 STARTF_FORCEOFFFEEDBACK = 128,850 STARTF_USESTDHANDLES = 256,851 STARTF_USEHOTKEY = 512;823 STARTF_USESHOWWINDOW = 0x0001, 824 STARTF_USESIZE = 0x0002, 825 STARTF_USEPOSITION = 0x0004, 826 STARTF_USECOUNTCHARS = 0x0008, 827 STARTF_USEFILLATTRIBUTE = 0x0010, 828 STARTF_RUNFULLSCREEN = 0x0020, 829 STARTF_FORCEONFEEDBACK = 0x0040, 830 STARTF_FORCEOFFFEEDBACK = 0x0080, 831 STARTF_USESTDHANDLES = 0x0100, 832 STARTF_USEHOTKEY = 0x0200; 852 833 853 834 // ??? … … 859 840 } 860 841 861 / / ???842 /+ These seem to be Windows CE-specific 862 843 enum { 863 844 AC_LINE_OFFLINE = 0, … … 867 848 } 868 849 869 // ???870 850 enum { 871 851 BATTERY_FLAG_HIGH = 1, … … 878 858 BATTERY_LIFE_UNKNOWN = 0xFFFFFFFF 879 859 } 880 881 // DefineDosDevice() 882 const DWORD 883 DDD_RAW_TARGET_PATH = 1, 884 DDD_REMOVE_DEFINITION = 2, 885 DDD_EXACT_MATCH_ON_REMOVE = 4; 860 +/ 886 861 887 862 // ??? … … 893 868 const DWORD TLS_OUT_OF_INDEXES = 0xFFFFFFFF; 894 869 895 static if (WINVER >= 0x501) {896 const DWORD897 GET_MODULE_HANDLE_EX_FLAG_PIN = 1,898 GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2,899 GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4;900 }901 902 static if (_WIN32_WINNT >= 0x0501) {903 // for ACTCTX904 const DWORD905 ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x00000001,906 ACTCTX_FLAG_LANGID_VALID = 0x00000002,907 ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x00000004,908 ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x00000008,909 ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x00000010,910 ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x00000020,911 ACTCTX_FLAG_HMODULE_VALID = 0x00000080;912 913 // DeactivateActCtx()914 const DWORD DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 0x00000001;915 // FindActCtxSectionString()916 const DWORD FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 0x00000001;917 // QueryActCtxW()918 const DWORD919 QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x00000004,920 QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x00000008,921 QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x00000010;922 }923 924 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) {925 // ReplaceFile()926 const DWORD927 REPLACEFILE_WRITE_THROUGH = 0x00000001,928 REPLACEFILE_IGNORE_MERGE_ERRORS = 0x00000002;929 }930 931 870 // GetWriteWatch() 932 871 const DWORD WRITE_WATCH_FLAG_RESET = 1; 872 873 static if (_WIN32_WINNT_ONLY) { 874 // for LogonUser() 875 enum : DWORD { 876 LOGON32_LOGON_INTERACTIVE = 2, 877 LOGON32_LOGON_NETWORK = 3, 878 LOGON32_LOGON_BATCH = 4, 879 LOGON32_LOGON_SERVICE = 5, 880 LOGON32_LOGON_UNLOCK = 7 881 } 882 883 static if (_WIN32_WINNT >= 0x500) { 884 enum : DWORD { 885 LOGON32_LOGON_NETWORK_CLEARTEXT = 8, 886 LOGON32_LOGON_NEW_CREDENTIALS = 9 887 } 888 } 889 890 // for LogonUser() 891 enum : DWORD { 892 LOGON32_PROVIDER_DEFAULT, 893 LOGON32_PROVIDER_WINNT35, 894 LOGON32_PROVIDER_WINNT40, 895 LOGON32_PROVIDER_WINNT50 896 } 897 898 // for MoveFileEx() 899 const DWORD 900 MOVEFILE_REPLACE_EXISTING = 1, 901 MOVEFILE_COPY_ALLOWED = 2, 902 MOVEFILE_DELAY_UNTIL_REBOOT = 4, 903 MOVEFILE_WRITE_THROUGH = 8; 904 905 // DefineDosDevice() 906 const DWORD 907 DDD_RAW_TARGET_PATH = 1, 908 DDD_REMOVE_DEFINITION = 2, 909 DDD_EXACT_MATCH_ON_REMOVE = 4; 910 911 static if (_WIN32_WINNT >= 0x500) { 912 // ReplaceFile() 913 const DWORD 914 REPLACEFILE_WRITE_THROUGH = 1, 915 REPLACEFILE_IGNORE_MERGE_ERRORS = 2; 916 } 917 918 static if (_WIN32_WINNT >= 0x501) { 919 const DWORD 920 GET_MODULE_HANDLE_EX_FLAG_PIN = 1, 921 GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2, 922 GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4; 923 924 // for ACTCTX 925 const DWORD 926 ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x01, 927 ACTCTX_FLAG_LANGID_VALID = 0x02, 928 ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x04, 929 ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x08, 930 ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x10, 931 ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x20, 932 ACTCTX_FLAG_HMODULE_VALID = 0x80; 933 934 // DeactivateActCtx() 935 const DWORD DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 1; 936 // FindActCtxSectionString() 937 const DWORD FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 1; 938 // QueryActCtxW() 939 const DWORD 940 QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x04, 941 QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x08, 942 QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x10; 943 } 944 } 933 945 934 946 // ---- … … 974 986 +/ 975 987 uint _bf; 976 void fBinary(bool f) { _bf = (_bf & ~1) |f; }977 void fParity(bool f) { _bf = (_bf & ~2) | (f<<1); }978 void fOutxCtsFlow(bool f) { _bf = (_bf & ~4)| (f<<2); }979 void fOutxDsrFlow(bool f) { _bf = (_bf & ~8) | (f<<3);}980 void fDtrControl(byte x) { _bf = (_bf & ~(32+16)) | (x<<4); }981 void fDsrSensitivity(bool f) { _bf = (_bf & ~64) | (f<<6); }982 void fTXContinueOnXoff(bool f) { _bf = (_bf & ~128) | (f<<7); }983 void fOutX(bool f) { _bf = (_bf & ~256) | (f<<8); }984 void fInX(bool f) { _bf = (_bf & ~512) | (f<<9); }985 void fErrorChar(bool f) { _bf = (_bf & ~1024) | (f<<10); }986 void fNull(bool f) { _bf = (_bf & ~2048) | (f<<11); }987 void fRtsControl(byte x) { _bf = (_bf & ~(4096+8192)) | (x<<12); }988 void fAbortOnError(bool f) { _bf = (_bf & ~16384) | (f<<14); }989 990 bool fBinary() { return cast(bool) (_bf & 1); }991 bool fParity() { return cast(bool) (_bf & 2); }992 bool fOutxCtsFlow() { return cast(bool) (_bf & 4); }993 bool fOutxDsrFlow() { return cast(bool) (_bf & 8); }994 byte fDtrControl() { return cast(byte) ((_bf & (32+16))>>4); }995 bool fDsrSensitivity() { return cast(bool) (_bf & 64); }988 bool fBinary(bool f) { _bf = (_bf & ~0x0001) | f; return f; } 989 bool fParity(bool f) { _bf = (_bf & ~0x0002) | (f<<1); return f; } 990 bool fOutxCtsFlow(bool f) { _bf = (_bf & ~0x0004) | (f<<2); return f; } 991 bool fOutxDsrFlow(bool f) { _bf = (_bf & ~0x0008) | (f<<3); return f; } 992 byte fDtrControl(byte x) { _bf = (_bf & ~0x0030) | (x<<4); return x & 3; } 993 bool fDsrSensitivity(bool f) { _bf = (_bf & ~0x0040) | (f<<6); return f; } 994 bool fTXContinueOnXoff(bool f) { _bf = (_bf & ~0x0080) | (f<<7); return f; } 995 bool fOutX(bool f) { _bf = (_bf & ~0x0100) | (f<<8); return f; } 996 bool fInX(bool f) { _bf = (_bf & ~0x0200) | (f<<9); return f; } 997 bool fErrorChar(bool f) { _bf = (_bf & ~0x0400) | (f<<10); return f; } 998 bool fNull(bool f) { _bf = (_bf & ~0x0800) | (f<<11); return f; } 999 byte fRtsControl(byte x) { _bf = (_bf & ~0x3000) | (x<<12); return x & 3; } 1000 bool fAbortOnError(bool f) { _bf = (_bf & ~0x4000) | (f<<14); return f; } 1001 1002 bool fBinary() { return cast(bool) (_bf & 1); } 1003 bool fParity() { return cast(bool) (_bf & 2); } 1004 bool fOutxCtsFlow() { return cast(bool) (_bf & 4); } 1005 bool fOutxDsrFlow() { return cast(bool) (_bf & 8); } 1006 byte fDtrControl() { return cast(byte) ((_bf & (32+16))>>4); } 1007 bool fDsrSensitivity() { return cast(bool) (_bf & 64); } 996 1008 bool fTXContinueOnXoff() { return cast(bool) (_bf & 128); } 997 bool fOutX() { return cast(bool) (_bf & 256); }998 bool fInX() { return cast(bool) (_bf & 512); }999 bool fErrorChar() { return cast(bool) (_bf & 1024); }1000 bool fNull() { return cast(bool) (_bf & 2048); }1001 byte fRtsControl() { return cast(byte) ((_bf & (4096+8192))>>12); }1002 bool fAbortOnError() { return cast(bool) (_bf & 16384); }1009 bool fOutX() { return cast(bool) (_bf & 256); } 1010 bool fInX() { return cast(bool) (_bf & 512); } 1011 bool fErrorChar() { return cast(bool) (_bf & 1024); } 1012 bool fNull() { return cast(bool) (_bf & 2048); } 1013 byte fRtsControl() { return cast(byte) ((_bf & (4096+8192))>>12); } 1014 bool fAbortOnError() { return cast(bool) (_bf & 16384); } 1003 1015 1004 1016 WORD wReserved; … … 1018 1030 1019 1031 struct COMMCONFIG { 1020 DWORD dwSize ;1032 DWORD dwSize = COMMCONFIG.sizeof; 1021 1033 WORD wVersion; 1022 1034 WORD wReserved; … … 1025 1037 DWORD dwProviderOffset; 1026 1038 DWORD dwProviderSize; 1027 WCHAR wcProviderData[1]; 1039 WCHAR _wcProviderData; 1040 1041 WCHAR* wcProviderData() { return &_wcProviderData; } 1028 1042 } 1029 1043 alias COMMCONFIG* LPCOMMCONFIG; … … 1050 1064 +/ 1051 1065 DWORD _bf; 1052 void fCtsHold(bool f) { _bf = (_bf & ~1) | f; }1053 void fDsrHold(bool f) { _bf = (_bf & ~2) | (f<<1); }1054 void fRlsdHold(bool f) { _bf = (_bf & ~4) | (f<<2); }1055 void fXoffHold(bool f) { _bf = (_bf & ~8) | (f<<3); }1056 void fXoffSent(bool f) { _bf = (_bf & ~16) | (f<<4); }1057 void fEof(bool f) { _bf = (_bf & ~32) | (f<<5); }1058 void fTxim(bool f) { _bf = (_bf & ~64) | (f<<6); }1066 bool fCtsHold(bool f) { _bf = (_bf & ~1) | f; return f; } 1067 bool fDsrHold(bool f) { _bf = (_bf & ~2) | (f<<1); return f; } 1068 bool fRlsdHold(bool f) { _bf = (_bf & ~4) | (f<<2); return f; } 1069 bool fXoffHold(bool f) { _bf = (_bf & ~8) | (f<<3); return f; } 1070 bool fXoffSent(bool f) { _bf = (_bf & ~16) | (f<<4); return f; } 1071 bool fEof(bool f) { _bf = (_bf & ~32) | (f<<5); return f; } 1072 bool fTxim(bool f) { _bf = (_bf & ~64) | (f<<6); return f; } 1059 1073 1060 1074 bool fCtsHold() { return cast(bool) (_bf & 1); } … … 1076 1090 HANDLE hThread; 1077 1091 LPVOID lpBaseOfImage; 1078 DWORD dwDebugInfoFileOffset;1079 DWORD nDebugInfoSize;1092 DWORD dwDebugInfoFileOffset; 1093 DWORD nDebugInfoSize; 1080 1094 LPVOID lpThreadLocalBase; 1081 1095 LPTHREAD_START_ROUTINE lpStartAddress; 1082 1096 LPVOID lpImageName; 1083 WORD fUnicode;1097 WORD fUnicode; 1084 1098 } 1085 1099 alias CREATE_PROCESS_DEBUG_INFO* LPCREATE_PROCESS_DEBUG_INFO; … … 1094 1108 struct EXCEPTION_DEBUG_INFO { 1095 1109 EXCEPTION_RECORD ExceptionRecord; 1096 DWORD dwFirstChance;1110 DWORD dwFirstChance; 1097 1111 } 1098 1112 alias EXCEPTION_DEBUG_INFO* LPEXCEPTION_DEBUG_INFO; … … 1111 1125 HANDLE hFile; 1112 1126 LPVOID lpBaseOfDll; 1113 DWORD dwDebugInfoFileOffset;1114 DWORD nDebugInfoSize;1127 DWORD dwDebugInfoFileOffset; 1128 DWORD nDebugInfoSize; 1115 1129 LPVOID lpImageName; 1116 WORD fUnicode;1130 WORD fUnicode; 1117 1131 } 1118 1132 alias LOAD_DLL_DEBUG_INFO* LPLOAD_DLL_DEBUG_INFO; … … 1125 1139 struct OUTPUT_DEBUG_STRING_INFO { 1126 1140 LPSTR lpDebugStringData; 1127 WORD fUnicode;1128 WORD nDebugStringLength;1141 WORD fUnicode; 1142 WORD nDebugStringLength; 1129 1143 } 1130 1144 alias OUTPUT_DEBUG_STRING_INFO* LPOUTPUT_DEBUG_STRING_INFO; … … 1141 1155 DWORD dwThreadId; 1142 1156 union { 1143 EXCEPTION_DEBUG_INFO Exception;1144 CREATE_THREAD_DEBUG_INFO CreateThread;1157 EXCEPTION_DEBUG_INFO Exception; 1158 CREATE_THREAD_DEBUG_INFO CreateThread; 1145 1159 CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; 1146 EXIT_THREAD_DEBUG_INFO ExitThread;1147 EXIT_PROCESS_DEBUG_INFO ExitProcess;1148 LOAD_DLL_DEBUG_INFO LoadDll;1149 UNLOAD_DLL_DEBUG_INFO UnloadDll;1150 OUTPUT_DEBUG_STRING_INFO DebugString;1151 RIP_INFO RipInfo;1160 EXIT_THREAD_DEBUG_INFO ExitThread; 1161 EXIT_PROCESS_DEBUG_INFO ExitProcess; 1162 LOAD_DLL_DEBUG_INFO LoadDll; 1163 UNLOAD_DLL_DEBUG_INFO UnloadDll; 1164 OUTPUT_DEBUG_STRING_INFO DebugString; 1165 RIP_INFO RipInfo; 1152 1166 } 1153 1167 } … … 1210 1224 HANDLE hProcess; 1211 1225 HANDLE hThread; 1212 DWORD dwProcessId;1213 DWORD dwThreadId;1226 DWORD dwProcessId; 1227 DWORD dwThreadId; 1214 1228 } 1215 1229 alias PROCESS_INFORMATION* PPROCESS_INFORMATION, LPPROCESS_INFORMATION; 1216 1230 1217 1231 struct CRITICAL_SECTION_DEBUG { 1218 WORD Type;1219 WORD CreatorBackTraceIndex;1232 WORD Type; 1233 WORD CreatorBackTraceIndex; 1220 1234 CRITICAL_SECTION* CriticalSection; 1221 LIST_ENTRY ProcessLocksList;1222 DWORD EntryCount;1223 DWORD ContentionCount;1224 DWORD Spare [2];1235 LIST_ENTRY ProcessLocksList; 1236 DWORD EntryCount; 1237 DWORD ContentionCount; 1238 DWORD[2] Spare; 1225 1239 } 1226 1240 alias CRITICAL_SECTION_DEBUG* PCRITICAL_SECTION_DEBUG; … … 1228 1242 struct CRITICAL_SECTION { 1229 1243 PCRITICAL_SECTION_DEBUG DebugInfo; 1230 LONG LockCount;1231 LONG RecursionCount;1244 LONG LockCount; 1245 LONG RecursionCount; 1232 1246 HANDLE OwningThread; 1233 1247 HANDLE LockSemaphore; 1234 DWORD SpinCount;1248 DWORD SpinCount; 1235 1249 } 1236 1250 alias CRITICAL_SECTION* PCRITICAL_SECTION, LPCRITICAL_SECTION; … … 1248 1262 alias SYSTEMTIME* LPSYSTEMTIME; 1249 1263 1250 struct WIN32_FILE_ATTRIBUTE_DATA { 1251 DWORD dwFileAttributes; 1252 FILETIME ftCreationTime; 1253 FILETIME ftLastAccessTime; 1254 FILETIME ftLastWriteTime; 1255 DWORD nFileSizeHigh; 1256 DWORD nFileSizeLow; 1257 } 1258 alias WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA; 1264 static if (_WIN32_WINDOWS >= 0x410) { 1265 struct WIN32_FILE_ATTRIBUTE_DATA { 1266 DWORD dwFileAttributes; 1267 FILETIME ftCreationTime; 1268 FILETIME ftLastAccessTime; 1269 FILETIME ftLastWriteTime; 1270 DWORD nFileSizeHigh; 1271 DWORD nFileSizeLow; 1272 } 1273 alias WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA; 1274 } 1259 1275 1260 1276 struct WIN32_FIND_DATAA { … … 1298 1314 alias WIN32_FIND_DATAW* PWIN32_FIND_DATAW, LPWIN32_FIND_DATAW; 1299 1315 1300 struct WIN32_STREAM_ID { 1301 DWORD dwStreamId; 1302 DWORD dwStreamAttributes; 1303 LARGE_INTEGER Size; 1304 DWORD dwStreamNameSize; 1305 WCHAR cStreamName[ANYSIZE_ARRAY]; 1306 } 1307 alias WIN32_STREAM_ID* LPWIN32_STREAM_ID; 1308 1309 enum FINDEX_INFO_LEVELS { 1310 FindExInfoStandard, 1311 FindExInfoMaxInfoLevel 1312 } 1313 1314 enum FINDEX_SEARCH_OPS { 1315 FindExSearchNameMatch, 1316 FindExSearchLimitToDirectories, 1317 FindExSearchLimitToDevices, 1318 FindExSearchMaxSearchOp 1319 } 1320 1321 enum ACL_INFORMATION_CLASS { 1322 AclRevisionInformation=1, 1323 AclSizeInformation 1324 } 1325 1326 struct HW_PROFILE_INFOA { 1327 DWORD dwDockInfo; 1328 CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; 1329 CHAR szHwProfileName[MAX_PROFILE_LEN]; 1330 } 1331 alias HW_PROFILE_INFOA* LPHW_PROFILE_INFOA; 1332 1333 struct HW_PROFILE_INFOW { 1334 DWORD dwDockInfo; 1335 WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; 1336 WCHAR szHwProfileName[MAX_PROFILE_LEN]; 1337 } 1338 alias HW_PROFILE_INFOW* LPHW_PROFILE_INFOW; 1339 1316 static if (_WIN32_WINNT_ONLY) { 1317 struct WIN32_STREAM_ID { 1318 DWORD dwStreamId; 1319 DWORD dwStreamAttributes; 1320 LARGE_INTEGER Size; 1321 DWORD dwStreamNameSize; 1322 WCHAR _cStreamName; 1323 1324 WCHAR* cStreamName() { return &_cStreamName; } 1325 } 1326 alias WIN32_STREAM_ID* LPWIN32_STREAM_ID; 1327 1328 enum FINDEX_INFO_LEVELS { 1329 FindExInfoStandard, 1330 FindExInfoMaxInfoLevel 1331 } 1332 1333 enum FINDEX_SEARCH_OPS { 1334 FindExSearchNameMatch, 1335 FindExSearchLimitToDirectories, 1336 FindExSearchLimitToDevices, 1337 FindExSearchMaxSearchOp 1338 } 1339 1340 enum ACL_INFORMATION_CLASS { 1341 AclRevisionInformation = 1, 1342 AclSizeInformation 1343 } 1344 1345 struct HW_PROFILE_INFOA { 1346 DWORD dwDockInfo; 1347 CHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid; 1348 CHAR[MAX_PROFILE_LEN] szHwProfileName; 1349 } 1350 alias HW_PROFILE_INFOA* LPHW_PROFILE_INFOA; 1351 1352 struct HW_PROFILE_INFOW { 1353 DWORD dwDockInfo; 1354 WCHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid; 1355 WCHAR[MAX_PROFILE_LEN] szHwProfileName; 1356 } 1357 alias HW_PROFILE_INFOW* LPHW_PROFILE_INFOW; 1358 } 1359 1360 /* ??? MSDN documents this only for Windows CE/Mobile, but it's used by 1361 * GetFileAttributesEx, which is in desktop Windows. 1362 */ 1340 1363 enum GET_FILEEX_INFO_LEVELS { 1341 1364 GetFileExInfoStandard, … … 1358 1381 DWORD dwProcessorType; 1359 1382 DWORD dwAllocationGranularity; 1360 WORD wProcessorLevel;1361 WORD wProcessorRevision;1383 WORD wProcessorLevel; 1384 WORD wProcessorRevision; 1362 1385 } 1363 1386 alias SYSTEM_INFO* LPSYSTEM_INFO; 1364 1387 1365 struct SYSTEM_POWER_STATUS { 1366 BYTE ACLineStatus; 1367 BYTE BatteryFlag; 1368 BYTE BatteryLifePercent; 1369 BYTE Reserved1; 1370 DWORD BatteryLifeTime; 1371 DWORD BatteryFullLifeTime; 1372 } 1373 alias SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS; 1388 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 1389 struct SYSTEM_POWER_STATUS { 1390 BYTE ACLineStatus; 1391 BYTE BatteryFlag; 1392 BYTE BatteryLifePercent; 1393 BYTE Reserved1; 1394 DWORD BatteryLifeTime; 1395 DWORD BatteryFullLifeTime; 1396 } 1397 alias SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS; 1398 } 1374 1399 1375 1400 struct TIME_ZONE_INFORMATION { 1376 LONG Bias;1377 WCHAR StandardName[32];1401 LONG Bias; 1402 WCHAR[32] StandardName; 1378 1403 SYSTEMTIME StandardDate; 1379 LONG StandardBias;1380 WCHAR DaylightName[32];1404 LONG StandardBias; 1405 WCHAR[32] DaylightName; 1381 1406 SYSTEMTIME DaylightDate; 1382 LONG DaylightBias;1407 LONG DaylightBias; 1383 1408 } 1384 1409 alias TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION; 1385 1410 1411 // MSDN documents this, possibly erroneously, as Win2000+. 1386 1412 struct MEMORYSTATUS { 1387 1413 DWORD dwLength; … … 1396 1422 alias MEMORYSTATUS* LPMEMORYSTATUS; 1397 1423 1398 static if (_WIN32_WINNT >= 0x 0500) {1424 static if (_WIN32_WINNT >= 0x500) { 1399 1425 struct MEMORYSTATUSEX { 1400 DWORD dwLength;1401 DWORD dwMemoryLoad;1426 DWORD dwLength; 1427 DWORD dwMemoryLoad; 1402 1428 DWORDLONG ullTotalPhys; 1403 1429 DWORDLONG ullAvailPhys; … … 1420 1446 BYTE BaseHi; 1421 1447 1422 void Type(byte f) { Flags1 = cast(BYTE)((Flags1 & 0xE0) | f); }1423 void Dpl(byte f) { Flags1 = cast(BYTE)((Flags1 & 0x9F) | (f<<5)); }1424 void Pres(bool f) { Flags1 = cast(BYTE)((Flags1 & 0x7F) | (f<<7)); }1425 1426 void LimitHi(byte f) { Flags2 = cast(BYTE)((Flags2 & 0xF0) | (f&0x0F)); }1427 void Sys(bool f) { Flags2 = cast(BYTE)((Flags2 & 0xEF) | (f<<4)); }1448 byte Type(byte f) { Flags1 = cast(BYTE) ((Flags1 & 0xE0) | f); return f & 0x1F; } 1449 byte Dpl(byte f) { Flags1 = cast(BYTE) ((Flags1 & 0x9F) | (f<<5)); return f & 3; } 1450 bool Pres(bool f) { Flags1 = cast(BYTE) ((Flags1 & 0x7F) | (f<<7)); return f; } 1451 1452 byte LimitHi(byte f) { Flags2 = cast(BYTE) ((Flags2 & 0xF0) | (f&0x0F)); return f & 0x0F; } 1453 bool Sys(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0xEF) | (f<<4)); return f; } 1428 1454 // Next bit is reserved 1429 void Default_Big(bool f) { Flags2 = cast(BYTE)((Flags2 & 0xBF) | (f<<6)); }1430 void Granularity(bool f) { Flags2 = cast(BYTE)((Flags2 & 0x7F) | (f<<7)); }1431 1432 byte Type() { return cast(byte)(Flags1 & 0x1F); }1433 byte Dpl() { return cast(byte)((Flags1 & 0x60)>>5); }1434 bool Pres() {return cast(bool) (Flags1 & 0x80); }1435 1436 byte LimitHi() { return cast(byte)(Flags2 & 0x0F); }1437 bool Sys() { return cast(bool) (Flags2 & 0x10); }1455 bool Default_Big(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0xBF) | (f<<6)); return f; } 1456 bool Granularity(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0x7F) | (f<<7)); return f; } 1457 1458 byte Type() { return cast(byte) (Flags1 & 0x1F); } 1459 byte Dpl() { return cast(byte) ((Flags1 & 0x60)>>5); } 1460 bool Pres() { return cast(bool) (Flags1 & 0x80); } 1461 1462 byte LimitHi() { return cast(byte) (Flags2 & 0x0F); } 1463 bool Sys() { return cast(bool) (Flags2 & 0x10); } 1438 1464 bool Default_Big() { return cast(bool) (Flags2 & 0x40); } 1439 1465 bool Granularity() { return cast(bool) (Flags2 & 0x80); } … … 1464 1490 alias LDT_ENTRY* PLDT_ENTRY, LPLDT_ENTRY; 1465 1491 1492 /* As with the other memory management functions and structures, MSDN's 1493 * Windows version info shall be taken with a cup of salt. 1494 */ 1466 1495 struct PROCESS_HEAP_ENTRY { 1467 1496 PVOID lpData; 1468 1497 DWORD cbData; 1469 BYTE cbOverhead;1470 BYTE iRegionIndex;1471 WORD wFlags;1498 BYTE cbOverhead; 1499 BYTE iRegionIndex; 1500 WORD wFlags; 1472 1501 union { 1473 1502 struct Block { 1474 HANDLE hMem;1475 DWORD dwReserved[3];1503 HANDLE hMem; 1504 DWORD[3] dwReserved; 1476 1505 } 1477 1506 struct Region { 1478 DWORD dwCommittedSize;1479 DWORD dwUnCommittedSize;1480 LPVOID lpFirstBlock;1481 LPVOID lpLastBlock;1507 DWORD dwCommittedSize; 1508 DWORD dwUnCommittedSize; 1509 LPVOID lpFirstBlock; 1510 LPVOID lpLastBlock; 1482 1511 } 1483 1512 } … … 1486 1515 1487 1516 deprecated { 1488 1489 struct OFSTRUCT { 1490 BYTE cBytes; 1491 BYTE fFixedDisk; 1492 WORD nErrCode; 1493 WORD Reserved1; 1494 WORD Reserved2; 1495 CHAR szPathName[128]; // const OFS_MAXPATHNAME = 128; 1496 } 1497 alias OFSTRUCT* LPOFSTRUCT, POFSTRUCT; 1498 1499 } 1500 1517 struct OFSTRUCT { 1518 BYTE cBytes; 1519 BYTE fFixedDisk; 1520 WORD nErrCode; 1521 WORD Reserved1; 1522 WORD Reserved2; 1523 CHAR[128] szPathName; // const OFS_MAXPATHNAME = 128; 1524 } 1525 alias OFSTRUCT* LPOFSTRUCT, POFSTRUCT; 1526 } 1527 1528 /* ??? MSDN documents this only for Windows CE, but it's used by 1529 * ImageGetCertificateData, which is in desktop Windows. 1530 */ 1501 1531 struct WIN_CERTIFICATE { 1502 1532 DWORD dwLength; 1503 WORD wRevision; 1504 WORD wCertificateType; 1505 BYTE bCertificate[1]; 1533 WORD wRevision; 1534 WORD wCertificateType; 1535 BYTE _bCertificate; 1536 1537 BYTE* bCertificate() { return &_bCertificate; } 1506 1538 } 1507 1539 alias WIN_CERTIFICATE* LPWIN_CERTIFICATE; 1508 1540 1509 static if (_WIN32_WINNT >= 0x 0500) {1541 static if (_WIN32_WINNT >= 0x500) { 1510 1542 enum COMPUTER_NAME_FORMAT { 1511 1543 ComputerNameNetBIOS, … … 1522 1554 } 1523 1555 1524 static if (_WIN32_WINNT >= 0x0501) { 1525 1556 static if (_WIN32_WINNT >= 0x501) { 1526 1557 struct ACTCTXA { 1527 1558 ULONG cbSize; … … 1576 1607 1577 1608 // Callbacks 1578 extern (Windows) {1609 extern (Windows) { 1579 1610 alias DWORD function(LPVOID) LPTHREAD_START_ROUTINE; 1580 1611 alias DWORD function(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, … … 1595 1626 alias void function(PVOID, DWORD, DWORD) PTIMERAPCROUTINE; 1596 1627 1597 static if (_WIN32_WINNT >= 0x0500) {1628 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 1598 1629 alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACK; 1599 1630 } … … 1605 1636 1606 1637 extern (Windows) { 1607 BOOL AccessCheck(PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, PDWORD, PDWORD, PBOOL);1608 BOOL AccessCheckAndAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL);1609 BOOL AccessCheckAndAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL);1610 BOOL AddAccessAllowedAce(PACL, DWORD, DWORD, PSID);1611 BOOL AddAccessDeniedAce(PACL, DWORD, DWORD, PSID);1612 BOOL AddAce(PACL, DWORD, DWORD, PVOID, DWORD);1613 1638 ATOM AddAtomA(LPCSTR); 1614 1639 ATOM AddAtomW(LPCWSTR); 1615 BOOL AddAuditAccessAce(PACL, DWORD, DWORD, PSID, BOOL, BOOL);1616 BOOL AdjustTokenGroups(HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD);1617 BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);1618 BOOL AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*);1619 BOOL AllocateLocallyUniqueId(PLUID);1620 BOOL AreAllAccessesGranted(DWORD, DWORD);1621 BOOL AreAnyAccessesGranted(DWORD, DWORD);1622 1640 BOOL AreFileApisANSI(); 1623 BOOL BackupEventLogA(HANDLE, LPCSTR);1624 BOOL BackupEventLogW(HANDLE, LPCWSTR);1625 BOOL BackupRead(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*);1626 BOOL BackupSeek(HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID*);1627 BOOL BackupWrite(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*);1628 1641 BOOL Beep(DWORD, DWORD); 1629 1642 HANDLE BeginUpdateResourceA(LPCSTR, BOOL); … … 1636 1649 BOOL CallNamedPipeW(LPCWSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD); 1637 1650 BOOL CancelDeviceWakeupRequest(HANDLE); 1638 BOOL CancelIo(HANDLE);1639 BOOL CancelWaitableTimer(HANDLE);1640 1651 BOOL ClearCommBreak(HANDLE); 1641 1652 BOOL ClearCommError(HANDLE, PDWORD, LPCOMSTAT); 1642 BOOL ClearEventLogA(HANDLE, LPCSTR);1643 BOOL ClearEventLogW(HANDLE, LPCWSTR);1644 BOOL CloseEventLog(HANDLE);1645 1653 BOOL CloseHandle(HANDLE); 1646 1654 BOOL CommConfigDialogA(LPCSTR, HWND, LPCOMMCONFIG); 1647 1655 BOOL CommConfigDialogW(LPCWSTR, HWND, LPCOMMCONFIG); 1648 1656 LONG CompareFileTime(FILETIME*, FILETIME*); 1649 BOOL ConnectNamedPipe(HANDLE, LPOVERLAPPED);1650 1657 BOOL ContinueDebugEvent(DWORD, DWORD, DWORD); 1651 PVOID ConvertThreadToFiber(PVOID);1652 1658 BOOL CopyFileA(LPCSTR, LPCSTR, BOOL); 1653 1659 BOOL CopyFileW(LPCWSTR, LPCWSTR, BOOL); … … 1672 1678 alias RtlZeroMemory ZeroMemory; 1673 1679 +/ 1674 1675 BOOL CopySid(DWORD, PSID, PSID);1676 1680 BOOL CreateDirectoryA(LPCSTR, LPSECURITY_ATTRIBUTES); 1677 1681 BOOL CreateDirectoryW(LPCWSTR, LPSECURITY_ATTRIBUTES); … … 1680 1684 HANDLE CreateEventA(LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCSTR); 1681 1685 HANDLE CreateEventW(LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR); 1682 LPVOID CreateFiber(SIZE_T, LPFIBER_START_ROUTINE, LPVOID);1683 1686 HANDLE CreateFileA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); 1684 1687 HANDLE CreateFileW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); 1685 HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR);1686 HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR);1687 1688 HANDLE CreateIoCompletionPort(HANDLE, HANDLE, ULONG_PTR, DWORD); 1688 1689 HANDLE CreateMailslotA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES); … … 1690 1691 HANDLE CreateMutexA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR); 1691 1692 HANDLE CreateMutexW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR); 1692 HANDLE CreateNamedPipeA(LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES);1693 HANDLE CreateNamedPipeW(LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES);1694 1693 BOOL CreatePipe(PHANDLE, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD); 1695 BOOL CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, BOOL, HANDLE, PGENERIC_MAPPING);1696 1694 BOOL CreateProcessA(LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION); 1697 1695 BOOL CreateProcessW(LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); 1698 BOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION);1699 BOOL CreateProcessAsUserW(HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION);1700 HANDLE CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD);1701 1696 HANDLE CreateSemaphoreA(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCSTR); 1702 1697 HANDLE CreateSemaphoreW(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCWSTR); 1703 DWORD CreateTapePartition(HANDLE, DWORD, DWORD, DWORD);1704 1698 HANDLE CreateThread(LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, PVOID, DWORD, PDWORD); 1705 HANDLE CreateWaitableTimerA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);1706 HANDLE CreateWaitableTimerW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR);1707 1699 BOOL DebugActiveProcess(DWORD); 1708 1700 void DebugBreak(); 1709 BOOL DefineDosDeviceA(DWORD, LPCSTR, LPCSTR);1710 BOOL DefineDosDeviceW(DWORD, LPCWSTR, LPCWSTR);1711 BOOL DeleteAce(PACL, DWORD);1712 1701 ATOM DeleteAtom(ATOM); 1713 1702 void DeleteCriticalSection(PCRITICAL_SECTION); 1714 void DeleteFiber(PVOID);1715 1703 BOOL DeleteFileA(LPCSTR); 1716 1704 BOOL DeleteFileW(LPCWSTR); 1717 BOOL DeregisterEventSource(HANDLE);1718 BOOL DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);1719 BOOL DeviceIoControl(HANDLE, DWORD, PVOID, DWORD, PVOID, DWORD, PDWORD, POVERLAPPED);1720 1705 BOOL DisableThreadLibraryCalls(HMODULE); 1721 BOOL DisconnectNamedPipe(HANDLE);1722 1706 BOOL DosDateTimeToFileTime(WORD, WORD, LPFILETIME); 1723 1707 BOOL DuplicateHandle(HANDLE, HANDLE, HANDLE, PHANDLE, DWORD, BOOL, DWORD); 1724 BOOL DuplicateToken(HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE);1725 BOOL DuplicateTokenEx(HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE);1726 BOOL EncryptFileA(LPCSTR);1727 BOOL EncryptFileW(LPCWSTR);1728 1708 BOOL EndUpdateResourceA(HANDLE, BOOL); 1729 1709 BOOL EndUpdateResourceW(HANDLE, BOOL); … … 1735 1715 BOOL EnumResourceTypesA(HMODULE, ENUMRESTYPEPROC, LONG_PTR); 1736 1716 BOOL EnumResourceTypesW(HMODULE, ENUMRESTYPEPROC, LONG_PTR); 1737 BOOL EqualPrefixSid(PSID, PSID);1738 BOOL EqualSid(PSID, PSID);1739 DWORD EraseTape(HANDLE, DWORD, BOOL);1740 1717 BOOL EscapeCommFunction(HANDLE, DWORD); 1741 1718 void ExitProcess(UINT); // Never returns … … 1746 1723 void FatalAppExitW(UINT, LPCWSTR); 1747 1724 void FatalExit(int); 1748 BOOL FileEncryptionStatusA(LPCSTR, LPDWORD);1749 BOOL FileEncryptionStatusW(LPCWSTR, LPDWORD);1750 1725 BOOL FileTimeToDosDateTime(FILETIME* , LPWORD, LPWORD); 1751 1726 BOOL FileTimeToLocalFileTime(FILETIME* , LPFILETIME); … … 1759 1734 HANDLE FindFirstFileA(LPCSTR, LPWIN32_FIND_DATAA); 1760 1735 HANDLE FindFirstFileW(LPCWSTR, LPWIN32_FIND_DATAW); 1761 HANDLE FindFirstFileExA(LPCSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD);1762 HANDLE FindFirstFileExW(LPCWSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD);1763 BOOL FindFirstFreeAce(PACL, PVOID*);1764 1736 BOOL FindNextChangeNotification(HANDLE); 1765 1737 BOOL FindNextFileA(HANDLE, LPWIN32_FIND_DATAA); … … 1771 1743 BOOL FlushFileBuffers(HANDLE); 1772 1744 BOOL FlushInstructionCache(HANDLE, PCVOID, DWORD); 1773 BOOL FlushViewOfFile(PCVOID, DWORD);1774 1745 DWORD FormatMessageA(DWORD, PCVOID, DWORD, DWORD, LPSTR, DWORD, va_list*); 1775 1746 DWORD FormatMessageW(DWORD, PCVOID, DWORD, DWORD, LPWSTR, DWORD, va_list*); … … 1779 1750 void FreeLibraryAndExitThread(HMODULE, DWORD); // never returns 1780 1751 BOOL FreeResource(HGLOBAL); 1781 PVOID FreeSid(PSID);1782 BOOL GetAce(PACL, DWORD, LPVOID*);1783 BOOL GetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS);1784 1752 UINT GetAtomNameA(ATOM, LPSTR, int); 1785 1753 UINT GetAtomNameW(ATOM, LPWSTR, int); 1786 BOOL GetBinaryTypeA(LPCSTR, PDWORD);1787 BOOL GetBinaryTypeW(LPCWSTR, PDWORD);1788 1754 LPSTR GetCommandLineA(); 1789 1755 LPWSTR GetCommandLineW(); … … 1794 1760 BOOL GetCommState(HANDLE, LPDCB); 1795 1761 BOOL GetCommTimeouts(HANDLE, LPCOMMTIMEOUTS); 1796 DWORD GetCompressedFileSizeA(LPCSTR, PDWORD);1797 DWORD GetCompressedFileSizeW(LPCWSTR, PDWORD);1798 1762 BOOL GetComputerNameA(LPSTR, PDWORD); 1799 1763 BOOL GetComputerNameW(LPWSTR, PDWORD); 1800 1764 DWORD GetCurrentDirectoryA(DWORD, LPSTR); 1801 1765 DWORD GetCurrentDirectoryW(DWORD, LPWSTR); 1802 BOOL GetCurrentHwProfileA(LPHW_PROFILE_INFOA);1803 BOOL GetCurrentHwProfileW(LPHW_PROFILE_INFOW);1804 1766 HANDLE GetCurrentProcess(); 1805 1767 DWORD GetCurrentProcessId(); … … 1824 1786 UINT GetDriveTypeA(LPCSTR); 1825 1787 UINT GetDriveTypeW(LPCWSTR); 1826 LPSTR GetEnvironmentStrings(); 1788 LPSTR GetEnvironmentStrings(); // ??? 1827 1789 LPSTR GetEnvironmentStringsA(); 1828 1790 LPWSTR GetEnvironmentStringsW(); … … 1833 1795 DWORD GetFileAttributesA(LPCSTR); 1834 1796 DWORD GetFileAttributesW(LPCWSTR); 1835 BOOL GetFileAttributesExA(LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID);1836 BOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID);1837 1797 BOOL GetFileInformationByHandle(HANDLE, LPBY_HANDLE_FILE_INFORMATION); 1838 BOOL GetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);1839 BOOL GetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);1840 1798 DWORD GetFileSize(HANDLE, PDWORD); 1841 1799 BOOL GetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); … … 1843 1801 DWORD GetFullPathNameA(LPCSTR, DWORD, LPSTR, LPSTR*); 1844 1802 DWORD GetFullPathNameW(LPCWSTR, DWORD, LPWSTR, LPWSTR*); 1845 BOOL GetHandleInformation(HANDLE, PDWORD);1846 BOOL GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);1847 1803 DWORD GetLastError(); 1848 DWORD GetLengthSid(PSID);1849 1804 void GetLocalTime(LPSYSTEMTIME); 1850 1805 DWORD GetLogicalDrives(); … … 1859 1814 BOOL GetNamedPipeHandleStateW(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LPWSTR, DWORD); 1860 1815 BOOL GetNamedPipeInfo(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD); 1861 BOOL GetNumberOfEventLogRecords(HANDLE, PDWORD);1862 BOOL GetOldestEventLogRecord(HANDLE, PDWORD);1863 1816 BOOL GetOverlappedResult(HANDLE, LPOVERLAPPED, PDWORD, BOOL); 1864 1817 DWORD GetPriorityClass(HANDLE); 1865 BOOL GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);1866 1818 UINT GetPrivateProfileIntA(LPCSTR, LPCSTR, INT, LPCSTR); 1867 1819 UINT GetPrivateProfileIntW(LPCWSTR, LPCWSTR, INT, LPCWSTR); … … 1876 1828 FARPROC GetProcAddress(HINSTANCE, LPCSTR); 1877 1829 BOOL GetProcessAffinityMask(HANDLE, PDWORD, PDWORD); 1878 HANDLE GetProcessHeap();1879 DWORD GetProcessHeaps(DWORD, PHANDLE);1880 BOOL GetProcessPriorityBoost(HANDLE, PBOOL);1881 BOOL GetProcessShutdownParameters(PDWORD, PDWORD);1882 BOOL GetProcessTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);1883 1830 DWORD GetProcessVersion(DWORD); 1884 HWINSTA GetProcessWindowStation();1885 BOOL GetProcessWorkingSetSize(HANDLE, PSIZE_T, PSIZE_T);1886 1831 UINT GetProfileIntA(LPCSTR, LPCSTR, INT); 1887 1832 UINT GetProfileIntW(LPCWSTR, LPCWSTR, INT); … … 1890 1835 DWORD GetProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD); 1891 1836 DWORD GetProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD); 1892 BOOL GetQueuedCompletionStatus(HANDLE, PDWORD, PULONG_PTR, LPOVERLAPPED*, DWORD);1893 BOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, PDWORD);1894 BOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL);1895 BOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID*, LPBOOL);1896 DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);1897 BOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID*, LPBOOL);1898 BOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL);1899 1837 DWORD GetShortPathNameA(LPCSTR, LPSTR, DWORD); 1900 1838 DWORD GetShortPathNameW(LPCWSTR, LPWSTR, DWORD); 1901 PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(PSID);1902 DWORD GetSidLengthRequired(UCHAR);1903 PDWORD GetSidSubAuthority(PSID, DWORD);1904 PUCHAR GetSidSubAuthorityCount(PSID);1905 1839 VOID GetStartupInfoA(LPSTARTUPINFOA); 1906 1840 VOID GetStartupInfoW(LPSTARTUPINFOW); … … 1909 1843 UINT GetSystemDirectoryW(LPWSTR, UINT); 1910 1844 VOID GetSystemInfo(LPSYSTEM_INFO); 1911 BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);1912 1845 VOID GetSystemTime(LPSYSTEMTIME); 1913 1846 BOOL GetSystemTimeAdjustment(PDWORD, PDWORD, PBOOL); 1914 1847 void GetSystemTimeAsFileTime(LPFILETIME); 1915 DWORD GetTapeParameters(HANDLE, DWORD, PDWORD, PVOID);1916 DWORD GetTapePosition(HANDLE, DWORD, PDWORD, PDWORD, PDWORD);1917 DWORD GetTapeStatus(HANDLE);1918 1848 UINT GetTempFileNameA(LPCSTR, LPCSTR, UINT, LPSTR); 1919 1849 UINT GetTempFileNameW(LPCWSTR, LPCWSTR, UINT, LPWSTR); … … 1922 1852 BOOL GetThreadContext(HANDLE, LPCONTEXT); 1923 1853 int GetThreadPriority(HANDLE); 1924 BOOL GetThreadPriorityBoost(HANDLE, PBOOL);1925 1854 BOOL GetThreadSelectorEntry(HANDLE, DWORD, LPLDT_ENTRY); 1926 BOOL GetThreadTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);1927 1855 DWORD GetTickCount(); 1928 1856 DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION); 1929 BOOL GetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD, PDWORD);1930 1857 BOOL GetUserNameA (LPSTR, PDWORD); 1931 1858 BOOL GetUserNameW(LPWSTR, PDWORD); … … 1938 1865 UINT GetWindowsDirectoryW(LPWSTR, UINT); 1939 1866 DWORD GetWindowThreadProcessId(HWND, PDWORD); 1940 UINT GetWriteWatch(DWORD, PVOID, SIZE_T, PVOID*, PULONG_PTR, PULONG);1941 1867 ATOM GlobalAddAtomA(LPCSTR); 1942 ATOM GlobalAddAtomW( LPCWSTR); 1943 HGLOBAL GlobalAlloc(UINT, DWORD); 1868 ATOM GlobalAddAtomW(LPCWSTR); 1944 1869 ATOM GlobalDeleteAtom(ATOM); 1945 HGLOBAL GlobalDiscard(HGLOBAL);1946 1870 ATOM GlobalFindAtomA(LPCSTR); 1947 1871 ATOM GlobalFindAtomW(LPCWSTR); 1948 HGLOBAL GlobalFree(HGLOBAL);1949 1872 UINT GlobalGetAtomNameA(ATOM, LPSTR, int); 1950 1873 UINT GlobalGetAtomNameW(ATOM, LPWSTR, int); 1951 HGLOBAL GlobalHandle(PCVOID);1952 LPVOID GlobalLock(HGLOBAL);1953 VOID GlobalMemoryStatus(LPMEMORYSTATUS);1954 HGLOBAL GlobalReAlloc(HGLOBAL, DWORD, UINT);1955 DWORD GlobalSize(HGLOBAL);1956 BOOL GlobalUnlock(HGLOBAL);1957 1874 1958 1875 bool HasOverlappedIoCompleted(LPOVERLAPPED lpOverlapped) { … … 1960 1877 } 1961 1878 1962 PVOID HeapAlloc(HANDLE, DWORD, DWORD);1963 SIZE_T HeapCompact(HANDLE, DWORD);1964 HANDLE HeapCreate(DWORD, DWORD, DWORD);1965 BOOL HeapDestroy(HANDLE);1966 BOOL HeapFree(HANDLE, DWORD, PVOID);1967 BOOL HeapLock(HANDLE);1968 PVOID HeapReAlloc(HANDLE, DWORD, PVOID, DWORD);1969 DWORD HeapSize(HANDLE, DWORD, PCVOID);1970 BOOL HeapUnlock(HANDLE);1971 BOOL HeapValidate(HANDLE, DWORD, PCVOID);1972 BOOL HeapWalk(HANDLE, LPPROCESS_HEAP_ENTRY);1973 BOOL ImpersonateLoggedOnUser(HANDLE);1974 BOOL ImpersonateNamedPipeClient(HANDLE);1975 BOOL ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);1976 1879 BOOL InitAtomTable(DWORD); 1977 BOOL InitializeAcl(PACL, DWORD, DWORD);1978 1880 VOID InitializeCriticalSection(LPCRITICAL_SECTION); 1979 BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION, DWORD);1980 DWORD SetCriticalSectionSpinCount(LPCRITICAL_SECTION, DWORD);1981 BOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR, DWORD);1982 BOOL InitializeSid (PSID, PSID_IDENTIFIER_AUTHORITY, BYTE);1983 BOOL IsBadCodePtr(FARPROC);1881 /* ??? The next two are allegedly obsolete and "supported only for 1882 * backward compatibility with the 16-bit Windows API". Yet the 1883 * replacements IsBadReadPtr and IsBadWritePtr are apparently Win2000+ 1884 * only. Where's the mistake? 1885 */ 1984 1886 BOOL IsBadHugeReadPtr(PCVOID, UINT); 1985 1887 BOOL IsBadHugeWritePtr(PVOID, UINT); … … 1988 1890 BOOL IsBadStringPtrW(LPCWSTR, UINT); 1989 1891 BOOL IsBadWritePtr(PVOID, UINT); 1990 BOOL IsDebuggerPresent();1991 BOOL IsProcessorFeaturePresent(DWORD);1992 BOOL IsSystemResumeAutomatic();1993 BOOL IsTextUnicode(PCVOID, int, LPINT);1994 BOOL IsValidAcl(PACL);1995 BOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);1996 BOOL IsValidSid(PSID);1997 1892 void LeaveCriticalSection(LPCRITICAL_SECTION); 1998 1893 HINSTANCE LoadLibraryA(LPCSTR); 1894 HINSTANCE LoadLibraryW(LPCWSTR); 1999 1895 HINSTANCE LoadLibraryExA(LPCSTR, HANDLE, DWORD); 2000 1896 HINSTANCE LoadLibraryExW(LPCWSTR, HANDLE, DWORD); 2001 HINSTANCE LoadLibraryW(LPCWSTR);2002 1897 DWORD LoadModule(LPCSTR, PVOID); 2003 1898 HGLOBAL LoadResource(HINSTANCE, HRSRC); 2004 HLOCAL LocalAlloc(UINT, SIZE_T);2005 HLOCAL LocalDiscard(HLOCAL);2006 1899 BOOL LocalFileTimeToFileTime(FILETIME* , LPFILETIME); 2007 HLOCAL LocalFree(HLOCAL);2008 HLOCAL LocalHandle(LPCVOID);2009 PVOID LocalLock(HLOCAL);2010 HLOCAL LocalReAlloc(HLOCAL, SIZE_T, UINT);2011 UINT LocalSize(HLOCAL);2012 BOOL LocalUnlock(HLOCAL);2013 1900 BOOL LockFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 2014 BOOL LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);2015 1901 PVOID LockResource(HGLOBAL); 2016 BOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE); // *** NT only2017 BOOL LogonUserW(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE); // *** NT only2018 BOOL LookupAccountNameA(LPCSTR, LPCSTR, PSID, PDWORD, LPSTR, PDWORD, PSID_NAME_USE);2019 BOOL LookupAccountNameW(LPCWSTR, LPCWSTR, PSID, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE);2020 BOOL LookupAccountSidA(LPCSTR, PSID, LPSTR, PDWORD, LPSTR, PDWORD, PSID_NAME_USE);2021 BOOL LookupAccountSidW(LPCWSTR, PSID, LPWSTR, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE);2022 BOOL LookupPrivilegeDisplayNameA(LPCSTR, LPCSTR, LPSTR, PDWORD, PDWORD);2023 BOOL LookupPrivilegeDisplayNameW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, PDWORD);2024 BOOL LookupPrivilegeNameA(LPCSTR, PLUID, LPSTR, PDWORD);2025 BOOL LookupPrivilegeNameW(LPCWSTR, PLUID, LPWSTR, PDWORD);2026 BOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID);2027 BOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID);2028 1902 2029 1903 LPSTR lstrcatA(LPSTR, LPCSTR); … … 2040 1914 int lstrlenW(LPCWSTR); 2041 1915 1916 static if (_WIN32_WINDOWS >= 0x410) { 1917 BOOL CancelIo(HANDLE); 1918 BOOL CancelWaitableTimer(HANDLE); 1919 PVOID ConvertThreadToFiber(PVOID); 1920 LPVOID CreateFiber(SIZE_T, LPFIBER_START_ROUTINE, LPVOID); 1921 HANDLE CreateWaitableTimerA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR); 1922 HANDLE CreateWaitableTimerW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR); 1923 void DeleteFiber(PVOID); 1924 BOOL GetFileAttributesExA(LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID); 1925 BOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID); 1926 BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION, DWORD); 1927 BOOL IsDebuggerPresent(); 1928 } 1929 1930 static if (_WIN32_WINNT_ONLY) { 1931 BOOL AccessCheck(PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, PDWORD, PDWORD, PBOOL); 1932 BOOL AccessCheckAndAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL); 1933 BOOL AccessCheckAndAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL); 1934 BOOL AddAccessAllowedAce(PACL, DWORD, DWORD, PSID); 1935 BOOL AddAccessDeniedAce(PACL, DWORD, DWORD, PSID); 1936 BOOL AddAce(PACL, DWORD, DWORD, PVOID, DWORD); 1937 BOOL AddAuditAccessAce(PACL, DWORD, DWORD, PSID, BOOL, BOOL); 1938 BOOL AdjustTokenGroups(HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD); 1939 BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD); 1940 BOOL AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*); 1941 BOOL AllocateLocallyUniqueId(PLUID); 1942 BOOL AreAllAccessesGranted(DWORD, DWORD); 1943 BOOL AreAnyAccessesGranted(DWORD, DWORD); 1944 BOOL BackupEventLogA(HANDLE, LPCSTR); 1945 BOOL BackupEventLogW(HANDLE, LPCWSTR); 1946 BOOL BackupRead(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*); 1947 BOOL BackupSeek(HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID*); 1948 BOOL BackupWrite(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*); 1949 BOOL ClearEventLogA(HANDLE, LPCSTR); 1950 BOOL ClearEventLogW(HANDLE, LPCWSTR); 1951 BOOL CloseEventLog(HANDLE); 1952 BOOL ConnectNamedPipe(HANDLE, LPOVERLAPPED); 1953 BOOL CopySid(DWORD, PSID, PSID); 1954 HANDLE CreateNamedPipeA(LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 1955 HANDLE CreateNamedPipeW(LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES); 1956 BOOL CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, BOOL, HANDLE, PGENERIC_MAPPING); 1957 BOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION); 1958 BOOL CreateProcessAsUserW(HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); 1959 HANDLE CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD); 1960 DWORD CreateTapePartition(HANDLE, DWORD, DWORD, DWORD); 1961 BOOL DefineDosDeviceA(DWORD, LPCSTR, LPCSTR); 1962 BOOL DefineDosDeviceW(DWORD, LPCWSTR, LPCWSTR); 1963 BOOL DeleteAce(PACL, DWORD); 1964 BOOL DeregisterEventSource(HANDLE); 1965 BOOL DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*); 1966 BOOL DeviceIoControl(HANDLE, DWORD, PVOID, DWORD, PVOID, DWORD, PDWORD, POVERLAPPED); 1967 BOOL DisconnectNamedPipe(HANDLE); 1968 BOOL DuplicateToken(HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE); 1969 BOOL DuplicateTokenEx(HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE); 1970 BOOL EqualPrefixSid(PSID, PSID); 1971 BOOL EqualSid(PSID, PSID); 1972 DWORD EraseTape(HANDLE, DWORD, BOOL); 1973 HANDLE FindFirstFileExA(LPCSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD); 1974 HANDLE FindFirstFileExW(LPCWSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD); 1975 BOOL FindFirstFreeAce(PACL, PVOID*); 1976 PVOID FreeSid(PSID); 1977 BOOL GetAce(PACL, DWORD, LPVOID*); 1978 BOOL GetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 1979 BOOL GetBinaryTypeA(LPCSTR, PDWORD); 1980 BOOL GetBinaryTypeW(LPCWSTR, PDWORD); 1981 DWORD GetCompressedFileSizeA(LPCSTR, PDWORD); 1982 DWORD GetCompressedFileSizeW(LPCWSTR, PDWORD); 1983 BOOL GetCurrentHwProfileA(LPHW_PROFILE_INFOA); 1984 BOOL GetCurrentHwProfileW(LPHW_PROFILE_INFOW); 1985 BOOL GetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 1986 BOOL GetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 1987 BOOL GetHandleInformation(HANDLE, PDWORD); 1988 BOOL GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 1989 DWORD GetLengthSid(PSID); 1990 BOOL GetNumberOfEventLogRecords(HANDLE, PDWORD); 1991 BOOL GetOldestEventLogRecord(HANDLE, PDWORD); 1992 BOOL GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD); 1993 BOOL GetProcessPriorityBoost(HANDLE, PBOOL); 1994 BOOL GetProcessShutdownParameters(PDWORD, PDWORD); 1995 BOOL GetProcessTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME); 1996 HWINSTA GetProcessWindowStation(); 1997 BOOL GetProcessWorkingSetSize(HANDLE, PSIZE_T, PSIZE_T); 1998 BOOL GetQueuedCompletionStatus(HANDLE, PDWORD, PULONG_PTR, LPOVERLAPPED*, DWORD); 1999 BOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, PDWORD); 2000 BOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL); 2001 BOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID*, LPBOOL); 2002 DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR); 2003 BOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID*, LPBOOL); 2004 BOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL); 2005 PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(PSID); 2006 DWORD GetSidLengthRequired(UCHAR); 2007 PDWORD GetSidSubAuthority(PSID, DWORD); 2008 PUCHAR GetSidSubAuthorityCount(PSID); 2009 DWORD GetTapeParameters(HANDLE, DWORD, PDWORD, PVOID); 2010 DWORD GetTapePosition(HANDLE, DWORD, PDWORD, PDWORD, PDWORD); 2011 DWORD GetTapeStatus(HANDLE); 2012 BOOL GetThreadPriorityBoost(HANDLE, PBOOL); 2013 BOOL GetThreadTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME); 2014 BOOL GetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD, PDWORD); 2015 BOOL ImpersonateLoggedOnUser(HANDLE); 2016 BOOL ImpersonateNamedPipeClient(HANDLE); 2017 BOOL ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); 2018 BOOL InitializeAcl(PACL, DWORD, DWORD); 2019 DWORD SetCriticalSectionSpinCount(LPCRITICAL_SECTION, DWORD); 2020 BOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR, DWORD); 2021 BOOL InitializeSid(PSID, PSID_IDENTIFIER_AUTHORITY, BYTE); 2022 BOOL IsProcessorFeaturePresent(DWORD); 2023 BOOL IsTextUnicode(PCVOID, int, LPINT); 2024 BOOL IsValidAcl(PACL); 2025 BOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); 2026 BOOL IsValidSid(PSID); 2027 BOOL LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED); 2028 BOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE); 2029 BOOL LogonUserW(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE); 2030 BOOL LookupAccountNameA(LPCSTR, LPCSTR, PSID, PDWORD, LPSTR, PDWORD, PSID_NAME_USE); 2031 BOOL LookupAccountNameW(LPCWSTR, LPCWSTR, PSID, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE); 2032 BOOL LookupAccountSidA(LPCSTR, PSID, LPSTR, PDWORD, LPSTR, PDWORD, PSID_NAME_USE); 2033 BOOL LookupAccountSidW(LPCWSTR, PSID, LPWSTR, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE); 2034 BOOL LookupPrivilegeDisplayNameA(LPCSTR, LPCSTR, LPSTR, PDWORD, PDWORD); 2035 BOOL LookupPrivilegeDisplayNameW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, PDWORD); 2036 BOOL LookupPrivilegeNameA(LPCSTR, PLUID, LPSTR, PDWORD); 2037 BOOL LookupPrivilegeNameW(LPCWSTR, PLUID, LPWSTR, PDWORD); 2038 BOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID); 2039 BOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID); 2040 2041 static if (_WIN32_WINNT >= 0x500) { 2042 HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR); 2043 HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR); 2044 BOOL EncryptFileA(LPCSTR); 2045 BOOL EncryptFileW(LPCWSTR); 2046 BOOL FileEncryptionStatusA(LPCSTR, LPDWORD); 2047 BOOL FileEncryptionStatusW(LPCWSTR, LPDWORD); 2048 BOOL FlushViewOfFile(PCVOID, DWORD); 2049 HANDLE GetProcessHeap(); 2050 DWORD GetProcessHeaps(DWORD, PHANDLE); 2051 BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); 2052 BOOL IsBadCodePtr(FARPROC); 2053 BOOL IsSystemResumeAutomatic(); 2054 } 2055 2056 static if (_WIN32_WINNT >= 0x501) { 2057 UINT GetWriteWatch(DWORD, PVOID, SIZE_T, PVOID*, PULONG_PTR, PULONG); 2058 } 2059 } 2060 2061 // *** 2042 2062 BOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD); 2043 2063 BOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD); … … 2121 2141 DWORD SearchPathA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR*); 2122 2142 DWORD SearchPathW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR*); 2123 BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 2143 static if (_WIN32_WINNT_ONLY) { 2144 BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 2145 } 2124 2146 BOOL SetCommBreak(HANDLE); 2125 2147 BOOL SetCommConfig(HANDLE, LPCOMMCONFIG, DWORD); … … 2253 2275 DWORD WriteTapemark(HANDLE, DWORD, DWORD, BOOL); 2254 2276 2277 /* Memory allocation functions. 2278 * MSDN documents these erroneously as Win2000+; thus it is uncertain what 2279 * version compatibility they really have. 2280 */ 2281 HGLOBAL GlobalAlloc(UINT, DWORD); 2282 HGLOBAL GlobalDiscard(HGLOBAL); 2283 HGLOBAL GlobalFree(HGLOBAL); 2284 HGLOBAL GlobalHandle(PCVOID); 2285 LPVOID GlobalLock(HGLOBAL); 2286 VOID GlobalMemoryStatus(LPMEMORYSTATUS); 2287 HGLOBAL GlobalReAlloc(HGLOBAL, DWORD, UINT); 2288 DWORD GlobalSize(HGLOBAL); 2289 BOOL GlobalUnlock(HGLOBAL); 2290 PVOID HeapAlloc(HANDLE, DWORD, DWORD); 2291 SIZE_T HeapCompact(HANDLE, DWORD); 2292 HANDLE HeapCreate(DWORD, DWORD, DWORD); 2293 BOOL HeapDestroy(HANDLE); 2294 BOOL HeapFree(HANDLE, DWORD, PVOID); 2295 BOOL HeapLock(HANDLE); 2296 PVOID HeapReAlloc(HANDLE, DWORD, PVOID, DWORD); 2297 DWORD HeapSize(HANDLE, DWORD, PCVOID); 2298 BOOL HeapUnlock(HANDLE); 2299 BOOL HeapValidate(HANDLE, DWORD, PCVOID); 2300 BOOL HeapWalk(HANDLE, LPPROCESS_HEAP_ENTRY); 2301 HLOCAL LocalAlloc(UINT, SIZE_T); 2302 HLOCAL LocalDiscard(HLOCAL); 2303 HLOCAL LocalFree(HLOCAL); 2304 HLOCAL LocalHandle(LPCVOID); 2305 PVOID LocalLock(HLOCAL); 2306 HLOCAL LocalReAlloc(HLOCAL, SIZE_T, UINT); 2307 UINT LocalSize(HLOCAL); 2308 BOOL LocalUnlock(HLOCAL); 2309 2255 2310 // ------ 2256 2311 // functions added in later Windows versions … … 2269 2324 } 2270 2325 2271 static if (_WIN32_WINNT >= 0x0500) {2326 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) { 2272 2327 BOOL AddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 2273 2328 BOOL AddAccessDeniedAceEx(PACL, DWORD, DWORD, DWORD, PSID); … … 2389 2444 BOOL SetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 2390 2445 BOOL SetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 2391 }2446 } 2392 2447 2393 2448 static if (_WIN32_WINNT >= 0x0510) { … … 2400 2455 alias STARTUPINFOW STARTUPINFO; 2401 2456 alias WIN32_FIND_DATAW WIN32_FIND_DATA; 2402 alias HW_PROFILE_INFOW HW_PROFILE_INFO;2403 alias STARTUPINFO* LPSTARTUPINFO;2404 alias WIN32_FIND_DATA* LPWIN32_FIND_DATA;2405 alias HW_PROFILE_INFO* LPHW_PROFILE_INFO;2406 2457 alias ENUMRESLANGPROCW ENUMRESLANGPROC; 2407 2458 alias ENUMRESNAMEPROCW ENUMRESNAMEPROC; 2408 2459 alias ENUMRESTYPEPROCW ENUMRESTYPEPROC; 2409 alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm;2410 2460 alias AddAtomW AddAtom; 2411 alias BackupEventLogW BackupEventLog;2412 2461 alias BeginUpdateResourceW BeginUpdateResource; 2413 2462 alias BuildCommDCBW BuildCommDCB; 2414 2463 alias BuildCommDCBAndTimeoutsW BuildCommDCBAndTimeouts; 2415 2464 alias CallNamedPipeW CallNamedPipe; 2416 alias ClearEventLogW ClearEventLog;2417 2465 alias CommConfigDialogW CommConfigDialog; 2418 2466 alias CopyFileW CopyFile; … … 2422 2470 alias CreateEventW CreateEvent; 2423 2471 alias CreateFileW CreateFile; 2424 alias CreateFileMappingW CreateFileMapping;2425 2472 alias CreateMailslotW CreateMailslot; 2426 2473 alias CreateMutexW CreateMutex; 2427 alias CreateNamedPipeW CreateNamedPipe;2428 2474 alias CreateProcessW CreateProcess; 2429 alias CreateProcessAsUserW CreateProcessAsUser;2430 2475 alias CreateSemaphoreW CreateSemaphore; 2431 alias CreateWaitableTimerW CreateWaitableTimer;2432 alias DefineDosDeviceW DefineDosDevice;2433 2476 alias DeleteFileW DeleteFile; 2434 alias EncryptFileW EncryptFile;2435 2477 alias EndUpdateResourceW EndUpdateResource; 2436 2478 alias EnumResourceLanguagesW EnumResourceLanguages; … … 2439 2481 alias ExpandEnvironmentStringsW ExpandEnvironmentStrings; 2440 2482 alias FatalAppExitW FatalAppExit; 2441 alias FileEncryptionStatusW FileEncryptionStatus;2442 2483 alias FindAtomW FindAtom; 2443 2484 alias FindFirstChangeNotificationW FindFirstChangeNotification; 2444 2485 alias FindFirstFileW FindFirstFile; 2445 alias FindFirstFileExW FindFirstFileEx;2446 2486 alias FindNextFileW FindNextFile; 2447 2487 alias FindResourceW FindResource; … … 2450 2490 alias FreeEnvironmentStringsW FreeEnvironmentStrings; 2451 2491 alias GetAtomNameW GetAtomName; 2452 alias GetBinaryTypeW GetBinaryType;2453 2492 alias GetCommandLineW GetCommandLine; 2454 alias GetCompressedFileSizeW GetCompressedFileSize;2455 2493 alias GetComputerNameW GetComputerName; 2456 2494 alias GetCurrentDirectoryW GetCurrentDirectory; … … 2462 2500 alias GetEnvironmentVariableW GetEnvironmentVariable; 2463 2501 alias GetFileAttributesW GetFileAttributes; 2464 alias GetFileSecurityW GetFileSecurity;2465 alias GetFileAttributesExW GetFileAttributesEx;2466 2502 alias GetFullPathNameW GetFullPathName; 2467 2503 alias GetLogicalDriveStringsW GetLogicalDriveStrings; … … 2492 2528 alias LoadLibraryW LoadLibrary; 2493 2529 alias LoadLibraryExW LoadLibraryEx; 2494 alias LogonUserW LogonUser;2495 alias LookupAccountNameW LookupAccountName;2496 alias LookupAccountSidW LookupAccountSid;2497 alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName;2498 alias LookupPrivilegeNameW LookupPrivilegeName;2499 alias LookupPrivilegeValueW LookupPrivilegeValue;2500 2530 alias lstrcatW lstrcat; 2501 2531 alias lstrcmpW lstrcmp; … … 2540 2570 alias WriteProfileStringW WriteProfileString; 2541 2571 2572 static if (_WIN32_WINDOWS >= 0x410) { 2573 alias CreateWaitableTimerW CreateWaitableTimer; 2574 alias GetFileAttributesExW GetFileAttributesEx; 2575 } 2576 2577 static if (_WIN32_WINNT_ONLY) { 2578 alias HW_PROFILE_INFOW HW_PROFILE_INFO; 2579 alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm; 2580 alias BackupEventLogW BackupEventLog; 2581 alias ClearEventLogW ClearEventLog; 2582 alias CreateNamedPipeW CreateNamedPipe; 2583 alias CreateProcessAsUserW CreateProcessAsUser; 2584 alias DefineDosDeviceW DefineDosDevice; 2585 alias FindFirstFileExW FindFirstFileEx; 2586 alias GetBinaryTypeW GetBinaryType; 2587 alias GetCompressedFileSizeW GetCompressedFileSize; 2588 alias GetFileSecurityW GetFileSecurity; 2589 alias LogonUserW LogonUser; 2590 alias LookupAccountNameW LookupAccountName; 2591 alias LookupAccountSidW LookupAccountSid; 2592 alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName; 2593 alias LookupPrivilegeNameW LookupPrivilegeName; 2594 alias LookupPrivilegeValueW LookupPrivilegeValue; 2595 2596 static if (_WIN32_WINNT >= 0x500) { 2597 alias CreateFileMappingW CreateFileMapping; 2598 alias EncryptFileW EncryptFile; 2599 alias FileEncryptionStatusW FileEncryptionStatus; 2600 } 2601 } 2602 2603 // TODO: cleanup remainder 2604 2542 2605 static if ((_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0410)) { 2543 2606 alias GetLongPathNameW GetLongPathName; 2544 2607 } 2545 2608 2546 static if (_WIN32_WINNT >= 0x0500) {2609 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) { 2547 2610 alias CreateHardLinkW CreateHardLink; 2548 2611 alias CreateJobObjectW CreateJobObject; … … 2581 2644 alias STARTUPINFOA STARTUPINFO; 2582 2645 alias WIN32_FIND_DATAA WIN32_FIND_DATA; 2583 alias HW_PROFILE_INFOA HW_PROFILE_INFO;2584 alias STARTUPINFO* LPSTARTUPINFO;2585 alias WIN32_FIND_DATA* LPWIN32_FIND_DATA;2586 alias HW_PROFILE_INFO* LPHW_PROFILE_INFO;2587 2646 alias ENUMRESLANGPROCW ENUMRESLANGPROC; 2588 2647 alias ENUMRESNAMEPROCW ENUMRESNAMEPROC; 2589 2648 alias ENUMRESTYPEPROCW ENUMRESTYPEPROC; 2590 alias AccessCheckAndAuditAlarmA AccessCheckAndAuditAlarm;2591 2649 alias AddAtomA AddAtom; 2592 alias BackupEventLogA BackupEventLog;2593 2650 alias BeginUpdateResourceA BeginUpdateResource; 2594 2651 alias BuildCommDCBA BuildCommDCB; 2595 2652 alias BuildCommDCBAndTimeoutsA BuildCommDCBAndTimeouts; 2596 2653 alias CallNamedPipeA CallNamedPipe; 2597 alias ClearEventLogA ClearEventLog;2598 2654 alias CommConfigDialogA CommConfigDialog; 2599 2655 alias CopyFileA CopyFile; … … 2603 2659 alias CreateEventA CreateEvent; 2604 2660 alias CreateFileA CreateFile; 2605 alias CreateFileMappingA CreateFileMapping;2606 2661 alias CreateMailslotA CreateMailslot; 2607 2662 alias CreateMutexA CreateMutex; 2608 alias CreateNamedPipeA CreateNamedPipe;2609 2663 alias CreateProcessA CreateProcess; 2610 alias CreateProcessAsUserA CreateProcessAsUser;2611 2664 alias CreateSemaphoreA CreateSemaphore; 2612 alias CreateWaitableTimerA CreateWaitableTimer;2613 alias DefineDosDeviceA DefineDosDevice;2614 2665 alias DeleteFileA DeleteFile; 2615 alias EncryptFileA EncryptFile;2616 2666 alias EndUpdateResourceA EndUpdateResource; 2617 2667 alias EnumResourceLanguagesA EnumResourceLanguages; … … 2620 2670 alias ExpandEnvironmentStringsA ExpandEnvironmentStrings; 2621 2671 alias FatalAppExitA FatalAppExit; 2622 alias FileEncryptionStatusA FileEncryptionStatus;2623 2672 alias FindAtomA FindAtom; 2624 2673 alias FindFirstChangeNotificationA FindFirstChangeNotification; 2625 2674 alias FindFirstFileA FindFirstFile; 2626 alias FindFirstFileExA FindFirstFileEx;2627 2675 alias FindNextFileA FindNextFile; 2628 2676 alias FindResourceA FindResource; … … 2631 2679 alias FreeEnvironmentStringsA FreeEnvironmentStrings; 2632 2680 alias GetAtomNameA GetAtomName; 2633 alias GetBinaryTypeA GetBinaryType;2634 2681 alias GetCommandLineA GetCommandLine; 2635 2682 alias GetComputerNameA GetComputerName; 2636 alias GetCompressedFileSizeA GetCompressedFileSize;2637 2683 alias GetCurrentDirectoryA GetCurrentDirectory; 2638 2684 alias GetDefaultCommConfigA GetDefaultCommConfig; … … 2642 2688 alias GetEnvironmentVariableA GetEnvironmentVariable; 2643 2689 alias GetFileAttributesA GetFileAttributes; 2644 alias GetFileSecurityA GetFileSecurity;2645 alias GetFileAttributesExA GetFileAttributesEx;2646 2690 alias GetFullPathNameA GetFullPathName; 2647 2691 alias GetLogicalDriveStringsA GetLogicalDriveStrings; … … 2672 2716 alias LoadLibraryA LoadLibrary; 2673 2717 alias LoadLibraryExA LoadLibraryEx; 2674 alias LogonUserA LogonUser;2675 alias LookupAccountNameA LookupAccountName;2676 alias LookupAccountSidA LookupAccountSid;2677 alias LookupPrivilegeDisplayNameA LookupPrivilegeDisplayName;2678 alias LookupPrivilegeNameA LookupPrivilegeName;2679 alias LookupPrivilegeValueA LookupPrivilegeValue;2680 2718 alias lstrcatA lstrcat; 2681 2719 alias lstrcmpA lstrcmp; … … 2720 2758 alias WriteProfileStringA WriteProfileString; 2721 2759 2760 static if (_WIN32_WINDOWS >= 0x410) { 2761 alias CreateWaitableTimerA CreateWaitableTimer; 2762 alias GetFileAttributesExA GetFileAttributesEx; 2763 } 2764 2765 static if (_WIN32_WINNT_ONLY) { 2766 alias HW_PROFILE_INFOA HW_PROFILE_INFO; 2767 alias AccessCheckAndAuditAlarmA AccessCheckAndAuditAlarm; 2768 alias BackupEventLogA BackupEventLog; 2769 alias ClearEventLogA ClearEventLog; 2770 alias CreateNamedPipeA CreateNamedPipe; 2771 alias CreateProcessAsUserA CreateProcessAsUser; 2772 alias DefineDosDeviceA DefineDosDevice; 2773 alias FindFirstFileExA FindFirstFileEx; 2774 alias GetBinaryTypeA GetBinaryType; 2775 alias GetCompressedFileSizeA GetCompressedFileSize; 2776 alias GetFileSecurityA GetFileSecurity; 2777 alias LogonUserA LogonUser; 2778 alias LookupAccountNameA LookupAccountName; 2779 alias LookupAccountSidA LookupAccountSid; 2780 alias LookupPrivilegeDisplayNameA LookupPrivilegeDisplayName; 2781 alias LookupPrivilegeNameA LookupPrivilegeName; 2782 alias LookupPrivilegeValueA LookupPrivilegeValue; 2783 2784 static if (_WIN32_WINNT >= 0x500) { 2785 alias CreateFileMappingA CreateFileMapping; 2786 alias EncryptFileA EncryptFile; 2787 alias FileEncryptionStatusA FileEncryptionStatus; 2788 } 2789 } 2790 2791 // TODO: cleanup remainder 2792 2722 2793 static if ((_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0410)) { 2723 2794 alias GetLongPathNameA GetLongPathName; 2724 2795 } 2725 2796 2726 static if (_WIN32_WINNT >= 0x0500) {2797 static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) { 2727 2798 alias GetVolumeNameForVolumeMountPointA GetVolumeNameForVolumeMountPoint; 2728 2799 alias GetVolumePathNameA GetVolumePathName; … … 2759 2830 2760 2831 } 2832 2833 alias STARTUPINFO* LPSTARTUPINFO; 2834 alias WIN32_FIND_DATA* LPWIN32_FIND_DATA; 2835 static if (_WIN32_WINNT_ONLY) { 2836 alias HW_PROFILE_INFO* LPHW_PROFILE_INFO; 2837 } 2838
