A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.
1 '' FreeBASIC binding for mingw-w64-v4.0.4 2 '' 3 '' based on the C header files: 4 '' This Software is provided under the Zope Public License (ZPL) Version 2.1. 5 '' 6 '' Copyright (c) 2009, 2010 by the mingw-w64 project 7 '' 8 '' See the AUTHORS file for the list of contributors to the mingw-w64 project. 9 '' 10 '' This license has been certified as open source. It has also been designated 11 '' as GPL compatible by the Free Software Foundation (FSF). 12 '' 13 '' Redistribution and use in source and binary forms, with or without 14 '' modification, are permitted provided that the following conditions are met: 15 '' 16 '' 1. Redistributions in source code must retain the accompanying copyright 17 '' notice, this list of conditions, and the following disclaimer. 18 '' 2. Redistributions in binary form must reproduce the accompanying 19 '' copyright notice, this list of conditions, and the following disclaimer 20 '' in the documentation and/or other materials provided with the 21 '' distribution. 22 '' 3. Names of the copyright holders must not be used to endorse or promote 23 '' products derived from this software without prior written permission 24 '' from the copyright holders. 25 '' 4. The right to distribute this software or to use it for any purpose does 26 '' not give you the right to use Servicemarks (sm) or Trademarks (tm) of 27 '' the copyright holders. Use of them is covered by separate agreement 28 '' with the copyright holders. 29 '' 5. If any files are modified, you must cause the modified files to carry 30 '' prominent notices stating that you changed the files and the date of 31 '' any change. 32 '' 33 '' Disclaimer 34 '' 35 '' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED 36 '' OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 37 '' OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 38 '' EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, 39 '' INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 40 '' LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 41 '' OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 42 '' LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 43 '' NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 44 '' EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 45 '' 46 '' translated to FreeBASIC by: 47 '' Copyright © 2015 FreeBASIC development team 48 49 #pragma once 50 51 #inclib "kernel32" 52 53 #include once "_mingw_unicode.bi" 54 #include once "intrin.bi" 55 #include once "winapifamily.bi" 56 #include once "apiset.bi" 57 #include once "winerror.bi" 58 59 '' The following symbols have been renamed: 60 '' procedure Sleep => Sleep_ 61 '' procedure Beep => Beep_ 62 '' constant GHND => GHND_ 63 '' constant GPTR => GPTR_ 64 65 extern "Windows" 66 67 #define _WINBASE_ 68 #define _MINWINBASE_ 69 #define MoveMemory RtlMoveMemory 70 #define CopyMemory RtlCopyMemory 71 #define FillMemory RtlFillMemory 72 #define ZeroMemory RtlZeroMemory 73 74 type _SECURITY_ATTRIBUTES 75 nLength as DWORD 76 lpSecurityDescriptor as LPVOID 77 bInheritHandle as WINBOOL 78 end type 79 80 type SECURITY_ATTRIBUTES as _SECURITY_ATTRIBUTES 81 type PSECURITY_ATTRIBUTES as _SECURITY_ATTRIBUTES ptr 82 type LPSECURITY_ATTRIBUTES as _SECURITY_ATTRIBUTES ptr 83 84 type _OVERLAPPED 85 Internal as ULONG_PTR 86 InternalHigh as ULONG_PTR 87 88 union 89 type 90 Offset as DWORD 91 OffsetHigh as DWORD 92 end type 93 94 Pointer as PVOID 95 end union 96 97 hEvent as HANDLE 98 end type 99 100 type OVERLAPPED as _OVERLAPPED 101 type LPOVERLAPPED as _OVERLAPPED ptr 102 103 type _OVERLAPPED_ENTRY 104 lpCompletionKey as ULONG_PTR 105 lpOverlapped as LPOVERLAPPED 106 Internal as ULONG_PTR 107 dwNumberOfBytesTransferred as DWORD 108 end type 109 110 type OVERLAPPED_ENTRY as _OVERLAPPED_ENTRY 111 type LPOVERLAPPED_ENTRY as _OVERLAPPED_ENTRY ptr 112 #define _SYSTEMTIME_ 113 114 type _SYSTEMTIME 115 wYear as WORD 116 wMonth as WORD 117 wDayOfWeek as WORD 118 wDay as WORD 119 wHour as WORD 120 wMinute as WORD 121 wSecond as WORD 122 wMilliseconds as WORD 123 end type 124 125 type SYSTEMTIME as _SYSTEMTIME 126 type PSYSTEMTIME as _SYSTEMTIME ptr 127 type LPSYSTEMTIME as _SYSTEMTIME ptr 128 129 type _WIN32_FIND_DATAA 130 dwFileAttributes as DWORD 131 ftCreationTime as FILETIME 132 ftLastAccessTime as FILETIME 133 ftLastWriteTime as FILETIME 134 nFileSizeHigh as DWORD 135 nFileSizeLow as DWORD 136 dwReserved0 as DWORD 137 dwReserved1 as DWORD 138 cFileName as zstring * 260 139 cAlternateFileName as zstring * 14 140 end type 141 142 type WIN32_FIND_DATAA as _WIN32_FIND_DATAA 143 type PWIN32_FIND_DATAA as _WIN32_FIND_DATAA ptr 144 type LPWIN32_FIND_DATAA as _WIN32_FIND_DATAA ptr 145 146 type _WIN32_FIND_DATAW 147 dwFileAttributes as DWORD 148 ftCreationTime as FILETIME 149 ftLastAccessTime as FILETIME 150 ftLastWriteTime as FILETIME 151 nFileSizeHigh as DWORD 152 nFileSizeLow as DWORD 153 dwReserved0 as DWORD 154 dwReserved1 as DWORD 155 cFileName as wstring * 260 156 cAlternateFileName as wstring * 14 157 end type 158 159 type WIN32_FIND_DATAW as _WIN32_FIND_DATAW 160 type PWIN32_FIND_DATAW as _WIN32_FIND_DATAW ptr 161 type LPWIN32_FIND_DATAW as _WIN32_FIND_DATAW ptr 162 163 #ifdef UNICODE 164 type WIN32_FIND_DATA as WIN32_FIND_DATAW 165 type PWIN32_FIND_DATA as PWIN32_FIND_DATAW 166 type LPWIN32_FIND_DATA as LPWIN32_FIND_DATAW 167 #else 168 type WIN32_FIND_DATA as WIN32_FIND_DATAA 169 type PWIN32_FIND_DATA as PWIN32_FIND_DATAA 170 type LPWIN32_FIND_DATA as LPWIN32_FIND_DATAA 171 #endif 172 173 type _FINDEX_INFO_LEVELS as long 174 enum 175 FindExInfoStandard 176 FindExInfoBasic 177 FindExInfoMaxInfoLevel 178 end enum 179 180 type FINDEX_INFO_LEVELS as _FINDEX_INFO_LEVELS 181 const FIND_FIRST_EX_CASE_SENSITIVE = &h00000001 182 const FIND_FIRST_EX_LARGE_FETCH = &h00000002 183 184 type _FINDEX_SEARCH_OPS as long 185 enum 186 FindExSearchNameMatch 187 FindExSearchLimitToDirectories 188 FindExSearchLimitToDevices 189 FindExSearchMaxSearchOp 190 end enum 191 192 type FINDEX_SEARCH_OPS as _FINDEX_SEARCH_OPS 193 194 type _GET_FILEEX_INFO_LEVELS as long 195 enum 196 GetFileExInfoStandard 197 GetFileExMaxInfoLevel 198 end enum 199 200 type GET_FILEEX_INFO_LEVELS as _GET_FILEEX_INFO_LEVELS 201 202 #if _WIN32_WINNT >= &h0600 203 type _FILE_INFO_BY_HANDLE_CLASS as long 204 enum 205 FileBasicInfo 206 FileStandardInfo 207 FileNameInfo 208 FileRenameInfo 209 FileDispositionInfo 210 FileAllocationInfo 211 FileEndOfFileInfo 212 FileStreamInfo 213 FileCompressionInfo 214 FileAttributeTagInfo 215 FileIdBothDirectoryInfo 216 FileIdBothDirectoryRestartInfo 217 FileIoPriorityHintInfo 218 FileRemoteProtocolInfo 219 FileFullDirectoryInfo 220 FileFullDirectoryRestartInfo 221 222 #if _WIN32_WINNT = &h0602 223 FileStorageInfo 224 FileAlignmentInfo 225 FileIdInfo 226 FileIdExtdDirectoryInfo 227 FileIdExtdDirectoryRestartInfo 228 #endif 229 230 MaximumFileInfoByHandleClass 231 end enum 232 233 type FILE_INFO_BY_HANDLE_CLASS as _FILE_INFO_BY_HANDLE_CLASS 234 type PFILE_INFO_BY_HANDLE_CLASS as _FILE_INFO_BY_HANDLE_CLASS ptr 235 #endif 236 237 type CRITICAL_SECTION as RTL_CRITICAL_SECTION 238 type PCRITICAL_SECTION as PRTL_CRITICAL_SECTION 239 type LPCRITICAL_SECTION as PRTL_CRITICAL_SECTION 240 type CRITICAL_SECTION_DEBUG as RTL_CRITICAL_SECTION_DEBUG 241 type PCRITICAL_SECTION_DEBUG as PRTL_CRITICAL_SECTION_DEBUG 242 type LPCRITICAL_SECTION_DEBUG as PRTL_CRITICAL_SECTION_DEBUG 243 type LPOVERLAPPED_COMPLETION_ROUTINE as sub(byval dwErrorCode as DWORD, byval dwNumberOfBytesTransfered as DWORD, byval lpOverlapped as LPOVERLAPPED) 244 const LOCKFILE_FAIL_IMMEDIATELY = &h1 245 const LOCKFILE_EXCLUSIVE_LOCK = &h2 246 247 type _PROCESS_HEAP_ENTRY_Block 248 hMem as HANDLE 249 dwReserved(0 to 2) as DWORD 250 end type 251 252 type _PROCESS_HEAP_ENTRY_Region 253 dwCommittedSize as DWORD 254 dwUnCommittedSize as DWORD 255 lpFirstBlock as LPVOID 256 lpLastBlock as LPVOID 257 end type 258 259 type _PROCESS_HEAP_ENTRY 260 lpData as PVOID 261 cbData as DWORD 262 cbOverhead as UBYTE 263 iRegionIndex as UBYTE 264 wFlags as WORD 265 266 union 267 Block as _PROCESS_HEAP_ENTRY_Block 268 Region as _PROCESS_HEAP_ENTRY_Region 269 end union 270 end type 271 272 type PROCESS_HEAP_ENTRY as _PROCESS_HEAP_ENTRY 273 type LPPROCESS_HEAP_ENTRY as _PROCESS_HEAP_ENTRY ptr 274 type PPROCESS_HEAP_ENTRY as _PROCESS_HEAP_ENTRY ptr 275 276 const PROCESS_HEAP_REGION = &h1 277 const PROCESS_HEAP_UNCOMMITTED_RANGE = &h2 278 const PROCESS_HEAP_ENTRY_BUSY = &h4 279 const PROCESS_HEAP_ENTRY_MOVEABLE = &h10 280 const PROCESS_HEAP_ENTRY_DDESHARE = &h20 281 282 type _REASON_CONTEXT_Reason_Detailed 283 LocalizedReasonModule as HMODULE 284 LocalizedReasonId as ULONG 285 ReasonStringCount as ULONG 286 ReasonStrings as LPWSTR ptr 287 end type 288 289 union _REASON_CONTEXT_Reason 290 Detailed as _REASON_CONTEXT_Reason_Detailed 291 SimpleReasonString as LPWSTR 292 end union 293 294 type _REASON_CONTEXT 295 Version as ULONG 296 Flags as DWORD 297 Reason as _REASON_CONTEXT_Reason 298 end type 299 300 type REASON_CONTEXT as _REASON_CONTEXT 301 type PREASON_CONTEXT as _REASON_CONTEXT ptr 302 const EXCEPTION_DEBUG_EVENT = 1 303 const CREATE_THREAD_DEBUG_EVENT = 2 304 const CREATE_PROCESS_DEBUG_EVENT = 3 305 const EXIT_THREAD_DEBUG_EVENT = 4 306 const EXIT_PROCESS_DEBUG_EVENT = 5 307 const LOAD_DLL_DEBUG_EVENT = 6 308 const UNLOAD_DLL_DEBUG_EVENT = 7 309 const OUTPUT_DEBUG_STRING_EVENT = 8 310 const RIP_EVENT = 9 311 type PTHREAD_START_ROUTINE as function(byval lpThreadParameter as LPVOID) as DWORD 312 type LPTHREAD_START_ROUTINE as PTHREAD_START_ROUTINE 313 314 type _EXCEPTION_DEBUG_INFO 315 ExceptionRecord as EXCEPTION_RECORD 316 dwFirstChance as DWORD 317 end type 318 319 type EXCEPTION_DEBUG_INFO as _EXCEPTION_DEBUG_INFO 320 type LPEXCEPTION_DEBUG_INFO as _EXCEPTION_DEBUG_INFO ptr 321 322 type _CREATE_THREAD_DEBUG_INFO 323 hThread as HANDLE 324 lpThreadLocalBase as LPVOID 325 lpStartAddress as LPTHREAD_START_ROUTINE 326 end type 327 328 type CREATE_THREAD_DEBUG_INFO as _CREATE_THREAD_DEBUG_INFO 329 type LPCREATE_THREAD_DEBUG_INFO as _CREATE_THREAD_DEBUG_INFO ptr 330 331 type _CREATE_PROCESS_DEBUG_INFO 332 hFile as HANDLE 333 hProcess as HANDLE 334 hThread as HANDLE 335 lpBaseOfImage as LPVOID 336 dwDebugInfoFileOffset as DWORD 337 nDebugInfoSize as DWORD 338 lpThreadLocalBase as LPVOID 339 lpStartAddress as LPTHREAD_START_ROUTINE 340 lpImageName as LPVOID 341 fUnicode as WORD 342 end type 343 344 type CREATE_PROCESS_DEBUG_INFO as _CREATE_PROCESS_DEBUG_INFO 345 type LPCREATE_PROCESS_DEBUG_INFO as _CREATE_PROCESS_DEBUG_INFO ptr 346 347 type _EXIT_THREAD_DEBUG_INFO 348 dwExitCode as DWORD 349 end type 350 351 type EXIT_THREAD_DEBUG_INFO as _EXIT_THREAD_DEBUG_INFO 352 type LPEXIT_THREAD_DEBUG_INFO as _EXIT_THREAD_DEBUG_INFO ptr 353 354 type _EXIT_PROCESS_DEBUG_INFO 355 dwExitCode as DWORD 356 end type 357 358 type EXIT_PROCESS_DEBUG_INFO as _EXIT_PROCESS_DEBUG_INFO 359 type LPEXIT_PROCESS_DEBUG_INFO as _EXIT_PROCESS_DEBUG_INFO ptr 360 361 type _LOAD_DLL_DEBUG_INFO 362 hFile as HANDLE 363 lpBaseOfDll as LPVOID 364 dwDebugInfoFileOffset as DWORD 365 nDebugInfoSize as DWORD 366 lpImageName as LPVOID 367 fUnicode as WORD 368 end type 369 370 type LOAD_DLL_DEBUG_INFO as _LOAD_DLL_DEBUG_INFO 371 type LPLOAD_DLL_DEBUG_INFO as _LOAD_DLL_DEBUG_INFO ptr 372 373 type _UNLOAD_DLL_DEBUG_INFO 374 lpBaseOfDll as LPVOID 375 end type 376 377 type UNLOAD_DLL_DEBUG_INFO as _UNLOAD_DLL_DEBUG_INFO 378 type LPUNLOAD_DLL_DEBUG_INFO as _UNLOAD_DLL_DEBUG_INFO ptr 379 380 type _OUTPUT_DEBUG_STRING_INFO 381 lpDebugStringData as LPSTR 382 fUnicode as WORD 383 nDebugStringLength as WORD 384 end type 385 386 type OUTPUT_DEBUG_STRING_INFO as _OUTPUT_DEBUG_STRING_INFO 387 type LPOUTPUT_DEBUG_STRING_INFO as _OUTPUT_DEBUG_STRING_INFO ptr 388 389 type _RIP_INFO 390 dwError as DWORD 391 dwType as DWORD 392 end type 393 394 type RIP_INFO as _RIP_INFO 395 type LPRIP_INFO as _RIP_INFO ptr 396 397 union _DEBUG_EVENT_u 398 Exception as EXCEPTION_DEBUG_INFO 399 CreateThread as CREATE_THREAD_DEBUG_INFO 400 CreateProcessInfo as CREATE_PROCESS_DEBUG_INFO 401 ExitThread as EXIT_THREAD_DEBUG_INFO 402 ExitProcess as EXIT_PROCESS_DEBUG_INFO 403 LoadDll as LOAD_DLL_DEBUG_INFO 404 UnloadDll as UNLOAD_DLL_DEBUG_INFO 405 DebugString as OUTPUT_DEBUG_STRING_INFO 406 RipInfo as RIP_INFO 407 end union 408 409 type _DEBUG_EVENT 410 dwDebugEventCode as DWORD 411 dwProcessId as DWORD 412 dwThreadId as DWORD 413 u as _DEBUG_EVENT_u 414 end type 415 416 type DEBUG_EVENT as _DEBUG_EVENT 417 type LPDEBUG_EVENT as _DEBUG_EVENT ptr 418 type LPCONTEXT as PCONTEXT 419 420 const STILL_ACTIVE = STATUS_PENDING 421 const EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION 422 const EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT 423 const EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT 424 const EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP 425 const EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED 426 const EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND 427 const EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO 428 const EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT 429 const EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION 430 const EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW 431 const EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK 432 const EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW 433 const EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO 434 const EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW 435 const EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION 436 const EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR 437 const EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION 438 const EXCEPTION_NONCONTINUABLE_EXCEPTION = STATUS_NONCONTINUABLE_EXCEPTION 439 const EXCEPTION_STACK_OVERFLOW = STATUS_STACK_OVERFLOW 440 const EXCEPTION_INVALID_DISPOSITION = STATUS_INVALID_DISPOSITION 441 const EXCEPTION_GUARD_PAGE = STATUS_GUARD_PAGE_VIOLATION 442 const EXCEPTION_INVALID_HANDLE = STATUS_INVALID_HANDLE 443 #define EXCEPTION_POSSIBLE_DEADLOCK STATUS_POSSIBLE_DEADLOCK 444 const CONTROL_C_EXIT = STATUS_CONTROL_C_EXIT 445 const LMEM_FIXED = &h0 446 const LMEM_MOVEABLE = &h2 447 const LMEM_NOCOMPACT = &h10 448 const LMEM_NODISCARD = &h20 449 const LMEM_ZEROINIT = &h40 450 const LMEM_MODIFY = &h80 451 const LMEM_DISCARDABLE = &hf00 452 const LMEM_VALID_FLAGS = &hf72 453 const LMEM_INVALID_HANDLE = &h8000 454 const LHND = LMEM_MOVEABLE or LMEM_ZEROINIT 455 const LPTR = LMEM_FIXED or LMEM_ZEROINIT 456 const NONZEROLHND = LMEM_MOVEABLE 457 const NONZEROLPTR = LMEM_FIXED 458 #define LocalDiscard(h) LocalReAlloc((h), 0, LMEM_MOVEABLE) 459 const LMEM_DISCARDED = &h4000 460 const LMEM_LOCKCOUNT = &hff 461 #define _BEM_H_ 462 463 type CONTRACT_DESCRIPTION as _CONTRACT_DESCRIPTION 464 type BEM_REFERENCE as _BEM_REFERENCE 465 type BEM_FREE_INTERFACE_CALLBACK as sub(byval interfaceInstance as any ptr) 466 467 declare function BemCreateReference(byval iid as const GUID const ptr, byval interfaceInstance as any ptr, byval freeCallback as BEM_FREE_INTERFACE_CALLBACK, byval reference as BEM_REFERENCE ptr ptr) as HRESULT 468 declare function BemCreateContractFrom(byval dllPath as LPCWSTR, byval extensionId as const GUID const ptr, byval contractDescription as const CONTRACT_DESCRIPTION ptr, byval hostContract as any ptr, byval contract as any ptr ptr) as HRESULT 469 declare function BemCopyReference(byval reference as BEM_REFERENCE ptr, byval copiedReference as BEM_REFERENCE ptr ptr) as HRESULT 470 declare sub BemFreeReference(byval reference as BEM_REFERENCE ptr) 471 declare sub BemFreeContract(byval contract as any ptr) 472 #define _APISETDEBUG_ 473 declare function IsDebuggerPresent() as WINBOOL 474 declare sub OutputDebugStringA(byval lpOutputString as LPCSTR) 475 declare sub OutputDebugStringW(byval lpOutputString as LPCWSTR) 476 477 #ifdef UNICODE 478 declare sub OutputDebugString alias "OutputDebugStringW"(byval lpOutputString as LPCWSTR) 479 #else 480 declare sub OutputDebugString alias "OutputDebugStringA"(byval lpOutputString as LPCSTR) 481 #endif 482 483 declare sub DebugBreak() 484 declare function ContinueDebugEvent(byval dwProcessId as DWORD, byval dwThreadId as DWORD, byval dwContinueStatus as DWORD) as WINBOOL 485 declare function WaitForDebugEvent(byval lpDebugEvent as LPDEBUG_EVENT, byval dwMilliseconds as DWORD) as WINBOOL 486 declare function DebugActiveProcess(byval dwProcessId as DWORD) as WINBOOL 487 declare function DebugActiveProcessStop(byval dwProcessId as DWORD) as WINBOOL 488 declare function CheckRemoteDebuggerPresent(byval hProcess as HANDLE, byval pbDebuggerPresent as PBOOL) as WINBOOL 489 #define _ERRHANDLING_H_ 490 type PTOP_LEVEL_EXCEPTION_FILTER as function(byval ExceptionInfo as _EXCEPTION_POINTERS ptr) as LONG 491 type LPTOP_LEVEL_EXCEPTION_FILTER as PTOP_LEVEL_EXCEPTION_FILTER 492 declare function UnhandledExceptionFilter(byval ExceptionInfo as _EXCEPTION_POINTERS ptr) as LONG 493 declare function SetUnhandledExceptionFilter(byval lpTopLevelExceptionFilter as LPTOP_LEVEL_EXCEPTION_FILTER) as LPTOP_LEVEL_EXCEPTION_FILTER 494 declare function SetErrorMode(byval uMode as UINT) as UINT 495 declare function AddVectoredExceptionHandler(byval First as ULONG, byval Handler as PVECTORED_EXCEPTION_HANDLER) as PVOID 496 declare function RemoveVectoredExceptionHandler(byval Handle as PVOID) as ULONG 497 declare function AddVectoredContinueHandler(byval First as ULONG, byval Handler as PVECTORED_EXCEPTION_HANDLER) as PVOID 498 declare function RemoveVectoredContinueHandler(byval Handle as PVOID) as ULONG 499 500 #if _WIN32_WINNT >= &h0600 501 declare function GetErrorMode() as UINT 502 #endif 503 504 declare sub RaiseException(byval dwExceptionCode as DWORD, byval dwExceptionFlags as DWORD, byval nNumberOfArguments as DWORD, byval lpArguments as const ULONG_PTR ptr) 505 declare function GetLastError() as DWORD 506 declare sub SetLastError(byval dwErrCode as DWORD) 507 #define _FIBERS_H_ 508 509 #if _WIN32_WINNT >= &h0600 510 const FLS_OUT_OF_INDEXES = cast(DWORD, &hffffffff) 511 declare function FlsAlloc(byval lpCallback as PFLS_CALLBACK_FUNCTION) as DWORD 512 declare function FlsGetValue(byval dwFlsIndex as DWORD) as PVOID 513 declare function FlsSetValue(byval dwFlsIndex as DWORD, byval lpFlsData as PVOID) as WINBOOL 514 declare function FlsFree(byval dwFlsIndex as DWORD) as WINBOOL 515 declare function IsThreadAFiber() as WINBOOL 516 #endif 517 518 #define _APISETFILE_ 519 const CREATE_NEW = 1 520 const CREATE_ALWAYS = 2 521 const OPEN_EXISTING = 3 522 const OPEN_ALWAYS = 4 523 const TRUNCATE_EXISTING = 5 524 const INVALID_FILE_SIZE = cast(DWORD, &hffffffff) 525 const INVALID_SET_FILE_POINTER = cast(DWORD, -1) 526 const INVALID_FILE_ATTRIBUTES = cast(DWORD, -1) 527 528 type _BY_HANDLE_FILE_INFORMATION 529 dwFileAttributes as DWORD 530 ftCreationTime as FILETIME 531 ftLastAccessTime as FILETIME 532 ftLastWriteTime as FILETIME 533 dwVolumeSerialNumber as DWORD 534 nFileSizeHigh as DWORD 535 nFileSizeLow as DWORD 536 nNumberOfLinks as DWORD 537 nFileIndexHigh as DWORD 538 nFileIndexLow as DWORD 539 end type 540 541 type BY_HANDLE_FILE_INFORMATION as _BY_HANDLE_FILE_INFORMATION 542 type PBY_HANDLE_FILE_INFORMATION as _BY_HANDLE_FILE_INFORMATION ptr 543 type LPBY_HANDLE_FILE_INFORMATION as _BY_HANDLE_FILE_INFORMATION ptr 544 545 declare function CompareFileTime(byval lpFileTime1 as const FILETIME ptr, byval lpFileTime2 as const FILETIME ptr) as LONG 546 declare function CreateFileA(byval lpFileName as LPCSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval dwCreationDisposition as DWORD, byval dwFlagsAndAttributes as DWORD, byval hTemplateFile as HANDLE) as HANDLE 547 declare function CreateFileW(byval lpFileName as LPCWSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval dwCreationDisposition as DWORD, byval dwFlagsAndAttributes as DWORD, byval hTemplateFile as HANDLE) as HANDLE 548 declare function DefineDosDeviceW(byval dwFlags as DWORD, byval lpDeviceName as LPCWSTR, byval lpTargetPath as LPCWSTR) as WINBOOL 549 declare function DeleteVolumeMountPointW(byval lpszVolumeMountPoint as LPCWSTR) as WINBOOL 550 declare function FileTimeToLocalFileTime(byval lpFileTime as const FILETIME ptr, byval lpLocalFileTime as LPFILETIME) as WINBOOL 551 declare function FindCloseChangeNotification(byval hChangeHandle as HANDLE) as WINBOOL 552 declare function FindFirstChangeNotificationA(byval lpPathName as LPCSTR, byval bWatchSubtree as WINBOOL, byval dwNotifyFilter as DWORD) as HANDLE 553 declare function FindFirstChangeNotificationW(byval lpPathName as LPCWSTR, byval bWatchSubtree as WINBOOL, byval dwNotifyFilter as DWORD) as HANDLE 554 declare function FindFirstFileA(byval lpFileName as LPCSTR, byval lpFindFileData as LPWIN32_FIND_DATAA) as HANDLE 555 declare function FindFirstFileW(byval lpFileName as LPCWSTR, byval lpFindFileData as LPWIN32_FIND_DATAW) as HANDLE 556 declare function FindFirstVolumeW(byval lpszVolumeName as LPWSTR, byval cchBufferLength as DWORD) as HANDLE 557 declare function FindNextChangeNotification(byval hChangeHandle as HANDLE) as WINBOOL 558 declare function FindNextVolumeW(byval hFindVolume as HANDLE, byval lpszVolumeName as LPWSTR, byval cchBufferLength as DWORD) as WINBOOL 559 declare function FindVolumeClose(byval hFindVolume as HANDLE) as WINBOOL 560 declare function GetDiskFreeSpaceA(byval lpRootPathName as LPCSTR, byval lpSectorsPerCluster as LPDWORD, byval lpBytesPerSector as LPDWORD, byval lpNumberOfFreeClusters as LPDWORD, byval lpTotalNumberOfClusters as LPDWORD) as WINBOOL 561 declare function GetDiskFreeSpaceW(byval lpRootPathName as LPCWSTR, byval lpSectorsPerCluster as LPDWORD, byval lpBytesPerSector as LPDWORD, byval lpNumberOfFreeClusters as LPDWORD, byval lpTotalNumberOfClusters as LPDWORD) as WINBOOL 562 declare function GetDriveTypeA(byval lpRootPathName as LPCSTR) as UINT 563 declare function GetDriveTypeW(byval lpRootPathName as LPCWSTR) as UINT 564 declare function GetFileAttributesA(byval lpFileName as LPCSTR) as DWORD 565 declare function GetFileAttributesW(byval lpFileName as LPCWSTR) as DWORD 566 declare function GetFileInformationByHandle(byval hFile as HANDLE, byval lpFileInformation as LPBY_HANDLE_FILE_INFORMATION) as WINBOOL 567 declare function GetFileSize(byval hFile as HANDLE, byval lpFileSizeHigh as LPDWORD) as DWORD 568 declare function GetFileSizeEx(byval hFile as HANDLE, byval lpFileSize as PLARGE_INTEGER) as WINBOOL 569 declare function GetFileTime(byval hFile as HANDLE, byval lpCreationTime as LPFILETIME, byval lpLastAccessTime as LPFILETIME, byval lpLastWriteTime as LPFILETIME) as WINBOOL 570 declare function GetFileType(byval hFile as HANDLE) as DWORD 571 declare function GetFullPathNameA(byval lpFileName as LPCSTR, byval nBufferLength as DWORD, byval lpBuffer as LPSTR, byval lpFilePart as LPSTR ptr) as DWORD 572 declare function GetFullPathNameW(byval lpFileName as LPCWSTR, byval nBufferLength as DWORD, byval lpBuffer as LPWSTR, byval lpFilePart as LPWSTR ptr) as DWORD 573 declare function GetLogicalDrives() as DWORD 574 declare function GetLogicalDriveStringsW(byval nBufferLength as DWORD, byval lpBuffer as LPWSTR) as DWORD 575 declare function GetLongPathNameA(byval lpszShortPath as LPCSTR, byval lpszLongPath as LPSTR, byval cchBuffer as DWORD) as DWORD 576 declare function GetLongPathNameW(byval lpszShortPath as LPCWSTR, byval lpszLongPath as LPWSTR, byval cchBuffer as DWORD) as DWORD 577 declare function GetShortPathNameW(byval lpszLongPath as LPCWSTR, byval lpszShortPath as LPWSTR, byval cchBuffer as DWORD) as DWORD 578 declare function GetTempFileNameW(byval lpPathName as LPCWSTR, byval lpPrefixString as LPCWSTR, byval uUnique as UINT, byval lpTempFileName as LPWSTR) as UINT 579 declare function GetVolumeInformationW(byval lpRootPathName as LPCWSTR, byval lpVolumeNameBuffer as LPWSTR, byval nVolumeNameSize as DWORD, byval lpVolumeSerialNumber as LPDWORD, byval lpMaximumComponentLength as LPDWORD, byval lpFileSystemFlags as LPDWORD, byval lpFileSystemNameBuffer as LPWSTR, byval nFileSystemNameSize as DWORD) as WINBOOL 580 declare function GetVolumePathNameW(byval lpszFileName as LPCWSTR, byval lpszVolumePathName as LPWSTR, byval cchBufferLength as DWORD) as WINBOOL 581 declare function LocalFileTimeToFileTime(byval lpLocalFileTime as const FILETIME ptr, byval lpFileTime as LPFILETIME) as WINBOOL 582 declare function LockFile(byval hFile as HANDLE, byval dwFileOffsetLow as DWORD, byval dwFileOffsetHigh as DWORD, byval nNumberOfBytesToLockLow as DWORD, byval nNumberOfBytesToLockHigh as DWORD) as WINBOOL 583 declare function QueryDosDeviceW(byval lpDeviceName as LPCWSTR, byval lpTargetPath as LPWSTR, byval ucchMax as DWORD) as DWORD 584 declare function ReadFileEx(byval hFile as HANDLE, byval lpBuffer as LPVOID, byval nNumberOfBytesToRead as DWORD, byval lpOverlapped as LPOVERLAPPED, byval lpCompletionRoutine as LPOVERLAPPED_COMPLETION_ROUTINE) as WINBOOL 585 declare function ReadFileScatter(byval hFile as HANDLE, byval aSegmentArray as FILE_SEGMENT_ELEMENT ptr, byval nNumberOfBytesToRead as DWORD, byval lpReserved as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 586 declare function SetFilePointer(byval hFile as HANDLE, byval lDistanceToMove as LONG, byval lpDistanceToMoveHigh as PLONG, byval dwMoveMethod as DWORD) as DWORD 587 declare function SetFileTime(byval hFile as HANDLE, byval lpCreationTime as const FILETIME ptr, byval lpLastAccessTime as const FILETIME ptr, byval lpLastWriteTime as const FILETIME ptr) as WINBOOL 588 declare function SetFileValidData(byval hFile as HANDLE, byval ValidDataLength as LONGLONG) as WINBOOL 589 declare function UnlockFile(byval hFile as HANDLE, byval dwFileOffsetLow as DWORD, byval dwFileOffsetHigh as DWORD, byval nNumberOfBytesToUnlockLow as DWORD, byval nNumberOfBytesToUnlockHigh as DWORD) as WINBOOL 590 declare function WriteFileEx(byval hFile as HANDLE, byval lpBuffer as LPCVOID, byval nNumberOfBytesToWrite as DWORD, byval lpOverlapped as LPOVERLAPPED, byval lpCompletionRoutine as LPOVERLAPPED_COMPLETION_ROUTINE) as WINBOOL 591 declare function WriteFileGather(byval hFile as HANDLE, byval aSegmentArray as FILE_SEGMENT_ELEMENT ptr, byval nNumberOfBytesToWrite as DWORD, byval lpReserved as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 592 declare function GetTempPathW(byval nBufferLength as DWORD, byval lpBuffer as LPWSTR) as DWORD 593 declare function GetVolumeNameForVolumeMountPointW(byval lpszVolumeMountPoint as LPCWSTR, byval lpszVolumeName as LPWSTR, byval cchBufferLength as DWORD) as WINBOOL 594 declare function GetVolumePathNamesForVolumeNameW(byval lpszVolumeName as LPCWSTR, byval lpszVolumePathNames as LPWCH, byval cchBufferLength as DWORD, byval lpcchReturnLength as PDWORD) as WINBOOL 595 596 #ifdef UNICODE 597 declare function CreateFile alias "CreateFileW"(byval lpFileName as LPCWSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval dwCreationDisposition as DWORD, byval dwFlagsAndAttributes as DWORD, byval hTemplateFile as HANDLE) as HANDLE 598 declare function DefineDosDevice alias "DefineDosDeviceW"(byval dwFlags as DWORD, byval lpDeviceName as LPCWSTR, byval lpTargetPath as LPCWSTR) as WINBOOL 599 declare function DeleteVolumeMountPoint alias "DeleteVolumeMountPointW"(byval lpszVolumeMountPoint as LPCWSTR) as WINBOOL 600 declare function FindFirstVolume alias "FindFirstVolumeW"(byval lpszVolumeName as LPWSTR, byval cchBufferLength as DWORD) as HANDLE 601 declare function FindNextVolume alias "FindNextVolumeW"(byval hFindVolume as HANDLE, byval lpszVolumeName as LPWSTR, byval cchBufferLength as DWORD) as WINBOOL 602 declare function GetLogicalDriveStrings alias "GetLogicalDriveStringsW"(byval nBufferLength as DWORD, byval lpBuffer as LPWSTR) as DWORD 603 declare function GetShortPathName alias "GetShortPathNameW"(byval lpszLongPath as LPCWSTR, byval lpszShortPath as LPWSTR, byval cchBuffer as DWORD) as DWORD 604 declare function GetTempFileName alias "GetTempFileNameW"(byval lpPathName as LPCWSTR, byval lpPrefixString as LPCWSTR, byval uUnique as UINT, byval lpTempFileName as LPWSTR) as UINT 605 declare function GetVolumeInformation alias "GetVolumeInformationW"(byval lpRootPathName as LPCWSTR, byval lpVolumeNameBuffer as LPWSTR, byval nVolumeNameSize as DWORD, byval lpVolumeSerialNumber as LPDWORD, byval lpMaximumComponentLength as LPDWORD, byval lpFileSystemFlags as LPDWORD, byval lpFileSystemNameBuffer as LPWSTR, byval nFileSystemNameSize as DWORD) as WINBOOL 606 declare function GetVolumePathName alias "GetVolumePathNameW"(byval lpszFileName as LPCWSTR, byval lpszVolumePathName as LPWSTR, byval cchBufferLength as DWORD) as WINBOOL 607 declare function QueryDosDevice alias "QueryDosDeviceW"(byval lpDeviceName as LPCWSTR, byval lpTargetPath as LPWSTR, byval ucchMax as DWORD) as DWORD 608 declare function GetTempPath alias "GetTempPathW"(byval nBufferLength as DWORD, byval lpBuffer as LPWSTR) as DWORD 609 declare function GetVolumeNameForVolumeMountPoint alias "GetVolumeNameForVolumeMountPointW"(byval lpszVolumeMountPoint as LPCWSTR, byval lpszVolumeName as LPWSTR, byval cchBufferLength as DWORD) as WINBOOL 610 declare function GetVolumePathNamesForVolumeName alias "GetVolumePathNamesForVolumeNameW"(byval lpszVolumeName as LPCWSTR, byval lpszVolumePathNames as LPWCH, byval cchBufferLength as DWORD, byval lpcchReturnLength as PDWORD) as WINBOOL 611 declare function FindFirstChangeNotification alias "FindFirstChangeNotificationW"(byval lpPathName as LPCWSTR, byval bWatchSubtree as WINBOOL, byval dwNotifyFilter as DWORD) as HANDLE 612 declare function FindFirstFile alias "FindFirstFileW"(byval lpFileName as LPCWSTR, byval lpFindFileData as LPWIN32_FIND_DATAW) as HANDLE 613 declare function GetDiskFreeSpace alias "GetDiskFreeSpaceW"(byval lpRootPathName as LPCWSTR, byval lpSectorsPerCluster as LPDWORD, byval lpBytesPerSector as LPDWORD, byval lpNumberOfFreeClusters as LPDWORD, byval lpTotalNumberOfClusters as LPDWORD) as WINBOOL 614 declare function GetDriveType alias "GetDriveTypeW"(byval lpRootPathName as LPCWSTR) as UINT 615 declare function GetFileAttributes alias "GetFileAttributesW"(byval lpFileName as LPCWSTR) as DWORD 616 declare function GetFullPathName alias "GetFullPathNameW"(byval lpFileName as LPCWSTR, byval nBufferLength as DWORD, byval lpBuffer as LPWSTR, byval lpFilePart as LPWSTR ptr) as DWORD 617 declare function GetLongPathName alias "GetLongPathNameW"(byval lpszShortPath as LPCWSTR, byval lpszLongPath as LPWSTR, byval cchBuffer as DWORD) as DWORD 618 #endif 619 620 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 621 declare function GetFinalPathNameByHandleA(byval hFile as HANDLE, byval lpszFilePath as LPSTR, byval cchFilePath as DWORD, byval dwFlags as DWORD) as DWORD 622 declare function GetFinalPathNameByHandleW(byval hFile as HANDLE, byval lpszFilePath as LPWSTR, byval cchFilePath as DWORD, byval dwFlags as DWORD) as DWORD 623 declare function GetVolumeInformationByHandleW(byval hFile as HANDLE, byval lpVolumeNameBuffer as LPWSTR, byval nVolumeNameSize as DWORD, byval lpVolumeSerialNumber as LPDWORD, byval lpMaximumComponentLength as LPDWORD, byval lpFileSystemFlags as LPDWORD, byval lpFileSystemNameBuffer as LPWSTR, byval nFileSystemNameSize as DWORD) as WINBOOL 624 declare function GetFinalPathNameByHandle alias "GetFinalPathNameByHandleW"(byval hFile as HANDLE, byval lpszFilePath as LPWSTR, byval cchFilePath as DWORD, byval dwFlags as DWORD) as DWORD 625 #elseif not defined(UNICODE) 626 declare function CreateFile alias "CreateFileA"(byval lpFileName as LPCSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval dwCreationDisposition as DWORD, byval dwFlagsAndAttributes as DWORD, byval hTemplateFile as HANDLE) as HANDLE 627 declare function FindFirstChangeNotification alias "FindFirstChangeNotificationA"(byval lpPathName as LPCSTR, byval bWatchSubtree as WINBOOL, byval dwNotifyFilter as DWORD) as HANDLE 628 declare function FindFirstFile alias "FindFirstFileA"(byval lpFileName as LPCSTR, byval lpFindFileData as LPWIN32_FIND_DATAA) as HANDLE 629 declare function GetDiskFreeSpace alias "GetDiskFreeSpaceA"(byval lpRootPathName as LPCSTR, byval lpSectorsPerCluster as LPDWORD, byval lpBytesPerSector as LPDWORD, byval lpNumberOfFreeClusters as LPDWORD, byval lpTotalNumberOfClusters as LPDWORD) as WINBOOL 630 declare function GetDriveType alias "GetDriveTypeA"(byval lpRootPathName as LPCSTR) as UINT 631 declare function GetFileAttributes alias "GetFileAttributesA"(byval lpFileName as LPCSTR) as DWORD 632 declare function GetFullPathName alias "GetFullPathNameA"(byval lpFileName as LPCSTR, byval nBufferLength as DWORD, byval lpBuffer as LPSTR, byval lpFilePart as LPSTR ptr) as DWORD 633 declare function GetLongPathName alias "GetLongPathNameA"(byval lpszShortPath as LPCSTR, byval lpszLongPath as LPSTR, byval cchBuffer as DWORD) as DWORD 634 #endif 635 636 #if (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 637 declare function GetFinalPathNameByHandleA(byval hFile as HANDLE, byval lpszFilePath as LPSTR, byval cchFilePath as DWORD, byval dwFlags as DWORD) as DWORD 638 declare function GetFinalPathNameByHandleW(byval hFile as HANDLE, byval lpszFilePath as LPWSTR, byval cchFilePath as DWORD, byval dwFlags as DWORD) as DWORD 639 declare function GetVolumeInformationByHandleW(byval hFile as HANDLE, byval lpVolumeNameBuffer as LPWSTR, byval nVolumeNameSize as DWORD, byval lpVolumeSerialNumber as LPDWORD, byval lpMaximumComponentLength as LPDWORD, byval lpFileSystemFlags as LPDWORD, byval lpFileSystemNameBuffer as LPWSTR, byval nFileSystemNameSize as DWORD) as WINBOOL 640 declare function GetFinalPathNameByHandle alias "GetFinalPathNameByHandleA"(byval hFile as HANDLE, byval lpszFilePath as LPSTR, byval cchFilePath as DWORD, byval dwFlags as DWORD) as DWORD 641 #endif 642 643 type _WIN32_FILE_ATTRIBUTE_DATA 644 dwFileAttributes as DWORD 645 ftCreationTime as FILETIME 646 ftLastAccessTime as FILETIME 647 ftLastWriteTime as FILETIME 648 nFileSizeHigh as DWORD 649 nFileSizeLow as DWORD 650 end type 651 652 type WIN32_FILE_ATTRIBUTE_DATA as _WIN32_FILE_ATTRIBUTE_DATA 653 type LPWIN32_FILE_ATTRIBUTE_DATA as _WIN32_FILE_ATTRIBUTE_DATA ptr 654 655 #if _WIN32_WINNT = &h0602 656 type _CREATEFILE2_EXTENDED_PARAMETERS 657 dwSize as DWORD 658 dwFileAttributes as DWORD 659 dwFileFlags as DWORD 660 dwSecurityQosFlags as DWORD 661 lpSecurityAttributes as LPSECURITY_ATTRIBUTES 662 hTemplateFile as HANDLE 663 end type 664 665 type CREATEFILE2_EXTENDED_PARAMETERS as _CREATEFILE2_EXTENDED_PARAMETERS 666 type PCREATEFILE2_EXTENDED_PARAMETERS as _CREATEFILE2_EXTENDED_PARAMETERS ptr 667 type LPCREATEFILE2_EXTENDED_PARAMETERS as _CREATEFILE2_EXTENDED_PARAMETERS ptr 668 #endif 669 670 declare function CreateDirectoryA(byval lpPathName as LPCSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 671 declare function CreateDirectoryW(byval lpPathName as LPCWSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 672 declare function DeleteFileA(byval lpFileName as LPCSTR) as WINBOOL 673 declare function DeleteFileW(byval lpFileName as LPCWSTR) as WINBOOL 674 declare function FindClose(byval hFindFile as HANDLE) as WINBOOL 675 declare function FindFirstFileExA(byval lpFileName as LPCSTR, byval fInfoLevelId as FINDEX_INFO_LEVELS, byval lpFindFileData as LPVOID, byval fSearchOp as FINDEX_SEARCH_OPS, byval lpSearchFilter as LPVOID, byval dwAdditionalFlags as DWORD) as HANDLE 676 declare function FindFirstFileExW(byval lpFileName as LPCWSTR, byval fInfoLevelId as FINDEX_INFO_LEVELS, byval lpFindFileData as LPVOID, byval fSearchOp as FINDEX_SEARCH_OPS, byval lpSearchFilter as LPVOID, byval dwAdditionalFlags as DWORD) as HANDLE 677 declare function FindNextFileA(byval hFindFile as HANDLE, byval lpFindFileData as LPWIN32_FIND_DATAA) as WINBOOL 678 declare function FindNextFileW(byval hFindFile as HANDLE, byval lpFindFileData as LPWIN32_FIND_DATAW) as WINBOOL 679 declare function FlushFileBuffers(byval hFile as HANDLE) as WINBOOL 680 declare function GetDiskFreeSpaceExA(byval lpDirectoryName as LPCSTR, byval lpFreeBytesAvailableToCaller as PULARGE_INTEGER, byval lpTotalNumberOfBytes as PULARGE_INTEGER, byval lpTotalNumberOfFreeBytes as PULARGE_INTEGER) as WINBOOL 681 declare function GetDiskFreeSpaceExW(byval lpDirectoryName as LPCWSTR, byval lpFreeBytesAvailableToCaller as PULARGE_INTEGER, byval lpTotalNumberOfBytes as PULARGE_INTEGER, byval lpTotalNumberOfFreeBytes as PULARGE_INTEGER) as WINBOOL 682 declare function GetFileAttributesExA(byval lpFileName as LPCSTR, byval fInfoLevelId as GET_FILEEX_INFO_LEVELS, byval lpFileInformation as LPVOID) as WINBOOL 683 declare function GetFileAttributesExW(byval lpFileName as LPCWSTR, byval fInfoLevelId as GET_FILEEX_INFO_LEVELS, byval lpFileInformation as LPVOID) as WINBOOL 684 declare function LockFileEx(byval hFile as HANDLE, byval dwFlags as DWORD, byval dwReserved as DWORD, byval nNumberOfBytesToLockLow as DWORD, byval nNumberOfBytesToLockHigh as DWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 685 declare function ReadFile(byval hFile as HANDLE, byval lpBuffer as LPVOID, byval nNumberOfBytesToRead as DWORD, byval lpNumberOfBytesRead as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 686 declare function RemoveDirectoryA(byval lpPathName as LPCSTR) as WINBOOL 687 declare function RemoveDirectoryW(byval lpPathName as LPCWSTR) as WINBOOL 688 declare function SetEndOfFile(byval hFile as HANDLE) as WINBOOL 689 declare function SetFileAttributesA(byval lpFileName as LPCSTR, byval dwFileAttributes as DWORD) as WINBOOL 690 declare function SetFileAttributesW(byval lpFileName as LPCWSTR, byval dwFileAttributes as DWORD) as WINBOOL 691 declare function SetFilePointerEx(byval hFile as HANDLE, byval liDistanceToMove as LARGE_INTEGER, byval lpNewFilePointer as PLARGE_INTEGER, byval dwMoveMethod as DWORD) as WINBOOL 692 declare function UnlockFileEx(byval hFile as HANDLE, byval dwReserved as DWORD, byval nNumberOfBytesToUnlockLow as DWORD, byval nNumberOfBytesToUnlockHigh as DWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 693 declare function WriteFile(byval hFile as HANDLE, byval lpBuffer as LPCVOID, byval nNumberOfBytesToWrite as DWORD, byval lpNumberOfBytesWritten as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 694 695 #ifdef UNICODE 696 declare function CreateDirectory alias "CreateDirectoryW"(byval lpPathName as LPCWSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 697 declare function DeleteFile alias "DeleteFileW"(byval lpFileName as LPCWSTR) as WINBOOL 698 declare function FindFirstFileEx alias "FindFirstFileExW"(byval lpFileName as LPCWSTR, byval fInfoLevelId as FINDEX_INFO_LEVELS, byval lpFindFileData as LPVOID, byval fSearchOp as FINDEX_SEARCH_OPS, byval lpSearchFilter as LPVOID, byval dwAdditionalFlags as DWORD) as HANDLE 699 declare function FindNextFile alias "FindNextFileW"(byval hFindFile as HANDLE, byval lpFindFileData as LPWIN32_FIND_DATAW) as WINBOOL 700 declare function GetDiskFreeSpaceEx alias "GetDiskFreeSpaceExW"(byval lpDirectoryName as LPCWSTR, byval lpFreeBytesAvailableToCaller as PULARGE_INTEGER, byval lpTotalNumberOfBytes as PULARGE_INTEGER, byval lpTotalNumberOfFreeBytes as PULARGE_INTEGER) as WINBOOL 701 declare function GetFileAttributesEx alias "GetFileAttributesExW"(byval lpFileName as LPCWSTR, byval fInfoLevelId as GET_FILEEX_INFO_LEVELS, byval lpFileInformation as LPVOID) as WINBOOL 702 declare function RemoveDirectory alias "RemoveDirectoryW"(byval lpPathName as LPCWSTR) as WINBOOL 703 declare function SetFileAttributes alias "SetFileAttributesW"(byval lpFileName as LPCWSTR, byval dwFileAttributes as DWORD) as WINBOOL 704 705 #if _WIN32_WINNT >= &h0600 706 declare function SetFileInformationByHandle(byval hFile as HANDLE, byval FileInformationClass as FILE_INFO_BY_HANDLE_CLASS, byval lpFileInformation as LPVOID, byval dwBufferSize as DWORD) as WINBOOL 707 #endif 708 #endif 709 710 #if defined(UNICODE) and (_WIN32_WINNT = &h0602) 711 declare function CreateFile2(byval lpFileName as LPCWSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval dwCreationDisposition as DWORD, byval pCreateExParams as LPCREATEFILE2_EXTENDED_PARAMETERS) as HANDLE 712 #elseif not defined(UNICODE) 713 declare function CreateDirectory alias "CreateDirectoryA"(byval lpPathName as LPCSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 714 declare function DeleteFile alias "DeleteFileA"(byval lpFileName as LPCSTR) as WINBOOL 715 declare function FindFirstFileEx alias "FindFirstFileExA"(byval lpFileName as LPCSTR, byval fInfoLevelId as FINDEX_INFO_LEVELS, byval lpFindFileData as LPVOID, byval fSearchOp as FINDEX_SEARCH_OPS, byval lpSearchFilter as LPVOID, byval dwAdditionalFlags as DWORD) as HANDLE 716 declare function FindNextFile alias "FindNextFileA"(byval hFindFile as HANDLE, byval lpFindFileData as LPWIN32_FIND_DATAA) as WINBOOL 717 declare function GetDiskFreeSpaceEx alias "GetDiskFreeSpaceExA"(byval lpDirectoryName as LPCSTR, byval lpFreeBytesAvailableToCaller as PULARGE_INTEGER, byval lpTotalNumberOfBytes as PULARGE_INTEGER, byval lpTotalNumberOfFreeBytes as PULARGE_INTEGER) as WINBOOL 718 declare function GetFileAttributesEx alias "GetFileAttributesExA"(byval lpFileName as LPCSTR, byval fInfoLevelId as GET_FILEEX_INFO_LEVELS, byval lpFileInformation as LPVOID) as WINBOOL 719 declare function RemoveDirectory alias "RemoveDirectoryA"(byval lpPathName as LPCSTR) as WINBOOL 720 declare function SetFileAttributes alias "SetFileAttributesA"(byval lpFileName as LPCSTR, byval dwFileAttributes as DWORD) as WINBOOL 721 #endif 722 723 #ifndef UNICODE 724 #if _WIN32_WINNT >= &h0600 725 declare function SetFileInformationByHandle(byval hFile as HANDLE, byval FileInformationClass as FILE_INFO_BY_HANDLE_CLASS, byval lpFileInformation as LPVOID, byval dwBufferSize as DWORD) as WINBOOL 726 #endif 727 728 #if _WIN32_WINNT = &h0602 729 declare function CreateFile2(byval lpFileName as LPCWSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval dwCreationDisposition as DWORD, byval pCreateExParams as LPCREATEFILE2_EXTENDED_PARAMETERS) as HANDLE 730 #endif 731 #endif 732 733 #define _APISETHANDLE_ 734 const INVALID_HANDLE_VALUE = cast(HANDLE, cast(LONG_PTR, -1)) 735 declare function CloseHandle(byval hObject as HANDLE) as WINBOOL 736 declare function DuplicateHandle(byval hSourceProcessHandle as HANDLE, byval hSourceHandle as HANDLE, byval hTargetProcessHandle as HANDLE, byval lpTargetHandle as LPHANDLE, byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval dwOptions as DWORD) as WINBOOL 737 declare function GetHandleInformation(byval hObject as HANDLE, byval lpdwFlags as LPDWORD) as WINBOOL 738 declare function SetHandleInformation(byval hObject as HANDLE, byval dwMask as DWORD, byval dwFlags as DWORD) as WINBOOL 739 #define _HEAPAPI_H_ 740 741 type _HEAP_SUMMARY 742 cb as DWORD 743 cbAllocated as SIZE_T_ 744 cbCommitted as SIZE_T_ 745 cbReserved as SIZE_T_ 746 cbMaxReserve as SIZE_T_ 747 end type 748 749 type HEAP_SUMMARY as _HEAP_SUMMARY 750 type PHEAP_SUMMARY as _HEAP_SUMMARY ptr 751 type LPHEAP_SUMMARY as PHEAP_SUMMARY 752 753 declare function HeapCreate(byval flOptions as DWORD, byval dwInitialSize as SIZE_T_, byval dwMaximumSize as SIZE_T_) as HANDLE 754 declare function HeapDestroy(byval hHeap as HANDLE) as WINBOOL 755 declare function HeapValidate(byval hHeap as HANDLE, byval dwFlags as DWORD, byval lpMem as LPCVOID) as WINBOOL 756 declare function HeapCompact(byval hHeap as HANDLE, byval dwFlags as DWORD) as SIZE_T_ 757 declare function HeapSummary(byval hHeap as HANDLE, byval dwFlags as DWORD, byval lpSummary as LPHEAP_SUMMARY) as WINBOOL 758 declare function GetProcessHeaps(byval NumberOfHeaps as DWORD, byval ProcessHeaps as PHANDLE) as DWORD 759 declare function HeapLock(byval hHeap as HANDLE) as WINBOOL 760 declare function HeapUnlock(byval hHeap as HANDLE) as WINBOOL 761 declare function HeapWalk(byval hHeap as HANDLE, byval lpEntry as LPPROCESS_HEAP_ENTRY) as WINBOOL 762 declare function HeapSetInformation(byval HeapHandle as HANDLE, byval HeapInformationClass as HEAP_INFORMATION_CLASS, byval HeapInformation as PVOID, byval HeapInformationLength as SIZE_T_) as WINBOOL 763 declare function HeapQueryInformation(byval HeapHandle as HANDLE, byval HeapInformationClass as HEAP_INFORMATION_CLASS, byval HeapInformation as PVOID, byval HeapInformationLength as SIZE_T_, byval ReturnLength as PSIZE_T) as WINBOOL 764 declare function HeapAlloc(byval hHeap as HANDLE, byval dwFlags as DWORD, byval dwBytes as SIZE_T_) as LPVOID 765 declare function HeapReAlloc(byval hHeap as HANDLE, byval dwFlags as DWORD, byval lpMem as LPVOID, byval dwBytes as SIZE_T_) as LPVOID 766 declare function HeapFree(byval hHeap as HANDLE, byval dwFlags as DWORD, byval lpMem as LPVOID) as WINBOOL 767 declare function HeapSize(byval hHeap as HANDLE, byval dwFlags as DWORD, byval lpMem as LPCVOID) as SIZE_T_ 768 declare function GetProcessHeap() as HANDLE 769 #define _IO_APISET_H_ 770 declare function GetOverlappedResult(byval hFile as HANDLE, byval lpOverlapped as LPOVERLAPPED, byval lpNumberOfBytesTransferred as LPDWORD, byval bWait as WINBOOL) as WINBOOL 771 declare function CreateIoCompletionPort(byval FileHandle as HANDLE, byval ExistingCompletionPort as HANDLE, byval CompletionKey as ULONG_PTR, byval NumberOfConcurrentThreads as DWORD) as HANDLE 772 declare function GetQueuedCompletionStatus(byval CompletionPort as HANDLE, byval lpNumberOfBytesTransferred as LPDWORD, byval lpCompletionKey as PULONG_PTR, byval lpOverlapped as LPOVERLAPPED ptr, byval dwMilliseconds as DWORD) as WINBOOL 773 declare function PostQueuedCompletionStatus(byval CompletionPort as HANDLE, byval dwNumberOfBytesTransferred as DWORD, byval dwCompletionKey as ULONG_PTR, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 774 declare function DeviceIoControl(byval hDevice as HANDLE, byval dwIoControlCode as DWORD, byval lpInBuffer as LPVOID, byval nInBufferSize as DWORD, byval lpOutBuffer as LPVOID, byval nOutBufferSize as DWORD, byval lpBytesReturned as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 775 declare function CancelIo(byval hFile as HANDLE) as WINBOOL 776 777 #if _WIN32_WINNT >= &h0600 778 declare function GetQueuedCompletionStatusEx(byval CompletionPort as HANDLE, byval lpCompletionPortEntries as LPOVERLAPPED_ENTRY, byval ulCount as ULONG, byval ulNumEntriesRemoved as PULONG, byval dwMilliseconds as DWORD, byval fAlertable as WINBOOL) as WINBOOL 779 declare function CancelIoEx(byval hFile as HANDLE, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 780 declare function CancelSynchronousIo(byval hThread as HANDLE) as WINBOOL 781 #endif 782 783 declare function GetOverlappedResultEx(byval hFile as HANDLE, byval lpOverlapped as LPOVERLAPPED, byval lpNumberOfBytesTransferred as LPDWORD, byval dwMilliseconds as DWORD, byval bAlertable as WINBOOL) as WINBOOL 784 #define _INTERLOCKAPI_H_ 785 786 #ifndef __FB_64BIT__ 787 #define InterlockedExchangePointer(Target, Value) cast(PVOID, InterlockedExchange(cast(PLONG, (Target)), cast(LONG, cast(LONG_PTR, (Value))))) 788 #define InterlockedExchangePointerNoFence InterlockedExchangePointer 789 #define InterlockedIncrement(lpAddend) cast(LONG, _InterlockedIncrement((lpAddend))) 790 #define InterlockedDecrement(lpAddend) cast(LONG, _InterlockedDecrement((lpAddend))) 791 #define InterlockedExchange(Target, Value) cast(LONG, _InterlockedExchange((Target), (Value))) 792 #define InterlockedExchangeAdd(Addend, Value) cast(LONG, _InterlockedExchangeAdd((Addend), (Value))) 793 #define InterlockedCompareExchange(Destination, Exchange, Comperand) cast(LONG, _InterlockedCompareExchange((Destination), (Exchange), (Comperand))) 794 #define InterlockedCompareExchange64(Destination, Exchange, Comperand) cast(LONGLONG, _InterlockedCompareExchange64((Destination), (Exchange), (Comperand))) 795 #endif 796 797 declare sub InitializeSListHead(byval ListHead as PSLIST_HEADER) 798 declare function InterlockedPopEntrySList(byval ListHead as PSLIST_HEADER) as PSLIST_ENTRY 799 declare function InterlockedPushEntrySList(byval ListHead as PSLIST_HEADER, byval ListEntry as PSLIST_ENTRY) as PSLIST_ENTRY 800 declare function InterlockedFlushSList(byval ListHead as PSLIST_HEADER) as PSLIST_ENTRY 801 declare function QueryDepthSList(byval ListHead as PSLIST_HEADER) as USHORT 802 803 #if _WIN32_WINNT = &h0602 804 declare function InterlockedPushListSListEx(byval ListHead as PSLIST_HEADER, byval List as PSLIST_ENTRY, byval ListEnd as PSLIST_ENTRY, byval Count as ULONG) as PSLIST_ENTRY 805 declare function InterlockedPushListSList alias "InterlockedPushListSListEx"(byval ListHead as PSLIST_HEADER, byval List as PSLIST_ENTRY, byval ListEnd as PSLIST_ENTRY, byval Count as ULONG) as PSLIST_ENTRY 806 #endif 807 808 #define _JOBAPISET_H_ 809 declare function IsProcessInJob(byval ProcessHandle as HANDLE, byval JobHandle as HANDLE, byval Result as PBOOL) as WINBOOL 810 #define _APISETLIBLOADER_ 811 812 type tagENUMUILANG 813 NumOfEnumUILang as ULONG 814 SizeOfEnumUIBuffer as ULONG 815 pEnumUIBuffer as LANGID ptr 816 end type 817 818 type ENUMUILANG as tagENUMUILANG 819 type PENUMUILANG as tagENUMUILANG ptr 820 type ENUMRESLANGPROCA as function(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpName as LPCSTR, byval wLanguage as WORD, byval lParam as LONG_PTR) as WINBOOL 821 type ENUMRESLANGPROCW as function(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpName as LPCWSTR, byval wLanguage as WORD, byval lParam as LONG_PTR) as WINBOOL 822 type ENUMRESNAMEPROCA as function(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpName as LPSTR, byval lParam as LONG_PTR) as WINBOOL 823 type ENUMRESNAMEPROCW as function(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpName as LPWSTR, byval lParam as LONG_PTR) as WINBOOL 824 type ENUMRESTYPEPROCA as function(byval hModule as HMODULE, byval lpType as LPSTR, byval lParam as LONG_PTR) as WINBOOL 825 type ENUMRESTYPEPROCW as function(byval hModule as HMODULE, byval lpType as LPWSTR, byval lParam as LONG_PTR) as WINBOOL 826 type PGET_MODULE_HANDLE_EXA as function(byval dwFlags as DWORD, byval lpModuleName as LPCSTR, byval phModule as HMODULE ptr) as WINBOOL 827 type PGET_MODULE_HANDLE_EXW as function(byval dwFlags as DWORD, byval lpModuleName as LPCWSTR, byval phModule as HMODULE ptr) as WINBOOL 828 type DLL_DIRECTORY_COOKIE as PVOID 829 type PDLL_DIRECTORY_COOKIE as PVOID ptr 830 831 const FIND_RESOURCE_DIRECTORY_TYPES = &h0100 832 const FIND_RESOURCE_DIRECTORY_NAMES = &h0200 833 const FIND_RESOURCE_DIRECTORY_LANGUAGES = &h0400 834 const RESOURCE_ENUM_LN = &h0001 835 const RESOURCE_ENUM_MUI = &h0002 836 const RESOURCE_ENUM_MUI_SYSTEM = &h0004 837 const RESOURCE_ENUM_VALIDATE = &h0008 838 const RESOURCE_ENUM_MODULE_EXACT = &h0010 839 const SUPPORT_LANG_NUMBER = 32 840 const DONT_RESOLVE_DLL_REFERENCES = &h1 841 const LOAD_LIBRARY_AS_DATAFILE = &h2 842 const LOAD_WITH_ALTERED_SEARCH_PATH = &h8 843 const LOAD_IGNORE_CODE_AUTHZ_LEVEL = &h10 844 const LOAD_LIBRARY_AS_IMAGE_RESOURCE = &h20 845 const LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = &h40 846 const LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = &h80 847 const LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = &h100 848 const LOAD_LIBRARY_SEARCH_APPLICATION_DIR = &h200 849 const LOAD_LIBRARY_SEARCH_USER_DIRS = &h400 850 const LOAD_LIBRARY_SEARCH_SYSTEM32 = &h800 851 const LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = &h1000 852 const GET_MODULE_HANDLE_EX_FLAG_PIN = &h1 853 const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = &h2 854 const GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = &h4 855 856 #ifdef UNICODE 857 type ENUMRESLANGPROC as ENUMRESLANGPROCW 858 type ENUMRESNAMEPROC as ENUMRESNAMEPROCW 859 type ENUMRESTYPEPROC as ENUMRESTYPEPROCW 860 #else 861 type ENUMRESLANGPROC as ENUMRESLANGPROCA 862 type ENUMRESNAMEPROC as ENUMRESNAMEPROCA 863 type ENUMRESTYPEPROC as ENUMRESTYPEPROCA 864 #endif 865 866 declare function FindResourceExW(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpName as LPCWSTR, byval wLanguage as WORD) as HRSRC 867 declare sub FreeLibraryAndExitThread(byval hLibModule as HMODULE, byval dwExitCode as DWORD) 868 declare function FreeResource(byval hResData as HGLOBAL) as WINBOOL 869 declare function GetModuleFileNameA(byval hModule as HMODULE, byval lpFilename as LPSTR, byval nSize as DWORD) as DWORD 870 declare function GetModuleFileNameW(byval hModule as HMODULE, byval lpFilename as LPWSTR, byval nSize as DWORD) as DWORD 871 declare function GetModuleHandleA(byval lpModuleName as LPCSTR) as HMODULE 872 declare function GetModuleHandleW(byval lpModuleName as LPCWSTR) as HMODULE 873 declare function LoadLibraryExA(byval lpLibFileName as LPCSTR, byval hFile as HANDLE, byval dwFlags as DWORD) as HMODULE 874 declare function LoadLibraryExW(byval lpLibFileName as LPCWSTR, byval hFile as HANDLE, byval dwFlags as DWORD) as HMODULE 875 declare function LoadResource(byval hModule as HMODULE, byval hResInfo as HRSRC) as HGLOBAL 876 declare function LoadStringA(byval hInstance as HINSTANCE, byval uID as UINT, byval lpBuffer as LPSTR, byval cchBufferMax as long) as long 877 declare function LoadStringW(byval hInstance as HINSTANCE, byval uID as UINT, byval lpBuffer as LPWSTR, byval cchBufferMax as long) as long 878 declare function LockResource(byval hResData as HGLOBAL) as LPVOID 879 declare function SizeofResource(byval hModule as HMODULE, byval hResInfo as HRSRC) as DWORD 880 declare function AddDllDirectory(byval NewDirectory as PCWSTR) as DLL_DIRECTORY_COOKIE 881 declare function RemoveDllDirectory(byval Cookie as DLL_DIRECTORY_COOKIE) as WINBOOL 882 declare function SetDefaultDllDirectories(byval DirectoryFlags as DWORD) as WINBOOL 883 declare function GetModuleHandleExA(byval dwFlags as DWORD, byval lpModuleName as LPCSTR, byval phModule as HMODULE ptr) as WINBOOL 884 declare function GetModuleHandleExW(byval dwFlags as DWORD, byval lpModuleName as LPCWSTR, byval phModule as HMODULE ptr) as WINBOOL 885 886 #ifdef UNICODE 887 type PGET_MODULE_HANDLE_EX as PGET_MODULE_HANDLE_EXW 888 declare function GetModuleHandleEx alias "GetModuleHandleExW"(byval dwFlags as DWORD, byval lpModuleName as LPCWSTR, byval phModule as HMODULE ptr) as WINBOOL 889 declare function FindResourceEx alias "FindResourceExW"(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpName as LPCWSTR, byval wLanguage as WORD) as HRSRC 890 declare function LoadString alias "LoadStringW"(byval hInstance as HINSTANCE, byval uID as UINT, byval lpBuffer as LPWSTR, byval cchBufferMax as long) as long 891 declare function GetModuleFileName alias "GetModuleFileNameW"(byval hModule as HMODULE, byval lpFilename as LPWSTR, byval nSize as DWORD) as DWORD 892 declare function GetModuleHandle alias "GetModuleHandleW"(byval lpModuleName as LPCWSTR) as HMODULE 893 declare function LoadLibraryEx alias "LoadLibraryExW"(byval lpLibFileName as LPCWSTR, byval hFile as HANDLE, byval dwFlags as DWORD) as HMODULE 894 #define EnumResourceLanguages EnumResourceLanguagesW 895 #else 896 type PGET_MODULE_HANDLE_EX as PGET_MODULE_HANDLE_EXA 897 declare function GetModuleHandleEx alias "GetModuleHandleExA"(byval dwFlags as DWORD, byval lpModuleName as LPCSTR, byval phModule as HMODULE ptr) as WINBOOL 898 declare function LoadString alias "LoadStringA"(byval hInstance as HINSTANCE, byval uID as UINT, byval lpBuffer as LPSTR, byval cchBufferMax as long) as long 899 declare function GetModuleFileName alias "GetModuleFileNameA"(byval hModule as HMODULE, byval lpFilename as LPSTR, byval nSize as DWORD) as DWORD 900 declare function GetModuleHandle alias "GetModuleHandleA"(byval lpModuleName as LPCSTR) as HMODULE 901 declare function LoadLibraryEx alias "LoadLibraryExA"(byval lpLibFileName as LPCSTR, byval hFile as HANDLE, byval dwFlags as DWORD) as HMODULE 902 #define EnumResourceLanguages EnumResourceLanguagesA 903 #endif 904 905 #if _WIN32_WINNT >= &h0600 906 declare function EnumResourceLanguagesExA(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpName as LPCSTR, byval lpEnumFunc as ENUMRESLANGPROCA, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 907 declare function EnumResourceLanguagesExW(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpName as LPCWSTR, byval lpEnumFunc as ENUMRESLANGPROCW, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 908 declare function EnumResourceNamesExA(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpEnumFunc as ENUMRESNAMEPROCA, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 909 declare function EnumResourceNamesExW(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpEnumFunc as ENUMRESNAMEPROCW, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 910 declare function EnumResourceTypesExA(byval hModule as HMODULE, byval lpEnumFunc as ENUMRESTYPEPROCA, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 911 declare function EnumResourceTypesExW(byval hModule as HMODULE, byval lpEnumFunc as ENUMRESTYPEPROCW, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 912 declare function QueryOptionalDelayLoadedAPI(byval CallerModule as HMODULE, byval lpDllName as LPCSTR, byval lpProcName as LPCSTR, byval Reserved as DWORD) as WINBOOL 913 #endif 914 915 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 916 declare function EnumResourceLanguagesEx alias "EnumResourceLanguagesExW"(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpName as LPCWSTR, byval lpEnumFunc as ENUMRESLANGPROCW, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 917 declare function EnumResourceNamesEx alias "EnumResourceNamesExW"(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpEnumFunc as ENUMRESNAMEPROCW, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 918 declare function EnumResourceTypesEx alias "EnumResourceTypesExW"(byval hModule as HMODULE, byval lpEnumFunc as ENUMRESTYPEPROCW, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 919 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 920 declare function EnumResourceLanguagesEx alias "EnumResourceLanguagesExA"(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpName as LPCSTR, byval lpEnumFunc as ENUMRESLANGPROCA, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 921 declare function EnumResourceNamesEx alias "EnumResourceNamesExA"(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpEnumFunc as ENUMRESNAMEPROCA, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 922 declare function EnumResourceTypesEx alias "EnumResourceTypesExA"(byval hModule as HMODULE, byval lpEnumFunc as ENUMRESTYPEPROCA, byval lParam as LONG_PTR, byval dwFlags as DWORD, byval LangId as LANGID) as WINBOOL 923 #endif 924 925 declare function DisableThreadLibraryCalls(byval hLibModule as HMODULE) as WINBOOL 926 declare function FreeLibrary(byval hLibModule as HMODULE) as WINBOOL 927 declare function GetProcAddress(byval hModule as HMODULE, byval lpProcName as LPCSTR) as FARPROC 928 929 #if _WIN32_WINNT >= &h0601 930 declare function FindStringOrdinal(byval dwFindStringOrdinalFlags as DWORD, byval lpStringSource as LPCWSTR, byval cchSource as long, byval lpStringValue as LPCWSTR, byval cchValue as long, byval bIgnoreCase as WINBOOL) as long 931 #endif 932 933 #define _MEMORYAPI_H_ 934 935 type _MEMORY_RESOURCE_NOTIFICATION_TYPE as long 936 enum 937 LowMemoryResourceNotification 938 HighMemoryResourceNotification 939 end enum 940 941 type MEMORY_RESOURCE_NOTIFICATION_TYPE as _MEMORY_RESOURCE_NOTIFICATION_TYPE 942 943 #if _WIN32_WINNT = &h0602 944 type _WIN32_MEMORY_RANGE_ENTRY 945 VirtualAddress as PVOID 946 NumberOfBytes as SIZE_T_ 947 end type 948 949 type WIN32_MEMORY_RANGE_ENTRY as _WIN32_MEMORY_RANGE_ENTRY 950 type PWIN32_MEMORY_RANGE_ENTRY as _WIN32_MEMORY_RANGE_ENTRY ptr 951 #endif 952 953 const FILE_MAP_WRITE = SECTION_MAP_WRITE 954 const FILE_MAP_READ = SECTION_MAP_READ 955 const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS 956 const FILE_MAP_COPY = &h1 957 const FILE_MAP_RESERVE = &h80000000 958 959 declare function VirtualQuery(byval lpAddress as LPCVOID, byval lpBuffer as PMEMORY_BASIC_INFORMATION, byval dwLength as SIZE_T_) as SIZE_T_ 960 declare function FlushViewOfFile(byval lpBaseAddress as LPCVOID, byval dwNumberOfBytesToFlush as SIZE_T_) as WINBOOL 961 declare function UnmapViewOfFile(byval lpBaseAddress as LPCVOID) as WINBOOL 962 declare function CreateFileMappingFromApp(byval hFile as HANDLE, byval SecurityAttributes as PSECURITY_ATTRIBUTES, byval PageProtection as ULONG, byval MaximumSize as ULONG64, byval Name as PCWSTR) as HANDLE 963 declare function MapViewOfFileFromApp(byval hFileMappingObject as HANDLE, byval DesiredAccess as ULONG, byval FileOffset as ULONG64, byval NumberOfBytesToMap as SIZE_T_) as PVOID 964 965 const FILE_MAP_EXECUTE = SECTION_MAP_EXECUTE_EXPLICIT 966 #define FILE_CACHE_FLAGS_DEFINED 967 const FILE_CACHE_MAX_HARD_ENABLE = &h00000001 968 const FILE_CACHE_MAX_HARD_DISABLE = &h00000002 969 const FILE_CACHE_MIN_HARD_ENABLE = &h00000004 970 const FILE_CACHE_MIN_HARD_DISABLE = &h00000008 971 972 declare function VirtualAlloc(byval lpAddress as LPVOID, byval dwSize as SIZE_T_, byval flAllocationType as DWORD, byval flProtect as DWORD) as LPVOID 973 declare function VirtualFree(byval lpAddress as LPVOID, byval dwSize as SIZE_T_, byval dwFreeType as DWORD) as WINBOOL 974 declare function VirtualProtect(byval lpAddress as LPVOID, byval dwSize as SIZE_T_, byval flNewProtect as DWORD, byval lpflOldProtect as PDWORD) as WINBOOL 975 declare function VirtualAllocEx(byval hProcess as HANDLE, byval lpAddress as LPVOID, byval dwSize as SIZE_T_, byval flAllocationType as DWORD, byval flProtect as DWORD) as LPVOID 976 declare function VirtualFreeEx(byval hProcess as HANDLE, byval lpAddress as LPVOID, byval dwSize as SIZE_T_, byval dwFreeType as DWORD) as WINBOOL 977 declare function VirtualProtectEx(byval hProcess as HANDLE, byval lpAddress as LPVOID, byval dwSize as SIZE_T_, byval flNewProtect as DWORD, byval lpflOldProtect as PDWORD) as WINBOOL 978 declare function VirtualQueryEx(byval hProcess as HANDLE, byval lpAddress as LPCVOID, byval lpBuffer as PMEMORY_BASIC_INFORMATION, byval dwLength as SIZE_T_) as SIZE_T_ 979 declare function ReadProcessMemory(byval hProcess as HANDLE, byval lpBaseAddress as LPCVOID, byval lpBuffer as LPVOID, byval nSize as SIZE_T_, byval lpNumberOfBytesRead as SIZE_T_ ptr) as WINBOOL 980 declare function WriteProcessMemory(byval hProcess as HANDLE, byval lpBaseAddress as LPVOID, byval lpBuffer as LPCVOID, byval nSize as SIZE_T_, byval lpNumberOfBytesWritten as SIZE_T_ ptr) as WINBOOL 981 declare function CreateFileMappingW(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCWSTR) as HANDLE 982 declare function OpenFileMappingW(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCWSTR) as HANDLE 983 declare function MapViewOfFile(byval hFileMappingObject as HANDLE, byval dwDesiredAccess as DWORD, byval dwFileOffsetHigh as DWORD, byval dwFileOffsetLow as DWORD, byval dwNumberOfBytesToMap as SIZE_T_) as LPVOID 984 declare function MapViewOfFileEx(byval hFileMappingObject as HANDLE, byval dwDesiredAccess as DWORD, byval dwFileOffsetHigh as DWORD, byval dwFileOffsetLow as DWORD, byval dwNumberOfBytesToMap as SIZE_T_, byval lpBaseAddress as LPVOID) as LPVOID 985 declare function GetLargePageMinimum() as SIZE_T_ 986 declare function GetProcessWorkingSetSizeEx(byval hProcess as HANDLE, byval lpMinimumWorkingSetSize as PSIZE_T, byval lpMaximumWorkingSetSize as PSIZE_T, byval Flags as PDWORD) as WINBOOL 987 declare function SetProcessWorkingSetSizeEx(byval hProcess as HANDLE, byval dwMinimumWorkingSetSize as SIZE_T_, byval dwMaximumWorkingSetSize as SIZE_T_, byval Flags as DWORD) as WINBOOL 988 declare function VirtualLock(byval lpAddress as LPVOID, byval dwSize as SIZE_T_) as WINBOOL 989 declare function VirtualUnlock(byval lpAddress as LPVOID, byval dwSize as SIZE_T_) as WINBOOL 990 declare function GetWriteWatch(byval dwFlags as DWORD, byval lpBaseAddress as PVOID, byval dwRegionSize as SIZE_T_, byval lpAddresses as PVOID ptr, byval lpdwCount as ULONG_PTR ptr, byval lpdwGranularity as LPDWORD) as UINT 991 declare function ResetWriteWatch(byval lpBaseAddress as LPVOID, byval dwRegionSize as SIZE_T_) as UINT 992 declare function CreateMemoryResourceNotification(byval NotificationType as MEMORY_RESOURCE_NOTIFICATION_TYPE) as HANDLE 993 declare function QueryMemoryResourceNotification(byval ResourceNotificationHandle as HANDLE, byval ResourceState as PBOOL) as WINBOOL 994 declare function GetSystemFileCacheSize(byval lpMinimumFileCacheSize as PSIZE_T, byval lpMaximumFileCacheSize as PSIZE_T, byval lpFlags as PDWORD) as WINBOOL 995 declare function SetSystemFileCacheSize(byval MinimumFileCacheSize as SIZE_T_, byval MaximumFileCacheSize as SIZE_T_, byval Flags as DWORD) as WINBOOL 996 997 #ifdef UNICODE 998 declare function CreateFileMapping alias "CreateFileMappingW"(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCWSTR) as HANDLE 999 declare function OpenFileMapping alias "OpenFileMappingW"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1000 #endif 1001 1002 #if _WIN32_WINNT >= &h0600 1003 declare function CreateFileMappingNumaW(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCWSTR, byval nndPreferred as DWORD) as HANDLE 1004 #endif 1005 1006 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 1007 declare function CreateFileMappingNuma alias "CreateFileMappingNumaW"(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCWSTR, byval nndPreferred as DWORD) as HANDLE 1008 #endif 1009 1010 #if _WIN32_WINNT = &h0602 1011 declare function PrefetchVirtualMemory(byval hProcess as HANDLE, byval NumberOfEntries as ULONG_PTR, byval VirtualAddresses as PWIN32_MEMORY_RANGE_ENTRY, byval Flags as ULONG) as WINBOOL 1012 declare function UnmapViewOfFileEx(byval BaseAddress as PVOID, byval UnmapFlags as ULONG) as WINBOOL 1013 #endif 1014 1015 #define _NAMEDPIPE_H_ 1016 declare function ImpersonateNamedPipeClient(byval hNamedPipe as HANDLE) as WINBOOL 1017 declare function CreatePipe(byval hReadPipe as PHANDLE, byval hWritePipe as PHANDLE, byval lpPipeAttributes as LPSECURITY_ATTRIBUTES, byval nSize as DWORD) as WINBOOL 1018 declare function ConnectNamedPipe(byval hNamedPipe as HANDLE, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 1019 declare function DisconnectNamedPipe(byval hNamedPipe as HANDLE) as WINBOOL 1020 declare function SetNamedPipeHandleState(byval hNamedPipe as HANDLE, byval lpMode as LPDWORD, byval lpMaxCollectionCount as LPDWORD, byval lpCollectDataTimeout as LPDWORD) as WINBOOL 1021 declare function PeekNamedPipe(byval hNamedPipe as HANDLE, byval lpBuffer as LPVOID, byval nBufferSize as DWORD, byval lpBytesRead as LPDWORD, byval lpTotalBytesAvail as LPDWORD, byval lpBytesLeftThisMessage as LPDWORD) as WINBOOL 1022 declare function TransactNamedPipe(byval hNamedPipe as HANDLE, byval lpInBuffer as LPVOID, byval nInBufferSize as DWORD, byval lpOutBuffer as LPVOID, byval nOutBufferSize as DWORD, byval lpBytesRead as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 1023 declare function CreateNamedPipeW(byval lpName as LPCWSTR, byval dwOpenMode as DWORD, byval dwPipeMode as DWORD, byval nMaxInstances as DWORD, byval nOutBufferSize as DWORD, byval nInBufferSize as DWORD, byval nDefaultTimeOut as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as HANDLE 1024 declare function WaitNamedPipeW(byval lpNamedPipeName as LPCWSTR, byval nTimeOut as DWORD) as WINBOOL 1025 1026 #if _WIN32_WINNT >= &h0600 1027 declare function GetNamedPipeClientComputerNameW(byval Pipe as HANDLE, byval ClientComputerName as LPWSTR, byval ClientComputerNameLength as ULONG) as WINBOOL 1028 #endif 1029 1030 #ifdef UNICODE 1031 declare function CreateNamedPipe alias "CreateNamedPipeW"(byval lpName as LPCWSTR, byval dwOpenMode as DWORD, byval dwPipeMode as DWORD, byval nMaxInstances as DWORD, byval nOutBufferSize as DWORD, byval nInBufferSize as DWORD, byval nDefaultTimeOut as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as HANDLE 1032 declare function WaitNamedPipe alias "WaitNamedPipeW"(byval lpNamedPipeName as LPCWSTR, byval nTimeOut as DWORD) as WINBOOL 1033 1034 #if _WIN32_WINNT <= &h0502 1035 #define GetNamedPipeClientComputerName GetNamedPipeClientComputerNameW 1036 #elseif _WIN32_WINNT >= &h0600 1037 declare function GetNamedPipeClientComputerName alias "GetNamedPipeClientComputerNameW"(byval Pipe as HANDLE, byval ClientComputerName as LPWSTR, byval ClientComputerNameLength as ULONG) as WINBOOL 1038 #endif 1039 #endif 1040 1041 #define _APISETNAMESPACE_ 1042 const PRIVATE_NAMESPACE_FLAG_DESTROY = &h1 1043 declare function CreatePrivateNamespaceW(byval lpPrivateNamespaceAttributes as LPSECURITY_ATTRIBUTES, byval lpBoundaryDescriptor as LPVOID, byval lpAliasPrefix as LPCWSTR) as HANDLE 1044 declare function OpenPrivateNamespaceW(byval lpBoundaryDescriptor as LPVOID, byval lpAliasPrefix as LPCWSTR) as HANDLE 1045 1046 #ifdef UNICODE 1047 declare function CreatePrivateNamespace alias "CreatePrivateNamespaceW"(byval lpPrivateNamespaceAttributes as LPSECURITY_ATTRIBUTES, byval lpBoundaryDescriptor as LPVOID, byval lpAliasPrefix as LPCWSTR) as HANDLE 1048 #endif 1049 1050 declare function ClosePrivateNamespace(byval Handle as HANDLE, byval Flags as ULONG) as WINBOOLEAN 1051 declare function CreateBoundaryDescriptorW(byval Name as LPCWSTR, byval Flags as ULONG) as HANDLE 1052 1053 #ifdef UNICODE 1054 declare function CreateBoundaryDescriptor alias "CreateBoundaryDescriptorW"(byval Name as LPCWSTR, byval Flags as ULONG) as HANDLE 1055 #endif 1056 1057 declare function AddSIDToBoundaryDescriptor(byval BoundaryDescriptor as HANDLE ptr, byval RequiredSid as PSID) as WINBOOL 1058 declare sub DeleteBoundaryDescriptor(byval BoundaryDescriptor as HANDLE) 1059 #define _PROCESSENV_ 1060 declare function GetEnvironmentStringsA alias "GetEnvironmentStrings"() as LPCH 1061 declare function GetEnvironmentStringsW() as LPWCH 1062 declare function SetEnvironmentStringsW(byval NewEnvironment as LPWCH) as WINBOOL 1063 1064 #ifdef UNICODE 1065 declare function GetEnvironmentStrings alias "GetEnvironmentStringsW"() as LPWCH 1066 declare function SetEnvironmentStrings alias "SetEnvironmentStringsW"(byval NewEnvironment as LPWCH) as WINBOOL 1067 #else 1068 declare function GetEnvironmentStrings() as LPCH 1069 #endif 1070 1071 declare function FreeEnvironmentStringsA(byval penv as LPCH) as WINBOOL 1072 declare function FreeEnvironmentStringsW(byval penv as LPWCH) as WINBOOL 1073 declare function GetStdHandle(byval nStdHandle as DWORD) as HANDLE 1074 declare function SetStdHandle(byval nStdHandle as DWORD, byval hHandle as HANDLE) as WINBOOL 1075 1076 #if _WIN32_WINNT >= &h0600 1077 declare function SetStdHandleEx(byval nStdHandle as DWORD, byval hHandle as HANDLE, byval phPrevValue as PHANDLE) as WINBOOL 1078 #endif 1079 1080 declare function GetCommandLineA() as LPSTR 1081 declare function GetCommandLineW() as LPWSTR 1082 declare function GetEnvironmentVariableA(byval lpName as LPCSTR, byval lpBuffer as LPSTR, byval nSize as DWORD) as DWORD 1083 declare function GetEnvironmentVariableW(byval lpName as LPCWSTR, byval lpBuffer as LPWSTR, byval nSize as DWORD) as DWORD 1084 declare function SetEnvironmentVariableA(byval lpName as LPCSTR, byval lpValue as LPCSTR) as WINBOOL 1085 declare function SetEnvironmentVariableW(byval lpName as LPCWSTR, byval lpValue as LPCWSTR) as WINBOOL 1086 declare function ExpandEnvironmentStringsA(byval lpSrc as LPCSTR, byval lpDst as LPSTR, byval nSize as DWORD) as DWORD 1087 declare function ExpandEnvironmentStringsW(byval lpSrc as LPCWSTR, byval lpDst as LPWSTR, byval nSize as DWORD) as DWORD 1088 declare function SetCurrentDirectoryA(byval lpPathName as LPCSTR) as WINBOOL 1089 declare function SetCurrentDirectoryW(byval lpPathName as LPCWSTR) as WINBOOL 1090 declare function GetCurrentDirectoryA(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 1091 declare function GetCurrentDirectoryW(byval nBufferLength as DWORD, byval lpBuffer as LPWSTR) as DWORD 1092 declare function SearchPathW(byval lpPath as LPCWSTR, byval lpFileName as LPCWSTR, byval lpExtension as LPCWSTR, byval nBufferLength as DWORD, byval lpBuffer as LPWSTR, byval lpFilePart as LPWSTR ptr) as DWORD 1093 declare function SearchPathA(byval lpPath as LPCSTR, byval lpFileName as LPCSTR, byval lpExtension as LPCSTR, byval nBufferLength as DWORD, byval lpBuffer as LPSTR, byval lpFilePart as LPSTR ptr) as DWORD 1094 declare function NeedCurrentDirectoryForExePathA(byval ExeName as LPCSTR) as WINBOOL 1095 declare function NeedCurrentDirectoryForExePathW(byval ExeName as LPCWSTR) as WINBOOL 1096 1097 #ifdef UNICODE 1098 declare function ExpandEnvironmentStrings alias "ExpandEnvironmentStringsW"(byval lpSrc as LPCWSTR, byval lpDst as LPWSTR, byval nSize as DWORD) as DWORD 1099 declare function FreeEnvironmentStrings alias "FreeEnvironmentStringsW"(byval penv as LPWCH) as WINBOOL 1100 declare function GetCommandLine alias "GetCommandLineW"() as LPWSTR 1101 declare function GetCurrentDirectory alias "GetCurrentDirectoryW"(byval nBufferLength as DWORD, byval lpBuffer as LPWSTR) as DWORD 1102 declare function GetEnvironmentVariable alias "GetEnvironmentVariableW"(byval lpName as LPCWSTR, byval lpBuffer as LPWSTR, byval nSize as DWORD) as DWORD 1103 declare function NeedCurrentDirectoryForExePath alias "NeedCurrentDirectoryForExePathW"(byval ExeName as LPCWSTR) as WINBOOL 1104 declare function SearchPath alias "SearchPathW"(byval lpPath as LPCWSTR, byval lpFileName as LPCWSTR, byval lpExtension as LPCWSTR, byval nBufferLength as DWORD, byval lpBuffer as LPWSTR, byval lpFilePart as LPWSTR ptr) as DWORD 1105 declare function SetCurrentDirectory alias "SetCurrentDirectoryW"(byval lpPathName as LPCWSTR) as WINBOOL 1106 declare function SetEnvironmentVariable alias "SetEnvironmentVariableW"(byval lpName as LPCWSTR, byval lpValue as LPCWSTR) as WINBOOL 1107 #else 1108 declare function ExpandEnvironmentStrings alias "ExpandEnvironmentStringsA"(byval lpSrc as LPCSTR, byval lpDst as LPSTR, byval nSize as DWORD) as DWORD 1109 declare function FreeEnvironmentStrings alias "FreeEnvironmentStringsA"(byval penv as LPCH) as WINBOOL 1110 declare function GetCommandLine alias "GetCommandLineA"() as LPSTR 1111 declare function GetCurrentDirectory alias "GetCurrentDirectoryA"(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 1112 declare function GetEnvironmentVariable alias "GetEnvironmentVariableA"(byval lpName as LPCSTR, byval lpBuffer as LPSTR, byval nSize as DWORD) as DWORD 1113 declare function NeedCurrentDirectoryForExePath alias "NeedCurrentDirectoryForExePathA"(byval ExeName as LPCSTR) as WINBOOL 1114 declare function SearchPath alias "SearchPathA"(byval lpPath as LPCSTR, byval lpFileName as LPCSTR, byval lpExtension as LPCSTR, byval nBufferLength as DWORD, byval lpBuffer as LPSTR, byval lpFilePart as LPSTR ptr) as DWORD 1115 declare function SetCurrentDirectory alias "SetCurrentDirectoryA"(byval lpPathName as LPCSTR) as WINBOOL 1116 declare function SetEnvironmentVariable alias "SetEnvironmentVariableA"(byval lpName as LPCSTR, byval lpValue as LPCSTR) as WINBOOL 1117 #endif 1118 1119 #define _PROCESSTHREADSAPI_H_ 1120 1121 #if _WIN32_WINNT <= &h0502 1122 const FLS_OUT_OF_INDEXES = cast(DWORD, &hffffffff) 1123 #endif 1124 1125 const TLS_OUT_OF_INDEXES = cast(DWORD, &hffffffff) 1126 1127 type _PROCESS_INFORMATION 1128 hProcess as HANDLE 1129 hThread as HANDLE 1130 dwProcessId as DWORD 1131 dwThreadId as DWORD 1132 end type 1133 1134 type PROCESS_INFORMATION as _PROCESS_INFORMATION 1135 type PPROCESS_INFORMATION as _PROCESS_INFORMATION ptr 1136 type LPPROCESS_INFORMATION as _PROCESS_INFORMATION ptr 1137 1138 type _STARTUPINFOA 1139 cb as DWORD 1140 lpReserved as LPSTR 1141 lpDesktop as LPSTR 1142 lpTitle as LPSTR 1143 dwX as DWORD 1144 dwY as DWORD 1145 dwXSize as DWORD 1146 dwYSize as DWORD 1147 dwXCountChars as DWORD 1148 dwYCountChars as DWORD 1149 dwFillAttribute as DWORD 1150 dwFlags as DWORD 1151 wShowWindow as WORD 1152 cbReserved2 as WORD 1153 lpReserved2 as LPBYTE 1154 hStdInput as HANDLE 1155 hStdOutput as HANDLE 1156 hStdError as HANDLE 1157 end type 1158 1159 type STARTUPINFOA as _STARTUPINFOA 1160 type LPSTARTUPINFOA as _STARTUPINFOA ptr 1161 1162 type _STARTUPINFOW 1163 cb as DWORD 1164 lpReserved as LPWSTR 1165 lpDesktop as LPWSTR 1166 lpTitle as LPWSTR 1167 dwX as DWORD 1168 dwY as DWORD 1169 dwXSize as DWORD 1170 dwYSize as DWORD 1171 dwXCountChars as DWORD 1172 dwYCountChars as DWORD 1173 dwFillAttribute as DWORD 1174 dwFlags as DWORD 1175 wShowWindow as WORD 1176 cbReserved2 as WORD 1177 lpReserved2 as LPBYTE 1178 hStdInput as HANDLE 1179 hStdOutput as HANDLE 1180 hStdError as HANDLE 1181 end type 1182 1183 type STARTUPINFOW as _STARTUPINFOW 1184 type LPSTARTUPINFOW as _STARTUPINFOW ptr 1185 1186 #ifdef UNICODE 1187 type STARTUPINFO as STARTUPINFOW 1188 type LPSTARTUPINFO as LPSTARTUPINFOW 1189 #else 1190 type STARTUPINFO as STARTUPINFOA 1191 type LPSTARTUPINFO as LPSTARTUPINFOA 1192 #endif 1193 1194 type PPROC_THREAD_ATTRIBUTE_LIST as _PROC_THREAD_ATTRIBUTE_LIST ptr 1195 type LPPROC_THREAD_ATTRIBUTE_LIST as _PROC_THREAD_ATTRIBUTE_LIST ptr 1196 declare function QueueUserAPC(byval pfnAPC as PAPCFUNC, byval hThread as HANDLE, byval dwData as ULONG_PTR) as DWORD 1197 declare function GetProcessTimes(byval hProcess as HANDLE, byval lpCreationTime as LPFILETIME, byval lpExitTime as LPFILETIME, byval lpKernelTime as LPFILETIME, byval lpUserTime as LPFILETIME) as WINBOOL 1198 declare sub ExitProcess(byval uExitCode as UINT) 1199 declare function TerminateProcess(byval hProcess as HANDLE, byval uExitCode as UINT) as WINBOOL 1200 declare function GetExitCodeProcess(byval hProcess as HANDLE, byval lpExitCode as LPDWORD) as WINBOOL 1201 declare function SwitchToThread() as WINBOOL 1202 declare function CreateRemoteThread(byval hProcess as HANDLE, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval dwStackSize as SIZE_T_, byval lpStartAddress as LPTHREAD_START_ROUTINE, byval lpParameter as LPVOID, byval dwCreationFlags as DWORD, byval lpThreadId as LPDWORD) as HANDLE 1203 declare function OpenThread(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval dwThreadId as DWORD) as HANDLE 1204 declare function SetThreadPriorityBoost(byval hThread as HANDLE, byval bDisablePriorityBoost as WINBOOL) as WINBOOL 1205 declare function GetThreadPriorityBoost(byval hThread as HANDLE, byval pDisablePriorityBoost as PBOOL) as WINBOOL 1206 declare function TerminateThread(byval hThread as HANDLE, byval dwExitCode as DWORD) as WINBOOL 1207 declare function SetProcessShutdownParameters(byval dwLevel as DWORD, byval dwFlags as DWORD) as WINBOOL 1208 declare function GetProcessVersion(byval ProcessId as DWORD) as DWORD 1209 declare sub GetStartupInfoW(byval lpStartupInfo as LPSTARTUPINFOW) 1210 declare function SetThreadToken(byval Thread as PHANDLE, byval Token as HANDLE) as WINBOOL 1211 declare function OpenProcessToken(byval ProcessHandle as HANDLE, byval DesiredAccess as DWORD, byval TokenHandle as PHANDLE) as WINBOOL 1212 declare function OpenThreadToken(byval ThreadHandle as HANDLE, byval DesiredAccess as DWORD, byval OpenAsSelf as WINBOOL, byval TokenHandle as PHANDLE) as WINBOOL 1213 declare function SetPriorityClass(byval hProcess as HANDLE, byval dwPriorityClass as DWORD) as WINBOOL 1214 declare function SetThreadStackGuarantee(byval StackSizeInBytes as PULONG) as WINBOOL 1215 declare function GetPriorityClass(byval hProcess as HANDLE) as DWORD 1216 declare function ProcessIdToSessionId(byval dwProcessId as DWORD, byval pSessionId as DWORD ptr) as WINBOOL 1217 declare function GetProcessId(byval Process as HANDLE) as DWORD 1218 declare function GetThreadId(byval Thread as HANDLE) as DWORD 1219 declare function CreateRemoteThreadEx(byval hProcess as HANDLE, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval dwStackSize as SIZE_T_, byval lpStartAddress as LPTHREAD_START_ROUTINE, byval lpParameter as LPVOID, byval dwCreationFlags as DWORD, byval lpAttributeList as LPPROC_THREAD_ATTRIBUTE_LIST, byval lpThreadId as LPDWORD) as HANDLE 1220 declare function GetThreadContext(byval hThread as HANDLE, byval lpContext as LPCONTEXT) as WINBOOL 1221 declare function SetThreadContext(byval hThread as HANDLE, byval lpContext as const CONTEXT ptr) as WINBOOL 1222 declare function FlushInstructionCache(byval hProcess as HANDLE, byval lpBaseAddress as LPCVOID, byval dwSize as SIZE_T_) as WINBOOL 1223 declare function GetThreadTimes(byval hThread as HANDLE, byval lpCreationTime as LPFILETIME, byval lpExitTime as LPFILETIME, byval lpKernelTime as LPFILETIME, byval lpUserTime as LPFILETIME) as WINBOOL 1224 declare function OpenProcess(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval dwProcessId as DWORD) as HANDLE 1225 declare function GetProcessHandleCount(byval hProcess as HANDLE, byval pdwHandleCount as PDWORD) as WINBOOL 1226 declare function GetCurrentProcessorNumber() as DWORD 1227 1228 #ifdef UNICODE 1229 declare sub GetStartupInfo alias "GetStartupInfoW"(byval lpStartupInfo as LPSTARTUPINFOW) 1230 #endif 1231 1232 declare function CreateProcessA(byval lpApplicationName as LPCSTR, byval lpCommandLine as LPSTR, byval lpProcessAttributes as LPSECURITY_ATTRIBUTES, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval bInheritHandles as WINBOOL, byval dwCreationFlags as DWORD, byval lpEnvironment as LPVOID, byval lpCurrentDirectory as LPCSTR, byval lpStartupInfo as LPSTARTUPINFOA, byval lpProcessInformation as LPPROCESS_INFORMATION) as WINBOOL 1233 declare function CreateProcessW(byval lpApplicationName as LPCWSTR, byval lpCommandLine as LPWSTR, byval lpProcessAttributes as LPSECURITY_ATTRIBUTES, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval bInheritHandles as WINBOOL, byval dwCreationFlags as DWORD, byval lpEnvironment as LPVOID, byval lpCurrentDirectory as LPCWSTR, byval lpStartupInfo as LPSTARTUPINFOW, byval lpProcessInformation as LPPROCESS_INFORMATION) as WINBOOL 1234 1235 #ifdef UNICODE 1236 declare function CreateProcess alias "CreateProcessW"(byval lpApplicationName as LPCWSTR, byval lpCommandLine as LPWSTR, byval lpProcessAttributes as LPSECURITY_ATTRIBUTES, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval bInheritHandles as WINBOOL, byval dwCreationFlags as DWORD, byval lpEnvironment as LPVOID, byval lpCurrentDirectory as LPCWSTR, byval lpStartupInfo as LPSTARTUPINFOW, byval lpProcessInformation as LPPROCESS_INFORMATION) as WINBOOL 1237 #else 1238 declare function CreateProcess alias "CreateProcessA"(byval lpApplicationName as LPCSTR, byval lpCommandLine as LPSTR, byval lpProcessAttributes as LPSECURITY_ATTRIBUTES, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval bInheritHandles as WINBOOL, byval dwCreationFlags as DWORD, byval lpEnvironment as LPVOID, byval lpCurrentDirectory as LPCSTR, byval lpStartupInfo as LPSTARTUPINFOA, byval lpProcessInformation as LPPROCESS_INFORMATION) as WINBOOL 1239 #endif 1240 1241 declare function CreateProcessAsUserW(byval hToken as HANDLE, byval lpApplicationName as LPCWSTR, byval lpCommandLine as LPWSTR, byval lpProcessAttributes as LPSECURITY_ATTRIBUTES, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval bInheritHandles as WINBOOL, byval dwCreationFlags as DWORD, byval lpEnvironment as LPVOID, byval lpCurrentDirectory as LPCWSTR, byval lpStartupInfo as LPSTARTUPINFOW, byval lpProcessInformation as LPPROCESS_INFORMATION) as WINBOOL 1242 1243 #ifdef UNICODE 1244 declare function CreateProcessAsUser alias "CreateProcessAsUserW"(byval hToken as HANDLE, byval lpApplicationName as LPCWSTR, byval lpCommandLine as LPWSTR, byval lpProcessAttributes as LPSECURITY_ATTRIBUTES, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval bInheritHandles as WINBOOL, byval dwCreationFlags as DWORD, byval lpEnvironment as LPVOID, byval lpCurrentDirectory as LPCWSTR, byval lpStartupInfo as LPSTARTUPINFOW, byval lpProcessInformation as LPPROCESS_INFORMATION) as WINBOOL 1245 #endif 1246 1247 #if _WIN32_WINNT >= &h0600 1248 const PROCESS_AFFINITY_ENABLE_AUTO_UPDATE = &h1u 1249 const PROC_THREAD_ATTRIBUTE_REPLACE_VALUE = &h00000001 1250 declare function GetProcessIdOfThread(byval Thread as HANDLE) as DWORD 1251 declare function InitializeProcThreadAttributeList(byval lpAttributeList as LPPROC_THREAD_ATTRIBUTE_LIST, byval dwAttributeCount as DWORD, byval dwFlags as DWORD, byval lpSize as PSIZE_T) as WINBOOL 1252 declare sub DeleteProcThreadAttributeList(byval lpAttributeList as LPPROC_THREAD_ATTRIBUTE_LIST) 1253 declare function SetProcessAffinityUpdateMode(byval hProcess as HANDLE, byval dwFlags as DWORD) as WINBOOL 1254 declare function QueryProcessAffinityUpdateMode(byval hProcess as HANDLE, byval lpdwFlags as LPDWORD) as WINBOOL 1255 declare function UpdateProcThreadAttribute(byval lpAttributeList as LPPROC_THREAD_ATTRIBUTE_LIST, byval dwFlags as DWORD, byval Attribute as DWORD_PTR, byval lpValue as PVOID, byval cbSize as SIZE_T_, byval lpPreviousValue as PVOID, byval lpReturnSize as PSIZE_T) as WINBOOL 1256 #endif 1257 1258 #if _WIN32_WINNT >= &h0601 1259 declare function GetThreadIdealProcessorEx(byval hThread as HANDLE, byval lpIdealProcessor as PPROCESSOR_NUMBER) as WINBOOL 1260 declare sub GetCurrentProcessorNumberEx(byval ProcNumber as PPROCESSOR_NUMBER) 1261 #endif 1262 1263 #if _WIN32_WINNT = &h0602 1264 declare sub GetCurrentThreadStackLimits(byval LowLimit as PULONG_PTR, byval HighLimit as PULONG_PTR) 1265 declare function SetProcessMitigationPolicy(byval MitigationPolicy as PROCESS_MITIGATION_POLICY, byval lpBuffer as PVOID, byval dwLength as SIZE_T_) as WINBOOL 1266 declare function GetProcessMitigationPolicy(byval hProcess as HANDLE, byval MitigationPolicy as PROCESS_MITIGATION_POLICY, byval lpBuffer as PVOID, byval dwLength as SIZE_T_) as WINBOOL 1267 #endif 1268 1269 declare function GetCurrentProcess() as HANDLE 1270 declare function GetCurrentProcessId() as DWORD 1271 declare function GetCurrentThread() as HANDLE 1272 declare function GetCurrentThreadId() as DWORD 1273 declare function IsProcessorFeaturePresent(byval ProcessorFeature as DWORD) as WINBOOL 1274 1275 #if _WIN32_WINNT >= &h0600 1276 declare sub FlushProcessWriteBuffers() 1277 #endif 1278 1279 declare function CreateThread(byval lpThreadAttributes as LPSECURITY_ATTRIBUTES, byval dwStackSize as SIZE_T_, byval lpStartAddress as LPTHREAD_START_ROUTINE, byval lpParameter as LPVOID, byval dwCreationFlags as DWORD, byval lpThreadId as LPDWORD) as HANDLE 1280 declare function SetThreadPriority(byval hThread as HANDLE, byval nPriority as long) as WINBOOL 1281 declare function GetThreadPriority(byval hThread as HANDLE) as long 1282 declare sub ExitThread(byval dwExitCode as DWORD) 1283 declare function GetExitCodeThread(byval hThread as HANDLE, byval lpExitCode as LPDWORD) as WINBOOL 1284 declare function SuspendThread(byval hThread as HANDLE) as DWORD 1285 declare function ResumeThread(byval hThread as HANDLE) as DWORD 1286 declare function TlsAlloc() as DWORD 1287 declare function TlsGetValue(byval dwTlsIndex as DWORD) as LPVOID 1288 declare function TlsSetValue(byval dwTlsIndex as DWORD, byval lpTlsValue as LPVOID) as WINBOOL 1289 declare function TlsFree(byval dwTlsIndex as DWORD) as WINBOOL 1290 1291 #if _WIN32_WINNT >= &h0601 1292 declare function SetThreadIdealProcessorEx(byval hThread as HANDLE, byval lpIdealProcessor as PPROCESSOR_NUMBER, byval lpPreviousIdealProcessor as PPROCESSOR_NUMBER) as WINBOOL 1293 #endif 1294 1295 #define _PROCESSTOPOLOGYAPI_H_ 1296 1297 #if _WIN32_WINNT >= &h0601 1298 declare function GetProcessGroupAffinity(byval hProcess as HANDLE, byval GroupCount as PUSHORT, byval GroupArray as PUSHORT) as WINBOOL 1299 declare function SetProcessGroupAffinity(byval hProcess as HANDLE, byval GroupAffinity as const GROUP_AFFINITY ptr, byval PreviousGroupAffinity as PGROUP_AFFINITY) as WINBOOL 1300 declare function GetThreadGroupAffinity(byval hThread as HANDLE, byval GroupAffinity as PGROUP_AFFINITY) as WINBOOL 1301 declare function SetThreadGroupAffinity(byval hThread as HANDLE, byval GroupAffinity as const GROUP_AFFINITY ptr, byval PreviousGroupAffinity as PGROUP_AFFINITY) as WINBOOL 1302 #endif 1303 1304 #define _PROFILEAPI_H_ 1305 declare function QueryPerformanceCounter(byval lpPerformanceCount as LARGE_INTEGER ptr) as WINBOOL 1306 declare function QueryPerformanceFrequency(byval lpFrequency as LARGE_INTEGER ptr) as WINBOOL 1307 #define _APISETREALTIME_ 1308 1309 #if _WIN32_WINNT >= &h0600 1310 declare function QueryThreadCycleTime(byval ThreadHandle as HANDLE, byval CycleTime as PULONG64) as WINBOOL 1311 declare function QueryProcessCycleTime(byval ProcessHandle as HANDLE, byval CycleTime as PULONG64) as WINBOOL 1312 declare function QueryIdleProcessorCycleTime(byval BufferLength as PULONG, byval ProcessorIdleCycleTime as PULONG64) as WINBOOL 1313 #endif 1314 1315 #if _WIN32_WINNT >= &h0601 1316 declare function QueryIdleProcessorCycleTimeEx(byval Group as USHORT, byval BufferLength as PULONG, byval ProcessorIdleCycleTime as PULONG64) as WINBOOL 1317 declare function QueryUnbiasedInterruptTime(byval UnbiasedTime as PULONGLONG) as WINBOOL 1318 #endif 1319 1320 #define _APIAPPCONTAINER_ 1321 1322 #if _WIN32_WINNT = &h0602 1323 declare function GetAppContainerNamedObjectPath cdecl(byval Token as HANDLE, byval AppContainerSid as PSID, byval ObjectPathLength as ULONG, byval ObjectPath as LPWSTR, byval ReturnLength as PULONG) as WINBOOL 1324 #endif 1325 1326 #define _APISECUREBASE_ 1327 declare function AccessCheck(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval ClientToken as HANDLE, byval DesiredAccess as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval PrivilegeSet as PPRIVILEGE_SET, byval PrivilegeSetLength as LPDWORD, byval GrantedAccess as LPDWORD, byval AccessStatus as LPBOOL) as WINBOOL 1328 declare function AccessCheckAndAuditAlarmW(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ObjectTypeName as LPWSTR, byval ObjectName as LPWSTR, byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval DesiredAccess as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval ObjectCreation as WINBOOL, byval GrantedAccess as LPDWORD, byval AccessStatus as LPBOOL, byval pfGenerateOnClose as LPBOOL) as WINBOOL 1329 1330 #ifdef UNICODE 1331 declare function AccessCheckAndAuditAlarm alias "AccessCheckAndAuditAlarmW"(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ObjectTypeName as LPWSTR, byval ObjectName as LPWSTR, byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval DesiredAccess as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval ObjectCreation as WINBOOL, byval GrantedAccess as LPDWORD, byval AccessStatus as LPBOOL, byval pfGenerateOnClose as LPBOOL) as WINBOOL 1332 #endif 1333 1334 declare function AccessCheckByType(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval PrincipalSelfSid as PSID, byval ClientToken as HANDLE, byval DesiredAccess as DWORD, byval ObjectTypeList as POBJECT_TYPE_LIST, byval ObjectTypeListLength as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval PrivilegeSet as PPRIVILEGE_SET, byval PrivilegeSetLength as LPDWORD, byval GrantedAccess as LPDWORD, byval AccessStatus as LPBOOL) as WINBOOL 1335 declare function AccessCheckByTypeResultList(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval PrincipalSelfSid as PSID, byval ClientToken as HANDLE, byval DesiredAccess as DWORD, byval ObjectTypeList as POBJECT_TYPE_LIST, byval ObjectTypeListLength as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval PrivilegeSet as PPRIVILEGE_SET, byval PrivilegeSetLength as LPDWORD, byval GrantedAccessList as LPDWORD, byval AccessStatusList as LPDWORD) as WINBOOL 1336 declare function AccessCheckByTypeAndAuditAlarmW(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ObjectTypeName as LPCWSTR, byval ObjectName as LPCWSTR, byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval PrincipalSelfSid as PSID, byval DesiredAccess as DWORD, byval AuditType as AUDIT_EVENT_TYPE, byval Flags as DWORD, byval ObjectTypeList as POBJECT_TYPE_LIST, byval ObjectTypeListLength as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval ObjectCreation as WINBOOL, byval GrantedAccess as LPDWORD, byval AccessStatus as LPBOOL, byval pfGenerateOnClose as LPBOOL) as WINBOOL 1337 1338 #ifdef UNICODE 1339 declare function AccessCheckByTypeAndAuditAlarm alias "AccessCheckByTypeAndAuditAlarmW"(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ObjectTypeName as LPCWSTR, byval ObjectName as LPCWSTR, byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval PrincipalSelfSid as PSID, byval DesiredAccess as DWORD, byval AuditType as AUDIT_EVENT_TYPE, byval Flags as DWORD, byval ObjectTypeList as POBJECT_TYPE_LIST, byval ObjectTypeListLength as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval ObjectCreation as WINBOOL, byval GrantedAccess as LPDWORD, byval AccessStatus as LPBOOL, byval pfGenerateOnClose as LPBOOL) as WINBOOL 1340 #endif 1341 1342 declare function AccessCheckByTypeResultListAndAuditAlarmW(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ObjectTypeName as LPCWSTR, byval ObjectName as LPCWSTR, byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval PrincipalSelfSid as PSID, byval DesiredAccess as DWORD, byval AuditType as AUDIT_EVENT_TYPE, byval Flags as DWORD, byval ObjectTypeList as POBJECT_TYPE_LIST, byval ObjectTypeListLength as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval ObjectCreation as WINBOOL, byval GrantedAccessList as LPDWORD, byval AccessStatusList as LPDWORD, byval pfGenerateOnClose as LPBOOL) as WINBOOL 1343 1344 #ifdef UNICODE 1345 declare function AccessCheckByTypeResultListAndAuditAlarm alias "AccessCheckByTypeResultListAndAuditAlarmW"(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ObjectTypeName as LPCWSTR, byval ObjectName as LPCWSTR, byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval PrincipalSelfSid as PSID, byval DesiredAccess as DWORD, byval AuditType as AUDIT_EVENT_TYPE, byval Flags as DWORD, byval ObjectTypeList as POBJECT_TYPE_LIST, byval ObjectTypeListLength as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval ObjectCreation as WINBOOL, byval GrantedAccessList as LPDWORD, byval AccessStatusList as LPDWORD, byval pfGenerateOnClose as LPBOOL) as WINBOOL 1346 #endif 1347 1348 declare function AccessCheckByTypeResultListAndAuditAlarmByHandleW(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ClientToken as HANDLE, byval ObjectTypeName as LPCWSTR, byval ObjectName as LPCWSTR, byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval PrincipalSelfSid as PSID, byval DesiredAccess as DWORD, byval AuditType as AUDIT_EVENT_TYPE, byval Flags as DWORD, byval ObjectTypeList as POBJECT_TYPE_LIST, byval ObjectTypeListLength as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval ObjectCreation as WINBOOL, byval GrantedAccessList as LPDWORD, byval AccessStatusList as LPDWORD, byval pfGenerateOnClose as LPBOOL) as WINBOOL 1349 1350 #ifdef UNICODE 1351 declare function AccessCheckByTypeResultListAndAuditAlarmByHandle alias "AccessCheckByTypeResultListAndAuditAlarmByHandleW"(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ClientToken as HANDLE, byval ObjectTypeName as LPCWSTR, byval ObjectName as LPCWSTR, byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval PrincipalSelfSid as PSID, byval DesiredAccess as DWORD, byval AuditType as AUDIT_EVENT_TYPE, byval Flags as DWORD, byval ObjectTypeList as POBJECT_TYPE_LIST, byval ObjectTypeListLength as DWORD, byval GenericMapping as PGENERIC_MAPPING, byval ObjectCreation as WINBOOL, byval GrantedAccessList as LPDWORD, byval AccessStatusList as LPDWORD, byval pfGenerateOnClose as LPBOOL) as WINBOOL 1352 #endif 1353 1354 declare function AddAccessAllowedAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AccessMask as DWORD, byval pSid as PSID) as WINBOOL 1355 declare function AddAccessAllowedAceEx(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval AccessMask as DWORD, byval pSid as PSID) as WINBOOL 1356 declare function AddAccessAllowedObjectAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval AccessMask as DWORD, byval ObjectTypeGuid as GUID ptr, byval InheritedObjectTypeGuid as GUID ptr, byval pSid as PSID) as WINBOOL 1357 declare function AddAccessDeniedAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AccessMask as DWORD, byval pSid as PSID) as WINBOOL 1358 declare function AddAccessDeniedAceEx(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval AccessMask as DWORD, byval pSid as PSID) as WINBOOL 1359 declare function AddAccessDeniedObjectAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval AccessMask as DWORD, byval ObjectTypeGuid as GUID ptr, byval InheritedObjectTypeGuid as GUID ptr, byval pSid as PSID) as WINBOOL 1360 declare function AddAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval dwStartingAceIndex as DWORD, byval pAceList as LPVOID, byval nAceListLength as DWORD) as WINBOOL 1361 declare function AddAuditAccessAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval dwAccessMask as DWORD, byval pSid as PSID, byval bAuditSuccess as WINBOOL, byval bAuditFailure as WINBOOL) as WINBOOL 1362 declare function AddAuditAccessAceEx(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval dwAccessMask as DWORD, byval pSid as PSID, byval bAuditSuccess as WINBOOL, byval bAuditFailure as WINBOOL) as WINBOOL 1363 declare function AddAuditAccessObjectAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval AccessMask as DWORD, byval ObjectTypeGuid as GUID ptr, byval InheritedObjectTypeGuid as GUID ptr, byval pSid as PSID, byval bAuditSuccess as WINBOOL, byval bAuditFailure as WINBOOL) as WINBOOL 1364 1365 #if _WIN32_WINNT >= &h0600 1366 declare function AddMandatoryAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval MandatoryPolicy as DWORD, byval pLabelSid as PSID) as WINBOOL 1367 #endif 1368 1369 #if _WIN32_WINNT = &h0602 1370 declare function AddResourceAttributeAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval AccessMask as DWORD, byval pSid as PSID, byval pAttributeInfo as PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, byval pReturnLength as PDWORD) as WINBOOL 1371 declare function AddScopedPolicyIDAce(byval pAcl as PACL, byval dwAceRevision as DWORD, byval AceFlags as DWORD, byval AccessMask as DWORD, byval pSid as PSID) as WINBOOL 1372 #endif 1373 1374 declare function AdjustTokenGroups(byval TokenHandle as HANDLE, byval ResetToDefault as WINBOOL, byval NewState as PTOKEN_GROUPS, byval BufferLength as DWORD, byval PreviousState as PTOKEN_GROUPS, byval ReturnLength as PDWORD) as WINBOOL 1375 declare function AdjustTokenPrivileges(byval TokenHandle as HANDLE, byval DisableAllPrivileges as WINBOOL, byval NewState as PTOKEN_PRIVILEGES, byval BufferLength as DWORD, byval PreviousState as PTOKEN_PRIVILEGES, byval ReturnLength as PDWORD) as WINBOOL 1376 declare function AllocateAndInitializeSid(byval pIdentifierAuthority as PSID_IDENTIFIER_AUTHORITY, byval nSubAuthorityCount as UBYTE, byval nSubAuthority0 as DWORD, byval nSubAuthority1 as DWORD, byval nSubAuthority2 as DWORD, byval nSubAuthority3 as DWORD, byval nSubAuthority4 as DWORD, byval nSubAuthority5 as DWORD, byval nSubAuthority6 as DWORD, byval nSubAuthority7 as DWORD, byval pSid as PSID ptr) as WINBOOL 1377 declare function AllocateLocallyUniqueId(byval Luid as PLUID) as WINBOOL 1378 declare function AreAllAccessesGranted(byval GrantedAccess as DWORD, byval DesiredAccess as DWORD) as WINBOOL 1379 declare function AreAnyAccessesGranted(byval GrantedAccess as DWORD, byval DesiredAccess as DWORD) as WINBOOL 1380 declare function CheckTokenMembership(byval TokenHandle as HANDLE, byval SidToCheck as PSID, byval IsMember as PBOOL) as WINBOOL 1381 1382 #if _WIN32_WINNT = &h0602 1383 declare function CheckTokenCapability(byval TokenHandle as HANDLE, byval CapabilitySidToCheck as PSID, byval HasCapability as PBOOL) as WINBOOL 1384 declare function GetAppContainerAce(byval Acl as PACL, byval StartingAceIndex as DWORD, byval AppContainerAce as PVOID ptr, byval AppContainerAceIndex as DWORD ptr) as WINBOOL 1385 declare function CheckTokenMembershipEx(byval TokenHandle as HANDLE, byval SidToCheck as PSID, byval Flags as DWORD, byval IsMember as PBOOL) as WINBOOL 1386 #endif 1387 1388 declare function ConvertToAutoInheritPrivateObjectSecurity(byval ParentDescriptor as PSECURITY_DESCRIPTOR, byval CurrentSecurityDescriptor as PSECURITY_DESCRIPTOR, byval NewSecurityDescriptor as PSECURITY_DESCRIPTOR ptr, byval ObjectType as GUID ptr, byval IsDirectoryObject as WINBOOLEAN, byval GenericMapping as PGENERIC_MAPPING) as WINBOOL 1389 declare function CopySid(byval nDestinationSidLength as DWORD, byval pDestinationSid as PSID, byval pSourceSid as PSID) as WINBOOL 1390 declare function CreatePrivateObjectSecurity(byval ParentDescriptor as PSECURITY_DESCRIPTOR, byval CreatorDescriptor as PSECURITY_DESCRIPTOR, byval NewDescriptor as PSECURITY_DESCRIPTOR ptr, byval IsDirectoryObject as WINBOOL, byval Token as HANDLE, byval GenericMapping as PGENERIC_MAPPING) as WINBOOL 1391 declare function CreatePrivateObjectSecurityEx(byval ParentDescriptor as PSECURITY_DESCRIPTOR, byval CreatorDescriptor as PSECURITY_DESCRIPTOR, byval NewDescriptor as PSECURITY_DESCRIPTOR ptr, byval ObjectType as GUID ptr, byval IsContainerObject as WINBOOL, byval AutoInheritFlags as ULONG, byval Token as HANDLE, byval GenericMapping as PGENERIC_MAPPING) as WINBOOL 1392 declare function CreatePrivateObjectSecurityWithMultipleInheritance(byval ParentDescriptor as PSECURITY_DESCRIPTOR, byval CreatorDescriptor as PSECURITY_DESCRIPTOR, byval NewDescriptor as PSECURITY_DESCRIPTOR ptr, byval ObjectTypes as GUID ptr ptr, byval GuidCount as ULONG, byval IsContainerObject as WINBOOL, byval AutoInheritFlags as ULONG, byval Token as HANDLE, byval GenericMapping as PGENERIC_MAPPING) as WINBOOL 1393 declare function CreateRestrictedToken(byval ExistingTokenHandle as HANDLE, byval Flags as DWORD, byval DisableSidCount as DWORD, byval SidsToDisable as PSID_AND_ATTRIBUTES, byval DeletePrivilegeCount as DWORD, byval PrivilegesToDelete as PLUID_AND_ATTRIBUTES, byval RestrictedSidCount as DWORD, byval SidsToRestrict as PSID_AND_ATTRIBUTES, byval NewTokenHandle as PHANDLE) as WINBOOL 1394 declare function CreateWellKnownSid(byval WellKnownSidType as WELL_KNOWN_SID_TYPE, byval DomainSid as PSID, byval pSid as PSID, byval cbSid as DWORD ptr) as WINBOOL 1395 declare function EqualDomainSid(byval pSid1 as PSID, byval pSid2 as PSID, byval pfEqual as WINBOOL ptr) as WINBOOL 1396 declare function DeleteAce(byval pAcl as PACL, byval dwAceIndex as DWORD) as WINBOOL 1397 declare function DestroyPrivateObjectSecurity(byval ObjectDescriptor as PSECURITY_DESCRIPTOR ptr) as WINBOOL 1398 declare function DuplicateToken(byval ExistingTokenHandle as HANDLE, byval ImpersonationLevel as SECURITY_IMPERSONATION_LEVEL, byval DuplicateTokenHandle as PHANDLE) as WINBOOL 1399 declare function DuplicateTokenEx(byval hExistingToken as HANDLE, byval dwDesiredAccess as DWORD, byval lpTokenAttributes as LPSECURITY_ATTRIBUTES, byval ImpersonationLevel as SECURITY_IMPERSONATION_LEVEL, byval TokenType as TOKEN_TYPE, byval phNewToken as PHANDLE) as WINBOOL 1400 declare function EqualPrefixSid(byval pSid1 as PSID, byval pSid2 as PSID) as WINBOOL 1401 declare function EqualSid(byval pSid1 as PSID, byval pSid2 as PSID) as WINBOOL 1402 declare function FindFirstFreeAce(byval pAcl as PACL, byval pAce as LPVOID ptr) as WINBOOL 1403 declare function FreeSid(byval pSid as PSID) as PVOID 1404 declare function GetAce(byval pAcl as PACL, byval dwAceIndex as DWORD, byval pAce as LPVOID ptr) as WINBOOL 1405 declare function GetAclInformation(byval pAcl as PACL, byval pAclInformation as LPVOID, byval nAclInformationLength as DWORD, byval dwAclInformationClass as ACL_INFORMATION_CLASS) as WINBOOL 1406 declare function GetFileSecurityW(byval lpFileName as LPCWSTR, byval RequestedInformation as SECURITY_INFORMATION, byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval nLength as DWORD, byval lpnLengthNeeded as LPDWORD) as WINBOOL 1407 1408 #ifdef UNICODE 1409 declare function GetFileSecurity alias "GetFileSecurityW"(byval lpFileName as LPCWSTR, byval RequestedInformation as SECURITY_INFORMATION, byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval nLength as DWORD, byval lpnLengthNeeded as LPDWORD) as WINBOOL 1410 #endif 1411 1412 declare function GetKernelObjectSecurity(byval Handle as HANDLE, byval RequestedInformation as SECURITY_INFORMATION, byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval nLength as DWORD, byval lpnLengthNeeded as LPDWORD) as WINBOOL 1413 declare function GetLengthSid(byval pSid as PSID) as DWORD 1414 declare function GetPrivateObjectSecurity(byval ObjectDescriptor as PSECURITY_DESCRIPTOR, byval SecurityInformation as SECURITY_INFORMATION, byval ResultantDescriptor as PSECURITY_DESCRIPTOR, byval DescriptorLength as DWORD, byval ReturnLength as PDWORD) as WINBOOL 1415 declare function GetSecurityDescriptorControl(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval pControl as PSECURITY_DESCRIPTOR_CONTROL, byval lpdwRevision as LPDWORD) as WINBOOL 1416 declare function GetSecurityDescriptorDacl(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval lpbDaclPresent as LPBOOL, byval pDacl as PACL ptr, byval lpbDaclDefaulted as LPBOOL) as WINBOOL 1417 declare function GetSecurityDescriptorGroup(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval pGroup as PSID ptr, byval lpbGroupDefaulted as LPBOOL) as WINBOOL 1418 declare function GetSecurityDescriptorLength(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR) as DWORD 1419 declare function GetSecurityDescriptorOwner(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval pOwner as PSID ptr, byval lpbOwnerDefaulted as LPBOOL) as WINBOOL 1420 declare function GetSecurityDescriptorRMControl(byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval RMControl as PUCHAR) as DWORD 1421 declare function GetSecurityDescriptorSacl(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval lpbSaclPresent as LPBOOL, byval pSacl as PACL ptr, byval lpbSaclDefaulted as LPBOOL) as WINBOOL 1422 declare function GetSidIdentifierAuthority(byval pSid as PSID) as PSID_IDENTIFIER_AUTHORITY 1423 declare function GetSidLengthRequired(byval nSubAuthorityCount as UCHAR) as DWORD 1424 declare function GetSidSubAuthority(byval pSid as PSID, byval nSubAuthority as DWORD) as PDWORD 1425 declare function GetSidSubAuthorityCount(byval pSid as PSID) as PUCHAR 1426 declare function GetTokenInformation(byval TokenHandle as HANDLE, byval TokenInformationClass as TOKEN_INFORMATION_CLASS, byval TokenInformation as LPVOID, byval TokenInformationLength as DWORD, byval ReturnLength as PDWORD) as WINBOOL 1427 declare function GetWindowsAccountDomainSid(byval pSid as PSID, byval pDomainSid as PSID, byval cbDomainSid as DWORD ptr) as WINBOOL 1428 declare function ImpersonateAnonymousToken(byval ThreadHandle as HANDLE) as WINBOOL 1429 declare function ImpersonateLoggedOnUser(byval hToken as HANDLE) as WINBOOL 1430 declare function ImpersonateSelf(byval ImpersonationLevel as SECURITY_IMPERSONATION_LEVEL) as WINBOOL 1431 declare function InitializeAcl(byval pAcl as PACL, byval nAclLength as DWORD, byval dwAclRevision as DWORD) as WINBOOL 1432 declare function InitializeSecurityDescriptor(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval dwRevision as DWORD) as WINBOOL 1433 declare function InitializeSid(byval Sid as PSID, byval pIdentifierAuthority as PSID_IDENTIFIER_AUTHORITY, byval nSubAuthorityCount as UBYTE) as WINBOOL 1434 declare function IsTokenRestricted(byval TokenHandle as HANDLE) as WINBOOL 1435 declare function IsValidAcl(byval pAcl as PACL) as WINBOOL 1436 declare function IsValidSecurityDescriptor(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR) as WINBOOL 1437 declare function IsValidSid(byval pSid as PSID) as WINBOOL 1438 declare function IsWellKnownSid(byval pSid as PSID, byval WellKnownSidType as WELL_KNOWN_SID_TYPE) as WINBOOL 1439 declare function MakeAbsoluteSD(byval pSelfRelativeSecurityDescriptor as PSECURITY_DESCRIPTOR, byval pAbsoluteSecurityDescriptor as PSECURITY_DESCRIPTOR, byval lpdwAbsoluteSecurityDescriptorSize as LPDWORD, byval pDacl as PACL, byval lpdwDaclSize as LPDWORD, byval pSacl as PACL, byval lpdwSaclSize as LPDWORD, byval pOwner as PSID, byval lpdwOwnerSize as LPDWORD, byval pPrimaryGroup as PSID, byval lpdwPrimaryGroupSize as LPDWORD) as WINBOOL 1440 declare function MakeSelfRelativeSD(byval pAbsoluteSecurityDescriptor as PSECURITY_DESCRIPTOR, byval pSelfRelativeSecurityDescriptor as PSECURITY_DESCRIPTOR, byval lpdwBufferLength as LPDWORD) as WINBOOL 1441 declare sub MapGenericMask(byval AccessMask as PDWORD, byval GenericMapping as PGENERIC_MAPPING) 1442 declare function ObjectCloseAuditAlarmW(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval GenerateOnClose as WINBOOL) as WINBOOL 1443 1444 #ifdef UNICODE 1445 declare function ObjectCloseAuditAlarm alias "ObjectCloseAuditAlarmW"(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval GenerateOnClose as WINBOOL) as WINBOOL 1446 #endif 1447 1448 declare function ObjectDeleteAuditAlarmW(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval GenerateOnClose as WINBOOL) as WINBOOL 1449 1450 #ifdef UNICODE 1451 declare function ObjectDeleteAuditAlarm alias "ObjectDeleteAuditAlarmW"(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval GenerateOnClose as WINBOOL) as WINBOOL 1452 #endif 1453 1454 declare function ObjectOpenAuditAlarmW(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ObjectTypeName as LPWSTR, byval ObjectName as LPWSTR, byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval ClientToken as HANDLE, byval DesiredAccess as DWORD, byval GrantedAccess as DWORD, byval Privileges as PPRIVILEGE_SET, byval ObjectCreation as WINBOOL, byval AccessGranted as WINBOOL, byval GenerateOnClose as LPBOOL) as WINBOOL 1455 1456 #ifdef UNICODE 1457 declare function ObjectOpenAuditAlarm alias "ObjectOpenAuditAlarmW"(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ObjectTypeName as LPWSTR, byval ObjectName as LPWSTR, byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval ClientToken as HANDLE, byval DesiredAccess as DWORD, byval GrantedAccess as DWORD, byval Privileges as PPRIVILEGE_SET, byval ObjectCreation as WINBOOL, byval AccessGranted as WINBOOL, byval GenerateOnClose as LPBOOL) as WINBOOL 1458 #endif 1459 1460 declare function ObjectPrivilegeAuditAlarmW(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ClientToken as HANDLE, byval DesiredAccess as DWORD, byval Privileges as PPRIVILEGE_SET, byval AccessGranted as WINBOOL) as WINBOOL 1461 1462 #ifdef UNICODE 1463 declare function ObjectPrivilegeAuditAlarm alias "ObjectPrivilegeAuditAlarmW"(byval SubsystemName as LPCWSTR, byval HandleId as LPVOID, byval ClientToken as HANDLE, byval DesiredAccess as DWORD, byval Privileges as PPRIVILEGE_SET, byval AccessGranted as WINBOOL) as WINBOOL 1464 #endif 1465 1466 declare function PrivilegeCheck(byval ClientToken as HANDLE, byval RequiredPrivileges as PPRIVILEGE_SET, byval pfResult as LPBOOL) as WINBOOL 1467 declare function PrivilegedServiceAuditAlarmW(byval SubsystemName as LPCWSTR, byval ServiceName as LPCWSTR, byval ClientToken as HANDLE, byval Privileges as PPRIVILEGE_SET, byval AccessGranted as WINBOOL) as WINBOOL 1468 1469 #ifdef UNICODE 1470 declare function PrivilegedServiceAuditAlarm alias "PrivilegedServiceAuditAlarmW"(byval SubsystemName as LPCWSTR, byval ServiceName as LPCWSTR, byval ClientToken as HANDLE, byval Privileges as PPRIVILEGE_SET, byval AccessGranted as WINBOOL) as WINBOOL 1471 #endif 1472 1473 #if _WIN32_WINNT >= &h0600 1474 declare sub QuerySecurityAccessMask(byval SecurityInformation as SECURITY_INFORMATION, byval DesiredAccess as LPDWORD) 1475 #endif 1476 1477 declare function RevertToSelf() as WINBOOL 1478 declare function SetAclInformation(byval pAcl as PACL, byval pAclInformation as LPVOID, byval nAclInformationLength as DWORD, byval dwAclInformationClass as ACL_INFORMATION_CLASS) as WINBOOL 1479 declare function SetFileSecurityW(byval lpFileName as LPCWSTR, byval SecurityInformation as SECURITY_INFORMATION, byval pSecurityDescriptor as PSECURITY_DESCRIPTOR) as WINBOOL 1480 1481 #ifdef UNICODE 1482 declare function SetFileSecurity alias "SetFileSecurityW"(byval lpFileName as LPCWSTR, byval SecurityInformation as SECURITY_INFORMATION, byval pSecurityDescriptor as PSECURITY_DESCRIPTOR) as WINBOOL 1483 #endif 1484 1485 declare function SetKernelObjectSecurity(byval Handle as HANDLE, byval SecurityInformation as SECURITY_INFORMATION, byval SecurityDescriptor as PSECURITY_DESCRIPTOR) as WINBOOL 1486 declare function SetPrivateObjectSecurity(byval SecurityInformation as SECURITY_INFORMATION, byval ModificationDescriptor as PSECURITY_DESCRIPTOR, byval ObjectsSecurityDescriptor as PSECURITY_DESCRIPTOR ptr, byval GenericMapping as PGENERIC_MAPPING, byval Token as HANDLE) as WINBOOL 1487 declare function SetPrivateObjectSecurityEx(byval SecurityInformation as SECURITY_INFORMATION, byval ModificationDescriptor as PSECURITY_DESCRIPTOR, byval ObjectsSecurityDescriptor as PSECURITY_DESCRIPTOR ptr, byval AutoInheritFlags as ULONG, byval GenericMapping as PGENERIC_MAPPING, byval Token as HANDLE) as WINBOOL 1488 1489 #if _WIN32_WINNT >= &h0600 1490 declare sub SetSecurityAccessMask(byval SecurityInformation as SECURITY_INFORMATION, byval DesiredAccess as LPDWORD) 1491 #endif 1492 1493 declare function SetSecurityDescriptorControl(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval ControlBitsOfInterest as SECURITY_DESCRIPTOR_CONTROL, byval ControlBitsToSet as SECURITY_DESCRIPTOR_CONTROL) as WINBOOL 1494 declare function SetSecurityDescriptorDacl(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval bDaclPresent as WINBOOL, byval pDacl as PACL, byval bDaclDefaulted as WINBOOL) as WINBOOL 1495 declare function SetSecurityDescriptorGroup(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval pGroup as PSID, byval bGroupDefaulted as WINBOOL) as WINBOOL 1496 declare function SetSecurityDescriptorOwner(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval pOwner as PSID, byval bOwnerDefaulted as WINBOOL) as WINBOOL 1497 declare function SetSecurityDescriptorRMControl(byval SecurityDescriptor as PSECURITY_DESCRIPTOR, byval RMControl as PUCHAR) as DWORD 1498 declare function SetSecurityDescriptorSacl(byval pSecurityDescriptor as PSECURITY_DESCRIPTOR, byval bSaclPresent as WINBOOL, byval pSacl as PACL, byval bSaclDefaulted as WINBOOL) as WINBOOL 1499 declare function SetTokenInformation(byval TokenHandle as HANDLE, byval TokenInformationClass as TOKEN_INFORMATION_CLASS, byval TokenInformation as LPVOID, byval TokenInformationLength as DWORD) as WINBOOL 1500 1501 #if _WIN32_WINNT = &h0602 1502 declare function SetCachedSigningLevel(byval SourceFiles as PHANDLE, byval SourceFileCount as ULONG, byval Flags as ULONG, byval TargetFile as HANDLE) as WINBOOL 1503 declare function GetCachedSigningLevel(byval File as HANDLE, byval Flags as PULONG, byval SigningLevel as PULONG, byval Thumbprint as PUCHAR, byval ThumbprintSize as PULONG, byval ThumbprintAlgorithm as PULONG) as WINBOOL 1504 #endif 1505 1506 #define _SYNCHAPI_H_ 1507 #define SRWLOCK_INIT RTL_SRWLOCK_INIT 1508 #define INIT_ONCE_STATIC_INIT RTL_RUN_ONCE_INIT 1509 const INIT_ONCE_CHECK_ONLY = RTL_RUN_ONCE_CHECK_ONLY 1510 const INIT_ONCE_ASYNC = RTL_RUN_ONCE_ASYNC 1511 const INIT_ONCE_INIT_FAILED = RTL_RUN_ONCE_INIT_FAILED 1512 const INIT_ONCE_CTX_RESERVED_BITS = RTL_RUN_ONCE_CTX_RESERVED_BITS 1513 #define CONDITION_VARIABLE_INIT RTL_CONDITION_VARIABLE_INIT 1514 const CONDITION_VARIABLE_LOCKMODE_SHARED = RTL_CONDITION_VARIABLE_LOCKMODE_SHARED 1515 const MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE 1516 const MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS 1517 1518 type SRWLOCK as RTL_SRWLOCK 1519 type PSRWLOCK as RTL_SRWLOCK ptr 1520 type INIT_ONCE as RTL_RUN_ONCE 1521 type PINIT_ONCE as PRTL_RUN_ONCE 1522 type LPINIT_ONCE as PRTL_RUN_ONCE 1523 type PINIT_ONCE_FN as function(byval InitOnce as PINIT_ONCE, byval Parameter as PVOID, byval Context as PVOID ptr) as WINBOOL 1524 type CONDITION_VARIABLE as RTL_CONDITION_VARIABLE 1525 type PCONDITION_VARIABLE as RTL_CONDITION_VARIABLE ptr 1526 1527 declare sub EnterCriticalSection(byval lpCriticalSection as LPCRITICAL_SECTION) 1528 declare sub LeaveCriticalSection(byval lpCriticalSection as LPCRITICAL_SECTION) 1529 declare function TryEnterCriticalSection(byval lpCriticalSection as LPCRITICAL_SECTION) as WINBOOL 1530 declare sub DeleteCriticalSection(byval lpCriticalSection as LPCRITICAL_SECTION) 1531 declare function SetEvent(byval hEvent as HANDLE) as WINBOOL 1532 declare function ResetEvent(byval hEvent as HANDLE) as WINBOOL 1533 declare function ReleaseSemaphore(byval hSemaphore as HANDLE, byval lReleaseCount as LONG, byval lpPreviousCount as LPLONG) as WINBOOL 1534 declare function ReleaseMutex(byval hMutex as HANDLE) as WINBOOL 1535 declare function WaitForSingleObjectEx(byval hHandle as HANDLE, byval dwMilliseconds as DWORD, byval bAlertable as WINBOOL) as DWORD 1536 declare function WaitForMultipleObjectsEx(byval nCount as DWORD, byval lpHandles as const HANDLE ptr, byval bWaitAll as WINBOOL, byval dwMilliseconds as DWORD, byval bAlertable as WINBOOL) as DWORD 1537 declare function OpenMutexW(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1538 declare function OpenEventA(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 1539 declare function OpenEventW(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1540 declare function OpenSemaphoreW(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1541 declare function WaitOnAddress(byval Address as any ptr, byval CompareAddress as PVOID, byval AddressSize as SIZE_T_, byval dwMilliseconds as DWORD) as WINBOOL 1542 declare sub WakeByAddressSingle(byval Address as PVOID) 1543 declare sub WakeByAddressAll(byval Address as PVOID) 1544 1545 #if _WIN32_WINNT >= &h0600 1546 const CREATE_MUTEX_INITIAL_OWNER = &h1 1547 const CREATE_EVENT_MANUAL_RESET = &h1 1548 const CREATE_EVENT_INITIAL_SET = &h2 1549 1550 declare sub InitializeSRWLock(byval SRWLock as PSRWLOCK) 1551 declare sub ReleaseSRWLockExclusive(byval SRWLock as PSRWLOCK) 1552 declare sub ReleaseSRWLockShared(byval SRWLock as PSRWLOCK) 1553 declare sub AcquireSRWLockExclusive(byval SRWLock as PSRWLOCK) 1554 declare sub AcquireSRWLockShared(byval SRWLock as PSRWLOCK) 1555 declare function TryAcquireSRWLockExclusive(byval SRWLock as PSRWLOCK) as WINBOOLEAN 1556 declare function TryAcquireSRWLockShared(byval SRWLock as PSRWLOCK) as WINBOOLEAN 1557 declare function InitializeCriticalSectionEx(byval lpCriticalSection as LPCRITICAL_SECTION, byval dwSpinCount as DWORD, byval Flags as DWORD) as WINBOOL 1558 declare sub InitOnceInitialize(byval InitOnce as PINIT_ONCE) 1559 declare function InitOnceExecuteOnce(byval InitOnce as PINIT_ONCE, byval InitFn as PINIT_ONCE_FN, byval Parameter as PVOID, byval Context as LPVOID ptr) as WINBOOL 1560 declare function InitOnceBeginInitialize(byval lpInitOnce as LPINIT_ONCE, byval dwFlags as DWORD, byval fPending as PBOOL, byval lpContext as LPVOID ptr) as WINBOOL 1561 declare function InitOnceComplete(byval lpInitOnce as LPINIT_ONCE, byval dwFlags as DWORD, byval lpContext as LPVOID) as WINBOOL 1562 declare sub InitializeConditionVariable(byval ConditionVariable as PCONDITION_VARIABLE) 1563 declare sub WakeConditionVariable(byval ConditionVariable as PCONDITION_VARIABLE) 1564 declare sub WakeAllConditionVariable(byval ConditionVariable as PCONDITION_VARIABLE) 1565 declare function SleepConditionVariableCS(byval ConditionVariable as PCONDITION_VARIABLE, byval CriticalSection as PCRITICAL_SECTION, byval dwMilliseconds as DWORD) as WINBOOL 1566 declare function SleepConditionVariableSRW(byval ConditionVariable as PCONDITION_VARIABLE, byval SRWLock as PSRWLOCK, byval dwMilliseconds as DWORD, byval Flags as ULONG) as WINBOOL 1567 declare function CreateMutexExA(byval lpMutexAttributes as LPSECURITY_ATTRIBUTES, byval lpName as LPCSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1568 declare function CreateMutexExW(byval lpMutexAttributes as LPSECURITY_ATTRIBUTES, byval lpName as LPCWSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1569 declare function CreateEventExA(byval lpEventAttributes as LPSECURITY_ATTRIBUTES, byval lpName as LPCSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1570 declare function CreateEventExW(byval lpEventAttributes as LPSECURITY_ATTRIBUTES, byval lpName as LPCWSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1571 declare function CreateSemaphoreExW(byval lpSemaphoreAttributes as LPSECURITY_ATTRIBUTES, byval lInitialCount as LONG, byval lMaximumCount as LONG, byval lpName as LPCWSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1572 #endif 1573 1574 #ifdef UNICODE 1575 #if _WIN32_WINNT >= &h0600 1576 declare function CreateMutexEx alias "CreateMutexExW"(byval lpMutexAttributes as LPSECURITY_ATTRIBUTES, byval lpName as LPCWSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1577 declare function CreateEventEx alias "CreateEventExW"(byval lpEventAttributes as LPSECURITY_ATTRIBUTES, byval lpName as LPCWSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1578 declare function CreateSemaphoreEx alias "CreateSemaphoreExW"(byval lpSemaphoreAttributes as LPSECURITY_ATTRIBUTES, byval lInitialCount as LONG, byval lMaximumCount as LONG, byval lpName as LPCWSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1579 #endif 1580 1581 declare function OpenMutex alias "OpenMutexW"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1582 declare function OpenSemaphore alias "OpenSemaphoreW"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1583 declare function OpenEvent alias "OpenEventW"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1584 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 1585 declare function CreateMutexEx alias "CreateMutexExA"(byval lpMutexAttributes as LPSECURITY_ATTRIBUTES, byval lpName as LPCSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1586 declare function CreateEventEx alias "CreateEventExA"(byval lpEventAttributes as LPSECURITY_ATTRIBUTES, byval lpName as LPCSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1587 #endif 1588 1589 #ifndef UNICODE 1590 declare function OpenEvent alias "OpenEventA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 1591 #endif 1592 1593 type PTIMERAPCROUTINE as sub(byval lpArgToCompletionRoutine as LPVOID, byval dwTimerLowValue as DWORD, byval dwTimerHighValue as DWORD) 1594 type SYNCHRONIZATION_BARRIER as RTL_BARRIER 1595 type PSYNCHRONIZATION_BARRIER as PRTL_BARRIER 1596 type LPSYNCHRONIZATION_BARRIER as PRTL_BARRIER 1597 1598 const SYNCHRONIZATION_BARRIER_FLAGS_SPIN_ONLY = &h01 1599 const SYNCHRONIZATION_BARRIER_FLAGS_BLOCK_ONLY = &h02 1600 const SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE = &h04 1601 1602 declare sub InitializeCriticalSection(byval lpCriticalSection as LPCRITICAL_SECTION) 1603 declare function InitializeCriticalSectionAndSpinCount(byval lpCriticalSection as LPCRITICAL_SECTION, byval dwSpinCount as DWORD) as WINBOOL 1604 declare function SetCriticalSectionSpinCount(byval lpCriticalSection as LPCRITICAL_SECTION, byval dwSpinCount as DWORD) as DWORD 1605 declare function WaitForSingleObject(byval hHandle as HANDLE, byval dwMilliseconds as DWORD) as DWORD 1606 declare function SleepEx(byval dwMilliseconds as DWORD, byval bAlertable as WINBOOL) as DWORD 1607 declare function CreateMutexA(byval lpMutexAttributes as LPSECURITY_ATTRIBUTES, byval bInitialOwner as WINBOOL, byval lpName as LPCSTR) as HANDLE 1608 declare function CreateMutexW(byval lpMutexAttributes as LPSECURITY_ATTRIBUTES, byval bInitialOwner as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1609 declare function CreateEventA(byval lpEventAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval bInitialState as WINBOOL, byval lpName as LPCSTR) as HANDLE 1610 declare function CreateEventW(byval lpEventAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval bInitialState as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1611 declare function SetWaitableTimer(byval hTimer as HANDLE, byval lpDueTime as const LARGE_INTEGER ptr, byval lPeriod as LONG, byval pfnCompletionRoutine as PTIMERAPCROUTINE, byval lpArgToCompletionRoutine as LPVOID, byval fResume as WINBOOL) as WINBOOL 1612 declare function CancelWaitableTimer(byval hTimer as HANDLE) as WINBOOL 1613 declare function OpenWaitableTimerW(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpTimerName as LPCWSTR) as HANDLE 1614 declare function EnterSynchronizationBarrier(byval lpBarrier as LPSYNCHRONIZATION_BARRIER, byval dwFlags as DWORD) as WINBOOL 1615 declare function InitializeSynchronizationBarrier(byval lpBarrier as LPSYNCHRONIZATION_BARRIER, byval lTotalThreads as LONG, byval lSpinCount as LONG) as WINBOOL 1616 declare function DeleteSynchronizationBarrier(byval lpBarrier as LPSYNCHRONIZATION_BARRIER) as WINBOOL 1617 declare sub Sleep_ alias "Sleep"(byval dwMilliseconds as DWORD) 1618 declare function SignalObjectAndWait(byval hObjectToSignal as HANDLE, byval hObjectToWaitOn as HANDLE, byval dwMilliseconds as DWORD, byval bAlertable as WINBOOL) as DWORD 1619 1620 #if _WIN32_WINNT >= &h0600 1621 const CREATE_WAITABLE_TIMER_MANUAL_RESET = &h1 1622 declare function CreateWaitableTimerExW(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval lpTimerName as LPCWSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1623 #endif 1624 1625 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 1626 declare function CreateWaitableTimerEx alias "CreateWaitableTimerExW"(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval lpTimerName as LPCWSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 1627 #endif 1628 1629 #if _WIN32_WINNT >= &h0601 1630 declare function SetWaitableTimerEx(byval hTimer as HANDLE, byval lpDueTime as const LARGE_INTEGER ptr, byval lPeriod as LONG, byval pfnCompletionRoutine as PTIMERAPCROUTINE, byval lpArgToCompletionRoutine as LPVOID, byval WakeContext as PREASON_CONTEXT, byval TolerableDelay as ULONG) as WINBOOL 1631 #endif 1632 1633 #ifdef UNICODE 1634 declare function CreateMutex alias "CreateMutexW"(byval lpMutexAttributes as LPSECURITY_ATTRIBUTES, byval bInitialOwner as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1635 declare function CreateEvent alias "CreateEventW"(byval lpEventAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval bInitialState as WINBOOL, byval lpName as LPCWSTR) as HANDLE 1636 declare function OpenWaitableTimer alias "OpenWaitableTimerW"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpTimerName as LPCWSTR) as HANDLE 1637 #else 1638 declare function CreateMutex alias "CreateMutexA"(byval lpMutexAttributes as LPSECURITY_ATTRIBUTES, byval bInitialOwner as WINBOOL, byval lpName as LPCSTR) as HANDLE 1639 declare function CreateEvent alias "CreateEventA"(byval lpEventAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval bInitialState as WINBOOL, byval lpName as LPCSTR) as HANDLE 1640 #endif 1641 1642 #define _SYSINFOAPI_H_ 1643 1644 type _SYSTEM_INFO 1645 union 1646 dwOemId as DWORD 1647 1648 type 1649 wProcessorArchitecture as WORD 1650 wReserved as WORD 1651 end type 1652 end union 1653 1654 dwPageSize as DWORD 1655 lpMinimumApplicationAddress as LPVOID 1656 lpMaximumApplicationAddress as LPVOID 1657 dwActiveProcessorMask as DWORD_PTR 1658 dwNumberOfProcessors as DWORD 1659 dwProcessorType as DWORD 1660 dwAllocationGranularity as DWORD 1661 wProcessorLevel as WORD 1662 wProcessorRevision as WORD 1663 end type 1664 1665 type SYSTEM_INFO as _SYSTEM_INFO 1666 type LPSYSTEM_INFO as _SYSTEM_INFO ptr 1667 declare sub GetSystemTime(byval lpSystemTime as LPSYSTEMTIME) 1668 declare sub GetSystemTimeAsFileTime(byval lpSystemTimeAsFileTime as LPFILETIME) 1669 declare sub GetLocalTime(byval lpSystemTime as LPSYSTEMTIME) 1670 declare sub GetNativeSystemInfo(byval lpSystemInfo as LPSYSTEM_INFO) 1671 1672 #if _WIN32_WINNT >= &h0600 1673 declare function GetTickCount64() as ULONGLONG 1674 #endif 1675 1676 declare function GetVersion() as DWORD 1677 1678 type _MEMORYSTATUSEX 1679 dwLength as DWORD 1680 dwMemoryLoad as DWORD 1681 ullTotalPhys as DWORDLONG 1682 ullAvailPhys as DWORDLONG 1683 ullTotalPageFile as DWORDLONG 1684 ullAvailPageFile as DWORDLONG 1685 ullTotalVirtual as DWORDLONG 1686 ullAvailVirtual as DWORDLONG 1687 ullAvailExtendedVirtual as DWORDLONG 1688 end type 1689 1690 type MEMORYSTATUSEX as _MEMORYSTATUSEX 1691 type LPMEMORYSTATUSEX as _MEMORYSTATUSEX ptr 1692 1693 type _COMPUTER_NAME_FORMAT as long 1694 enum 1695 ComputerNameNetBIOS 1696 ComputerNameDnsHostname 1697 ComputerNameDnsDomain 1698 ComputerNameDnsFullyQualified 1699 ComputerNamePhysicalNetBIOS 1700 ComputerNamePhysicalDnsHostname 1701 ComputerNamePhysicalDnsDomain 1702 ComputerNamePhysicalDnsFullyQualified 1703 ComputerNameMax 1704 end enum 1705 1706 type COMPUTER_NAME_FORMAT as _COMPUTER_NAME_FORMAT 1707 declare function GlobalMemoryStatusEx(byval lpBuffer as LPMEMORYSTATUSEX) as WINBOOL 1708 declare function SetLocalTime(byval lpSystemTime as const SYSTEMTIME ptr) as WINBOOL 1709 declare sub GetSystemInfo(byval lpSystemInfo as LPSYSTEM_INFO) 1710 declare function GetTickCount() as DWORD 1711 declare function GetSystemTimeAdjustment(byval lpTimeAdjustment as PDWORD, byval lpTimeIncrement as PDWORD, byval lpTimeAdjustmentDisabled as PBOOL) as WINBOOL 1712 declare function GetSystemDirectoryA(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 1713 declare function GetSystemDirectoryW(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 1714 declare function GetWindowsDirectoryA(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 1715 declare function GetWindowsDirectoryW(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 1716 declare function GetSystemWindowsDirectoryA(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 1717 declare function GetSystemWindowsDirectoryW(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 1718 declare function GetComputerNameExA(byval NameType as COMPUTER_NAME_FORMAT, byval lpBuffer as LPSTR, byval nSize as LPDWORD) as WINBOOL 1719 declare function GetComputerNameExW(byval NameType as COMPUTER_NAME_FORMAT, byval lpBuffer as LPWSTR, byval nSize as LPDWORD) as WINBOOL 1720 declare function SetComputerNameExW(byval NameType as COMPUTER_NAME_FORMAT, byval lpBuffer as LPCWSTR) as WINBOOL 1721 declare function SetSystemTime(byval lpSystemTime as const SYSTEMTIME ptr) as WINBOOL 1722 declare function GetVersionExA(byval lpVersionInformation as LPOSVERSIONINFOA) as WINBOOL 1723 declare function GetVersionExW(byval lpVersionInformation as LPOSVERSIONINFOW) as WINBOOL 1724 declare function GetLogicalProcessorInformation(byval Buffer as PSYSTEM_LOGICAL_PROCESSOR_INFORMATION, byval ReturnedLength as PDWORD) as WINBOOL 1725 declare sub GetSystemTimePreciseAsFileTime(byval lpSystemTimeAsFileTime as LPFILETIME) 1726 declare function EnumSystemFirmwareTables(byval FirmwareTableProviderSignature as DWORD, byval pFirmwareTableEnumBuffer as PVOID, byval BufferSize as DWORD) as UINT 1727 declare function GetSystemFirmwareTable(byval FirmwareTableProviderSignature as DWORD, byval FirmwareTableID as DWORD, byval pFirmwareTableBuffer as PVOID, byval BufferSize as DWORD) as UINT 1728 1729 #if _WIN32_WINNT >= &h0600 1730 declare function GetProductInfo(byval dwOSMajorVersion as DWORD, byval dwOSMinorVersion as DWORD, byval dwSpMajorVersion as DWORD, byval dwSpMinorVersion as DWORD, byval pdwReturnedProductType as PDWORD) as WINBOOL 1731 #endif 1732 1733 #if _WIN32_WINNT >= &h0601 1734 declare function GetLogicalProcessorInformationEx(byval RelationshipType as LOGICAL_PROCESSOR_RELATIONSHIP, byval Buffer as PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, byval ReturnedLength as PDWORD) as WINBOOL 1735 declare function GetOsSafeBootMode(byval Flags as PDWORD) as WINBOOL 1736 #endif 1737 1738 #ifdef UNICODE 1739 declare function GetSystemDirectory alias "GetSystemDirectoryW"(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 1740 declare function GetWindowsDirectory alias "GetWindowsDirectoryW"(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 1741 declare function GetSystemWindowsDirectory alias "GetSystemWindowsDirectoryW"(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 1742 declare function GetComputerNameEx alias "GetComputerNameExW"(byval NameType as COMPUTER_NAME_FORMAT, byval lpBuffer as LPWSTR, byval nSize as LPDWORD) as WINBOOL 1743 declare function GetVersionEx alias "GetVersionExW"(byval lpVersionInformation as LPOSVERSIONINFOW) as WINBOOL 1744 declare function SetComputerNameEx alias "SetComputerNameExW"(byval NameType as COMPUTER_NAME_FORMAT, byval lpBuffer as LPCWSTR) as WINBOOL 1745 #else 1746 declare function GetSystemDirectory alias "GetSystemDirectoryA"(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 1747 declare function GetWindowsDirectory alias "GetWindowsDirectoryA"(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 1748 declare function GetSystemWindowsDirectory alias "GetSystemWindowsDirectoryA"(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 1749 declare function GetComputerNameEx alias "GetComputerNameExA"(byval NameType as COMPUTER_NAME_FORMAT, byval lpBuffer as LPSTR, byval nSize as LPDWORD) as WINBOOL 1750 declare function GetVersionEx alias "GetVersionExA"(byval lpVersionInformation as LPOSVERSIONINFOA) as WINBOOL 1751 #endif 1752 1753 #define _SYSTEMTOPOLOGY_H_ 1754 declare function GetNumaHighestNodeNumber(byval HighestNodeNumber as PULONG) as WINBOOL 1755 1756 #if _WIN32_WINNT >= &h0601 1757 declare function GetNumaNodeProcessorMaskEx(byval Node as USHORT, byval ProcessorMask as PGROUP_AFFINITY) as WINBOOL 1758 #endif 1759 1760 #define _THREADPOOLAPISET_H_ 1761 type PTP_WIN32_IO_CALLBACK as sub(byval Instance as PTP_CALLBACK_INSTANCE, byval Context as PVOID, byval Overlapped as PVOID, byval IoResult as ULONG, byval NumberOfBytesTransferred as ULONG_PTR, byval Io as PTP_IO) 1762 1763 #if _WIN32_WINNT >= &h0600 1764 declare function CreateThreadpool(byval reserved as PVOID) as PTP_POOL 1765 declare sub SetThreadpoolThreadMaximum(byval ptpp as PTP_POOL, byval cthrdMost as DWORD) 1766 declare function SetThreadpoolThreadMinimum(byval ptpp as PTP_POOL, byval cthrdMic as DWORD) as WINBOOL 1767 declare function SetThreadpoolStackInformation(byval ptpp as PTP_POOL, byval ptpsi as PTP_POOL_STACK_INFORMATION) as WINBOOL 1768 declare function QueryThreadpoolStackInformation(byval ptpp as PTP_POOL, byval ptpsi as PTP_POOL_STACK_INFORMATION) as WINBOOL 1769 declare sub CloseThreadpool(byval ptpp as PTP_POOL) 1770 declare function CreateThreadpoolCleanupGroup() as PTP_CLEANUP_GROUP 1771 declare sub CloseThreadpoolCleanupGroupMembers(byval ptpcg as PTP_CLEANUP_GROUP, byval fCancelPendingCallbacks as WINBOOL, byval pvCleanupContext as PVOID) 1772 declare sub CloseThreadpoolCleanupGroup(byval ptpcg as PTP_CLEANUP_GROUP) 1773 declare sub SetEventWhenCallbackReturns(byval pci as PTP_CALLBACK_INSTANCE, byval evt as HANDLE) 1774 declare sub ReleaseSemaphoreWhenCallbackReturns(byval pci as PTP_CALLBACK_INSTANCE, byval sem as HANDLE, byval crel as DWORD) 1775 declare sub ReleaseMutexWhenCallbackReturns(byval pci as PTP_CALLBACK_INSTANCE, byval mut as HANDLE) 1776 declare sub LeaveCriticalSectionWhenCallbackReturns(byval pci as PTP_CALLBACK_INSTANCE, byval pcs as PCRITICAL_SECTION) 1777 declare sub FreeLibraryWhenCallbackReturns(byval pci as PTP_CALLBACK_INSTANCE, byval mod_ as HMODULE) 1778 declare function CallbackMayRunLong(byval pci as PTP_CALLBACK_INSTANCE) as WINBOOL 1779 declare sub DisassociateCurrentThreadFromCallback(byval pci as PTP_CALLBACK_INSTANCE) 1780 declare function TrySubmitThreadpoolCallback(byval pfns as PTP_SIMPLE_CALLBACK, byval pv as PVOID, byval pcbe as PTP_CALLBACK_ENVIRON) as WINBOOL 1781 declare function CreateThreadpoolWork(byval pfnwk as PTP_WORK_CALLBACK, byval pv as PVOID, byval pcbe as PTP_CALLBACK_ENVIRON) as PTP_WORK 1782 declare sub SubmitThreadpoolWork(byval pwk as PTP_WORK) 1783 declare sub WaitForThreadpoolWorkCallbacks(byval pwk as PTP_WORK, byval fCancelPendingCallbacks as WINBOOL) 1784 declare sub CloseThreadpoolWork(byval pwk as PTP_WORK) 1785 declare function CreateThreadpoolTimer(byval pfnti as PTP_TIMER_CALLBACK, byval pv as PVOID, byval pcbe as PTP_CALLBACK_ENVIRON) as PTP_TIMER 1786 declare sub SetThreadpoolTimer(byval pti as PTP_TIMER, byval pftDueTime as PFILETIME, byval msPeriod as DWORD, byval msWindowLength as DWORD) 1787 declare function IsThreadpoolTimerSet(byval pti as PTP_TIMER) as WINBOOL 1788 declare sub WaitForThreadpoolTimerCallbacks(byval pti as PTP_TIMER, byval fCancelPendingCallbacks as WINBOOL) 1789 declare sub CloseThreadpoolTimer(byval pti as PTP_TIMER) 1790 declare function CreateThreadpoolWait(byval pfnwa as PTP_WAIT_CALLBACK, byval pv as PVOID, byval pcbe as PTP_CALLBACK_ENVIRON) as PTP_WAIT 1791 declare sub SetThreadpoolWait(byval pwa as PTP_WAIT, byval h as HANDLE, byval pftTimeout as PFILETIME) 1792 declare sub WaitForThreadpoolWaitCallbacks(byval pwa as PTP_WAIT, byval fCancelPendingCallbacks as WINBOOL) 1793 declare sub CloseThreadpoolWait(byval pwa as PTP_WAIT) 1794 declare function CreateThreadpoolIo(byval fl as HANDLE, byval pfnio as PTP_WIN32_IO_CALLBACK, byval pv as PVOID, byval pcbe as PTP_CALLBACK_ENVIRON) as PTP_IO 1795 declare sub StartThreadpoolIo(byval pio as PTP_IO) 1796 declare sub CancelThreadpoolIo(byval pio as PTP_IO) 1797 declare sub WaitForThreadpoolIoCallbacks(byval pio as PTP_IO, byval fCancelPendingCallbacks as WINBOOL) 1798 declare sub CloseThreadpoolIo(byval pio as PTP_IO) 1799 declare function SetThreadpoolTimerEx(byval pti as PTP_TIMER, byval pftDueTime as PFILETIME, byval msPeriod as DWORD, byval msWindowLength as DWORD) as WINBOOL 1800 declare function SetThreadpoolWaitEx(byval pwa as PTP_WAIT, byval h as HANDLE, byval pftTimeout as PFILETIME, byval Reserved as PVOID) as WINBOOL 1801 #endif 1802 1803 #define _THREADPOOLLEGACYAPISET_H_ 1804 declare function CreateTimerQueueTimer(byval phNewTimer as PHANDLE, byval TimerQueue as HANDLE, byval Callback as WAITORTIMERCALLBACK, byval Parameter as PVOID, byval DueTime as DWORD, byval Period as DWORD, byval Flags as ULONG) as WINBOOL 1805 declare function DeleteTimerQueueTimer(byval TimerQueue as HANDLE, byval Timer as HANDLE, byval CompletionEvent as HANDLE) as WINBOOL 1806 declare function QueueUserWorkItem(byval Function as LPTHREAD_START_ROUTINE, byval Context as PVOID, byval Flags as ULONG) as WINBOOL 1807 declare function UnregisterWaitEx(byval WaitHandle as HANDLE, byval CompletionEvent as HANDLE) as WINBOOL 1808 declare function CreateTimerQueue() as HANDLE 1809 declare function ChangeTimerQueueTimer(byval TimerQueue as HANDLE, byval Timer as HANDLE, byval DueTime as ULONG, byval Period as ULONG) as WINBOOL 1810 declare function DeleteTimerQueueEx(byval TimerQueue as HANDLE, byval CompletionEvent as HANDLE) as WINBOOL 1811 #define _APISETUTIL_ 1812 declare function EncodePointer(byval Ptr as PVOID) as PVOID 1813 declare function DecodePointer(byval Ptr as PVOID) as PVOID 1814 declare function EncodeSystemPointer(byval Ptr as PVOID) as PVOID 1815 declare function DecodeSystemPointer(byval Ptr as PVOID) as PVOID 1816 declare function Beep_ alias "Beep"(byval dwFreq as DWORD, byval dwDuration as DWORD) as WINBOOL 1817 #define _WOW64APISET_H_ 1818 declare function Wow64DisableWow64FsRedirection(byval OldValue as PVOID ptr) as WINBOOL 1819 declare function Wow64RevertWow64FsRedirection(byval OlValue as PVOID) as WINBOOL 1820 declare function IsWow64Process(byval hProcess as HANDLE, byval Wow64Process as PBOOL) as WINBOOL 1821 1822 #define GetCurrentTime() GetTickCount() 1823 #define LimitEmsPages(dw) 1824 #define SetSwapAreaSize(w) (w) 1825 #define LockSegment(w) GlobalFix(cast(HANDLE, (w))) 1826 #define UnlockSegment(w) GlobalUnfix(cast(HANDLE, (w))) 1827 #define Yield() 1828 const FILE_BEGIN = 0 1829 const FILE_CURRENT = 1 1830 const FILE_END = 2 1831 const WAIT_FAILED = cast(DWORD, &hffffffff) 1832 const WAIT_OBJECT_0 = STATUS_WAIT_0 + 0 1833 const WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0 + 0 1834 const WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0 + 0 1835 const WAIT_IO_COMPLETION = STATUS_USER_APC 1836 declare function SecureZeroMemory alias "RtlSecureZeroMemory"(byval ptr as PVOID, byval cnt as SIZE_T_) as PVOID 1837 declare function CaptureStackBackTrace alias "RtlCaptureStackBackTrace"(byval FramesToSkip as DWORD, byval FramesToCapture as DWORD, byval BackTrace as PVOID ptr, byval BackTraceHash as PDWORD) as WORD 1838 const FILE_FLAG_WRITE_THROUGH = &h80000000 1839 const FILE_FLAG_OVERLAPPED = &h40000000 1840 const FILE_FLAG_NO_BUFFERING = &h20000000 1841 const FILE_FLAG_RANDOM_ACCESS = &h10000000 1842 const FILE_FLAG_SEQUENTIAL_SCAN = &h8000000 1843 const FILE_FLAG_DELETE_ON_CLOSE = &h4000000 1844 const FILE_FLAG_BACKUP_SEMANTICS = &h2000000 1845 const FILE_FLAG_POSIX_SEMANTICS = &h1000000 1846 const FILE_FLAG_SESSION_AWARE = &h800000 1847 const FILE_FLAG_OPEN_REPARSE_POINT = &h200000 1848 const FILE_FLAG_OPEN_NO_RECALL = &h100000 1849 const FILE_FLAG_FIRST_PIPE_INSTANCE = &h80000 1850 1851 #if _WIN32_WINNT = &h0602 1852 const FILE_FLAG_OPEN_REQUIRING_OPLOCK = &h40000 1853 #endif 1854 1855 const PROGRESS_CONTINUE = 0 1856 const PROGRESS_CANCEL = 1 1857 const PROGRESS_STOP = 2 1858 const PROGRESS_QUIET = 3 1859 const CALLBACK_CHUNK_FINISHED = &h0 1860 const CALLBACK_STREAM_SWITCH = &h1 1861 const COPY_FILE_FAIL_IF_EXISTS = &h1 1862 const COPY_FILE_RESTARTABLE = &h2 1863 const COPY_FILE_OPEN_SOURCE_FOR_WRITE = &h4 1864 const COPY_FILE_ALLOW_DECRYPTED_DESTINATION = &h8 1865 1866 #if _WIN32_WINNT >= &h0600 1867 const COPY_FILE_COPY_SYMLINK = &h800 1868 const COPY_FILE_NO_BUFFERING = &h1000 1869 #endif 1870 1871 #if _WIN32_WINNT = &h0602 1872 const COPY_FILE_REQUEST_SECURITY_PRIVILEGES = &h2000 1873 const COPY_FILE_RESUME_FROM_PAUSE = &h4000 1874 const COPY_FILE_NO_OFFLOAD = &h40000 1875 #endif 1876 1877 const REPLACEFILE_WRITE_THROUGH = &h1 1878 const REPLACEFILE_IGNORE_MERGE_ERRORS = &h2 1879 1880 #if _WIN32_WINNT >= &h0600 1881 const REPLACEFILE_IGNORE_ACL_ERRORS = &h4 1882 #endif 1883 1884 const PIPE_ACCESS_INBOUND = &h1 1885 const PIPE_ACCESS_OUTBOUND = &h2 1886 const PIPE_ACCESS_DUPLEX = &h3 1887 const PIPE_CLIENT_END = &h0 1888 const PIPE_SERVER_END = &h1 1889 const PIPE_WAIT = &h0 1890 const PIPE_NOWAIT = &h1 1891 const PIPE_READMODE_BYTE = &h0 1892 const PIPE_READMODE_MESSAGE = &h2 1893 const PIPE_TYPE_BYTE = &h0 1894 const PIPE_TYPE_MESSAGE = &h4 1895 const PIPE_ACCEPT_REMOTE_CLIENTS = &h0 1896 const PIPE_REJECT_REMOTE_CLIENTS = &h8 1897 const PIPE_UNLIMITED_INSTANCES = 255 1898 const SECURITY_ANONYMOUS = SecurityAnonymous shl 16 1899 const SECURITY_IDENTIFICATION = SecurityIdentification shl 16 1900 const SECURITY_IMPERSONATION = SecurityImpersonation shl 16 1901 const SECURITY_DELEGATION = SecurityDelegation shl 16 1902 const SECURITY_CONTEXT_TRACKING = &h40000 1903 const SECURITY_EFFECTIVE_ONLY = &h80000 1904 const SECURITY_SQOS_PRESENT = &h100000 1905 const SECURITY_VALID_SQOS_FLAGS = &h1f0000 1906 const FAIL_FAST_GENERATE_EXCEPTION_ADDRESS = &h1 1907 const FAIL_FAST_NO_HARD_ERROR_DLG = &h2 1908 type PFIBER_START_ROUTINE as sub(byval lpFiberParameter as LPVOID) 1909 type LPFIBER_START_ROUTINE as PFIBER_START_ROUTINE 1910 1911 #ifdef __FB_64BIT__ 1912 type LPLDT_ENTRY as LPVOID 1913 #else 1914 type LPLDT_ENTRY as PLDT_ENTRY 1915 #endif 1916 1917 const SP_SERIALCOMM = cast(DWORD, &h1) 1918 const PST_UNSPECIFIED = cast(DWORD, &h0) 1919 const PST_RS232 = cast(DWORD, &h1) 1920 const PST_PARALLELPORT = cast(DWORD, &h2) 1921 const PST_RS422 = cast(DWORD, &h3) 1922 const PST_RS423 = cast(DWORD, &h4) 1923 const PST_RS449 = cast(DWORD, &h5) 1924 const PST_MODEM = cast(DWORD, &h6) 1925 const PST_FAX = cast(DWORD, &h21) 1926 const PST_SCANNER = cast(DWORD, &h22) 1927 const PST_NETWORK_BRIDGE = cast(DWORD, &h100) 1928 const PST_LAT = cast(DWORD, &h101) 1929 const PST_TCPIP_TELNET = cast(DWORD, &h102) 1930 const PST_X25 = cast(DWORD, &h103) 1931 const PCF_DTRDSR = cast(DWORD, &h1) 1932 const PCF_RTSCTS = cast(DWORD, &h2) 1933 const PCF_RLSD = cast(DWORD, &h4) 1934 const PCF_PARITY_CHECK = cast(DWORD, &h8) 1935 const PCF_XONXOFF = cast(DWORD, &h10) 1936 const PCF_SETXCHAR = cast(DWORD, &h20) 1937 const PCF_TOTALTIMEOUTS = cast(DWORD, &h40) 1938 const PCF_INTTIMEOUTS = cast(DWORD, &h80) 1939 const PCF_SPECIALCHARS = cast(DWORD, &h100) 1940 const PCF_16BITMODE = cast(DWORD, &h200) 1941 const SP_PARITY = cast(DWORD, &h1) 1942 const SP_BAUD = cast(DWORD, &h2) 1943 const SP_DATABITS = cast(DWORD, &h4) 1944 const SP_STOPBITS = cast(DWORD, &h8) 1945 const SP_HANDSHAKING = cast(DWORD, &h10) 1946 const SP_PARITY_CHECK = cast(DWORD, &h20) 1947 const SP_RLSD = cast(DWORD, &h40) 1948 const BAUD_075 = cast(DWORD, &h1) 1949 const BAUD_110 = cast(DWORD, &h2) 1950 const BAUD_134_5 = cast(DWORD, &h4) 1951 const BAUD_150 = cast(DWORD, &h8) 1952 const BAUD_300 = cast(DWORD, &h10) 1953 const BAUD_600 = cast(DWORD, &h20) 1954 const BAUD_1200 = cast(DWORD, &h40) 1955 const BAUD_1800 = cast(DWORD, &h80) 1956 const BAUD_2400 = cast(DWORD, &h100) 1957 const BAUD_4800 = cast(DWORD, &h200) 1958 const BAUD_7200 = cast(DWORD, &h400) 1959 const BAUD_9600 = cast(DWORD, &h800) 1960 const BAUD_14400 = cast(DWORD, &h1000) 1961 const BAUD_19200 = cast(DWORD, &h2000) 1962 const BAUD_38400 = cast(DWORD, &h4000) 1963 const BAUD_56K = cast(DWORD, &h8000) 1964 const BAUD_128K = cast(DWORD, &h10000) 1965 const BAUD_115200 = cast(DWORD, &h20000) 1966 const BAUD_57600 = cast(DWORD, &h40000) 1967 const BAUD_USER = cast(DWORD, &h10000000) 1968 const DATABITS_5 = cast(WORD, &h1) 1969 const DATABITS_6 = cast(WORD, &h2) 1970 const DATABITS_7 = cast(WORD, &h4) 1971 const DATABITS_8 = cast(WORD, &h8) 1972 const DATABITS_16 = cast(WORD, &h10) 1973 const DATABITS_16X = cast(WORD, &h20) 1974 const STOPBITS_10 = cast(WORD, &h1) 1975 const STOPBITS_15 = cast(WORD, &h2) 1976 const STOPBITS_20 = cast(WORD, &h4) 1977 const PARITY_NONE = cast(WORD, &h100) 1978 const PARITY_ODD = cast(WORD, &h200) 1979 const PARITY_EVEN = cast(WORD, &h400) 1980 const PARITY_MARK = cast(WORD, &h800) 1981 const PARITY_SPACE = cast(WORD, &h1000) 1982 1983 type _COMMPROP 1984 wPacketLength as WORD 1985 wPacketVersion as WORD 1986 dwServiceMask as DWORD 1987 dwReserved1 as DWORD 1988 dwMaxTxQueue as DWORD 1989 dwMaxRxQueue as DWORD 1990 dwMaxBaud as DWORD 1991 dwProvSubType as DWORD 1992 dwProvCapabilities as DWORD 1993 dwSettableParams as DWORD 1994 dwSettableBaud as DWORD 1995 wSettableData as WORD 1996 wSettableStopParity as WORD 1997 dwCurrentTxQueue as DWORD 1998 dwCurrentRxQueue as DWORD 1999 dwProvSpec1 as DWORD 2000 dwProvSpec2 as DWORD 2001 wcProvChar as wstring * 1 2002 end type 2003 2004 type COMMPROP as _COMMPROP 2005 type LPCOMMPROP as _COMMPROP ptr 2006 const COMMPROP_INITIALIZED = cast(DWORD, &he73cf52e) 2007 2008 type _COMSTAT 2009 fCtsHold : 1 as DWORD 2010 fDsrHold : 1 as DWORD 2011 fRlsdHold : 1 as DWORD 2012 fXoffHold : 1 as DWORD 2013 fXoffSent : 1 as DWORD 2014 fEof : 1 as DWORD 2015 fTxim : 1 as DWORD 2016 fReserved : 25 as DWORD 2017 cbInQue as DWORD 2018 cbOutQue as DWORD 2019 end type 2020 2021 type COMSTAT as _COMSTAT 2022 type LPCOMSTAT as _COMSTAT ptr 2023 const DTR_CONTROL_DISABLE = &h0 2024 const DTR_CONTROL_ENABLE = &h1 2025 const DTR_CONTROL_HANDSHAKE = &h2 2026 const RTS_CONTROL_DISABLE = &h0 2027 const RTS_CONTROL_ENABLE = &h1 2028 const RTS_CONTROL_HANDSHAKE = &h2 2029 const RTS_CONTROL_TOGGLE = &h3 2030 2031 type _DCB 2032 DCBlength as DWORD 2033 BaudRate as DWORD 2034 fBinary : 1 as DWORD 2035 fParity : 1 as DWORD 2036 fOutxCtsFlow : 1 as DWORD 2037 fOutxDsrFlow : 1 as DWORD 2038 fDtrControl : 2 as DWORD 2039 fDsrSensitivity : 1 as DWORD 2040 fTXContinueOnXoff : 1 as DWORD 2041 fOutX : 1 as DWORD 2042 fInX : 1 as DWORD 2043 fErrorChar : 1 as DWORD 2044 fNull : 1 as DWORD 2045 fRtsControl : 2 as DWORD 2046 fAbortOnError : 1 as DWORD 2047 fDummy2 : 17 as DWORD 2048 wReserved as WORD 2049 XonLim as WORD 2050 XoffLim as WORD 2051 ByteSize as UBYTE 2052 Parity as UBYTE 2053 StopBits as UBYTE 2054 XonChar as byte 2055 XoffChar as byte 2056 ErrorChar as byte 2057 EofChar as byte 2058 EvtChar as byte 2059 wReserved1 as WORD 2060 end type 2061 2062 type DCB as _DCB 2063 type LPDCB as _DCB ptr 2064 2065 type _COMMTIMEOUTS 2066 ReadIntervalTimeout as DWORD 2067 ReadTotalTimeoutMultiplier as DWORD 2068 ReadTotalTimeoutConstant as DWORD 2069 WriteTotalTimeoutMultiplier as DWORD 2070 WriteTotalTimeoutConstant as DWORD 2071 end type 2072 2073 type COMMTIMEOUTS as _COMMTIMEOUTS 2074 type LPCOMMTIMEOUTS as _COMMTIMEOUTS ptr 2075 2076 type _COMMCONFIG 2077 dwSize as DWORD 2078 wVersion as WORD 2079 wReserved as WORD 2080 dcb as DCB 2081 dwProviderSubType as DWORD 2082 dwProviderOffset as DWORD 2083 dwProviderSize as DWORD 2084 wcProviderData as wstring * 1 2085 end type 2086 2087 type COMMCONFIG as _COMMCONFIG 2088 type LPCOMMCONFIG as _COMMCONFIG ptr 2089 #define FreeModule(hLibModule) FreeLibrary((hLibModule)) 2090 #define MakeProcInstance(lpProc, hInstance) (lpProc) 2091 #define FreeProcInstance(lpProc) (lpProc) 2092 const GMEM_FIXED = &h0 2093 const GMEM_MOVEABLE = &h2 2094 const GMEM_NOCOMPACT = &h10 2095 const GMEM_NODISCARD = &h20 2096 const GMEM_ZEROINIT = &h40 2097 const GMEM_MODIFY = &h80 2098 const GMEM_DISCARDABLE = &h100 2099 const GMEM_NOT_BANKED = &h1000 2100 const GMEM_SHARE = &h2000 2101 const GMEM_DDESHARE = &h2000 2102 const GMEM_NOTIFY = &h4000 2103 const GMEM_LOWER = GMEM_NOT_BANKED 2104 const GMEM_VALID_FLAGS = &h7f72 2105 const GMEM_INVALID_HANDLE = &h8000 2106 const GHND_ = GMEM_MOVEABLE or GMEM_ZEROINIT 2107 const GPTR_ = GMEM_FIXED or GMEM_ZEROINIT 2108 #define GlobalLRUNewest(h) cast(HANDLE, (h)) 2109 #define GlobalLRUOldest(h) cast(HANDLE, (h)) 2110 #define GlobalDiscard(h) GlobalReAlloc((h), 0, GMEM_MOVEABLE) 2111 const GMEM_DISCARDED = &h4000 2112 const GMEM_LOCKCOUNT = &h00ff 2113 2114 type _MEMORYSTATUS 2115 dwLength as DWORD 2116 dwMemoryLoad as DWORD 2117 dwTotalPhys as SIZE_T_ 2118 dwAvailPhys as SIZE_T_ 2119 dwTotalPageFile as SIZE_T_ 2120 dwAvailPageFile as SIZE_T_ 2121 dwTotalVirtual as SIZE_T_ 2122 dwAvailVirtual as SIZE_T_ 2123 end type 2124 2125 type MEMORYSTATUS as _MEMORYSTATUS 2126 type LPMEMORYSTATUS as _MEMORYSTATUS ptr 2127 const NUMA_NO_PREFERRED_NODE = cast(DWORD, -1) 2128 const DEBUG_PROCESS = &h1 2129 const DEBUG_ONLY_THIS_PROCESS = &h2 2130 const CREATE_SUSPENDED = &h4 2131 const DETACHED_PROCESS = &h8 2132 const CREATE_NEW_CONSOLE = &h10 2133 const NORMAL_PRIORITY_CLASS = &h20 2134 const IDLE_PRIORITY_CLASS = &h40 2135 const HIGH_PRIORITY_CLASS = &h80 2136 const REALTIME_PRIORITY_CLASS = &h100 2137 const CREATE_NEW_PROCESS_GROUP = &h200 2138 const CREATE_UNICODE_ENVIRONMENT = &h400 2139 const CREATE_SEPARATE_WOW_VDM = &h800 2140 const CREATE_SHARED_WOW_VDM = &h1000 2141 const CREATE_FORCEDOS = &h2000 2142 const BELOW_NORMAL_PRIORITY_CLASS = &h4000 2143 const ABOVE_NORMAL_PRIORITY_CLASS = &h8000 2144 const INHERIT_PARENT_AFFINITY = &h10000 2145 const INHERIT_CALLER_PRIORITY = &h20000 2146 const CREATE_PROTECTED_PROCESS = &h40000 2147 const EXTENDED_STARTUPINFO_PRESENT = &h80000 2148 const PROCESS_MODE_BACKGROUND_BEGIN = &h100000 2149 const PROCESS_MODE_BACKGROUND_END = &h200000 2150 const CREATE_BREAKAWAY_FROM_JOB = &h1000000 2151 const CREATE_PRESERVE_CODE_AUTHZ_LEVEL = &h2000000 2152 const CREATE_DEFAULT_ERROR_MODE = &h4000000 2153 const CREATE_NO_WINDOW = &h8000000 2154 const PROFILE_USER = &h10000000 2155 const PROFILE_KERNEL = &h20000000 2156 const PROFILE_SERVER = &h40000000 2157 const CREATE_IGNORE_SYSTEM_DEFAULT = &h80000000 2158 const STACK_SIZE_PARAM_IS_A_RESERVATION = &h10000 2159 const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN 2160 const THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST + 1 2161 const THREAD_PRIORITY_NORMAL = 0 2162 const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX 2163 const THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST - 1 2164 const THREAD_PRIORITY_ERROR_RETURN = MAXLONG 2165 const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT 2166 const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE 2167 const THREAD_MODE_BACKGROUND_BEGIN = &h00010000 2168 const THREAD_MODE_BACKGROUND_END = &h00020000 2169 const VOLUME_NAME_DOS = &h0 2170 const VOLUME_NAME_GUID = &h1 2171 const VOLUME_NAME_NT = &h2 2172 const VOLUME_NAME_NONE = &h4 2173 const FILE_NAME_NORMALIZED = &h0 2174 const FILE_NAME_OPENED = &h8 2175 2176 type _JIT_DEBUG_INFO 2177 dwSize as DWORD 2178 dwProcessorArchitecture as DWORD 2179 dwThreadID as DWORD 2180 dwReserved0 as DWORD 2181 lpExceptionAddress as ULONG64 2182 lpExceptionRecord as ULONG64 2183 lpContextRecord as ULONG64 2184 end type 2185 2186 type JIT_DEBUG_INFO as _JIT_DEBUG_INFO 2187 type LPJIT_DEBUG_INFO as _JIT_DEBUG_INFO ptr 2188 type JIT_DEBUG_INFO32 as JIT_DEBUG_INFO 2189 type LPJIT_DEBUG_INFO32 as JIT_DEBUG_INFO ptr 2190 type JIT_DEBUG_INFO64 as JIT_DEBUG_INFO 2191 type LPJIT_DEBUG_INFO64 as JIT_DEBUG_INFO ptr 2192 type LPEXCEPTION_RECORD as PEXCEPTION_RECORD 2193 type LPEXCEPTION_POINTERS as PEXCEPTION_POINTERS 2194 2195 const DRIVE_UNKNOWN = 0 2196 const DRIVE_NO_ROOT_DIR = 1 2197 const DRIVE_REMOVABLE = 2 2198 const DRIVE_FIXED = 3 2199 const DRIVE_REMOTE = 4 2200 const DRIVE_CDROM = 5 2201 const DRIVE_RAMDISK = 6 2202 #define GetFreeSpace(w) &h100000 2203 const FILE_TYPE_UNKNOWN = &h0 2204 const FILE_TYPE_DISK = &h1 2205 const FILE_TYPE_CHAR = &h2 2206 const FILE_TYPE_PIPE = &h3 2207 const FILE_TYPE_REMOTE = &h8000 2208 const STD_INPUT_HANDLE = cast(DWORD, -10) 2209 const STD_OUTPUT_HANDLE = cast(DWORD, -11) 2210 const STD_ERROR_HANDLE = cast(DWORD, -12) 2211 const NOPARITY = 0 2212 const ODDPARITY = 1 2213 const EVENPARITY = 2 2214 const MARKPARITY = 3 2215 const SPACEPARITY = 4 2216 const ONESTOPBIT = 0 2217 const ONE5STOPBITS = 1 2218 const TWOSTOPBITS = 2 2219 const IGNORE = 0 2220 const INFINITE = &hffffffff 2221 const CBR_110 = 110 2222 const CBR_300 = 300 2223 const CBR_600 = 600 2224 const CBR_1200 = 1200 2225 const CBR_2400 = 2400 2226 const CBR_4800 = 4800 2227 const CBR_9600 = 9600 2228 const CBR_14400 = 14400 2229 const CBR_19200 = 19200 2230 const CBR_38400 = 38400 2231 const CBR_56000 = 56000 2232 const CBR_57600 = 57600 2233 const CBR_115200 = 115200 2234 const CBR_128000 = 128000 2235 const CBR_256000 = 256000 2236 const CE_RXOVER = &h1 2237 const CE_OVERRUN = &h2 2238 const CE_RXPARITY = &h4 2239 const CE_FRAME = &h8 2240 const CE_BREAK = &h10 2241 const CE_TXFULL = &h100 2242 const CE_PTO = &h200 2243 const CE_IOE = &h400 2244 const CE_DNS = &h800 2245 const CE_OOP = &h1000 2246 const CE_MODE = &h8000 2247 const IE_BADID = -1 2248 const IE_OPEN = -2 2249 const IE_NOPEN = -3 2250 const IE_MEMORY = -4 2251 const IE_DEFAULT = -5 2252 const IE_HARDWARE = -10 2253 const IE_BYTESIZE = -11 2254 const IE_BAUDRATE = -12 2255 const EV_RXCHAR = &h1 2256 const EV_RXFLAG = &h2 2257 const EV_TXEMPTY = &h4 2258 const EV_CTS = &h8 2259 const EV_DSR = &h10 2260 const EV_RLSD = &h20 2261 const EV_BREAK = &h40 2262 const EV_ERR = &h80 2263 const EV_RING = &h100 2264 const EV_PERR = &h200 2265 const EV_RX80FULL = &h400 2266 const EV_EVENT1 = &h800 2267 const EV_EVENT2 = &h1000 2268 const SETXOFF = 1 2269 const SETXON = 2 2270 const SETRTS = 3 2271 const CLRRTS = 4 2272 const SETDTR = 5 2273 const CLRDTR = 6 2274 const RESETDEV = 7 2275 const SETBREAK = 8 2276 const CLRBREAK = 9 2277 const PURGE_TXABORT = &h1 2278 const PURGE_RXABORT = &h2 2279 const PURGE_TXCLEAR = &h4 2280 const PURGE_RXCLEAR = &h8 2281 const LPTx = &h80 2282 const MS_CTS_ON = cast(DWORD, &h10) 2283 const MS_DSR_ON = cast(DWORD, &h20) 2284 const MS_RING_ON = cast(DWORD, &h40) 2285 const MS_RLSD_ON = cast(DWORD, &h80) 2286 const S_QUEUEEMPTY = 0 2287 const S_THRESHOLD = 1 2288 const S_ALLTHRESHOLD = 2 2289 const S_NORMAL = 0 2290 const S_LEGATO = 1 2291 const S_STACCATO = 2 2292 const S_PERIOD512 = 0 2293 const S_PERIOD1024 = 1 2294 const S_PERIOD2048 = 2 2295 const S_PERIODVOICE = 3 2296 const S_WHITE512 = 4 2297 const S_WHITE1024 = 5 2298 const S_WHITE2048 = 6 2299 const S_WHITEVOICE = 7 2300 const S_SERDVNA = -1 2301 const S_SEROFM = -2 2302 const S_SERMACT = -3 2303 const S_SERQFUL = -4 2304 const S_SERBDNT = -5 2305 const S_SERDLN = -6 2306 const S_SERDCC = -7 2307 const S_SERDTP = -8 2308 const S_SERDVL = -9 2309 const S_SERDMD = -10 2310 const S_SERDSH = -11 2311 const S_SERDPT = -12 2312 const S_SERDFQ = -13 2313 const S_SERDDR = -14 2314 const S_SERDSR = -15 2315 const S_SERDST = -16 2316 const NMPWAIT_WAIT_FOREVER = &hffffffff 2317 const NMPWAIT_NOWAIT = &h1 2318 const NMPWAIT_USE_DEFAULT_WAIT = &h0 2319 const FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES 2320 const FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH 2321 const FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK 2322 const FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS 2323 const FS_VOL_IS_COMPRESSED = FILE_VOLUME_IS_COMPRESSED 2324 const FS_FILE_COMPRESSION = FILE_FILE_COMPRESSION 2325 const FS_FILE_ENCRYPTION = FILE_SUPPORTS_ENCRYPTION 2326 const OF_READ = &h0 2327 const OF_WRITE = &h1 2328 const OF_READWRITE = &h2 2329 const OF_SHARE_COMPAT = &h0 2330 const OF_SHARE_EXCLUSIVE = &h10 2331 const OF_SHARE_DENY_WRITE = &h20 2332 const OF_SHARE_DENY_READ = &h30 2333 const OF_SHARE_DENY_NONE = &h40 2334 const OF_PARSE = &h100 2335 const OF_DELETE = &h200 2336 const OF_VERIFY = &h400 2337 const OF_CANCEL = &h800 2338 const OF_CREATE = &h1000 2339 const OF_PROMPT = &h2000 2340 const OF_EXIST = &h4000 2341 const OF_REOPEN = &h8000 2342 const OFS_MAXPATHNAME = 128 2343 2344 type _OFSTRUCT 2345 cBytes as UBYTE 2346 fFixedDisk as UBYTE 2347 nErrCode as WORD 2348 Reserved1 as WORD 2349 Reserved2 as WORD 2350 szPathName as zstring * 128 2351 end type 2352 2353 type OFSTRUCT as _OFSTRUCT 2354 type LPOFSTRUCT as _OFSTRUCT ptr 2355 type POFSTRUCT as _OFSTRUCT ptr 2356 2357 #ifdef __FB_64BIT__ 2358 #define InterlockedIncrement _InterlockedIncrement 2359 #else 2360 private function InterlockedAnd64 cdecl(byval Destination as LONGLONG ptr, byval Value as LONGLONG) as LONGLONG 2361 dim Old as LONGLONG 2362 do 2363 Old = *Destination 2364 loop while InterlockedCompareExchange64(Destination, Old and Value, Old) <> Old 2365 return Old 2366 end function 2367 2368 private function InterlockedOr64 cdecl(byval Destination as LONGLONG ptr, byval Value as LONGLONG) as LONGLONG 2369 dim Old as LONGLONG 2370 do 2371 Old = *Destination 2372 loop while InterlockedCompareExchange64(Destination, Old or Value, Old) <> Old 2373 return Old 2374 end function 2375 2376 private function InterlockedXor64 cdecl(byval Destination as LONGLONG ptr, byval Value as LONGLONG) as LONGLONG 2377 dim Old as LONGLONG 2378 do 2379 Old = *Destination 2380 loop while InterlockedCompareExchange64(Destination, Old xor Value, Old) <> Old 2381 return Old 2382 end function 2383 2384 private function InterlockedIncrement64 cdecl(byval Addend as LONGLONG ptr) as LONGLONG 2385 dim Old as LONGLONG 2386 do 2387 Old = *Addend 2388 loop while InterlockedCompareExchange64(Addend, Old + 1, Old) <> Old 2389 return Old + 1 2390 end function 2391 2392 private function InterlockedDecrement64 cdecl(byval Addend as LONGLONG ptr) as LONGLONG 2393 dim Old as LONGLONG 2394 do 2395 Old = *Addend 2396 loop while InterlockedCompareExchange64(Addend, Old - 1, Old) <> Old 2397 return Old - 1 2398 end function 2399 2400 private function InterlockedExchange64 cdecl(byval Target as LONGLONG ptr, byval Value as LONGLONG) as LONGLONG 2401 dim Old as LONGLONG 2402 do 2403 Old = *Target 2404 loop while InterlockedCompareExchange64(Target, Value, Old) <> Old 2405 return Old 2406 end function 2407 2408 private function InterlockedExchangeAdd64 cdecl(byval Addend as LONGLONG ptr, byval Value as LONGLONG) as LONGLONG 2409 dim Old as LONGLONG 2410 do 2411 Old = *Addend 2412 loop while InterlockedCompareExchange64(Addend, Old + Value, Old) <> Old 2413 return Old 2414 end function 2415 2416 #define InterlockedCompareExchangePointer(Destination, ExChange, Comperand) cast(PVOID, cast(LONG_PTR, InterlockedCompareExchange(cptr(LONG ptr, (Destination)), cast(LONG, cast(LONG_PTR, (ExChange))), cast(LONG, cast(LONG_PTR, (Comperand)))))) 2417 #endif 2418 2419 #define InterlockedIncrementAcquire InterlockedIncrement 2420 #define InterlockedIncrementRelease InterlockedIncrement 2421 2422 #ifdef __FB_64BIT__ 2423 #define InterlockedDecrement _InterlockedDecrement 2424 #endif 2425 2426 #define InterlockedDecrementAcquire InterlockedDecrement 2427 #define InterlockedDecrementRelease InterlockedDecrement 2428 2429 #ifdef __FB_64BIT__ 2430 #define InterlockedExchange _InterlockedExchange 2431 #define InterlockedExchangeAdd _InterlockedExchangeAdd 2432 #define InterlockedCompareExchange _InterlockedCompareExchange 2433 #else 2434 #define InterlockedIncrementAcquire InterlockedIncrement 2435 #define InterlockedIncrementRelease InterlockedIncrement 2436 #endif 2437 2438 #define InterlockedCompareExchangeAcquire InterlockedCompareExchange 2439 #define InterlockedCompareExchangeRelease InterlockedCompareExchange 2440 2441 #ifdef __FB_64BIT__ 2442 #define InterlockedExchangePointer _InterlockedExchangePointer 2443 #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer 2444 #define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer 2445 #define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer 2446 #define InterlockedAnd64 _InterlockedAnd64 2447 #define InterlockedOr64 _InterlockedOr64 2448 #define InterlockedXor64 _InterlockedXor64 2449 #define InterlockedIncrement64 _InterlockedIncrement64 2450 #define InterlockedDecrement64 _InterlockedDecrement64 2451 #define InterlockedExchange64 _InterlockedExchange64 2452 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 2453 #define InterlockedCompareExchange64 _InterlockedCompareExchange64 2454 #endif 2455 2456 #define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64 2457 #define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64 2458 2459 #ifdef __FB_64BIT__ 2460 declare function _InterlockedAnd(byval Destination as LONG ptr, byval Value as LONG) as LONG 2461 declare function _InterlockedOr(byval Destination as LONG ptr, byval Value as LONG) as LONG 2462 declare function _InterlockedXor(byval Destination as LONG ptr, byval Value as LONG) as LONG 2463 declare function _InterlockedAnd8(byval Destination as zstring ptr, byval Value as byte) as byte 2464 declare function InterlockedAnd8 alias "_InterlockedAnd8"(byval Destination as zstring ptr, byval Value as byte) as byte 2465 declare function _InterlockedOr8(byval Destination as zstring ptr, byval Value as byte) as byte 2466 declare function InterlockedOr8 alias "_InterlockedOr8"(byval Destination as zstring ptr, byval Value as byte) as byte 2467 declare function _InterlockedXor8(byval Destination as zstring ptr, byval Value as byte) as byte 2468 declare function InterlockedXor8 alias "_InterlockedXor8"(byval Destination as zstring ptr, byval Value as byte) as byte 2469 declare function _InterlockedAnd16(byval Destination as SHORT ptr, byval Value as SHORT) as SHORT 2470 declare function InterlockedAnd16 alias "_InterlockedAnd16"(byval Destination as SHORT ptr, byval Value as SHORT) as SHORT 2471 declare function _InterlockedOr16(byval Destination as SHORT ptr, byval Value as SHORT) as SHORT 2472 declare function InterlockedOr16 alias "_InterlockedOr16"(byval Destination as SHORT ptr, byval Value as SHORT) as SHORT 2473 declare function _InterlockedXor16(byval Destination as SHORT ptr, byval Value as SHORT) as SHORT 2474 declare function InterlockedXor16 alias "_InterlockedXor16"(byval Destination as SHORT ptr, byval Value as SHORT) as SHORT 2475 #else 2476 #define InterlockedCompareExchangePointerAcquire InterlockedCompareExchangePointer 2477 #define InterlockedCompareExchangePointerRelease InterlockedCompareExchangePointer 2478 #endif 2479 2480 const MAXINTATOM = &hc000 2481 #define MAKEINTATOM(i) cast(LPTSTR, cast(ULONG_PTR, cast(WORD, (i)))) 2482 const INVALID_ATOM = cast(ATOM, 0) 2483 2484 declare function GlobalAlloc(byval uFlags as UINT, byval dwBytes as SIZE_T_) as HGLOBAL 2485 declare function GlobalReAlloc(byval hMem as HGLOBAL, byval dwBytes as SIZE_T_, byval uFlags as UINT) as HGLOBAL 2486 declare function GlobalSize(byval hMem as HGLOBAL) as SIZE_T_ 2487 declare function GlobalFlags(byval hMem as HGLOBAL) as UINT 2488 declare function GlobalLock(byval hMem as HGLOBAL) as LPVOID 2489 declare function GlobalHandle(byval pMem as LPCVOID) as HGLOBAL 2490 declare function GlobalUnlock(byval hMem as HGLOBAL) as WINBOOL 2491 declare function GlobalFree(byval hMem as HGLOBAL) as HGLOBAL 2492 declare function GlobalCompact(byval dwMinFree as DWORD) as SIZE_T_ 2493 declare sub GlobalFix(byval hMem as HGLOBAL) 2494 declare sub GlobalUnfix(byval hMem as HGLOBAL) 2495 declare function GlobalWire(byval hMem as HGLOBAL) as LPVOID 2496 declare function GlobalUnWire(byval hMem as HGLOBAL) as WINBOOL 2497 declare sub GlobalMemoryStatus(byval lpBuffer as LPMEMORYSTATUS) 2498 declare function LocalAlloc(byval uFlags as UINT, byval uBytes as SIZE_T_) as HLOCAL 2499 declare function LocalReAlloc(byval hMem as HLOCAL, byval uBytes as SIZE_T_, byval uFlags as UINT) as HLOCAL 2500 declare function LocalLock(byval hMem as HLOCAL) as LPVOID 2501 declare function LocalHandle(byval pMem as LPCVOID) as HLOCAL 2502 declare function LocalUnlock(byval hMem as HLOCAL) as WINBOOL 2503 declare function LocalSize(byval hMem as HLOCAL) as SIZE_T_ 2504 declare function LocalFlags(byval hMem as HLOCAL) as UINT 2505 declare function LocalFree(byval hMem as HLOCAL) as HLOCAL 2506 declare function LocalShrink(byval hMem as HLOCAL, byval cbNewSize as UINT) as SIZE_T_ 2507 declare function LocalCompact(byval uMinFree as UINT) as SIZE_T_ 2508 2509 #if _WIN32_WINNT >= &h0600 2510 declare function VirtualAllocExNuma(byval hProcess as HANDLE, byval lpAddress as LPVOID, byval dwSize as SIZE_T_, byval flAllocationType as DWORD, byval flProtect as DWORD, byval nndPreferred as DWORD) as LPVOID 2511 #endif 2512 2513 #if _WIN32_WINNT >= &h0601 2514 declare function GetProcessorSystemCycleTime(byval Group as USHORT, byval Buffer as PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, byval ReturnedLength as PDWORD) as WINBOOL 2515 declare function GetPhysicallyInstalledSystemMemory(byval TotalMemoryInKilobytes as PULONGLONG) as WINBOOL 2516 #endif 2517 2518 const SCS_32BIT_BINARY = 0 2519 const SCS_DOS_BINARY = 1 2520 const SCS_WOW_BINARY = 2 2521 const SCS_PIF_BINARY = 3 2522 const SCS_POSIX_BINARY = 4 2523 const SCS_OS216_BINARY = 5 2524 const SCS_64BIT_BINARY = 6 2525 2526 #ifdef __FB_64BIT__ 2527 const SCS_THIS_PLATFORM_BINARY = SCS_64BIT_BINARY 2528 #else 2529 const SCS_THIS_PLATFORM_BINARY = SCS_32BIT_BINARY 2530 #endif 2531 2532 declare function GetBinaryTypeA(byval lpApplicationName as LPCSTR, byval lpBinaryType as LPDWORD) as WINBOOL 2533 declare function GetBinaryTypeW(byval lpApplicationName as LPCWSTR, byval lpBinaryType as LPDWORD) as WINBOOL 2534 declare function GetShortPathNameA(byval lpszLongPath as LPCSTR, byval lpszShortPath as LPSTR, byval cchBuffer as DWORD) as DWORD 2535 2536 #if _WIN32_WINNT >= &h0600 2537 declare function GetLongPathNameTransactedA(byval lpszShortPath as LPCSTR, byval lpszLongPath as LPSTR, byval cchBuffer as DWORD, byval hTransaction as HANDLE) as DWORD 2538 declare function GetLongPathNameTransactedW(byval lpszShortPath as LPCWSTR, byval lpszLongPath as LPWSTR, byval cchBuffer as DWORD, byval hTransaction as HANDLE) as DWORD 2539 #endif 2540 2541 declare function GetProcessAffinityMask(byval hProcess as HANDLE, byval lpProcessAffinityMask as PDWORD_PTR, byval lpSystemAffinityMask as PDWORD_PTR) as WINBOOL 2542 declare function SetProcessAffinityMask(byval hProcess as HANDLE, byval dwProcessAffinityMask as DWORD_PTR) as WINBOOL 2543 declare function GetProcessIoCounters(byval hProcess as HANDLE, byval lpIoCounters as PIO_COUNTERS) as WINBOOL 2544 declare function GetProcessWorkingSetSize(byval hProcess as HANDLE, byval lpMinimumWorkingSetSize as PSIZE_T, byval lpMaximumWorkingSetSize as PSIZE_T) as WINBOOL 2545 declare function SetProcessWorkingSetSize(byval hProcess as HANDLE, byval dwMinimumWorkingSetSize as SIZE_T_, byval dwMaximumWorkingSetSize as SIZE_T_) as WINBOOL 2546 declare sub FatalExit(byval ExitCode as long) 2547 declare function SetEnvironmentStringsA(byval NewEnvironment as LPCH) as WINBOOL 2548 2549 #ifdef UNICODE 2550 declare function GetBinaryType alias "GetBinaryTypeW"(byval lpApplicationName as LPCWSTR, byval lpBinaryType as LPDWORD) as WINBOOL 2551 #endif 2552 2553 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 2554 declare function GetLongPathNameTransacted alias "GetLongPathNameTransactedW"(byval lpszShortPath as LPCWSTR, byval lpszLongPath as LPWSTR, byval cchBuffer as DWORD, byval hTransaction as HANDLE) as DWORD 2555 #elseif not defined(UNICODE) 2556 declare function SetEnvironmentStrings alias "SetEnvironmentStringsA"(byval NewEnvironment as LPCH) as WINBOOL 2557 declare function GetShortPathName alias "GetShortPathNameA"(byval lpszLongPath as LPCSTR, byval lpszShortPath as LPSTR, byval cchBuffer as DWORD) as DWORD 2558 declare function GetBinaryType alias "GetBinaryTypeA"(byval lpApplicationName as LPCSTR, byval lpBinaryType as LPDWORD) as WINBOOL 2559 #endif 2560 2561 #if (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 2562 declare function GetLongPathNameTransacted alias "GetLongPathNameTransactedA"(byval lpszShortPath as LPCSTR, byval lpszLongPath as LPSTR, byval cchBuffer as DWORD, byval hTransaction as HANDLE) as DWORD 2563 #endif 2564 2565 declare sub RaiseFailFastException(byval pExceptionRecord as PEXCEPTION_RECORD, byval pContextRecord as PCONTEXT, byval dwFlags as DWORD) 2566 declare function SetThreadIdealProcessor(byval hThread as HANDLE, byval dwIdealProcessor as DWORD) as DWORD 2567 const FIBER_FLAG_FLOAT_SWITCH = &h1 2568 declare function CreateFiber(byval dwStackSize as SIZE_T_, byval lpStartAddress as LPFIBER_START_ROUTINE, byval lpParameter as LPVOID) as LPVOID 2569 declare function CreateFiberEx(byval dwStackCommitSize as SIZE_T_, byval dwStackReserveSize as SIZE_T_, byval dwFlags as DWORD, byval lpStartAddress as LPFIBER_START_ROUTINE, byval lpParameter as LPVOID) as LPVOID 2570 declare sub DeleteFiber(byval lpFiber as LPVOID) 2571 declare function ConvertThreadToFiber(byval lpParameter as LPVOID) as LPVOID 2572 declare function ConvertThreadToFiberEx(byval lpParameter as LPVOID, byval dwFlags as DWORD) as LPVOID 2573 declare function ConvertFiberToThread() as WINBOOL 2574 declare sub SwitchToFiber(byval lpFiber as LPVOID) 2575 declare function SetThreadAffinityMask(byval hThread as HANDLE, byval dwThreadAffinityMask as DWORD_PTR) as DWORD_PTR 2576 2577 type _THREAD_INFORMATION_CLASS as long 2578 enum 2579 ThreadMemoryPriority 2580 ThreadAbsoluteCpuPriority 2581 ThreadInformationClassMax 2582 end enum 2583 2584 type THREAD_INFORMATION_CLASS as _THREAD_INFORMATION_CLASS 2585 2586 type _PROCESS_INFORMATION_CLASS as long 2587 enum 2588 ProcessMemoryPriority 2589 ProcessInformationClassMax 2590 end enum 2591 2592 type PROCESS_INFORMATION_CLASS as _PROCESS_INFORMATION_CLASS 2593 2594 #if _WIN32_WINNT = &h0602 2595 declare function GetThreadInformation(byval hThread as HANDLE, byval ThreadInformationClass as THREAD_INFORMATION_CLASS, byval ThreadInformation as LPVOID, byval ThreadInformationSize as DWORD) as WINBOOL 2596 declare function SetThreadInformation(byval hThread as HANDLE, byval ThreadInformationClass as THREAD_INFORMATION_CLASS, byval ThreadInformation as LPVOID, byval ThreadInformationSize as DWORD) as WINBOOL 2597 declare function GetProcessInformation(byval hProcess as HANDLE, byval ProcessInformationClass as PROCESS_INFORMATION_CLASS, byval ProcessInformation as LPVOID, byval ProcessInformationSize as DWORD) as WINBOOL 2598 declare function SetProcessInformation(byval hProcess as HANDLE, byval ProcessInformationClass as PROCESS_INFORMATION_CLASS, byval ProcessInformation as LPVOID, byval ProcessInformationSize as DWORD) as WINBOOL 2599 2600 const MEMORY_PRIORITY_LOWEST = 0 2601 const MEMORY_PRIORITY_VERY_LOW = 1 2602 const MEMORY_PRIORITY_LOW = 2 2603 const MEMORY_PRIORITY_MEDIUM = 3 2604 const MEMORY_PRIORITY_BELOW_NORMAL = 4 2605 const MEMORY_PRIORITY_NORMAL = 5 2606 2607 type _MEMORY_PRIORITY_INFORMATION 2608 MemoryPriority as ULONG 2609 end type 2610 2611 type MEMORY_PRIORITY_INFORMATION as _MEMORY_PRIORITY_INFORMATION 2612 type PMEMORY_PRIORITY_INFORMATION as _MEMORY_PRIORITY_INFORMATION ptr 2613 #endif 2614 2615 #if _WIN32_WINNT >= &h0600 2616 const PROCESS_DEP_ENABLE = &h00000001 2617 const PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION = &h00000002 2618 declare function SetProcessDEPPolicy(byval dwFlags as DWORD) as WINBOOL 2619 declare function GetProcessDEPPolicy(byval hProcess as HANDLE, byval lpFlags as LPDWORD, byval lpPermanent as PBOOL) as WINBOOL 2620 #endif 2621 2622 declare function SetProcessPriorityBoost(byval hProcess as HANDLE, byval bDisablePriorityBoost as WINBOOL) as WINBOOL 2623 declare function GetProcessPriorityBoost(byval hProcess as HANDLE, byval pDisablePriorityBoost as PBOOL) as WINBOOL 2624 declare function RequestWakeupLatency(byval latency as LATENCY_TIME) as WINBOOL 2625 declare function IsSystemResumeAutomatic() as WINBOOL 2626 declare function GetThreadIOPendingFlag(byval hThread as HANDLE, byval lpIOIsPending as PBOOL) as WINBOOL 2627 declare function GetThreadSelectorEntry(byval hThread as HANDLE, byval dwSelector as DWORD, byval lpSelectorEntry as LPLDT_ENTRY) as WINBOOL 2628 declare function SetThreadExecutionState(byval esFlags as EXECUTION_STATE) as EXECUTION_STATE 2629 2630 #if _WIN32_WINNT >= &h0601 2631 type POWER_REQUEST_CONTEXT as REASON_CONTEXT 2632 type PPOWER_REQUEST_CONTEXT as REASON_CONTEXT ptr 2633 type LPPOWER_REQUEST_CONTEXT as REASON_CONTEXT ptr 2634 2635 declare function PowerCreateRequest(byval Context as PREASON_CONTEXT) as HANDLE 2636 declare function PowerSetRequest(byval PowerRequest as HANDLE, byval RequestType as POWER_REQUEST_TYPE) as WINBOOL 2637 declare function PowerClearRequest(byval PowerRequest as HANDLE, byval RequestType as POWER_REQUEST_TYPE) as WINBOOL 2638 #endif 2639 2640 #define HasOverlappedIoCompleted(lpOverlapped) (cast(DWORD, (lpOverlapped)->Internal) <> STATUS_PENDING) 2641 2642 #if _WIN32_WINNT >= &h0600 2643 const FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = &h1 2644 const FILE_SKIP_SET_EVENT_ON_HANDLE = &h2 2645 declare function SetFileCompletionNotificationModes(byval FileHandle as HANDLE, byval Flags as UCHAR) as WINBOOL 2646 declare function SetFileIoOverlappedRange(byval FileHandle as HANDLE, byval OverlappedRangeStart as PUCHAR, byval Length as ULONG) as WINBOOL 2647 #endif 2648 2649 const SEM_FAILCRITICALERRORS = &h0001 2650 const SEM_NOGPFAULTERRORBOX = &h0002 2651 const SEM_NOALIGNMENTFAULTEXCEPT = &h0004 2652 const SEM_NOOPENFILEERRORBOX = &h8000 2653 declare function GetThreadErrorMode() as DWORD 2654 declare function SetThreadErrorMode(byval dwNewMode as DWORD, byval lpOldMode as LPDWORD) as WINBOOL 2655 2656 #if _WIN32_WINNT >= &h0600 2657 declare function Wow64GetThreadContext(byval hThread as HANDLE, byval lpContext as PWOW64_CONTEXT) as WINBOOL 2658 declare function Wow64SetThreadContext(byval hThread as HANDLE, byval lpContext as const WOW64_CONTEXT ptr) as WINBOOL 2659 #endif 2660 2661 #if _WIN32_WINNT >= &h0601 2662 declare function Wow64GetThreadSelectorEntry(byval hThread as HANDLE, byval dwSelector as DWORD, byval lpSelectorEntry as PWOW64_LDT_ENTRY) as WINBOOL 2663 #endif 2664 2665 #if _WIN32_WINNT >= &h0600 2666 declare function Wow64SuspendThread(byval hThread as HANDLE) as DWORD 2667 #endif 2668 2669 declare function DebugSetProcessKillOnExit(byval KillOnExit as WINBOOL) as WINBOOL 2670 declare function DebugBreakProcess(byval Process as HANDLE) as WINBOOL 2671 const CRITICAL_SECTION_NO_DEBUG_INFO = RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO 2672 2673 type _DEP_SYSTEM_POLICY_TYPE as long 2674 enum 2675 DEPPolicyAlwaysOff = 0 2676 DEPPolicyAlwaysOn 2677 DEPPolicyOptIn 2678 DEPPolicyOptOut 2679 DEPTotalPolicyCount 2680 end enum 2681 2682 type DEP_SYSTEM_POLICY_TYPE as _DEP_SYSTEM_POLICY_TYPE 2683 const HANDLE_FLAG_INHERIT = &h1 2684 const HANDLE_FLAG_PROTECT_FROM_CLOSE = &h2 2685 const HINSTANCE_ERROR = 32 2686 const GET_TAPE_MEDIA_INFORMATION = 0 2687 const GET_TAPE_DRIVE_INFORMATION = 1 2688 const SET_TAPE_MEDIA_INFORMATION = 0 2689 const SET_TAPE_DRIVE_INFORMATION = 1 2690 2691 declare function PulseEvent(byval hEvent as HANDLE) as WINBOOL 2692 declare function WaitForMultipleObjects(byval nCount as DWORD, byval lpHandles as const HANDLE ptr, byval bWaitAll as WINBOOL, byval dwMilliseconds as DWORD) as DWORD 2693 declare function GlobalDeleteAtom(byval nAtom as ATOM) as ATOM 2694 declare function InitAtomTable(byval nSize as DWORD) as WINBOOL 2695 declare function DeleteAtom(byval nAtom as ATOM) as ATOM 2696 declare function SetHandleCount(byval uNumber as UINT) as UINT 2697 declare function RequestDeviceWakeup(byval hDevice as HANDLE) as WINBOOL 2698 declare function CancelDeviceWakeupRequest(byval hDevice as HANDLE) as WINBOOL 2699 declare function GetDevicePowerState(byval hDevice as HANDLE, byval pfOn as WINBOOL ptr) as WINBOOL 2700 declare function SetMessageWaitingIndicator(byval hMsgIndicator as HANDLE, byval ulMsgCount as ULONG) as WINBOOL 2701 declare function SetFileShortNameA(byval hFile as HANDLE, byval lpShortName as LPCSTR) as WINBOOL 2702 declare function SetFileShortNameW(byval hFile as HANDLE, byval lpShortName as LPCWSTR) as WINBOOL 2703 declare function LoadModule(byval lpModuleName as LPCSTR, byval lpParameterBlock as LPVOID) as DWORD 2704 declare function WinExec(byval lpCmdLine as LPCSTR, byval uCmdShow as UINT) as UINT 2705 declare function ClearCommBreak(byval hFile as HANDLE) as WINBOOL 2706 declare function ClearCommError(byval hFile as HANDLE, byval lpErrors as LPDWORD, byval lpStat as LPCOMSTAT) as WINBOOL 2707 declare function SetupComm(byval hFile as HANDLE, byval dwInQueue as DWORD, byval dwOutQueue as DWORD) as WINBOOL 2708 declare function EscapeCommFunction(byval hFile as HANDLE, byval dwFunc as DWORD) as WINBOOL 2709 declare function GetCommConfig(byval hCommDev as HANDLE, byval lpCC as LPCOMMCONFIG, byval lpdwSize as LPDWORD) as WINBOOL 2710 declare function GetCommMask(byval hFile as HANDLE, byval lpEvtMask as LPDWORD) as WINBOOL 2711 declare function GetCommProperties(byval hFile as HANDLE, byval lpCommProp as LPCOMMPROP) as WINBOOL 2712 declare function GetCommModemStatus(byval hFile as HANDLE, byval lpModemStat as LPDWORD) as WINBOOL 2713 declare function GetCommState(byval hFile as HANDLE, byval lpDCB as LPDCB) as WINBOOL 2714 declare function GetCommTimeouts(byval hFile as HANDLE, byval lpCommTimeouts as LPCOMMTIMEOUTS) as WINBOOL 2715 declare function PurgeComm(byval hFile as HANDLE, byval dwFlags as DWORD) as WINBOOL 2716 declare function SetCommBreak(byval hFile as HANDLE) as WINBOOL 2717 declare function SetCommConfig(byval hCommDev as HANDLE, byval lpCC as LPCOMMCONFIG, byval dwSize as DWORD) as WINBOOL 2718 declare function SetCommMask(byval hFile as HANDLE, byval dwEvtMask as DWORD) as WINBOOL 2719 declare function SetCommState(byval hFile as HANDLE, byval lpDCB as LPDCB) as WINBOOL 2720 declare function SetCommTimeouts(byval hFile as HANDLE, byval lpCommTimeouts as LPCOMMTIMEOUTS) as WINBOOL 2721 declare function TransmitCommChar(byval hFile as HANDLE, byval cChar as byte) as WINBOOL 2722 declare function WaitCommEvent(byval hFile as HANDLE, byval lpEvtMask as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as WINBOOL 2723 declare function SetTapePosition(byval hDevice as HANDLE, byval dwPositionMethod as DWORD, byval dwPartition as DWORD, byval dwOffsetLow as DWORD, byval dwOffsetHigh as DWORD, byval bImmediate as WINBOOL) as DWORD 2724 declare function GetTapePosition(byval hDevice as HANDLE, byval dwPositionType as DWORD, byval lpdwPartition as LPDWORD, byval lpdwOffsetLow as LPDWORD, byval lpdwOffsetHigh as LPDWORD) as DWORD 2725 declare function PrepareTape(byval hDevice as HANDLE, byval dwOperation as DWORD, byval bImmediate as WINBOOL) as DWORD 2726 declare function EraseTape(byval hDevice as HANDLE, byval dwEraseType as DWORD, byval bImmediate as WINBOOL) as DWORD 2727 declare function CreateTapePartition(byval hDevice as HANDLE, byval dwPartitionMethod as DWORD, byval dwCount as DWORD, byval dwSize as DWORD) as DWORD 2728 declare function WriteTapemark(byval hDevice as HANDLE, byval dwTapemarkType as DWORD, byval dwTapemarkCount as DWORD, byval bImmediate as WINBOOL) as DWORD 2729 declare function GetTapeStatus(byval hDevice as HANDLE) as DWORD 2730 declare function GetTapeParameters(byval hDevice as HANDLE, byval dwOperation as DWORD, byval lpdwSize as LPDWORD, byval lpTapeInformation as LPVOID) as DWORD 2731 declare function SetTapeParameters(byval hDevice as HANDLE, byval dwOperation as DWORD, byval lpTapeInformation as LPVOID) as DWORD 2732 declare function GetSystemDEPPolicy() as DEP_SYSTEM_POLICY_TYPE 2733 declare function GetSystemRegistryQuota(byval pdwQuotaAllowed as PDWORD, byval pdwQuotaUsed as PDWORD) as WINBOOL 2734 declare function GetSystemTimes(byval lpIdleTime as LPFILETIME, byval lpKernelTime as LPFILETIME, byval lpUserTime as LPFILETIME) as WINBOOL 2735 declare function FileTimeToDosDateTime(byval lpFileTime as const FILETIME ptr, byval lpFatDate as LPWORD, byval lpFatTime as LPWORD) as WINBOOL 2736 declare function DosDateTimeToFileTime(byval wFatDate as WORD, byval wFatTime as WORD, byval lpFileTime as LPFILETIME) as WINBOOL 2737 declare function SetSystemTimeAdjustment(byval dwTimeAdjustment as DWORD, byval bTimeAdjustmentDisabled as WINBOOL) as WINBOOL 2738 2739 #ifdef UNICODE 2740 declare function SetFileShortName alias "SetFileShortNameW"(byval hFile as HANDLE, byval lpShortName as LPCWSTR) as WINBOOL 2741 #else 2742 declare function SetFileShortName alias "SetFileShortNameA"(byval hFile as HANDLE, byval lpShortName as LPCSTR) as WINBOOL 2743 #endif 2744 2745 declare function MulDiv(byval nNumber as long, byval nNumerator as long, byval nDenominator as long) as long 2746 declare function FormatMessageA(byval dwFlags as DWORD, byval lpSource as LPCVOID, byval dwMessageId as DWORD, byval dwLanguageId as DWORD, byval lpBuffer as LPSTR, byval nSize as DWORD, byval Arguments as va_list ptr) as DWORD 2747 declare function FormatMessageW(byval dwFlags as DWORD, byval lpSource as LPCVOID, byval dwMessageId as DWORD, byval dwLanguageId as DWORD, byval lpBuffer as LPWSTR, byval nSize as DWORD, byval Arguments as va_list ptr) as DWORD 2748 2749 #ifdef UNICODE 2750 declare function FormatMessage alias "FormatMessageW"(byval dwFlags as DWORD, byval lpSource as LPCVOID, byval dwMessageId as DWORD, byval dwLanguageId as DWORD, byval lpBuffer as LPWSTR, byval nSize as DWORD, byval Arguments as va_list ptr) as DWORD 2751 #else 2752 declare function FormatMessage alias "FormatMessageA"(byval dwFlags as DWORD, byval lpSource as LPCVOID, byval dwMessageId as DWORD, byval dwLanguageId as DWORD, byval lpBuffer as LPSTR, byval nSize as DWORD, byval Arguments as va_list ptr) as DWORD 2753 #endif 2754 2755 const FORMAT_MESSAGE_IGNORE_INSERTS = &h00000200 2756 const FORMAT_MESSAGE_FROM_STRING = &h00000400 2757 const FORMAT_MESSAGE_FROM_HMODULE = &h00000800 2758 const FORMAT_MESSAGE_FROM_SYSTEM = &h00001000 2759 const FORMAT_MESSAGE_ARGUMENT_ARRAY = &h00002000 2760 const FORMAT_MESSAGE_MAX_WIDTH_MASK = &h000000ff 2761 type PFE_EXPORT_FUNC as function(byval pbData as PBYTE, byval pvCallbackContext as PVOID, byval ulLength as ULONG) as DWORD 2762 type PFE_IMPORT_FUNC as function(byval pbData as PBYTE, byval pvCallbackContext as PVOID, byval ulLength as PULONG) as DWORD 2763 const FILE_ENCRYPTABLE = 0 2764 const FILE_IS_ENCRYPTED = 1 2765 const FILE_SYSTEM_ATTR = 2 2766 const FILE_ROOT_DIR = 3 2767 const FILE_SYSTEM_DIR = 4 2768 const FILE_UNKNOWN = 5 2769 const FILE_SYSTEM_NOT_SUPPORT = 6 2770 const FILE_USER_DISALLOWED = 7 2771 const FILE_READ_ONLY = 8 2772 const FILE_DIR_DISALLOWED = 9 2773 const FORMAT_MESSAGE_ALLOCATE_BUFFER = &h00000100 2774 const EFS_USE_RECOVERY_KEYS = &h1 2775 const CREATE_FOR_IMPORT = 1 2776 const CREATE_FOR_DIR = 2 2777 const OVERWRITE_HIDDEN = 4 2778 const EFSRPC_SECURE_ONLY = 8 2779 2780 declare function GetNamedPipeInfo(byval hNamedPipe as HANDLE, byval lpFlags as LPDWORD, byval lpOutBufferSize as LPDWORD, byval lpInBufferSize as LPDWORD, byval lpMaxInstances as LPDWORD) as WINBOOL 2781 declare function CreateMailslotA(byval lpName as LPCSTR, byval nMaxMessageSize as DWORD, byval lReadTimeout as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as HANDLE 2782 declare function CreateMailslotW(byval lpName as LPCWSTR, byval nMaxMessageSize as DWORD, byval lReadTimeout as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as HANDLE 2783 declare function GetMailslotInfo(byval hMailslot as HANDLE, byval lpMaxMessageSize as LPDWORD, byval lpNextSize as LPDWORD, byval lpMessageCount as LPDWORD, byval lpReadTimeout as LPDWORD) as WINBOOL 2784 declare function SetMailslotInfo(byval hMailslot as HANDLE, byval lReadTimeout as DWORD) as WINBOOL 2785 declare function EncryptFileA(byval lpFileName as LPCSTR) as WINBOOL 2786 declare function EncryptFileW(byval lpFileName as LPCWSTR) as WINBOOL 2787 declare function DecryptFileA(byval lpFileName as LPCSTR, byval dwReserved as DWORD) as WINBOOL 2788 declare function DecryptFileW(byval lpFileName as LPCWSTR, byval dwReserved as DWORD) as WINBOOL 2789 declare function FileEncryptionStatusA(byval lpFileName as LPCSTR, byval lpStatus as LPDWORD) as WINBOOL 2790 declare function FileEncryptionStatusW(byval lpFileName as LPCWSTR, byval lpStatus as LPDWORD) as WINBOOL 2791 declare function OpenEncryptedFileRawA(byval lpFileName as LPCSTR, byval ulFlags as ULONG, byval pvContext as PVOID ptr) as DWORD 2792 declare function OpenEncryptedFileRawW(byval lpFileName as LPCWSTR, byval ulFlags as ULONG, byval pvContext as PVOID ptr) as DWORD 2793 declare function ReadEncryptedFileRaw(byval pfExportCallback as PFE_EXPORT_FUNC, byval pvCallbackContext as PVOID, byval pvContext as PVOID) as DWORD 2794 declare function WriteEncryptedFileRaw(byval pfImportCallback as PFE_IMPORT_FUNC, byval pvCallbackContext as PVOID, byval pvContext as PVOID) as DWORD 2795 declare sub CloseEncryptedFileRaw(byval pvContext as PVOID) 2796 declare function lstrcmpA(byval lpString1 as LPCSTR, byval lpString2 as LPCSTR) as long 2797 declare function lstrcmpW(byval lpString1 as LPCWSTR, byval lpString2 as LPCWSTR) as long 2798 declare function lstrcmpiA(byval lpString1 as LPCSTR, byval lpString2 as LPCSTR) as long 2799 declare function lstrcmpiW(byval lpString1 as LPCWSTR, byval lpString2 as LPCWSTR) as long 2800 declare function lstrcpynA(byval lpString1 as LPSTR, byval lpString2 as LPCSTR, byval iMaxLength as long) as LPSTR 2801 declare function lstrcpynW(byval lpString1 as LPWSTR, byval lpString2 as LPCWSTR, byval iMaxLength as long) as LPWSTR 2802 declare function lstrcpyA(byval lpString1 as LPSTR, byval lpString2 as LPCSTR) as LPSTR 2803 declare function lstrcpyW(byval lpString1 as LPWSTR, byval lpString2 as LPCWSTR) as LPWSTR 2804 declare function lstrcatA(byval lpString1 as LPSTR, byval lpString2 as LPCSTR) as LPSTR 2805 declare function lstrcatW(byval lpString1 as LPWSTR, byval lpString2 as LPCWSTR) as LPWSTR 2806 declare function lstrlenA(byval lpString as LPCSTR) as long 2807 declare function lstrlenW(byval lpString as LPCWSTR) as long 2808 declare function OpenFile(byval lpFileName as LPCSTR, byval lpReOpenBuff as LPOFSTRUCT, byval uStyle as UINT) as HFILE 2809 declare function _lopen(byval lpPathName as LPCSTR, byval iReadWrite as long) as HFILE 2810 declare function _lcreat(byval lpPathName as LPCSTR, byval iAttribute as long) as HFILE 2811 declare function _lread(byval hFile as HFILE, byval lpBuffer as LPVOID, byval uBytes as UINT) as UINT 2812 declare function _lwrite(byval hFile as HFILE, byval lpBuffer as LPCCH, byval uBytes as UINT) as UINT 2813 declare function _hread(byval hFile as HFILE, byval lpBuffer as LPVOID, byval lBytes as long) as long 2814 declare function _hwrite(byval hFile as HFILE, byval lpBuffer as LPCCH, byval lBytes as long) as long 2815 declare function _lclose(byval hFile as HFILE) as HFILE 2816 declare function _llseek(byval hFile as HFILE, byval lOffset as LONG, byval iOrigin as long) as LONG 2817 declare function IsTextUnicode(byval lpv as const any ptr, byval iSize as long, byval lpiResult as LPINT) as WINBOOL 2818 declare function BackupRead(byval hFile as HANDLE, byval lpBuffer as LPBYTE, byval nNumberOfBytesToRead as DWORD, byval lpNumberOfBytesRead as LPDWORD, byval bAbort as WINBOOL, byval bProcessSecurity as WINBOOL, byval lpContext as LPVOID ptr) as WINBOOL 2819 declare function BackupSeek(byval hFile as HANDLE, byval dwLowBytesToSeek as DWORD, byval dwHighBytesToSeek as DWORD, byval lpdwLowByteSeeked as LPDWORD, byval lpdwHighByteSeeked as LPDWORD, byval lpContext as LPVOID ptr) as WINBOOL 2820 declare function BackupWrite(byval hFile as HANDLE, byval lpBuffer as LPBYTE, byval nNumberOfBytesToWrite as DWORD, byval lpNumberOfBytesWritten as LPDWORD, byval bAbort as WINBOOL, byval bProcessSecurity as WINBOOL, byval lpContext as LPVOID ptr) as WINBOOL 2821 2822 #ifdef UNICODE 2823 declare function CreateMailslot alias "CreateMailslotW"(byval lpName as LPCWSTR, byval nMaxMessageSize as DWORD, byval lReadTimeout as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as HANDLE 2824 declare function EncryptFile alias "EncryptFileW"(byval lpFileName as LPCWSTR) as WINBOOL 2825 declare function DecryptFile alias "DecryptFileW"(byval lpFileName as LPCWSTR, byval dwReserved as DWORD) as WINBOOL 2826 declare function FileEncryptionStatus alias "FileEncryptionStatusW"(byval lpFileName as LPCWSTR, byval lpStatus as LPDWORD) as WINBOOL 2827 declare function OpenEncryptedFileRaw alias "OpenEncryptedFileRawW"(byval lpFileName as LPCWSTR, byval ulFlags as ULONG, byval pvContext as PVOID ptr) as DWORD 2828 declare function lstrcmp alias "lstrcmpW"(byval lpString1 as LPCWSTR, byval lpString2 as LPCWSTR) as long 2829 declare function lstrcmpi alias "lstrcmpiW"(byval lpString1 as LPCWSTR, byval lpString2 as LPCWSTR) as long 2830 declare function lstrcpyn alias "lstrcpynW"(byval lpString1 as LPWSTR, byval lpString2 as LPCWSTR, byval iMaxLength as long) as LPWSTR 2831 #define lstrcpy lstrcpyW 2832 #define lstrcat lstrcatW 2833 declare function lstrlen alias "lstrlenW"(byval lpString as LPCWSTR) as long 2834 #else 2835 declare function CreateMailslot alias "CreateMailslotA"(byval lpName as LPCSTR, byval nMaxMessageSize as DWORD, byval lReadTimeout as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as HANDLE 2836 declare function EncryptFile alias "EncryptFileA"(byval lpFileName as LPCSTR) as WINBOOL 2837 declare function DecryptFile alias "DecryptFileA"(byval lpFileName as LPCSTR, byval dwReserved as DWORD) as WINBOOL 2838 declare function FileEncryptionStatus alias "FileEncryptionStatusA"(byval lpFileName as LPCSTR, byval lpStatus as LPDWORD) as WINBOOL 2839 declare function OpenEncryptedFileRaw alias "OpenEncryptedFileRawA"(byval lpFileName as LPCSTR, byval ulFlags as ULONG, byval pvContext as PVOID ptr) as DWORD 2840 declare function lstrcmp alias "lstrcmpA"(byval lpString1 as LPCSTR, byval lpString2 as LPCSTR) as long 2841 declare function lstrcmpi alias "lstrcmpiA"(byval lpString1 as LPCSTR, byval lpString2 as LPCSTR) as long 2842 declare function lstrcpyn alias "lstrcpynA"(byval lpString1 as LPSTR, byval lpString2 as LPCSTR, byval iMaxLength as long) as LPSTR 2843 #define lstrcpy lstrcpyA 2844 #define lstrcat lstrcatA 2845 declare function lstrlen alias "lstrlenA"(byval lpString as LPCSTR) as long 2846 #endif 2847 2848 type _WIN32_STREAM_ID 2849 dwStreamId as DWORD 2850 dwStreamAttributes as DWORD 2851 Size as LARGE_INTEGER 2852 dwStreamNameSize as DWORD 2853 cStreamName as wstring * 1 2854 end type 2855 2856 type WIN32_STREAM_ID as _WIN32_STREAM_ID 2857 type LPWIN32_STREAM_ID as _WIN32_STREAM_ID ptr 2858 const BACKUP_INVALID = &h00000000 2859 const BACKUP_DATA = &h00000001 2860 const BACKUP_EA_DATA = &h00000002 2861 const BACKUP_SECURITY_DATA = &h00000003 2862 const BACKUP_ALTERNATE_DATA = &h00000004 2863 const BACKUP_LINK = &h00000005 2864 const BACKUP_PROPERTY_DATA = &h00000006 2865 const BACKUP_OBJECT_ID = &h00000007 2866 const BACKUP_REPARSE_DATA = &h00000008 2867 const BACKUP_SPARSE_BLOCK = &h00000009 2868 const BACKUP_TXFS_DATA = &h0000000a 2869 const STREAM_NORMAL_ATTRIBUTE = &h00000000 2870 const STREAM_MODIFIED_WHEN_READ = &h00000001 2871 const STREAM_CONTAINS_SECURITY = &h00000002 2872 const STREAM_CONTAINS_PROPERTIES = &h00000004 2873 const STREAM_SPARSE_ATTRIBUTE = &h00000008 2874 const STARTF_USESHOWWINDOW = &h00000001 2875 const STARTF_USESIZE = &h00000002 2876 const STARTF_USEPOSITION = &h00000004 2877 const STARTF_USECOUNTCHARS = &h00000008 2878 const STARTF_USEFILLATTRIBUTE = &h00000010 2879 const STARTF_RUNFULLSCREEN = &h00000020 2880 const STARTF_FORCEONFEEDBACK = &h00000040 2881 const STARTF_FORCEOFFFEEDBACK = &h00000080 2882 const STARTF_USESTDHANDLES = &h00000100 2883 const STARTF_USEHOTKEY = &h00000200 2884 const STARTF_TITLEISLINKNAME = &h00000800 2885 const STARTF_TITLEISAPPID = &h00001000 2886 const STARTF_PREVENTPINNING = &h00002000 2887 2888 #if _WIN32_WINNT >= &h0600 2889 type _STARTUPINFOEXA 2890 StartupInfo as STARTUPINFOA 2891 lpAttributeList as LPPROC_THREAD_ATTRIBUTE_LIST 2892 end type 2893 2894 type STARTUPINFOEXA as _STARTUPINFOEXA 2895 type LPSTARTUPINFOEXA as _STARTUPINFOEXA ptr 2896 2897 type _STARTUPINFOEXW 2898 StartupInfo as STARTUPINFOW 2899 lpAttributeList as LPPROC_THREAD_ATTRIBUTE_LIST 2900 end type 2901 2902 type STARTUPINFOEXW as _STARTUPINFOEXW 2903 type LPSTARTUPINFOEXW as _STARTUPINFOEXW ptr 2904 #endif 2905 2906 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 2907 type STARTUPINFOEX as STARTUPINFOEXW 2908 type LPSTARTUPINFOEX as LPSTARTUPINFOEXW 2909 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 2910 type STARTUPINFOEX as STARTUPINFOEXA 2911 type LPSTARTUPINFOEX as LPSTARTUPINFOEXA 2912 #endif 2913 2914 const SHUTDOWN_NORETRY = &h1 2915 declare function CreateSemaphoreW(byval lpSemaphoreAttributes as LPSECURITY_ATTRIBUTES, byval lInitialCount as LONG, byval lMaximumCount as LONG, byval lpName as LPCWSTR) as HANDLE 2916 2917 #ifdef UNICODE 2918 declare function CreateSemaphore alias "CreateSemaphoreW"(byval lpSemaphoreAttributes as LPSECURITY_ATTRIBUTES, byval lInitialCount as LONG, byval lMaximumCount as LONG, byval lpName as LPCWSTR) as HANDLE 2919 #endif 2920 2921 declare function LoadLibraryW(byval lpLibFileName as LPCWSTR) as HMODULE 2922 declare function OpenMutexA(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 2923 declare function CreateSemaphoreA(byval lpSemaphoreAttributes as LPSECURITY_ATTRIBUTES, byval lInitialCount as LONG, byval lMaximumCount as LONG, byval lpName as LPCSTR) as HANDLE 2924 2925 #ifndef UNICODE 2926 declare function CreateSemaphore alias "CreateSemaphoreA"(byval lpSemaphoreAttributes as LPSECURITY_ATTRIBUTES, byval lInitialCount as LONG, byval lMaximumCount as LONG, byval lpName as LPCSTR) as HANDLE 2927 #endif 2928 2929 declare function OpenSemaphoreA(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 2930 declare function CreateWaitableTimerA(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval lpTimerName as LPCSTR) as HANDLE 2931 declare function CreateWaitableTimerW(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval lpTimerName as LPCWSTR) as HANDLE 2932 declare function OpenWaitableTimerA(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpTimerName as LPCSTR) as HANDLE 2933 declare function CreateFileMappingA(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCSTR) as HANDLE 2934 2935 #if _WIN32_WINNT >= &h0600 2936 declare function CreateSemaphoreExA(byval lpSemaphoreAttributes as LPSECURITY_ATTRIBUTES, byval lInitialCount as LONG, byval lMaximumCount as LONG, byval lpName as LPCSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 2937 declare function CreateWaitableTimerExA(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval lpTimerName as LPCSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 2938 declare function CreateFileMappingNumaA(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCSTR, byval nndPreferred as DWORD) as HANDLE 2939 #endif 2940 2941 declare function OpenFileMappingA(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 2942 declare function GetLogicalDriveStringsA(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 2943 declare function LoadLibraryA(byval lpLibFileName as LPCSTR) as HMODULE 2944 2945 #ifdef UNICODE 2946 declare function CreateWaitableTimer alias "CreateWaitableTimerW"(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval lpTimerName as LPCWSTR) as HANDLE 2947 declare function LoadLibrary alias "LoadLibraryW"(byval lpLibFileName as LPCWSTR) as HMODULE 2948 #endif 2949 2950 #if defined(UNICODE) and (_WIN32_WINNT = &h0602) 2951 declare function LoadPackagedLibrary(byval lpwLibFileName as LPCWSTR, byval Reserved as DWORD) as HMODULE 2952 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 2953 declare function OpenMutex alias "OpenMutexA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 2954 declare function OpenSemaphore alias "OpenSemaphoreA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 2955 declare function OpenWaitableTimer alias "OpenWaitableTimerA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpTimerName as LPCSTR) as HANDLE 2956 declare function CreateFileMapping alias "CreateFileMappingA"(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCSTR) as HANDLE 2957 declare function OpenFileMapping alias "OpenFileMappingA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 2958 declare function GetLogicalDriveStrings alias "GetLogicalDriveStringsA"(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 2959 declare function CreateWaitableTimer alias "CreateWaitableTimerA"(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval lpTimerName as LPCSTR) as HANDLE 2960 declare function LoadLibrary alias "LoadLibraryA"(byval lpLibFileName as LPCSTR) as HMODULE 2961 declare function CreateSemaphoreEx alias "CreateSemaphoreExA"(byval lpSemaphoreAttributes as LPSECURITY_ATTRIBUTES, byval lInitialCount as LONG, byval lMaximumCount as LONG, byval lpName as LPCSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 2962 declare function CreateWaitableTimerEx alias "CreateWaitableTimerExA"(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval lpTimerName as LPCSTR, byval dwFlags as DWORD, byval dwDesiredAccess as DWORD) as HANDLE 2963 declare function CreateFileMappingNuma alias "CreateFileMappingNumaA"(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCSTR, byval nndPreferred as DWORD) as HANDLE 2964 #endif 2965 2966 #if (not defined(UNICODE)) and (_WIN32_WINNT = &h0602) 2967 declare function LoadPackagedLibrary(byval lpwLibFileName as LPCWSTR, byval Reserved as DWORD) as HMODULE 2968 #endif 2969 2970 #if _WIN32_WINNT >= &h0600 2971 const PROCESS_NAME_NATIVE = &h00000001 2972 declare function QueryFullProcessImageNameA(byval hProcess as HANDLE, byval dwFlags as DWORD, byval lpExeName as LPSTR, byval lpdwSize as PDWORD) as WINBOOL 2973 declare function QueryFullProcessImageNameW(byval hProcess as HANDLE, byval dwFlags as DWORD, byval lpExeName as LPWSTR, byval lpdwSize as PDWORD) as WINBOOL 2974 #endif 2975 2976 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 2977 declare function QueryFullProcessImageName alias "QueryFullProcessImageNameW"(byval hProcess as HANDLE, byval dwFlags as DWORD, byval lpExeName as LPWSTR, byval lpdwSize as PDWORD) as WINBOOL 2978 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 2979 declare function QueryFullProcessImageName alias "QueryFullProcessImageNameA"(byval hProcess as HANDLE, byval dwFlags as DWORD, byval lpExeName as LPSTR, byval lpdwSize as PDWORD) as WINBOOL 2980 #endif 2981 2982 #if _WIN32_WINNT >= &h0600 2983 const PROC_THREAD_ATTRIBUTE_NUMBER = &h0000ffff 2984 const PROC_THREAD_ATTRIBUTE_THREAD = &h00010000 2985 const PROC_THREAD_ATTRIBUTE_INPUT = &h00020000 2986 const PROC_THREAD_ATTRIBUTE_ADDITIVE = &h00040000 2987 2988 type _PROC_THREAD_ATTRIBUTE_NUM as long 2989 enum 2990 ProcThreadAttributeParentProcess = 0 2991 ProcThreadAttributeHandleList = 2 2992 2993 #if _WIN32_WINNT >= &h0601 2994 ProcThreadAttributeGroupAffinity = 3 2995 ProcThreadAttributePreferredNode = 4 2996 ProcThreadAttributeIdealProcessor = 5 2997 ProcThreadAttributeUmsThread = 6 2998 ProcThreadAttributeMitigationPolicy = 7 2999 #endif 3000 3001 #if _WIN32_WINNT = &h0602 3002 ProcThreadAttributeSecurityCapabilities = 9 3003 #endif 3004 end enum 3005 3006 type PROC_THREAD_ATTRIBUTE_NUM as _PROC_THREAD_ATTRIBUTE_NUM 3007 #define ProcThreadAttributeValue(Number, Thread, Input, Additive) (((((Number) and PROC_THREAD_ATTRIBUTE_NUMBER) or iif(Thread <> FALSE, PROC_THREAD_ATTRIBUTE_THREAD, 0)) or iif(Input <> FALSE, PROC_THREAD_ATTRIBUTE_INPUT, 0)) or iif(Additive <> FALSE, PROC_THREAD_ATTRIBUTE_ADDITIVE, 0)) 3008 #define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS ProcThreadAttributeValue(ProcThreadAttributeParentProcess, FALSE, CTRUE, FALSE) 3009 #define PROC_THREAD_ATTRIBUTE_HANDLE_LIST ProcThreadAttributeValue(ProcThreadAttributeHandleList, FALSE, CTRUE, FALSE) 3010 #endif 3011 3012 #if _WIN32_WINNT >= &h0601 3013 #define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY ProcThreadAttributeValue(ProcThreadAttributeGroupAffinity, CTRUE, CTRUE, FALSE) 3014 #define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE ProcThreadAttributeValue(ProcThreadAttributePreferredNode, FALSE, CTRUE, FALSE) 3015 #define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR ProcThreadAttributeValue(ProcThreadAttributeIdealProcessor, CTRUE, CTRUE, FALSE) 3016 #define PROC_THREAD_ATTRIBUTE_UMS_THREAD ProcThreadAttributeValue(ProcThreadAttributeUmsThread, CTRUE, CTRUE, FALSE) 3017 #define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY ProcThreadAttributeValue(ProcThreadAttributeMitigationPolicy, FALSE, CTRUE, FALSE) 3018 const PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE = &h01 3019 const PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE = &h02 3020 const PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE = &h04 3021 #endif 3022 3023 #if _WIN32_WINNT = &h0602 3024 #define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES ProcThreadAttributeValue(ProcThreadAttributeSecurityCapabilities, FALSE, CTRUE, FALSE) 3025 const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_MASK = &h00000003 shl 8 3026 const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_DEFER = &h00000000 shl 8 3027 const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON = &h00000001 shl 8 3028 const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_OFF = &h00000002 shl 8 3029 const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON_REQ_RELOCS = &h00000003 shl 8 3030 const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_MASK = &h00000003 shl 12 3031 const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_DEFER = &h00000000 shl 12 3032 const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_ON = &h00000001 shl 12 3033 const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_OFF = &h00000002 shl 12 3034 const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_RESERVED = &h00000003 shl 12 3035 const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_MASK = &h00000003 shl 16 3036 const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_DEFER = &h00000000 shl 16 3037 const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_ON = &h00000001 shl 16 3038 const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_OFF = &h00000002 shl 16 3039 const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_RESERVED = &h00000003 shl 16 3040 const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_MASK = &h00000003 shl 20 3041 const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_DEFER = &h00000000 shl 20 3042 const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_ON = &h00000001 shl 20 3043 const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_OFF = &h00000002 shl 20 3044 const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_RESERVED = &h00000003 shl 20 3045 const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_MASK = &h00000003 shl 24 3046 const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_DEFER = &h00000000 shl 24 3047 const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_ON = &h00000001 shl 24 3048 const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_OFF = &h00000002 shl 24 3049 const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_RESERVED = &h00000003 shl 24 3050 const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_MASK = &h00000003 shl 28 3051 const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_DEFER = &h00000000 shl 28 3052 const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_ON = &h00000001 shl 28 3053 const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_OFF = &h00000002 shl 28 3054 const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_RESERVED = &h00000003 shl 28 3055 const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_MASK = &h00000003ull shl 32 3056 const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_DEFER = &h00000000ull shl 32 3057 const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_ON = &h00000001ull shl 32 3058 const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_OFF = &h00000002ull shl 32 3059 const PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_RESERVED = &h00000003ull shl 32 3060 #elseif (not defined(UNICODE)) and (_WIN32_WINNT <= &h0502) 3061 declare function OpenMutex alias "OpenMutexA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 3062 declare function OpenSemaphore alias "OpenSemaphoreA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 3063 declare function OpenWaitableTimer alias "OpenWaitableTimerA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpTimerName as LPCSTR) as HANDLE 3064 declare function CreateFileMapping alias "CreateFileMappingA"(byval hFile as HANDLE, byval lpFileMappingAttributes as LPSECURITY_ATTRIBUTES, byval flProtect as DWORD, byval dwMaximumSizeHigh as DWORD, byval dwMaximumSizeLow as DWORD, byval lpName as LPCSTR) as HANDLE 3065 declare function OpenFileMapping alias "OpenFileMappingA"(byval dwDesiredAccess as DWORD, byval bInheritHandle as WINBOOL, byval lpName as LPCSTR) as HANDLE 3066 declare function GetLogicalDriveStrings alias "GetLogicalDriveStringsA"(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 3067 declare function CreateWaitableTimer alias "CreateWaitableTimerA"(byval lpTimerAttributes as LPSECURITY_ATTRIBUTES, byval bManualReset as WINBOOL, byval lpTimerName as LPCSTR) as HANDLE 3068 declare function LoadLibrary alias "LoadLibraryA"(byval lpLibFileName as LPCSTR) as HMODULE 3069 #endif 3070 3071 const ATOM_FLAG_GLOBAL = &h2 3072 declare function GetProcessShutdownParameters(byval lpdwLevel as LPDWORD, byval lpdwFlags as LPDWORD) as WINBOOL 3073 declare sub FatalAppExitA(byval uAction as UINT, byval lpMessageText as LPCSTR) 3074 declare sub FatalAppExitW(byval uAction as UINT, byval lpMessageText as LPCWSTR) 3075 declare sub GetStartupInfoA(byval lpStartupInfo as LPSTARTUPINFOA) 3076 declare function GetFirmwareEnvironmentVariableA(byval lpName as LPCSTR, byval lpGuid as LPCSTR, byval pBuffer as PVOID, byval nSize as DWORD) as DWORD 3077 declare function GetFirmwareEnvironmentVariableW(byval lpName as LPCWSTR, byval lpGuid as LPCWSTR, byval pBuffer as PVOID, byval nSize as DWORD) as DWORD 3078 declare function SetFirmwareEnvironmentVariableA(byval lpName as LPCSTR, byval lpGuid as LPCSTR, byval pValue as PVOID, byval nSize as DWORD) as WINBOOL 3079 declare function SetFirmwareEnvironmentVariableW(byval lpName as LPCWSTR, byval lpGuid as LPCWSTR, byval pValue as PVOID, byval nSize as DWORD) as WINBOOL 3080 declare function FindResourceA(byval hModule as HMODULE, byval lpName as LPCSTR, byval lpType as LPCSTR) as HRSRC 3081 declare function FindResourceW(byval hModule as HMODULE, byval lpName as LPCWSTR, byval lpType as LPCWSTR) as HRSRC 3082 declare function FindResourceExA(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpName as LPCSTR, byval wLanguage as WORD) as HRSRC 3083 declare function EnumResourceTypesA(byval hModule as HMODULE, byval lpEnumFunc as ENUMRESTYPEPROCA, byval lParam as LONG_PTR) as WINBOOL 3084 declare function EnumResourceTypesW(byval hModule as HMODULE, byval lpEnumFunc as ENUMRESTYPEPROCW, byval lParam as LONG_PTR) as WINBOOL 3085 declare function EnumResourceNamesA(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpEnumFunc as ENUMRESNAMEPROCA, byval lParam as LONG_PTR) as WINBOOL 3086 declare function EnumResourceNamesW(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpEnumFunc as ENUMRESNAMEPROCW, byval lParam as LONG_PTR) as WINBOOL 3087 declare function EnumResourceLanguagesA(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpName as LPCSTR, byval lpEnumFunc as ENUMRESLANGPROCA, byval lParam as LONG_PTR) as WINBOOL 3088 declare function EnumResourceLanguagesW(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpName as LPCWSTR, byval lpEnumFunc as ENUMRESLANGPROCW, byval lParam as LONG_PTR) as WINBOOL 3089 declare function BeginUpdateResourceA(byval pFileName as LPCSTR, byval bDeleteExistingResources as WINBOOL) as HANDLE 3090 declare function BeginUpdateResourceW(byval pFileName as LPCWSTR, byval bDeleteExistingResources as WINBOOL) as HANDLE 3091 declare function UpdateResourceA(byval hUpdate as HANDLE, byval lpType as LPCSTR, byval lpName as LPCSTR, byval wLanguage as WORD, byval lpData as LPVOID, byval cb as DWORD) as WINBOOL 3092 declare function UpdateResourceW(byval hUpdate as HANDLE, byval lpType as LPCWSTR, byval lpName as LPCWSTR, byval wLanguage as WORD, byval lpData as LPVOID, byval cb as DWORD) as WINBOOL 3093 declare function EndUpdateResourceA(byval hUpdate as HANDLE, byval fDiscard as WINBOOL) as WINBOOL 3094 declare function EndUpdateResourceW(byval hUpdate as HANDLE, byval fDiscard as WINBOOL) as WINBOOL 3095 3096 #if _WIN32_WINNT = &h0602 3097 declare function GetFirmwareEnvironmentVariableExA(byval lpName as LPCSTR, byval lpGuid as LPCSTR, byval pBuffer as PVOID, byval nSize as DWORD, byval pdwAttribubutes as PDWORD) as DWORD 3098 declare function GetFirmwareEnvironmentVariableExW(byval lpName as LPCWSTR, byval lpGuid as LPCWSTR, byval pBuffer as PVOID, byval nSize as DWORD, byval pdwAttribubutes as PDWORD) as DWORD 3099 declare function SetFirmwareEnvironmentVariableExA(byval lpName as LPCSTR, byval lpGuid as LPCSTR, byval pValue as PVOID, byval nSize as DWORD, byval dwAttributes as DWORD) as WINBOOL 3100 declare function SetFirmwareEnvironmentVariableExW(byval lpName as LPCWSTR, byval lpGuid as LPCWSTR, byval pValue as PVOID, byval nSize as DWORD, byval dwAttributes as DWORD) as WINBOOL 3101 declare function GetFirmwareType(byval FirmwareType as PFIRMWARE_TYPE) as WINBOOL 3102 declare function IsNativeVhdBoot(byval NativeVhdBoot as PBOOL) as WINBOOL 3103 #endif 3104 3105 declare function GlobalAddAtomA(byval lpString as LPCSTR) as ATOM 3106 declare function GlobalAddAtomW(byval lpString as LPCWSTR) as ATOM 3107 declare function GlobalAddAtomExA(byval lpString as LPCSTR, byval Flags as DWORD) as ATOM 3108 declare function GlobalAddAtomExW(byval lpString as LPCWSTR, byval Flags as DWORD) as ATOM 3109 declare function GlobalFindAtomA(byval lpString as LPCSTR) as ATOM 3110 declare function GlobalFindAtomW(byval lpString as LPCWSTR) as ATOM 3111 declare function GlobalGetAtomNameA(byval nAtom as ATOM, byval lpBuffer as LPSTR, byval nSize as long) as UINT 3112 declare function GlobalGetAtomNameW(byval nAtom as ATOM, byval lpBuffer as LPWSTR, byval nSize as long) as UINT 3113 declare function AddAtomA(byval lpString as LPCSTR) as ATOM 3114 declare function AddAtomW(byval lpString as LPCWSTR) as ATOM 3115 declare function FindAtomA(byval lpString as LPCSTR) as ATOM 3116 declare function FindAtomW(byval lpString as LPCWSTR) as ATOM 3117 declare function GetAtomNameA(byval nAtom as ATOM, byval lpBuffer as LPSTR, byval nSize as long) as UINT 3118 declare function GetAtomNameW(byval nAtom as ATOM, byval lpBuffer as LPWSTR, byval nSize as long) as UINT 3119 declare function GetProfileIntA(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval nDefault as INT_) as UINT 3120 declare function GetProfileIntW(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval nDefault as INT_) as UINT 3121 declare function GetProfileStringA(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval lpDefault as LPCSTR, byval lpReturnedString as LPSTR, byval nSize as DWORD) as DWORD 3122 declare function GetProfileStringW(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval lpDefault as LPCWSTR, byval lpReturnedString as LPWSTR, byval nSize as DWORD) as DWORD 3123 declare function WriteProfileStringA(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval lpString as LPCSTR) as WINBOOL 3124 declare function WriteProfileStringW(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval lpString as LPCWSTR) as WINBOOL 3125 declare function GetProfileSectionA(byval lpAppName as LPCSTR, byval lpReturnedString as LPSTR, byval nSize as DWORD) as DWORD 3126 declare function GetProfileSectionW(byval lpAppName as LPCWSTR, byval lpReturnedString as LPWSTR, byval nSize as DWORD) as DWORD 3127 declare function WriteProfileSectionA(byval lpAppName as LPCSTR, byval lpString as LPCSTR) as WINBOOL 3128 declare function WriteProfileSectionW(byval lpAppName as LPCWSTR, byval lpString as LPCWSTR) as WINBOOL 3129 declare function GetPrivateProfileIntA(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval nDefault as INT_, byval lpFileName as LPCSTR) as UINT 3130 declare function GetPrivateProfileIntW(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval nDefault as INT_, byval lpFileName as LPCWSTR) as UINT 3131 declare function GetPrivateProfileStringA(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval lpDefault as LPCSTR, byval lpReturnedString as LPSTR, byval nSize as DWORD, byval lpFileName as LPCSTR) as DWORD 3132 declare function GetPrivateProfileStringW(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval lpDefault as LPCWSTR, byval lpReturnedString as LPWSTR, byval nSize as DWORD, byval lpFileName as LPCWSTR) as DWORD 3133 declare function WritePrivateProfileStringA(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval lpString as LPCSTR, byval lpFileName as LPCSTR) as WINBOOL 3134 declare function WritePrivateProfileStringW(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval lpString as LPCWSTR, byval lpFileName as LPCWSTR) as WINBOOL 3135 declare function GetPrivateProfileSectionA(byval lpAppName as LPCSTR, byval lpReturnedString as LPSTR, byval nSize as DWORD, byval lpFileName as LPCSTR) as DWORD 3136 declare function GetPrivateProfileSectionW(byval lpAppName as LPCWSTR, byval lpReturnedString as LPWSTR, byval nSize as DWORD, byval lpFileName as LPCWSTR) as DWORD 3137 declare function WritePrivateProfileSectionA(byval lpAppName as LPCSTR, byval lpString as LPCSTR, byval lpFileName as LPCSTR) as WINBOOL 3138 declare function WritePrivateProfileSectionW(byval lpAppName as LPCWSTR, byval lpString as LPCWSTR, byval lpFileName as LPCWSTR) as WINBOOL 3139 declare function GetPrivateProfileSectionNamesA(byval lpszReturnBuffer as LPSTR, byval nSize as DWORD, byval lpFileName as LPCSTR) as DWORD 3140 declare function GetPrivateProfileSectionNamesW(byval lpszReturnBuffer as LPWSTR, byval nSize as DWORD, byval lpFileName as LPCWSTR) as DWORD 3141 declare function GetPrivateProfileStructA(byval lpszSection as LPCSTR, byval lpszKey as LPCSTR, byval lpStruct as LPVOID, byval uSizeStruct as UINT, byval szFile as LPCSTR) as WINBOOL 3142 declare function GetPrivateProfileStructW(byval lpszSection as LPCWSTR, byval lpszKey as LPCWSTR, byval lpStruct as LPVOID, byval uSizeStruct as UINT, byval szFile as LPCWSTR) as WINBOOL 3143 declare function WritePrivateProfileStructA(byval lpszSection as LPCSTR, byval lpszKey as LPCSTR, byval lpStruct as LPVOID, byval uSizeStruct as UINT, byval szFile as LPCSTR) as WINBOOL 3144 declare function WritePrivateProfileStructW(byval lpszSection as LPCWSTR, byval lpszKey as LPCWSTR, byval lpStruct as LPVOID, byval uSizeStruct as UINT, byval szFile as LPCWSTR) as WINBOOL 3145 declare function GetTempPathA(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 3146 declare function GetTempFileNameA(byval lpPathName as LPCSTR, byval lpPrefixString as LPCSTR, byval uUnique as UINT, byval lpTempFileName as LPSTR) as UINT 3147 3148 #ifdef UNICODE 3149 declare sub FatalAppExit alias "FatalAppExitW"(byval uAction as UINT, byval lpMessageText as LPCWSTR) 3150 declare function GetFirmwareEnvironmentVariable alias "GetFirmwareEnvironmentVariableW"(byval lpName as LPCWSTR, byval lpGuid as LPCWSTR, byval pBuffer as PVOID, byval nSize as DWORD) as DWORD 3151 declare function SetFirmwareEnvironmentVariable alias "SetFirmwareEnvironmentVariableW"(byval lpName as LPCWSTR, byval lpGuid as LPCWSTR, byval pValue as PVOID, byval nSize as DWORD) as WINBOOL 3152 declare function FindResource alias "FindResourceW"(byval hModule as HMODULE, byval lpName as LPCWSTR, byval lpType as LPCWSTR) as HRSRC 3153 declare function EnumResourceTypes alias "EnumResourceTypesW"(byval hModule as HMODULE, byval lpEnumFunc as ENUMRESTYPEPROCW, byval lParam as LONG_PTR) as WINBOOL 3154 declare function EnumResourceNames alias "EnumResourceNamesW"(byval hModule as HMODULE, byval lpType as LPCWSTR, byval lpEnumFunc as ENUMRESNAMEPROCW, byval lParam as LONG_PTR) as WINBOOL 3155 #define EnumResourceLanguages EnumResourceLanguagesW 3156 declare function BeginUpdateResource alias "BeginUpdateResourceW"(byval pFileName as LPCWSTR, byval bDeleteExistingResources as WINBOOL) as HANDLE 3157 declare function UpdateResource alias "UpdateResourceW"(byval hUpdate as HANDLE, byval lpType as LPCWSTR, byval lpName as LPCWSTR, byval wLanguage as WORD, byval lpData as LPVOID, byval cb as DWORD) as WINBOOL 3158 declare function EndUpdateResource alias "EndUpdateResourceW"(byval hUpdate as HANDLE, byval fDiscard as WINBOOL) as WINBOOL 3159 declare function GlobalAddAtom alias "GlobalAddAtomW"(byval lpString as LPCWSTR) as ATOM 3160 declare function GlobalAddAtomEx alias "GlobalAddAtomExW"(byval lpString as LPCWSTR, byval Flags as DWORD) as ATOM 3161 declare function GlobalFindAtom alias "GlobalFindAtomW"(byval lpString as LPCWSTR) as ATOM 3162 declare function GlobalGetAtomName alias "GlobalGetAtomNameW"(byval nAtom as ATOM, byval lpBuffer as LPWSTR, byval nSize as long) as UINT 3163 declare function AddAtom alias "AddAtomW"(byval lpString as LPCWSTR) as ATOM 3164 declare function FindAtom alias "FindAtomW"(byval lpString as LPCWSTR) as ATOM 3165 declare function GetAtomName alias "GetAtomNameW"(byval nAtom as ATOM, byval lpBuffer as LPWSTR, byval nSize as long) as UINT 3166 declare function GetProfileInt alias "GetProfileIntW"(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval nDefault as INT_) as UINT 3167 declare function GetProfileString alias "GetProfileStringW"(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval lpDefault as LPCWSTR, byval lpReturnedString as LPWSTR, byval nSize as DWORD) as DWORD 3168 declare function WriteProfileString alias "WriteProfileStringW"(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval lpString as LPCWSTR) as WINBOOL 3169 declare function GetProfileSection alias "GetProfileSectionW"(byval lpAppName as LPCWSTR, byval lpReturnedString as LPWSTR, byval nSize as DWORD) as DWORD 3170 declare function WriteProfileSection alias "WriteProfileSectionW"(byval lpAppName as LPCWSTR, byval lpString as LPCWSTR) as WINBOOL 3171 declare function GetPrivateProfileInt alias "GetPrivateProfileIntW"(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval nDefault as INT_, byval lpFileName as LPCWSTR) as UINT 3172 declare function GetPrivateProfileString alias "GetPrivateProfileStringW"(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval lpDefault as LPCWSTR, byval lpReturnedString as LPWSTR, byval nSize as DWORD, byval lpFileName as LPCWSTR) as DWORD 3173 declare function WritePrivateProfileString alias "WritePrivateProfileStringW"(byval lpAppName as LPCWSTR, byval lpKeyName as LPCWSTR, byval lpString as LPCWSTR, byval lpFileName as LPCWSTR) as WINBOOL 3174 declare function GetPrivateProfileSection alias "GetPrivateProfileSectionW"(byval lpAppName as LPCWSTR, byval lpReturnedString as LPWSTR, byval nSize as DWORD, byval lpFileName as LPCWSTR) as DWORD 3175 declare function WritePrivateProfileSection alias "WritePrivateProfileSectionW"(byval lpAppName as LPCWSTR, byval lpString as LPCWSTR, byval lpFileName as LPCWSTR) as WINBOOL 3176 declare function GetPrivateProfileSectionNames alias "GetPrivateProfileSectionNamesW"(byval lpszReturnBuffer as LPWSTR, byval nSize as DWORD, byval lpFileName as LPCWSTR) as DWORD 3177 declare function GetPrivateProfileStruct alias "GetPrivateProfileStructW"(byval lpszSection as LPCWSTR, byval lpszKey as LPCWSTR, byval lpStruct as LPVOID, byval uSizeStruct as UINT, byval szFile as LPCWSTR) as WINBOOL 3178 declare function WritePrivateProfileStruct alias "WritePrivateProfileStructW"(byval lpszSection as LPCWSTR, byval lpszKey as LPCWSTR, byval lpStruct as LPVOID, byval uSizeStruct as UINT, byval szFile as LPCWSTR) as WINBOOL 3179 #endif 3180 3181 #if defined(UNICODE) and (_WIN32_WINNT = &h0602) 3182 declare function GetFirmwareEnvironmentVariableEx alias "GetFirmwareEnvironmentVariableExW"(byval lpName as LPCWSTR, byval lpGuid as LPCWSTR, byval pBuffer as PVOID, byval nSize as DWORD, byval pdwAttribubutes as PDWORD) as DWORD 3183 declare function SetFirmwareEnvironmentVariableEx alias "SetFirmwareEnvironmentVariableExW"(byval lpName as LPCWSTR, byval lpGuid as LPCWSTR, byval pValue as PVOID, byval nSize as DWORD, byval dwAttributes as DWORD) as WINBOOL 3184 #elseif not defined(UNICODE) 3185 declare sub GetStartupInfo alias "GetStartupInfoA"(byval lpStartupInfo as LPSTARTUPINFOA) 3186 declare function FindResourceEx alias "FindResourceExA"(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpName as LPCSTR, byval wLanguage as WORD) as HRSRC 3187 declare function GetTempPath alias "GetTempPathA"(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 3188 declare function GetTempFileName alias "GetTempFileNameA"(byval lpPathName as LPCSTR, byval lpPrefixString as LPCSTR, byval uUnique as UINT, byval lpTempFileName as LPSTR) as UINT 3189 declare sub FatalAppExit alias "FatalAppExitA"(byval uAction as UINT, byval lpMessageText as LPCSTR) 3190 declare function GetFirmwareEnvironmentVariable alias "GetFirmwareEnvironmentVariableA"(byval lpName as LPCSTR, byval lpGuid as LPCSTR, byval pBuffer as PVOID, byval nSize as DWORD) as DWORD 3191 declare function SetFirmwareEnvironmentVariable alias "SetFirmwareEnvironmentVariableA"(byval lpName as LPCSTR, byval lpGuid as LPCSTR, byval pValue as PVOID, byval nSize as DWORD) as WINBOOL 3192 declare function FindResource alias "FindResourceA"(byval hModule as HMODULE, byval lpName as LPCSTR, byval lpType as LPCSTR) as HRSRC 3193 declare function EnumResourceTypes alias "EnumResourceTypesA"(byval hModule as HMODULE, byval lpEnumFunc as ENUMRESTYPEPROCA, byval lParam as LONG_PTR) as WINBOOL 3194 declare function EnumResourceNames alias "EnumResourceNamesA"(byval hModule as HMODULE, byval lpType as LPCSTR, byval lpEnumFunc as ENUMRESNAMEPROCA, byval lParam as LONG_PTR) as WINBOOL 3195 #define EnumResourceLanguages EnumResourceLanguagesA 3196 declare function BeginUpdateResource alias "BeginUpdateResourceA"(byval pFileName as LPCSTR, byval bDeleteExistingResources as WINBOOL) as HANDLE 3197 declare function UpdateResource alias "UpdateResourceA"(byval hUpdate as HANDLE, byval lpType as LPCSTR, byval lpName as LPCSTR, byval wLanguage as WORD, byval lpData as LPVOID, byval cb as DWORD) as WINBOOL 3198 declare function EndUpdateResource alias "EndUpdateResourceA"(byval hUpdate as HANDLE, byval fDiscard as WINBOOL) as WINBOOL 3199 declare function GlobalAddAtom alias "GlobalAddAtomA"(byval lpString as LPCSTR) as ATOM 3200 declare function GlobalAddAtomEx alias "GlobalAddAtomExA"(byval lpString as LPCSTR, byval Flags as DWORD) as ATOM 3201 declare function GlobalFindAtom alias "GlobalFindAtomA"(byval lpString as LPCSTR) as ATOM 3202 declare function GlobalGetAtomName alias "GlobalGetAtomNameA"(byval nAtom as ATOM, byval lpBuffer as LPSTR, byval nSize as long) as UINT 3203 declare function AddAtom alias "AddAtomA"(byval lpString as LPCSTR) as ATOM 3204 declare function FindAtom alias "FindAtomA"(byval lpString as LPCSTR) as ATOM 3205 declare function GetAtomName alias "GetAtomNameA"(byval nAtom as ATOM, byval lpBuffer as LPSTR, byval nSize as long) as UINT 3206 declare function GetProfileInt alias "GetProfileIntA"(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval nDefault as INT_) as UINT 3207 declare function GetProfileString alias "GetProfileStringA"(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval lpDefault as LPCSTR, byval lpReturnedString as LPSTR, byval nSize as DWORD) as DWORD 3208 declare function WriteProfileString alias "WriteProfileStringA"(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval lpString as LPCSTR) as WINBOOL 3209 declare function GetProfileSection alias "GetProfileSectionA"(byval lpAppName as LPCSTR, byval lpReturnedString as LPSTR, byval nSize as DWORD) as DWORD 3210 declare function WriteProfileSection alias "WriteProfileSectionA"(byval lpAppName as LPCSTR, byval lpString as LPCSTR) as WINBOOL 3211 declare function GetPrivateProfileInt alias "GetPrivateProfileIntA"(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval nDefault as INT_, byval lpFileName as LPCSTR) as UINT 3212 declare function GetPrivateProfileString alias "GetPrivateProfileStringA"(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval lpDefault as LPCSTR, byval lpReturnedString as LPSTR, byval nSize as DWORD, byval lpFileName as LPCSTR) as DWORD 3213 declare function WritePrivateProfileString alias "WritePrivateProfileStringA"(byval lpAppName as LPCSTR, byval lpKeyName as LPCSTR, byval lpString as LPCSTR, byval lpFileName as LPCSTR) as WINBOOL 3214 declare function GetPrivateProfileSection alias "GetPrivateProfileSectionA"(byval lpAppName as LPCSTR, byval lpReturnedString as LPSTR, byval nSize as DWORD, byval lpFileName as LPCSTR) as DWORD 3215 declare function WritePrivateProfileSection alias "WritePrivateProfileSectionA"(byval lpAppName as LPCSTR, byval lpString as LPCSTR, byval lpFileName as LPCSTR) as WINBOOL 3216 declare function GetPrivateProfileSectionNames alias "GetPrivateProfileSectionNamesA"(byval lpszReturnBuffer as LPSTR, byval nSize as DWORD, byval lpFileName as LPCSTR) as DWORD 3217 declare function GetPrivateProfileStruct alias "GetPrivateProfileStructA"(byval lpszSection as LPCSTR, byval lpszKey as LPCSTR, byval lpStruct as LPVOID, byval uSizeStruct as UINT, byval szFile as LPCSTR) as WINBOOL 3218 declare function WritePrivateProfileStruct alias "WritePrivateProfileStructA"(byval lpszSection as LPCSTR, byval lpszKey as LPCSTR, byval lpStruct as LPVOID, byval uSizeStruct as UINT, byval szFile as LPCSTR) as WINBOOL 3219 #endif 3220 3221 #if (not defined(UNICODE)) and (_WIN32_WINNT = &h0602) 3222 declare function GetFirmwareEnvironmentVariableEx alias "GetFirmwareEnvironmentVariableExA"(byval lpName as LPCSTR, byval lpGuid as LPCSTR, byval pBuffer as PVOID, byval nSize as DWORD, byval pdwAttribubutes as PDWORD) as DWORD 3223 declare function SetFirmwareEnvironmentVariableEx alias "SetFirmwareEnvironmentVariableExA"(byval lpName as LPCSTR, byval lpGuid as LPCSTR, byval pValue as PVOID, byval nSize as DWORD, byval dwAttributes as DWORD) as WINBOOL 3224 #endif 3225 3226 declare function GetSystemWow64DirectoryA(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 3227 declare function GetSystemWow64DirectoryW(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 3228 3229 #ifdef UNICODE 3230 declare function GetSystemWow64Directory alias "GetSystemWow64DirectoryW"(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 3231 #else 3232 declare function GetSystemWow64Directory alias "GetSystemWow64DirectoryA"(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 3233 #endif 3234 3235 declare function Wow64EnableWow64FsRedirection(byval Wow64FsEnableRedirection as WINBOOLEAN) as WINBOOLEAN 3236 type PGET_SYSTEM_WOW64_DIRECTORY_A as function(byval lpBuffer as LPSTR, byval uSize as UINT) as UINT 3237 type PGET_SYSTEM_WOW64_DIRECTORY_W as function(byval lpBuffer as LPWSTR, byval uSize as UINT) as UINT 3238 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A "GetSystemWow64DirectoryA" 3239 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W wstr("GetSystemWow64DirectoryA") 3240 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T __TEXT("GetSystemWow64DirectoryA") 3241 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A "GetSystemWow64DirectoryW" 3242 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W wstr("GetSystemWow64DirectoryW") 3243 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T __TEXT("GetSystemWow64DirectoryW") 3244 3245 #ifdef UNICODE 3246 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A 3247 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W 3248 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T 3249 #else 3250 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A 3251 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W 3252 #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T 3253 #endif 3254 3255 declare function SetDllDirectoryA(byval lpPathName as LPCSTR) as WINBOOL 3256 declare function SetDllDirectoryW(byval lpPathName as LPCWSTR) as WINBOOL 3257 declare function GetDllDirectoryA(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 3258 declare function GetDllDirectoryW(byval nBufferLength as DWORD, byval lpBuffer as LPWSTR) as DWORD 3259 3260 #ifdef UNICODE 3261 declare function SetDllDirectory alias "SetDllDirectoryW"(byval lpPathName as LPCWSTR) as WINBOOL 3262 declare function GetDllDirectory alias "GetDllDirectoryW"(byval nBufferLength as DWORD, byval lpBuffer as LPWSTR) as DWORD 3263 #else 3264 declare function SetDllDirectory alias "SetDllDirectoryA"(byval lpPathName as LPCSTR) as WINBOOL 3265 declare function GetDllDirectory alias "GetDllDirectoryA"(byval nBufferLength as DWORD, byval lpBuffer as LPSTR) as DWORD 3266 #endif 3267 3268 const BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE = &h1 3269 const BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE = &h10000 3270 const BASE_SEARCH_PATH_PERMANENT = &h8000 3271 const BASE_SEARCH_PATH_INVALID_FLAGS = not &h18001 3272 3273 declare function SetSearchPathMode(byval Flags as DWORD) as WINBOOL 3274 declare function CreateDirectoryExA(byval lpTemplateDirectory as LPCSTR, byval lpNewDirectory as LPCSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 3275 declare function CreateDirectoryExW(byval lpTemplateDirectory as LPCWSTR, byval lpNewDirectory as LPCWSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 3276 3277 #ifdef UNICODE 3278 declare function CreateDirectoryEx alias "CreateDirectoryExW"(byval lpTemplateDirectory as LPCWSTR, byval lpNewDirectory as LPCWSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 3279 #elseif (not defined(UNICODE)) and (defined(__FB_64BIT__) or ((not defined(__FB_64BIT__)) and (_WIN32_WINNT >= &h0600))) 3280 declare function CreateDirectoryEx alias "CreateDirectoryExA"(byval lpTemplateDirectory as LPCSTR, byval lpNewDirectory as LPCSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 3281 #endif 3282 3283 #if _WIN32_WINNT >= &h0600 3284 declare function CreateDirectoryTransactedA(byval lpTemplateDirectory as LPCSTR, byval lpNewDirectory as LPCSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval hTransaction as HANDLE) as WINBOOL 3285 declare function CreateDirectoryTransactedW(byval lpTemplateDirectory as LPCWSTR, byval lpNewDirectory as LPCWSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval hTransaction as HANDLE) as WINBOOL 3286 declare function RemoveDirectoryTransactedA(byval lpPathName as LPCSTR, byval hTransaction as HANDLE) as WINBOOL 3287 declare function RemoveDirectoryTransactedW(byval lpPathName as LPCWSTR, byval hTransaction as HANDLE) as WINBOOL 3288 declare function GetFullPathNameTransactedA(byval lpFileName as LPCSTR, byval nBufferLength as DWORD, byval lpBuffer as LPSTR, byval lpFilePart as LPSTR ptr, byval hTransaction as HANDLE) as DWORD 3289 declare function GetFullPathNameTransactedW(byval lpFileName as LPCWSTR, byval nBufferLength as DWORD, byval lpBuffer as LPWSTR, byval lpFilePart as LPWSTR ptr, byval hTransaction as HANDLE) as DWORD 3290 #endif 3291 3292 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 3293 declare function CreateDirectoryTransacted alias "CreateDirectoryTransactedW"(byval lpTemplateDirectory as LPCWSTR, byval lpNewDirectory as LPCWSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval hTransaction as HANDLE) as WINBOOL 3294 declare function RemoveDirectoryTransacted alias "RemoveDirectoryTransactedW"(byval lpPathName as LPCWSTR, byval hTransaction as HANDLE) as WINBOOL 3295 declare function GetFullPathNameTransacted alias "GetFullPathNameTransactedW"(byval lpFileName as LPCWSTR, byval nBufferLength as DWORD, byval lpBuffer as LPWSTR, byval lpFilePart as LPWSTR ptr, byval hTransaction as HANDLE) as DWORD 3296 #elseif (not defined(__FB_64BIT__)) and (not defined(UNICODE)) and (_WIN32_WINNT <= &h0502) 3297 declare function CreateDirectoryEx alias "CreateDirectoryExA"(byval lpTemplateDirectory as LPCSTR, byval lpNewDirectory as LPCSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES) as WINBOOL 3298 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 3299 declare function CreateDirectoryTransacted alias "CreateDirectoryTransactedA"(byval lpTemplateDirectory as LPCSTR, byval lpNewDirectory as LPCSTR, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval hTransaction as HANDLE) as WINBOOL 3300 declare function RemoveDirectoryTransacted alias "RemoveDirectoryTransactedA"(byval lpPathName as LPCSTR, byval hTransaction as HANDLE) as WINBOOL 3301 declare function GetFullPathNameTransacted alias "GetFullPathNameTransactedA"(byval lpFileName as LPCSTR, byval nBufferLength as DWORD, byval lpBuffer as LPSTR, byval lpFilePart as LPSTR ptr, byval hTransaction as HANDLE) as DWORD 3302 #endif 3303 3304 const DDD_RAW_TARGET_PATH = &h00000001 3305 const DDD_REMOVE_DEFINITION = &h00000002 3306 const DDD_EXACT_MATCH_ON_REMOVE = &h00000004 3307 const DDD_NO_BROADCAST_SYSTEM = &h00000008 3308 const DDD_LUID_BROADCAST_DRIVE = &h00000010 3309 declare function DefineDosDeviceA(byval dwFlags as DWORD, byval lpDeviceName as LPCSTR, byval lpTargetPath as LPCSTR) as WINBOOL 3310 declare function QueryDosDeviceA(byval lpDeviceName as LPCSTR, byval lpTargetPath as LPSTR, byval ucchMax as DWORD) as DWORD 3311 3312 #ifndef UNICODE 3313 declare function DefineDosDevice alias "DefineDosDeviceA"(byval dwFlags as DWORD, byval lpDeviceName as LPCSTR, byval lpTargetPath as LPCSTR) as WINBOOL 3314 declare function QueryDosDevice alias "QueryDosDeviceA"(byval lpDeviceName as LPCSTR, byval lpTargetPath as LPSTR, byval ucchMax as DWORD) as DWORD 3315 #endif 3316 3317 #define EXPAND_LOCAL_DRIVES 3318 3319 #if _WIN32_WINNT >= &h0600 3320 declare function CreateFileTransactedA(byval lpFileName as LPCSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval dwCreationDisposition as DWORD, byval dwFlagsAndAttributes as DWORD, byval hTemplateFile as HANDLE, byval hTransaction as HANDLE, byval pusMiniVersion as PUSHORT, byval lpExtendedParameter as PVOID) as HANDLE 3321 declare function CreateFileTransactedW(byval lpFileName as LPCWSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval dwCreationDisposition as DWORD, byval dwFlagsAndAttributes as DWORD, byval hTemplateFile as HANDLE, byval hTransaction as HANDLE, byval pusMiniVersion as PUSHORT, byval lpExtendedParameter as PVOID) as HANDLE 3322 #endif 3323 3324 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 3325 declare function CreateFileTransacted alias "CreateFileTransactedW"(byval lpFileName as LPCWSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval dwCreationDisposition as DWORD, byval dwFlagsAndAttributes as DWORD, byval hTemplateFile as HANDLE, byval hTransaction as HANDLE, byval pusMiniVersion as PUSHORT, byval lpExtendedParameter as PVOID) as HANDLE 3326 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 3327 declare function CreateFileTransacted alias "CreateFileTransactedA"(byval lpFileName as LPCSTR, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval lpSecurityAttributes as LPSECURITY_ATTRIBUTES, byval dwCreationDisposition as DWORD, byval dwFlagsAndAttributes as DWORD, byval hTemplateFile as HANDLE, byval hTransaction as HANDLE, byval pusMiniVersion as PUSHORT, byval lpExtendedParameter as PVOID) as HANDLE 3328 #endif 3329 3330 declare function ReOpenFile(byval hOriginalFile as HANDLE, byval dwDesiredAccess as DWORD, byval dwShareMode as DWORD, byval dwFlagsAndAttributes as DWORD) as HANDLE 3331 3332 #if _WIN32_WINNT >= &h0600 3333 declare function SetFileAttributesTransactedA(byval lpFileName as LPCSTR, byval dwFileAttributes as DWORD, byval hTransaction as HANDLE) as WINBOOL 3334 declare function SetFileAttributesTransactedW(byval lpFileName as LPCWSTR, byval dwFileAttributes as DWORD, byval hTransaction as HANDLE) as WINBOOL 3335 declare function GetFileAttributesTransactedA(byval lpFileName as LPCSTR, byval fInfoLevelId as GET_FILEEX_INFO_LEVELS, byval lpFileInformation as LPVOID, byval hTransaction as HANDLE) as WINBOOL 3336 declare function GetFileAttributesTransactedW(byval lpFileName as LPCWSTR, byval fInfoLevelId as GET_FILEEX_INFO_LEVELS, byval lpFileInformation as LPVOID, byval hTransaction as HANDLE) as WINBOOL 3337 #endif 3338 3339 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 3340 declare function SetFileAttributesTransacted alias "SetFileAttributesTransactedW"(byval lpFileName as LPCWSTR, byval dwFileAttributes as DWORD, byval hTransaction as HANDLE) as WINBOOL 3341 declare function GetFileAttributesTransacted alias "GetFileAttributesTransactedW"(byval lpFileName as LPCWSTR, byval fInfoLevelId as GET_FILEEX_INFO_LEVELS, byval lpFileInformation as LPVOID, byval hTransaction as HANDLE) as WINBOOL 3342 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 3343 declare function SetFileAttributesTransacted alias "SetFileAttributesTransactedA"(byval lpFileName as LPCSTR, byval dwFileAttributes as DWORD, byval hTransaction as HANDLE) as WINBOOL 3344 declare function GetFileAttributesTransacted alias "GetFileAttributesTransactedA"(byval lpFileName as LPCSTR, byval fInfoLevelId as GET_FILEEX_INFO_LEVELS, byval lpFileInformation as LPVOID, byval hTransaction as HANDLE) as WINBOOL 3345 #endif 3346 3347 declare function GetCompressedFileSizeA(byval lpFileName as LPCSTR, byval lpFileSizeHigh as LPDWORD) as DWORD 3348 declare function GetCompressedFileSizeW(byval lpFileName as LPCWSTR, byval lpFileSizeHigh as LPDWORD) as DWORD 3349 3350 #ifdef UNICODE 3351 declare function GetCompressedFileSize alias "GetCompressedFileSizeW"(byval lpFileName as LPCWSTR, byval lpFileSizeHigh as LPDWORD) as DWORD 3352 #elseif (not defined(UNICODE)) and (defined(__FB_64BIT__) or ((not defined(__FB_64BIT__)) and (_WIN32_WINNT >= &h0600))) 3353 declare function GetCompressedFileSize alias "GetCompressedFileSizeA"(byval lpFileName as LPCSTR, byval lpFileSizeHigh as LPDWORD) as DWORD 3354 #endif 3355 3356 #if _WIN32_WINNT >= &h0600 3357 declare function GetCompressedFileSizeTransactedA(byval lpFileName as LPCSTR, byval lpFileSizeHigh as LPDWORD, byval hTransaction as HANDLE) as DWORD 3358 declare function GetCompressedFileSizeTransactedW(byval lpFileName as LPCWSTR, byval lpFileSizeHigh as LPDWORD, byval hTransaction as HANDLE) as DWORD 3359 declare function DeleteFileTransactedA(byval lpFileName as LPCSTR, byval hTransaction as HANDLE) as WINBOOL 3360 declare function DeleteFileTransactedW(byval lpFileName as LPCWSTR, byval hTransaction as HANDLE) as WINBOOL 3361 #endif 3362 3363 #if defined(UNICODE) and (_WIN32_WINNT >= &h0600) 3364 declare function DeleteFileTransacted alias "DeleteFileTransactedW"(byval lpFileName as LPCWSTR, byval hTransaction as HANDLE) as WINBOOL 3365 declare function GetCompressedFileSizeTransacted alias "GetCompressedFileSizeTransactedW"(byval lpFileName as LPCWSTR, byval lpFileSizeHigh as LPDWORD, byval hTransaction as HANDLE) as DWORD 3366 #elseif (not defined(__FB_64BIT__)) and (not defined(UNICODE)) and (_WIN32_WINNT <= &h0502) 3367 declare function GetCompressedFileSize alias "GetCompressedFileSizeA"(byval lpFileName as LPCSTR, byval lpFileSizeHigh as LPDWORD) as DWORD 3368 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0600) 3369 declare function DeleteFileTransacted alias "DeleteFileTransactedA"(byval lpFileName as LPCSTR, byval hTransaction as HANDLE) as WINBOOL 3370 declare function GetCompressedFileSizeTransacted alias "GetCompressedFileSizeTransactedA"(byval lpFileName as LPCSTR, byval lpFileSizeHigh as LPDWORD, byval hTransaction as HANDLE) as DWORD 3371 #endif 3372 3373 type LPPROGRESS_ROUTINE as function(byval TotalFileSize as LARGE_INTEGER, byval TotalBytesTransferred as LARGE_INTEGER, byval StreamSize as LARGE_INTEGER, byval StreamBytesTransferred as LARGE_INTEGER, byval dwStreamNumber as DWORD, byval dwCallbackReason as DWORD, byval hSourceFile as HANDLE, byval hDestinationFile as HANDLE, byval lpData as LPVOID) as DWORD 3374 declare function CheckNameLegalDOS8Dot3A(byval lpName as LPCSTR, byval lpOemName as LPSTR, byval OemNameSize as DWORD, byval pbNameContainsSpaces as PBOOL, byval pbNameLegal as PBOOL) as WINBOOL 3375 declare function CheckNameLegalDOS8Dot3W(byval lpName as LPCWSTR, byval lpOemName as LPSTR, byval OemNameSize as DWORD, byval pbNameContainsSpaces as PBOOL, byval pbNameLegal as PBOOL) as WINBOOL 3376 declare function CopyFileA(byval lpExistingFileName as LPCSTR, byval lpNewFileName as LPCSTR, byval bFailIfExists as WINBOOL) as WINBOOL 3377 declare function CopyFileW(byval lpExistingFileName as LPCWSTR, byval lpNewFileName as LPCWSTR, byval bFailIfExists as WINBOOL) as WINBOOL 3378 declare function CopyFileExA(byval lpExistingFileName as LPCSTR, byval lpNewFileName as LPCSTR, byval lpProgressRoutine as LPPROGRESS_ROUTINE, byval lpData as LPVOID, byval pbCancel as LPBOOL, byval dwCopyFlags as DWORD) as WINBOOL 3379 declare function CopyFileExW(byval lpExistingFileName as LPCWSTR, byval lpNewFileName as LPCWSTR, byval lpProgressRoutine as LPPROGRESS_ROUTINE, byval lpData as LPVOID, byval pbCancel as LPBOOL, byval dwCopyFlags as DWORD) as WINBOOL 3380 3381 #if _WIN32_WINNT >= &h0600 3382 declare function FindFirstFileTransactedA(byval lpFileName as LPCSTR, byval fInfoLevelId as FINDEX_INFO_LEVELS, byval lpFindFileData as LPVOID, byval fSearchOp as FINDEX_SEARCH_OPS, byval lpSearchFilter as LPVOID, byval dwAdditionalFlags as DWORD, byval hTransaction as HANDLE) as HANDLE 3383 declare function FindFirstFileTransactedW(byval lpFileName as LPCWSTR, byval fInfoLevelId as FINDEX_INFO_LEVELS, byval lpFindFileData as LPVOID, byval fSearchOp as FINDEX_SEARCH_OPS, byval lpSearchFilter as LPVOID, byval dwAdditionalFlags as DWORD, byval hTransaction as HANDLE) as HANDLE 3384 declare function CopyFileTransactedA(byval lpExistingFileName as LPCSTR, byval lpNewFileName as LPCSTR, byval lpProgressRoutine as LPPROGRESS_ROUTINE, byval lpData as LPVOID, byval pbCancel as LPBOOL, byval dwCopyFlags as DWORD, byval hTransaction as HANDLE) as WINBOOL 3385 declare function CopyFileTransactedW(byval lpExistingFileName as LPCWSTR, byval lpNewFileName as LPCWSTR, byval lpProgressRoutine as LPPROGRESS_ROUTINE, byval lpData as LPVOID, byval pbCancel as LPBOOL, byval dwCopyFlags as DWORD, byval hTransaction as HANDLE) as WINBOOL 3386 #endif 3387 3388 #ifdef UNICODE 3389 #if _WIN32_WINNT >= &h0600 3390 declare function FindFirstFileTransacted alias "FindFirstFileTransactedW"(byval lpFileName as LPCWSTR, byval fInfoLevelId as FINDEX_INFO_LEVELS, byval lpFindFileData as LPVOID, byval fSearchOp as FINDEX_SEARCH_OPS, byval lpSearchFilter as LPVOID, byval dwAdditionalFlags as DWORD, byval hTransaction as HANDLE) as HANDLE 3391 declare function CopyFileTransacted alias "CopyFileTransactedW"(byval lpExistingFileName as LPCWSTR, byval lpNewFileName as LPCWSTR, byval lpProgressRoutine as LPPROGRESS_ROUTINE, byval lpData as LPVOID, byval pbCancel as LPBOOL, byval dwCopyFlags as DWORD, byval hTransaction as HANDLE) as WINBOOL 3392 #endif 3393 3394 declare function CheckNameLegalDOS8Dot3 alias "CheckNameLegalDOS8Dot3W"(byval lpName as LPCWSTR, byval lpOemName as LPSTR, byval OemNameSize as DWORD, byval pbNameContainsSpaces as PBOOL, byval pbNameLegal as PBOOL) as WINBOOL 3395 declare function CopyFile alias "CopyFileW"(byval lpExistingFileName as LPCWSTR, byval lpNewFileName as LPCWSTR, byval bFailIfExists as WINBOOL) as WINBOOL 3396 declare function CopyFileEx alias "CopyFileExW"(byval lpExistingFileName as LPCWSTR, byval lpNewFileName as LPCWSTR, byval lpProgressRoutine as LPPROGRESS_ROUTINE, byval lpData as LPVOID, byval pbCancel as LPBOOL, byval dwCopyFlags as DWORD) as WINBOOL 3397 #elseif (not defined(UNICODE)) and (_WIN32_WINNT >= &h0601) 3398 declare function FindFirstFileTransacted alias "FindFirstFileTransactedA"(byval lpFileName as LPCSTR, byval fInfoLevelId as FINDEX_INFO_LEVELS, byval lpFindFileData as LPVOID, byval fSearchOp as FINDEX_SEARCH_OPS, byval lpSearchFilter as LPVOID, byval dwAdditionalFlags as DWORD, byval hTransaction as HANDLE) as HANDLE 3399 declare function CopyFileTransacted alias "CopyFileTransactedA"(byval lpExistingFileName as LPCSTR, byval lpNewFileName