' api_system.sbp - System API #ifndef _INC_SYSTEM #define _INC_SYSTEM #ifdef UNICODE Const _FuncName_CompareString = "CompareStringW" Const _FuncName_CopyFile = "CopyFileW" Const _FuncName_CreateDirectory = "CreateDirectoryW" Const _FuncName_CreateEvent = "CreateEventW" Const _FuncName_CreateMutex = "CreateMutexW" Const _FuncName_CreateSemaphore = "CreateSemaphoreW" Const _FuncName_CreateWaitableTimer = "CreateWaitableTimerW" Const _FuncName_CreateFile = "CreateFileW" Const _FuncName_CreateFileMapping = "CreateFileMappingW" Const _FuncName_OpenFileMapping = "OpenFileMappingW" Const _FuncName_CreateMailslot = "CreateMailslotW" Const _FuncName_CreateProcess = "CreateProcessW" Const _FuncName_DeleteFile = "DeleteFileW" Const _FuncName_ExpandEnvironmentStrings = "ExpandEnvironmentStringsW" Const _FuncName_FatalAppExit = "FatalAppExitW" Const _FuncName_FindFirstChangeNotification = "FindFirstChangeNotificationW" Const _FuncName_FindFirstFile = "FindFirstFileW" Const _FuncName_FindNextFile = "FindNextFileW" Const _FuncName_FindResource = "FindResourceW" Const _FuncName_FormatMessage = "FormatMessageW" Const _FuncName_FreeEnvironmentStrings = "FreeEnvironmentStringsW" Const _FuncName_GetCompressedFileSize = "GetCompressedFileSizeW" Const _FuncName_GetComputerName = "GetComputerNameW" Const _FuncName_GetCurrentDirectory = "GetCurrentDirectoryW" Const _FuncName_GetDateFormat = "GetDateFormatW" Const _FuncName_GetDiskFreeSpace = "GetDiskFreeSpaceW" Const _FuncName_GetDiskFreeSpaceEx = "GetDiskFreeSpaceExW" Const _FuncName_GetVolumeInformation = "GetVolumeInformationW" Const _FuncName_GetDriveType = "GetDriveTypeW" Const _FuncName_GetEnvironmentVariable = "GetEnvironmentVariableW" Const _FuncName_GetEnvironmentStrings = "GetEnvironmentStringsW" Const _FuncName_GetFileAttributes = "GetFileAttributesW" Const _FuncName_GetFullPathName = "GetFullPathNameW" Const _FuncName_GetLogicalDriveStrings = "GetLogicalDriveStringsW" Const _FuncName_GetLongPathName = "GetLongPathNameW" Const _FuncName_GetModuleFileName = "GetModuleFileNameW" Const _FuncName_GetModuleHandle = "GetModuleHandleW" Const _FuncName_GetShortPathName = "GetShortPathNameW" Const _FuncName_GetStartupInfo = "GetStartupInfoW" Const _FuncName_GetSystemDirectory = "GetSystemDirectoryW" Const _FuncName_GetTempFileName = "GetTempFileNameW" Const _FuncName_GetTempPath = "GetTempPathW" Const _FuncName_GetTimeFormat = "GetTimeFormatW" Const _FuncName_GetUserName = "GetUserNameW" Const _FuncName_GetVersionEx = "GetVersionExW" Const _FuncName_GetWindowsDirectory = "GetWindowsDirectoryW" Const _FuncName_LCMapString = "LCMapStringW" Const _FuncName_LoadLibrary = "LoadLibraryW" Const _FuncName_LoadLibraryEx = "LoadLibraryExW" Const _FuncName_LookupPrivilegeValue = "LookupPrivilegeValueW" Const _FuncName_lstrcat = "lstrcatW" Const _FuncName_lstrcmp = "lstrcmpW" Const _FuncName_lstrcmpi = "lstrcmpiW" Const _FuncName_lstrcpy = "lstrcpyW" Const _FuncName_lstrcpyn = "lstrcpynW" Const _FuncName_MoveFile = "MoveFileW" Const _FuncName_OpenEvent = "OpenEventW" Const _FuncName_OpenMutex = "OpenMutexW" Const _FuncName_OpenSemaphore = "OpenSemaphoreW" Const _FuncName_OpenWaitableTimer = "OpenWaitableTimerW" Const _FuncName_RemoveDirectory = "RemoveDirectoryW" Const _FuncName_SetComputerName = "SetComputerNameW" Const _FuncName_SetCurrentDirectory = "SetCurrentDirectoryW" Const _FuncName_SearchPath = "SearchPathW" Const _FuncName_SetEnvironmentVariable = "SetEnvironmentVariableW" Const _FuncName_SetFileAttributes = "SetFileAttributesW" #else Const _FuncName_CompareString = "CompareStringA" Const _FuncName_CopyFile = "CopyFileA" Const _FuncName_CreateDirectory = "CreateDirectoryA" Const _FuncName_CreateEvent = "CreateEventA" Const _FuncName_CreateMutex = "CreateMutexA" Const _FuncName_CreateSemaphore = "CreateSemaphoreA" Const _FuncName_CreateWaitableTimer = "CreateWaitableTimerA" Const _FuncName_CreateFile = "CreateFileA" Const _FuncName_CreateFileMapping = "CreateFileMappingA" Const _FuncName_OpenFileMapping = "OpenFileMappingA" Const _FuncName_CreateMailslot = "CreateMailslotA" Const _FuncName_CreateProcess = "CreateProcessA" Const _FuncName_DeleteFile = "DeleteFileA" Const _FuncName_ExpandEnvironmentStrings = "ExpandEnvironmentStringsA" Const _FuncName_FatalAppExit = "FatalAppExitA" Const _FuncName_FindFirstChangeNotification = "FindFirstChangeNotificationA" Const _FuncName_FindFirstFile = "FindFirstFileA" Const _FuncName_FindNextFile = "FindNextFileA" Const _FuncName_FindResource = "FindResourceA" Const _FuncName_FormatMessage = "FormatMessageA" Const _FuncName_FreeEnvironmentStrings = "FreeEnvironmentStringsA" Const _FuncName_GetCompressedFileSize = "GetCompressedFileSizeA" Const _FuncName_GetComputerName = "GetComputerNameA" Const _FuncName_GetCurrentDirectory = "GetCurrentDirectoryA" Const _FuncName_GetDateFormat = "GetDateFormatA" Const _FuncName_GetDiskFreeSpace = "GetDiskFreeSpaceA" Const _FuncName_GetDiskFreeSpaceEx = "GetDiskFreeSpaceExA" Const _FuncName_GetVolumeInformation = "GetVolumeInformationA" Const _FuncName_GetDriveType = "GetDriveTypeA" Const _FuncName_GetEnvironmentVariable = "GetEnvironmentVariableA" Const _FuncName_GetEnvironmentStrings = "GetEnvironmentStringsA" Const _FuncName_GetFileAttributes = "GetFileAttributesA" Const _FuncName_GetFullPathName = "GetFullPathNameA" Const _FuncName_GetLogicalDriveStrings = "GetLogicalDriveStringsA" Const _FuncName_GetLongPathName = "GetLongPathNameA" Const _FuncName_GetModuleFileName = "GetModuleFileNameA" Const _FuncName_GetModuleHandle = "GetModuleHandleA" Const _FuncName_GetShortPathName = "GetShortPathNameA" Const _FuncName_GetStartupInfo = "GetStartupInfoA" Const _FuncName_GetSystemDirectory = "GetSystemDirectoryA" Const _FuncName_GetTempFileName = "GetTempFileNameA" Const _FuncName_GetTempPath = "GetTempPathA" Const _FuncName_GetTimeFormat = "GetTimeFormatA" Const _FuncName_GetUserName = "GetUserNameA" Const _FuncName_GetVersionEx = "GetVersionExA" Const _FuncName_GetWindowsDirectory = "GetWindowsDirectoryA" Const _FuncName_LCMapString = "LCMapStringA" Const _FuncName_LoadLibrary = "LoadLibraryA" Const _FuncName_LoadLibraryEx = "LoadLibraryExA" Const _FuncName_LookupPrivilegeValue = "LookupPrivilegeValueA" Const _FuncName_lstrcat = "lstrcatA" Const _FuncName_lstrcmp = "lstrcmpA" Const _FuncName_lstrcmpi = "lstrcmpiA" Const _FuncName_lstrcpy = "lstrcpyA" Const _FuncName_lstrcpyn = "lstrcpynA" Const _FuncName_MoveFile = "MoveFileA" Const _FuncName_OpenEvent = "OpenEventA" Const _FuncName_OpenMutex = "OpenMutexA" Const _FuncName_OpenSemaphore = "OpenSemaphoreA" Const _FuncName_OpenWaitableTimer = "OpenWaitableTimerA" Const _FuncName_RemoveDirectory = "RemoveDirectoryA" Const _FuncName_SetComputerName = "SetComputerNameA" Const _FuncName_SetCurrentDirectory = "SetCurrentDirectoryA" Const _FuncName_SearchPath = "SearchPathA" Const _FuncName_SetEnvironmentVariable = "SetEnvironmentVariableA" Const _FuncName_SetFileAttributes = "SetFileAttributesA" #endif '------------------- ' default constants Const NULL = 0 Const TRUE = 1 Const FALSE = 0 Const _System_TRUE = -1 Const _System_FALSE = 0 Const MAX_PATH = 260 Const INVALID_HANDLE_VALUE = -1 As HANDLE Const INVALID_SET_FILE_POINTER = &HFFFFFFFF Const SYNCHRONIZE = &H00100000 Const STANDARD_RIGHTS_REQUIRED = &H000F0000 Const MAXIMUM_WAIT_OBJECTS = 64 '----------------- ' data structs Type LARGE_INTEGER LowPart As DWord HighPart As Long End Type Type ULARGE_INTEGER LowPart As DWord HighPart As DWord End Type 'Globally Unique Identifier 128 bit(16 byte) Type GUID Data1 As DWord Data2 As Word Data3 As Word Data4[7] As Byte End Type ' File structure Type SECURITY_ATTRIBUTES nLength As DWord lpSecurityDescriptor As VoidPtr bInheritHandle As BOOL End Type Type OVERLAPPED Internal As ULONG_PTR InternalHigh As ULONG_PTR Offset As DWord OffsetHigh As DWord hEvent As HANDLE End Type Type FILETIME dwLowDateTime As DWord dwHighDateTime As DWord End Type ' System time Type SYSTEMTIME wYear As Word wMonth As Word wDayOfWeek As Word wDay As Word wHour As Word wMinute As Word wSecond As Word wMilliseconds As Word End Type #ifdef _WIN64 Const CONTEXT_AMD64 = &h100000 Const CONTEXT_CONTROL = (CONTEXT_AMD64 Or &h1) Const CONTEXT_INTEGER = (CONTEXT_AMD64 Or &h2) Const CONTEXT_SEGMENTS = (CONTEXT_AMD64 Or &h4) Const CONTEXT_FLOATING_POINT = (CONTEXT_AMD64 Or &h8) Const CONTEXT_DEBUG_REGISTERS = (CONTEXT_AMD64 Or &h10) Const CONTEXT_FULL = (CONTEXT_CONTROL Or CONTEXT_INTEGER Or CONTEXT_FLOATING_POINT) Const CONTEXT_ALL = (CONTEXT_CONTROL Or CONTEXT_INTEGER Or CONTEXT_SEGMENTS Or CONTEXT_FLOATING_POINT Or CONTEXT_DEBUG_REGISTERS) Type Align(16) M128 Low As QWord High As Int64 End Type Type LEGACY_SAVE_AREA 'Winnt.h ControlWord As Word Reserved0 As Word StatusWord As Word Reserved1 As Word TagWord As Word Reserved2 As Word ErrorOffset As DWord ErrorSelector As Word ErrorOpcode As Word DataOffset As DWord DataSelector As Word Reserved3 As Word FloatRegisters[ELM(8 * 10)] As Byte End Type Type Align(16) CONTEXT 'Winnt.h 'Register parameter home addresses. P1Home As QWord P2Home As QWord P3Home As QWord P4Home As QWord P5Home As QWord P6Home As QWord 'Control flags. ContextFlags As DWord MxCsr As DWord 'Segment Registers and processor flags. SegCs As Word SegDs As Word SegEs As Word SegFs As Word SegGs As Word SegSs As Word EFlags As DWord 'Debug registers Dr0 As QWord Dr1 As QWord Dr2 As QWord Dr3 As QWord Dr6 As QWord Dr7 As QWord 'Integer registers. Rax As QWord Rcx As QWord Rdx As QWord Rbx As QWord Rsp As QWord Rbp As QWord Rsi As QWord Rdi As QWord R8 As QWord R9 As QWord R10 As QWord R11 As QWord R12 As QWord R13 As QWord R14 As QWord R15 As QWord 'Program counter. Rip As QWord 'MMX/floating point state. Header[ELM(2)] As M128 Legacy[ELM(8)] As M128 Xmm0 As M128 Xmm1 As M128 Xmm2 As M128 Xmm3 As M128 Xmm4 As M128 Xmm5 As M128 Xmm6 As M128 Xmm7 As M128 Xmm8 As M128 Xmm9 As M128 Xmm10 As M128 Xmm11 As M128 Xmm12 As M128 Xmm13 As M128 Xmm14 As M128 Xmm15 As M128 Reserve[ELM(96)] As Byte 'Vector registers VectorRegisters[ELM(26)] As M128 VectorControl As QWord 'Special debug control registers. DebugControl As QWord LastBranchToRip As QWord LastBranchFromRip As QWord LastExceptionToRip As QWord LastExceptionFromRip As QWord End Type #else Const SIZE_OF_80387_REGISTERS = 80 Const MAXIMUM_SUPPORTED_EXTENSION = 512 Type FLOATING_SAVE_AREA ControlWord As DWord StatusWord As DWord TagWord As DWord ErrorOffset As DWord ErrorSelector As DWord DataOffset As DWord DataSelector As DWord RegisterArea[ELM(SIZE_OF_80387_REGISTERS)] As Byte Cr0NpxState As DWord End Type Const CONTEXT_i386 = &h00010000 Const CONTEXT_i486 = &h00010000 Const CONTEXT_CONTROL = (CONTEXT_i386 Or &h00000001) 'SS:SP, CS:IP, FLAGS, BP Const CONTEXT_INTEGER = (CONTEXT_i386 Or &h00000002) 'AX, BX, CX, DX, SI, DI Const CONTEXT_SEGMENTS = (CONTEXT_i386 Or &h00000004) 'DS, ES, FS, GS Const CONTEXT_FLOATING_POINT = (CONTEXT_i386 Or &h00000008) '387 state Const CONTEXT_DEBUG_REGISTERS = (CONTEXT_i386 Or &h00000010) 'DB 0-3,6,7 Const CONTEXT_EXTENDED_REGISTERS = (CONTEXT_i386 Or &h0000002) 'cpu specific extensions Const CONTEXT_FULL = (CONTEXT_CONTROL Or CONTEXT_INTEGER Or CONTEXT_SEGMENTS) Const CONTEXT_ALL = (CONTEXT_CONTROL Or CONTEXT_INTEGER Or CONTEXT_SEGMENTS Or CONTEXT_FLOATING_POINT Or CONTEXT_DEBUG_REGISTERS Or CONTEXT_EXTENDED_REGISTERS) Type CONTEXT ContextFlags As DWord Dr0 As DWord Dr1 As DWord Dr2 As DWord Dr3 As DWord Dr6 As DWord Dr7 As DWord FloatSave As FLOATING_SAVE_AREA SegGs As DWord SegFs As DWord SegEs As DWord SegDs As DWord Edi As DWord Esi As DWord Ebx As DWord Edx As DWord Ecx As DWord Eax As DWord Ebp As DWord Eip As DWord SegCs As DWord EFlags As DWord Esp As DWord SegSs As DWord ExtendedRegisters[ELM(MAXIMUM_SUPPORTED_EXTENSION)] As Byte End Type #endif ' Global Memory Flags Const GMEM_FIXED = &H0000 Const GMEM_MOVEABLE = &H0002 Const GMEM_NOCOMPACT = &H0010 Const GMEM_NODISCARD = &H0020 Const GMEM_ZEROINIT = &H0040 Const GMEM_MODIFY = &H0080 Const GMEM_DISCARDABLE = &H0100 Const GMEM_NOT_BANKED = &H1000 Const GMEM_SHARE = &H2000 Const GMEM_DDESHARE = &H2000 Const GMEM_INVALID_HANDLE = &H8000 Const GHND = GMEM_MOVEABLE or GMEM_ZEROINIT Const GPTR = GMEM_FIXED or GMEM_ZEROINIT Const GMEM_DISCARDED = &H4000 ' Heap Const HEAP_NO_SERIALIZE = &H00000001 Const HEAP_GROWABLE = &H00000002 Const HEAP_GENERATE_EXCEPTIONS = &H00000004 Const HEAP_ZERO_MEMORY = &H00000008 Const HEAP_REALLOC_IN_PLACE_ONLY = &H00000010 ' Locale Const LOCALE_SYSTEM_DEFAULT = &H400 'Standard Systemsprache Const LOCALE_USER_DEFAULT = &H800 'Standard Benutzersprache ' Locale flag Const LOCALE_NOUSEROVERRIDE = &H80000000 'Critical Section Type CRITICAL_SECTION DebugInfo As VoidPtr LockCount As Long RecursionCount As Long OwningThread As HANDLE LockSemaphore As HANDLE SpinCount As ULONG_PTR End Type 'DllMain Const DLL_PROCESS_ATTACH = 1 Const DLL_THREAD_ATTACH = 2 Const DLL_THREAD_DETACH = 3 Const DLL_PROCESS_DETACH = 0 'Event Const EVENT_MODIFY_STATE = &H0002 Const EVENT_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H3) 'Mutex Const MUTANT_QUERY_STATE = &H0001 Const MUTANT_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or MUTANT_QUERY_STATE) Const MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS 'Semaphore Const SEMAPHORE_MODIFY_STATE = &H0002 Const SEMAPHORE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H3) 'Timer Const TIMER_QUERY_STATE = &H0001 Const TIMER_MODIFY_STATE = &H0002 Const TIMER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or TIMER_QUERY_STATE Or TIMER_MODIFY_STATE) '---------------------- ' Kernel Operation API Declare Function InterlockedIncrement Lib "kernel32" (ByRef lpAddend As Long) As Long Declare Function InterlockedDecrement Lib "kernel32" (ByRef lpAddend As Long) As Long Declare Function InterlockedExchange Lib "kernel32" (ByRef Target As Long, Value As Long) As Long Declare Function InterlockedCompareExchange Lib "kernel32" (ByRef Destination As Long, Exchange As Long, Comperand As Long) As Long Declare Function InterlockedExchangeAdd Lib "kernel32" (ByRef Addend As Long, Value As Long) As Long #ifdef _WIN64 Declare Function InterlockedCompareExchangePointer Lib "kernel32" (ByRef Destination As VoidPtr, Exchange As VoidPtr, Comperand As VoidPtr) As VoidPtr Declare Function InterlockedExchangePointer Lib "kernel32" (ByRef Target As VoidPtr, Value As VoidPtr) As VoidPtr #else Declare Function InterlockedCompareExchangePointer Lib "kernel32" Alias "InterlockedCompareExchange" (ByRef Destination As VoidPtr, Exchange As VoidPtr, Comperand As VoidPtr) As VoidPtr Declare Function InterlockedExchangePointer Lib "kernel32" Alias "InterlockedExchange" (ByRef Target As VoidPtr, Value As VoidPtr) As VoidPtr #endif Declare Function Beep Lib "kernel32" (dwFreq As DWord, dwDuration As DWord) As BOOL Declare Function CloseHandle Lib "kernel32" (hObject As HANDLE) As BOOL Declare Function CompareFileTime Lib "kernel32" (ByRef FileTime1 As FILETIME, ByRef FileTime2 As FILETIME) As Long Const NORM_IGNORECASE = &H00000001 Const NORM_IGNORENONSPACE = &H00000002 Const NORM_IGNORESYMBOLS = &H00000004 Const SORT_STRINGSORT = &H00001000 Const NORM_IGNOREKANATYPE = &H00010000 Const NORM_IGNOREWIDTH = &H00020000 Const CSTR_LESS_THAN = 1 Const CSTR_EQUAL = 2 Const CSTR_GREATER_THAN = 3 Declare Function CompareString Lib "kernel32" Alias _FuncName_CompareString (Locale As LCID, dwCmpFlags As DWord, pString1 As PCTSTR, cchCount1 As Long, pString2 As PCTSTR, cchCount2 As Long) As Long Declare Function CopyFile Lib "kernel32" Alias _FuncName_CopyFile (pExistingFileName As PCTSTR, pNewFileName As PCTSTR, bFailIfExists As BOOL) As BOOL Declare Function CreateDirectory Lib "kernel32" Alias _FuncName_CreateDirectory (pPathName As PCTSTR, pSecurityAttributes As *SECURITY_ATTRIBUTES) As BOOL Declare Function CreateEvent Lib "kernel32" Alias _FuncName_CreateEvent (pEventAttributes As *SECURITY_ATTRIBUTES, bManualReset As BOOL, bInitialState As BOOL, pName As PCTSTR) As HANDLE Declare Function CreateMutex Lib "kernel32" Alias _FuncName_CreateMutex (lpMutexAttributes As *SECURITY_ATTRIBUTES, bInitialOwner As BOOL, lpName As PCTSTR) As HANDLE Declare Function CreatePipe Lib "Kernel32" ( ByRef hReadPipe As HANDLE, ByRef hWritePipe As HANDLE, ByVal pPipeAttributes As *SECURITY_ATTRIBUTES, ByVal nSize As DWORD) As Long Declare Function CreateSemaphore Lib "kernel32" Alias _FuncName_CreateSemaphore (pSemaphoreAttributes As *SECURITY_ATTRIBUTES, lInitialCount As Long, lMaximumCount As Long, pName As PCTSTR) As HANDLE TypeDef PTIMERAPCROUTINE = *Sub(lpArgToCompletionRoutine As VoidPtr, dwTimerLowValue As DWord, dwTimerHighValue As DWord) Declare Function CreateWaitableTimer Lib "kernel32" Alias _FuncName_CreateWaitableTimer (pTimerAttributes As *SECURITY_ATTRIBUTES, bManualReset As BOOL, pTimerName As PCTSTR) As HANDLE Declare Function OpenWaitableTimer Lib "kernel32" Alias _FuncName_OpenWaitableTimer (dwDesiredAccess As DWord, bInheritHandle As BOOL, pTimerName As PCTSTR) As HANDLE Declare Function SetWaitableTimer Lib "kernel32" (hTimer As HANDLE, pDueTime As *LARGE_INTEGER, lPeriod As Long, pfnCompletionRoutine As PTIMERAPCROUTINE, pArgToCompletionRoutine As VoidPtr, fResume As BOOL) As BOOL Declare Function CancelWaitableTimer Lib "kernel32" (hTimer As HANDLE) As BOOL Const GENERIC_READ = &H80000000 Const GENERIC_WRITE = &H40000000 Const FILE_SHARE_READ = &H00000001 Const FILE_SHARE_WRITE = &H00000002 Const FILE_SHARE_DELETE = &H00000004 Const CREATE_NEW = 1 Const CREATE_ALWAYS = 2 Const OPEN_EXISTING = 3 Const OPEN_ALWAYS = 4 Const TRUNCATE_EXISTING = 5 Const FILE_ATTRIBUTE_READONLY = &H00000001 Const FILE_ATTRIBUTE_HIDDEN = &H00000002 Const FILE_ATTRIBUTE_SYSTEM = &H00000004 Const FILE_ATTRIBUTE_DIRECTORY = &H00000010 Const FILE_ATTRIBUTE_ARCHIVE = &H00000020 Const FILE_ATTRIBUTE_ENCRYPTED = &H00000040 Const FILE_ATTRIBUTE_NORMAL = &H00000080 Const FILE_ATTRIBUTE_TEMPORARY = &H00000100 Const FILE_ATTRIBUTE_SPARSE_FILE = &H00000200 Const FILE_ATTRIBUTE_REPARSE_POINT = &H00000400 Const FILE_ATTRIBUTE_COMPRESSED = &H00000800 Const FILE_ATTRIBUTE_OFFLINE = &H00001000 Const FILE_FLAG_WRITE_THROUGH = &H80000000 Const FILE_FLAG_OVERLAPPED = &H40000000 Const FILE_FLAG_NO_BUFFERING = &H20000000 Const FILE_FLAG_RANDOM_ACCESS = &H10000000 Const FILE_FLAG_SEQUENTIAL_SCAN = &H08000000 Const FILE_FLAG_DELETE_ON_CLOSE = &H04000000 Const FILE_FLAG_BACKUP_SEMANTICS = &H02000000 Const FILE_FLAG_POSIX_SEMANTICS = &H01000000 Const FILE_FLAG_OPEN_REPARSE_POINT = &H00200000 Const FILE_FLAG_OPEN_NO_RECALL = &H00100000 Declare Function CreateFile Lib "kernel32" Alias _FuncName_CreateFile (pFileName As PCTSTR, dwDesiredAccess As DWord, dwShareMode As DWord, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, dwCreationDisposition As DWord, dwFlagsAndAttributes As DWord, hTemplateFile As HANDLE) As HANDLE Const SECTION_QUERY = &H0001 Const SECTION_MAP_WRITE = &H0002 Const SECTION_MAP_READ = &H0004 Const SECTION_MAP_EXECUTE = &H0008 Const SECTION_EXTEND_SIZE = &H0010 Const SECTION_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SECTION_QUERY Or SECTION_MAP_WRITE Or SECTION_MAP_READ Or SECTION_MAP_EXECUTE Or SECTION_EXTEND_SIZE) Const FILE_MAP_COPY = SECTION_QUERY Const FILE_MAP_WRITE = SECTION_MAP_WRITE Const FILE_MAP_READ = SECTION_MAP_READ Const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS Declare Function CreateFileMapping Lib "kernel32" Alias _FuncName_CreateFileMapping (hFile As HANDLE, pFileMappingAttributes As *SECURITY_ATTRIBUTES, flProtect As DWord, dwMaximumSizeHigh As DWord, dwMaximumSizeLow As DWord, pName As PCSTR) As HANDLE Declare Function OpenFileMapping Lib "kernel32" Alias _FuncName_OpenFileMapping (dwDesiredAccess As DWord, bInheritHandle As BOOL, pName As PCSTR) As HANDLE Declare Function MapViewOfFile Lib "kernel32" (hFileMappingObject As HANDLE, dwDesiredAccess As DWord, dwFileOffsetHigh As DWord, dwFileOffsetLow As DWord, dwNumberOfBytesToMap As DWord) As VoidPtr Declare Function MapViewOfFileEx Lib "kernel32" (hFileMappingObject As HANDLE, dwDesiredAccess As DWord, dwFileOffsetHigh As DWord, dwFileOffsetLow As DWord, dwNumberOfBytesToMap As DWord, lpBaseAddress As VoidPtr) As VoidPtr Declare Function FlushViewOfFile Lib "kernel32" (lpBaseAddress As VoidPtr, dwNumberOfBytesToFlush As DWord) As BOOL Declare Function UnmapViewOfFile Lib "kernel32" (lpBaseAddress As VoidPtr) As BOOL Const MAILSLOT_WAIT_FOREVER = &HFFFFFFFF Declare Function CreateMailslot Lib "kernel32" Alias _FuncName_CreateMailslot (pName As PCTSTR, nMaxMessageSize As DWord, lReadTimeout As DWord, pSecurityAttributes As *SECURITY_ATTRIBUTES) As HANDLE Const DEBUG_PROCESS = &H00000001 Const DEBUG_ONLY_THIS_PROCESS = &H00000002 Const CREATE_SUSPENDED = &H00000004 Const DETACHED_PROCESS = &H00000008 Const CREATE_NEW_CONSOLE = &H00000010 Const NORMAL_PRIORITY_CLASS = &H00000020 Const IDLE_PRIORITY_CLASS = &H00000040 Const HIGH_PRIORITY_CLASS = &H00000080 Const REALTIME_PRIORITY_CLASS = &H00000100 Const CREATE_NEW_PROCESS_GROUP = &H00000200 Const CREATE_UNICODE_ENVIRONMENT = &H00000400 Const CREATE_SEPARATE_WOW_VDM = &H00000800 Const CREATE_SHARED_WOW_VDM = &H00001000 Const CREATE_FORCEDOS = &H00002000 Const CREATE_DEFAULT_ERROR_MODE = &H04000000 Const CREATE_NO_WINDOW = &H08000000 Const PROFILE_USER = &H10000000 Const PROFILE_KERNEL = &H20000000 Const PROFILE_SERVER = &H40000000 Const STARTF_USESHOWWINDOW = &H00000001 Const STARTF_USESIZE = &H00000002 Const STARTF_USEPOSITION = &H00000004 Const STARTF_USECOUNTCHARS = &H00000008 Const STARTF_USEFILLATTRIBUTE = &H00000010 Const STARTF_RUNFULLSCREEN = &H00000020 Const STARTF_FORCEONFEEDBACK = &H00000040 Const STARTF_FORCEOFFFEEDBACK = &H00000080 Const STARTF_USESTDHANDLES = &H00000100 Const STARTF_USEHOTKEY = &H00000200 Type STARTUPINFOW cb As DWord lpReserved As LPWSTR lpDesktop As LPWSTR lpTitle As LPWSTR dwX As DWord dwY As DWord dwXSize As DWord dwYSize As DWord dwXCountChars As DWord dwYCountChars As DWord dwFillAttribute As DWord dwFlags As DWord wShowWindow As Word cbReserved2 As Word lpReserved2 As *Byte hStdInput As HANDLE hStdOutput As HANDLE hStdError As HANDLE End Type Type STARTUPINFOA cb As DWord lpReserved As LPSTR lpDesktop As LPSTR lpTitle As LPSTR dwX As DWord dwY As DWord dwXSize As DWord dwYSize As DWord dwXCountChars As DWord dwYCountChars As DWord dwFillAttribute As DWord dwFlags As DWord wShowWindow As Word cbReserved2 As Word lpReserved2 As *Byte hStdInput As HANDLE hStdOutput As HANDLE hStdError As HANDLE End Type #ifdef UNICODE TypeDef STARTUPINFO = STARTUPINFOW #else TypeDef STARTUPINFO = STARTUPINFOA #endif Type PROCESS_INFORMATION hProcess As HANDLE hThread As HANDLE dwProcessId As DWord dwThreadId As DWord End Type Declare Function CreateProcess Lib "kernel32" Alias _FuncName_CreateProcess (pApplicationName As PCTSTR, pCommandLine As PTSTR, ByRef ProcessAttributes As SECURITY_ATTRIBUTES, ByRef ThreadAttributes As SECURITY_ATTRIBUTES, bInheritHandles As BOOL, dwCreationFlags As DWord, lpEnvironment As VoidPtr, pCurrentDirectory As PCTSTR, ByRef lpStartupInfo As STARTUPINFO, ByRef lpProcessInformation As PROCESS_INFORMATION) As BOOL TypeDef LPTHREAD_START_ROUTINE = *Function(lpThreadParameter As VoidPtr) As DWord Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As *SECURITY_ATTRIBUTES, dwStackSize As DWord, lpStartAddress As LPTHREAD_START_ROUTINE, pParameter As VoidPtr, dwCreationFlags As DWord, ByRef ThreadId As DWord) As HANDLE Declare Sub DebugBreak Lib "kernel32" () Declare Sub DeleteCriticalSection Lib "kernel32" (ByRef CriticalSection As CRITICAL_SECTION) Declare Function DeleteFile Lib "kernel32" Alias _FuncName_DeleteFile (pFileName As PCTSTR) As BOOL Declare Function DeviceIoControl Lib "Kernel32" ( hDevice As HANDLE, dwIoControlCode As DWord, pInBuffer As VoidPtr, nInBufferSize As DWord, pOutBuffer As VoidPtr, nOutBufferSize As DWord, pBytesReturned As DWordPtr, pOverlapped As *OVERLAPPED ) As Long Declare Function DisableThreadLibraryCalls Lib "kernel32" (hLibModule As HINSTANCE) As BOOL Declare Function DosDateTimeToFileTime Lib "kernel32" (wFatDate As Word, wFatTime As Word, ByRef FileTime As FILETIME) As BOOL Const DUPLICATE_CLOSE_SOURCE = 1 Const DUPLICATE_SAME_ACCESS = 2 Declare Function DuplicateHandle Lib "kernel32" (hSourceProcessHandle As HANDLE, hSourceHandle As HANDLE, hTargetProcessHandle As HANDLE, ByRef TargetHandle As HANDLE, dwDesiredAccess As DWord, bInheritHandle As BOOL, dwOptions As DWord) As BOOL Declare Sub EnterCriticalSection Lib "kernel32" (ByRef lpCriticalSection As CRITICAL_SECTION) Declare Sub ExitProcess Lib "kernel32" (dwExitCode As DWord) Declare Sub ExitThread Lib "kernel32" (dwExitCode As DWord) Declare Sub FatalAppExit Lib "kernel32" Alias _FuncName_FatalAppExit (Action As DWord, pMessageText As PCTSTR) Declare Function FileTimeToDosDateTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpFatDate As Word, ByRef lpFatTime As Word) As BOOL Declare Function FileTimeToLocalFileTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpLocalFileTime As FILETIME) As BOOL Declare Function FileTimeToSystemTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpSystemTime As SYSTEMTIME) As BOOL Declare Sub FillMemory Lib "kernel32" Alias "RtlFillMemory" (pDest As VoidPtr, stLength As SIZE_T, c As Byte) Declare Function FindClose Lib "kernel32" (hFindFile As HANDLE) As BOOL Declare Function FindCloseChangeNotification Lib "kernel32" (hChangeHandle As HANDLE) As BOOL Declare Function FindFirstChangeNotification Lib "kernel32" Alias _FuncName_FindFirstChangeNotification ( pPathName As PCTSTR, bWatchSubtree As BOOL, dwNotifyFilter As DWord ) As HANDLE Type WIN32_FIND_DATAW dwFileAttributes As DWord ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As DWord nFileSizeLow As DWord dwReserved0 As DWord dwReserved1 As DWord cFileName[ELM(MAX_PATH)] As WCHAR cAlternateFileName[13] As WCHAR End Type Type WIN32_FIND_DATAA dwFileAttributes As DWord ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As DWord nFileSizeLow As DWord dwReserved0 As DWord dwReserved1 As DWord cFileName[ELM(MAX_PATH)] As SByte cAlternateFileName[13] As SByte End Type #ifdef UNICODE TypeDef WIN32_FIND_DATA = WIN32_FIND_DATAW #else TypeDef WIN32_FIND_DATA = WIN32_FIND_DATAA #endif TypeDef LPWIN32_FIND_DATA = *WIN32_FIND_DATA Declare Function FindFirstFile Lib "kernel32" Alias _FuncName_FindFirstFile (pFileName As PCTSTR, ByRef FindFildData As WIN32_FIND_DATA) As HANDLE Declare Function FindNextChangeNotification Lib "kernel32" (hChangeHandle As HANDLE) As BOOL Declare Function FindNextFile Lib "kernel32" Alias _FuncName_FindNextFile (hFindFile As HANDLE, ByRef FindFildData As WIN32_FIND_DATA) As BOOL Declare Function FlushFileBuffers Lib "kernel32" (hFile As HANDLE) As BOOL Declare Function FlushInstructionCache Lib "kernel32"(hProcess As HANDLE, pBaseAddress As VoidPtr, Size As SIZE_T) As BOOL Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H00000100 Const FORMAT_MESSAGE_IGNORE_INSERTS = &H00000200 Const FORMAT_MESSAGE_FROM_STRING = &H00000400 Const FORMAT_MESSAGE_FROM_HMODULE = &H00000800 Const FORMAT_MESSAGE_FROM_SYSTEM = &H00001000 Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H00002000 Declare Function FormatMessage Lib "kernel32" Alias _FuncName_FormatMessage (dwFlags As DWord, lpSource As VoidPtr, dwMessageId As DWord, dwLanguageId As DWord, pBuffer As PTSTR, nSize As DWord, Arguments As *DWord) As DWord Declare Function FreeEnvironmentStrings Lib "kernel32" Alias _FuncName_FreeEnvironmentStrings (pszEnvironmentBlock As PCTSTR) As BOOL Declare Function FreeLibrary Lib "kernel32" (hLibModule As HINSTANCE) As BOOL Declare Sub FreeLibraryAndExitThread Lib "kernel32" (hModule As HANDLE, dwExitCode As DWord) Declare Function GetCommandLineA Lib "kernel32" () As PCSTR Declare Function GetCommandLineW Lib "kernel32" () As PCWSTR #ifdef UNICODE Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As PCWSTR #else Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As PCSTR #endif Declare Function GetCompressedFileSize Lib "kernel32" Alias _FuncName_GetCompressedFileSize (pFileName As PCTSTR, ByRef FileSizeHigh As DWord) As DWord Const MAX_COMPUTERNAME_LENGTH = 15 Declare Function GetComputerName Lib "kernel32" Alias _FuncName_GetComputerName (pBuffer As PTSTR, ByRef nSize As Long) As Long Declare Function GetCurrentDirectory Lib "kernel32" Alias _FuncName_GetCurrentDirectory (nBufferLength As DWord, pBuffer As PTSTR) As DWord Declare Function GetCurrentProcess Lib "kernel32" () As HANDLE Declare Function GetCurrentProcessId Lib "kernel32" () As DWord Declare Function GetCurrentThread Lib "kernel32" () As HANDLE Declare Function GetCurrentThreadId Lib "kernel32" () As DWord Const DATE_SHORTDATE = &H00000001 Const DATE_LONGDATE = &H00000002 Const DATE_USE_ALT_CALENDAR = &H00000004 Declare Function GetDateFormat Lib "kernel32" Alias _FuncName_GetDateFormat (Locale As LCID, dwFlags As DWord, ByRef Date As SYSTEMTIME, pFormat As PCTSTR, pDateStr As PTSTR, cchDate As Long) As Long Declare Function GetDiskFreeSpace Lib "kernel32" Alias _FuncName_GetDiskFreeSpace (pRootPathName As PCTSTR, lpSectorsPerCluster As *DWord, pBytesPerSector As *DWord, pNumberOfFreeClusters As *DWord, pTotalNumberOfClusters As *DWord) As BOOL Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias _FuncName_GetDiskFreeSpaceEx (pDirectoryName As PCTSTR, ByRef lpFreeBytesAvailableToCaller As ULARGE_INTEGER, ByRef TotalNumberOfBytes As ULARGE_INTEGER, ByRef TotalNumberOfFreeBytes As ULARGE_INTEGER) As BOOL Const DRIVE_UNKNOWN = 0 Const DRIVE_NO_ROOT_DIR = 1 Const DRIVE_REMOVABLE = 2 Const DRIVE_FIXED = 3 Const DRIVE_REMOTE = 4 Const DRIVE_CDROM = 5 Const DRIVE_RAMDISK = 6 Declare Function GetVolumeInformation Lib "kernel32" Alias _FuncName_GetVolumeInformation (pRootPathName As PCTSTR, pVolumeNameBuffer As PTSTR, nVolumeNameSize As DWord, lpVolumeSerialNumber As *Word, lpMaximumComponentLength As *Word, lpFileSystemFlags As *Word, pFileSystemNameBuffer As PTSTR, nFileSystemNameSize As DWord) As BOOL Declare Function GetDriveType Lib "kernel32" Alias _FuncName_GetDriveType (lpRootPathName As PCTSTR) As DWord Declare Function GetEnvironmentVariable Lib "kernel32" Alias _FuncName_GetEnvironmentVariable (lpName As PCTSTR, lpBuffer As PTSTR, nSize As DWord) As DWord Declare Function GetEnvironmentStrings Lib "kernel32" Alias _FuncName_GetEnvironmentStrings () As VoidPtr Const STILL_ACTIVE = &H00000103 Declare Function GetExitCodeProcess Lib "kernel32" (hProcess As HANDLE, ByRef lpExitCode As DWord) As BOOL Declare Function GetExitCodeThread Lib "kernel32" (hThread As HANDLE, ByRef lpExitCode As DWord) As BOOL Declare Function GetFileAttributes Lib "kernel32" Alias _FuncName_GetFileAttributes (lpFileName As PCTSTR) As DWord Type BY_HANDLE_FILE_INFORMATION dwFileAttributes As DWord ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME dwVolumeSerialNumber As DWord nFileSizeHigh As DWord nFileSizeLow As DWord nNumberOfLinks As DWord nFileIndexHigh As DWord nFileIndexLow As DWord End Type Declare Function GetFileInformationByHandle Lib "kernel32" ( ByVal hFile As HANDLE, ByRef FileInformation As BY_HANDLE_FILE_INFORMATION ) As BOOL Declare Function GetFileSize Lib "kernel32" (hFile As HANDLE, pFileSizeHigh As *DWord) As DWord Declare Function GetFileTime Lib "kernel32" (hFile As HANDLE, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As BOOL Const FILE_TYPE_UNKNOWN = &H0000 Const FILE_TYPE_DISK = &H0001 Const FILE_TYPE_CHAR = &H0002 Const FILE_TYPE_PIPE = &H0003 Const FILE_TYPE_REMOTE = &H8000 Declare Function GetFileType Lib "kernel32" (hFile As HANDLE) As DWord Declare Function GetFullPathName Lib "kernel32" Alias _FuncName_GetFullPathName (lpFileName As PCSTR, nBufferLength As DWord, pBuffer As PSTR, lpFilePart As *DWord) As DWord Declare Function GetLastError Lib "kernel32" () As DWord Declare Sub GetLocalTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME) Declare Function GetLogicalDrives Lib "kernel32" () As DWord Declare Function GetLogicalDriveStrings Lib "kernel32" Alias _FuncName_GetLogicalDriveStrings (nBufferLength As DWord, pBuffer As PTSTR) As DWord Declare Function GetLongPathName Lib "kernel32" Alias _FuncName_GetLongPathName (lpszShortPath As LPCTSTR, lpszLongPath As LPTSTR, cchBuffer As DWord) As DWord Declare Function GetModuleFileName Lib "kernel32" Alias _FuncName_GetModuleFileName (hModule As HINSTANCE, lpFileName As PTSTR, nSize As DWord) As DWord Declare Function GetModuleHandle Lib "kernel32" Alias _FuncName_GetModuleHandle (lpModuleName As PTSTR) As HINSTANCE Declare Function GetOverlappedResult Lib "kernel32" ( hFile As HANDLE, pOverlapped As *OVERLAPPED, pNumberOfBytesTransferred AS *DWord, bWait As BOOL ) As BOOL Type SYSTEM_POWER_STATUS ACLineStatus As Byte BatteryFlag As Byte BatteryLifePercent As Byte Reserved1 As Byte BatteryLifeTime As Long BatteryFullLifeTime As Long End Type Declare Function GetSystemPowerStatus Lib "kernel32" (ByRef SystemPowerStatus As SYSTEM_POWER_STATUS) As Long Declare Function GetPriorityClass Lib "kernel32" (hProcess As HANDLE) As DWord Declare Function GetProcAddress Lib "kernel32" (hModule As HINSTANCE, pProcName As PCSTR) As DWord Declare Function GetProcessAffinityMask Lib "kernel32" ( hProcess As HANDLE, ByRef ProcessAffinityMask As ULONG_PTR, ByRef SystemAffinityMask As ULONG_PTR ) As BOOL Declare Function GetProcessHeap Lib "kernel32" () As HANDLE Declare Function GetShortPathName Lib "kernel32" Alias _FuncName_GetShortPathName ( pszLongPath As PCTSTR, pszShortPath As PTSTR, cchBuffer As DWord ) As DWord Declare Sub GetStartupInfo Lib "kernel32" Alias _FuncName_GetStartupInfo (ByRef StartupInfo As STARTUPINFO) Const STD_INPUT_HANDLE = -10 Const STD_OUTPUT_HANDLE = -11 Const STD_ERROR_HANDLE = -12 Declare Function GetStdHandle Lib "kernel32" (nStdHandle As DWord) As HANDLE Declare Function GetSystemDirectory Lib "kernel32" Alias _FuncName_GetSystemDirectory (pBuffer As PTSTR, uSize As DWord) As DWord Type SYSTEM_INFO dwOemId As DWord dwPageSize As DWord lpMinimumApplicationAddress As VoidPtr lpMaximumApplicationAddress As VoidPtr dwActiveProcessorMask As ULONG_PTR dwNumberOfProcessors As DWord dwProcessorType As DWord dwAllocationGranularity As DWord wProcessorLevel As Word wProcessorRevision As Word End Type Declare Sub GetSystemInfo Lib "kernel32" (ByRef SystemInfo As SYSTEM_INFO) Declare Sub GetSystemTime Lib "kernel32" (ByRef SystemTime As SYSTEMTIME) Declare Sub GetSystemTimeAsFileTime Lib "kernel32" (ByRef SystemTimeAsFileTime As FILETIME) Declare Function GetTempFileName Lib "kernel32" Alias _FuncName_GetTempFileName ( pPathName As PCTSTR, pPrefixString As PCTSTR, uUnique As DWord, pTempFileName As PTSTR ) As DWord Declare Function GetTempPath Lib "kernel32" Alias _FuncName_GetTempPath (nBufferLength As DWord, lpBuffer As PTSTR) As DWord Declare Function GetThreadContext Lib "kernel32" (hThread As HANDLE, ByRef Context As CONTEXT) As BOOL Const THREAD_BASE_PRIORITY_LOWRT = 15 Const THREAD_BASE_PRIORITY_MAX = 2 Const THREAD_BASE_PRIORITY_MIN = -2 Const THREAD_BASE_PRIORITY_IDLE = -15 Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN Const THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1 Const THREAD_PRIORITY_NORMAL = 0 Const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX Const THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1 Const THREAD_PRIORITY_ERROR_RETURN = LONG_MAX Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT Const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE Declare Function GetThreadPriority Lib "kernel32" (hThread As HANDLE) As Long Declare Function GetThreadPriorityBoost Lib "kernel32" ( hThread As HANDLE, ByRef pDisablePriorityBoost As BOOL) As BOOL Declare Function GetTickCount Lib "kernel32" () As DWord Const TIME_NOMINUTESORSECONDS = &H00000001 Const TIME_NOSECONDS = &H00000002 Const TIME_NOTIMEMARKER = &H00000004 Const TIME_FORCE24HOURFORMAT = &H00000008 Declare Function GetTimeFormat Lib "kernel32" Alias _FuncName_GetTimeFormat (Locale As LCID, dwFlags As DWord, ByRef Time As SYSTEMTIME, lpFormat As PCTSTR, lpTimeStr As PTSTR, cchTime As DWord) As BOOL Declare Function GetUserDefaultLCID Lib "kernel32" () As LCID Declare Function GetUserName Lib "advapi32" Alias _FuncName_GetUserName (pBuffer As PTSTR, ByRef nSize As DWord) As BOOL Const VER_PLATFORM_WIN32s = 0 Const VER_PLATFORM_WIN32_WINDOWS = 1 Const VER_PLATFORM_WIN32_NT = 2 Const VER_PLATFORM_WIN32_CE = 3 Type OSVERSIONINFOW dwOSVersionInfoSize As DWord dwMajorVersion As DWord dwMinorVersion As DWord dwBuildNumber As DWord dwPlatformId As DWord szCSDVersion[ELM(128)] As WCHAR End Type Type OSVERSIONINFOA dwOSVersionInfoSize As DWord dwMajorVersion As DWord dwMinorVersion As DWord dwBuildNumber As DWord dwPlatformId As DWord szCSDVersion[ELM(128)] As SByte End Type #ifdef UNICODE TypeDef OSVERSIONINFO = OSVERSIONINFOW #else TypeDef OSVERSIONINFO = OSVERSIONINFOA #endif Declare Function GetVersionEx Lib "kernel32" Alias _FuncName_GetVersionEx (ByRef VersionInformation As OSVERSIONINFO) As BOOL Declare Function GetWindowsDirectory Lib "kernel32" Alias _FuncName_GetWindowsDirectory (pBuffer As PTSTR, uSize As DWord) As DWord Declare Function GlobalAlloc Lib "kernel32" (uFlags As DWord, dwBytes As SIZE_T) As HGLOBAL Declare Function GlobalFrags Lib "kernel32" (hMem As HGLOBAL) As DWord Declare Function GlobalFree Lib "kernel32" (hMem As HGLOBAL) As HGLOBAL Declare Function GlobalHandle Lib "kernel32" (pMem As VoidPtr) As HGLOBAL Declare Function GlobalLock Lib "kernel32" (hMem As HGLOBAL) As VoidPtr Type MEMORYSTATUS dwLength As DWord dwMemoryLoad As DWord dwTotalPhys As SIZE_T dwAvailPhys As SIZE_T dwTotalPageFile As SIZE_T dwAvailPageFile As SIZE_T dwTotalVirtual As SIZE_T dwAvailVirtual As SIZE_T End Type Declare Sub GlobalMemoryStatus Lib "kernel32" (ByRef lpMemStatus As MEMORYSTATUS) Declare Function GlobalReAlloc Lib "kernel32" (hMem As HGLOBAL, dwBytes As SIZE_T, uFlags As DWord) As HGLOBAL Declare Function GlobalSize Lib "kernel32" (hMem As HGLOBAL) As SIZE_T Declare Function GlobalUnlock Lib "kernel32" (hMem As HGLOBAL) As BOOL Declare Function HeapAlloc Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, dwBytes As SIZE_T) As VoidPtr Declare Function HeapCreate Lib "kernel32" (flOptions As DWord, dwInitialSize As SIZE_T, dwMaximumSize As SIZE_T) As HANDLE Declare Function HeapDestroy Lib "kernel32" (hHeap As HANDLE) As Long Declare Function HeapFree Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr) As Long Declare Function HeapReAlloc Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr, dwBytes As SIZE_T) As VoidPtr Declare Function HeapSize Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr) As SIZE_T Declare Sub InitializeCriticalSection Lib "kernel32" (ByRef CriticalSection As CRITICAL_SECTION) Declare Function IsBadReadPtr Lib "kernel32" (lp As VoidPtr, ucb As ULONG_PTR) As BOOL Declare Function IsBadWritePtr Lib "kernel32" (lp As VoidPtr, ucb As ULONG_PTR) As BOOL Declare Function IsDBCSLeadByte Lib "kernel32" (TestChar As Byte) As BOOL #ifdef _WIN64 Declare Function IsWow64Process Lib "kernel32" (hProcess As HANDLE, ByRef bWow64Process As BOOL) As BOOL #endif Const LCMAP_LOWERCASE = &H00000100 ' lower case letters Const LCMAP_UPPERCASE = &H00000200 ' upper case letters Const LCMAP_SORTKEY = &H00000400 ' WC sort key (normalize) Const LCMAP_BYTEREV = &H00000800 ' byte reversal Const LCMAP_HIRAGANA = &H00100000 ' map katakana to hiragana Const LCMAP_KATAKANA = &H00200000 ' map hiragana to katakana Const LCMAP_HALFWIDTH = &H00400000 ' map double byte to single byte Const LCMAP_FULLWIDTH = &H00800000 ' map single byte to double byte Const LCMAP_LINGUISTIC_CASING = &H01000000 ' use linguistic rules for casing Const LCMAP_SIMPLIFIED_CHINESE = &H02000000 ' map traditional chinese to simplified chinese Const LCMAP_TRADITIONAL_CHINESE = &H04000000 ' map simplified chinese to traditional chinese Declare Function LCMapString Lib "kernel32" Alias _FuncName_LCMapString (Locale As LCID, dwMapFlags As DWord, lpSrcStr As LPCTSTR, cchSrc As Long, lpDestStr As LPTSTR, cchDest As Long) As Long Declare Sub LeaveCriticalSection Lib "kernel32" (ByRef lpCriticalSection As CRITICAL_SECTION) Declare Function LocalAlloc Lib "kernel32" (uFlags As DWord, uBytes As SIZE_T) As HLOCAL Declare Function LocalFileTimeToFileTime Lib "kernel32" (ByRef lpLocalFileTime As FILETIME, ByRef lpFileTime As FILETIME) As BOOL Declare Function LocalFree Lib "kernel32" (hMem As HLOCAL) As HLOCAL Declare Function LocalHandle Lib "kernel32" (pMem As VoidPtr) As HLOCAL Declare Function LocalLock Lib "kernel32" (hMem As HLOCAL) As VoidPtr Declare Function LocalReAlloc Lib "kernel32" (hMem As HLOCAL, dwBytes As SIZE_T, uFlags As DWord) As HLOCAL Declare Function LocalSize Lib "kernel32" (hMem As HLOCAL) As SIZE_T Declare Function LocalUnlock Lib "kernel32" (hMem As HLOCAL) As BOOL Declare Function LockFile Lib "kernel32" (hFile As DWord, dwFileOffsetLow As DWord, dwFileOffsetHigh As DWord, nNumberOfBytesToLockLow As DWord, nNumberOfBytesToLockHigh As DWord) As BOOL Declare Function LoadLibrary Lib "kernel32" Alias _FuncName_LoadLibrary (pLibFileName As PCTSTR) As HINSTANCE Const DONT_RESOLVE_DLL_REFERENCES = &h00000001 Const LOAD_LIBRARY_AS_DATAFILE = &h00000002 Const LOAD_WITH_ALTERED_SEARCH_PATH = &h00000008 Const LOAD_IGNORE_CODE_AUTHZ_LEVEL = &h00000010 Declare Function LoadLibraryEx Lib "kernel32" Alias _FuncName_LoadLibraryEx (pLibFileName As PCTSTR, hFile As HANDLE, dwFlags As DWord) As HINSTANCE Declare Function lstrcat Lib "kernel32" Alias _FuncName_lstrcat (lpString1 As LPTSTR, lpString2 As LPCTSTR) As LPTSTR Declare Function lstrcmp Lib "kernel32" Alias _FuncName_lstrcmp (lpString1 As LPCTSTR, lpString2 As LPCTSTR) As Long Declare Function lstrcmpi Lib "kernel32" Alias _FuncName_lstrcmpi (lpString1 As LPCTSTR, lpString2 As LPCTSTR) As Long Declare Function lstrcpy Lib "kernel32" Alias _FuncName_lstrcpy (lpString1 As LPTSTR, lpString2 As LPCTSTR) As LPTSTR Declare Function lstrcpyn Lib "kernel32" Alias _FuncName_lstrcpyn (lpString1 As LPTSTR,ByVal lpString2 As LPCTSTR,ByVal iMaxLength As Long) As LPTSTR Declare Function lstrlenA Lib "kernel32" (lpString As LPCSTR) As Long Declare Function lstrlenW Lib "kernel32" (lpString As LPCWSTR) As Long #ifdef UNICODE Declare Function lstrlen Lib "kernel32" Alias "lstrlenW" (lpString As LPCWSTR) As Long #else Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (lpString As LPCSTR) As Long #endif Declare Sub memcpy Lib "kernel32" Alias "RtlMoveMemory" (pDest As VoidPtr, pSrc As VoidPtr, length As SIZE_T) Declare Function MoveFile Lib "kernel32" Alias _FuncName_MoveFile (lpExistingFileName As LPCTSTR, lpNewFileName As LPCTSTR) As BOOL Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As PVOID, pSrc As VoidPtr, length As SIZE_T) Declare Function MulDiv Lib "kernel32" ( nNumber As Long, nNumerator As Long, nDenominator As Long ) As Long Const CP_ACP = 0 'default to ANSI code page Const CP_OEMCP = 1 'default to OEM code page Const CP_MACCP = 2 'default to MAC code page Const CP_THREAD_ACP = 3 'current thread's ANSI code page Const CP_SYMBOL = 42 'SYMBOL translations Const CP_UTF7 = 65000 'UTF-7 translation Const CP_UTF8 = 65001 'UTF-8 translation Declare Function MultiByteToWideChar Lib "kernel32" (CodePage As DWord, dwFlags As DWord, pMultiByteStr As PCSTR, cchMultiByte As Long, pWideCharStr As PWSTR, cchWideChar As Long) As Long Declare Function OpenEvent Lib "kernel32" Alias _FuncName_OpenEvent (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE Declare Function OpenMutex Lib "kernel32" Alias _FuncName_OpenMutex (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE Declare Function OpenSemaphore Lib "kernel32" Alias _FuncName_OpenSemaphore (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE Const PROCESS_TERMINATE = &H0001 Const PROCESS_CREATE_THREAD = &H0002 Const PROCESS_SET_SESSIONID = &H0004 Const PROCESS_VM_OPERATION = &H0008 Const PROCESS_VM_READ = &H0010 Const PROCESS_VM_WRITE = &H0020 Const PROCESS_DUP_HANDLE = &H0040 Const PROCESS_CREATE_PROCESS = &H0080 Const PROCESS_SET_QUOTA = &H0100 Const PROCESS_SET_INFORMATION = &H0200 Const PROCESS_QUERY_INFORMATION = &H0400 Const PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or &HFFF Declare Function OpenProcess Lib "kernel32" (dwDesiredAccess As DWord, bInheritHandle As Long, dwProcessId As DWord) As HANDLE Declare Sub OutputDebugStringA Lib "kernel32" (pOutputString As PCSTR) Declare Sub OutputDebugStringW Lib "kernel32" (pOutputString As PCWSTR) #ifdef UNICODE Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringW" (pOutputString As PCWSTR) #else Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (pOutputString As PCSTR) #endif Declare Function PulseEvent Lib "kernel32" (hEvent As HANDLE) As BOOL Declare Sub RaiseException Lib "kernel32" ( dwExceptionCode As DWord, dwExceptionFlags As DWord, NumberOfArguments As DWord, pArguments As *ULONG_PTR) Declare Function ReadFile Lib "kernel32" (hFile As HANDLE, lpBuffer As VoidPtr, nNumberOfBytesToRead As DWord, lpNumberOfBytesRead As DWordPtr, ByRef lpOverlapped As OVERLAPPED) As BOOL Declare Function ReadProcessMemory Lib "Kernel32" (hProcess As HANDLE, lpBaseAddress As VoidPtr, lpBuffer As VoidPtr, nSize As SIZE_T, lpNumberOfBytesRead As *SIZE_T) As BOOL Declare Function ReleaseMutex Lib "kernel32" (hMutex As HANDLE) As BOOL Declare Function ReleaseSemaphore Lib "kernel32" (hSemaphore As HANDLE, lReleaseCount As Long, ByRef lpPreviousCount As Long) As BOOL Declare Function RemoveDirectory Lib "kernel32" Alias _FuncName_RemoveDirectory (lpPathName As LPCTSTR) As BOOL Declare Function ResetEvent Lib "kernel32" (hEvent As HANDLE) As BOOL Declare Function ResumeThread Lib "kernel32" (hThread As HANDLE) As DWord Declare Function SetComputerName Lib "kernel32" Alias _FuncName_SetComputerName (lpComputerName As LPCTSTR) As BOOL Declare Function SetCurrentDirectory Lib "kernel32" Alias _FuncName_SetCurrentDirectory (lpPathName As LPCTSTR) As BOOL Declare Function SearchPath Lib "kernel32" Alias _FuncName_SearchPath (pPath As PCSTR, pFileName As PCTSTR, pExtension As PCTSTR, BufferLength As DWord, pBuffer As PTSTR, ByRef pFilePart As PTSTR) As DWord Declare Function SetEndOfFile Lib "kernel32" (hFile As HANDLE) As BOOL Declare Function SetEnvironmentVariable Lib "kernel32" Alias _FuncName_SetEnvironmentVariable (lpName As LPCTSTR, lpValue As LPTSTR) As BOOL Const SEM_FAILCRITICALERRORS = &h0001 Const SEM_NOGPFAULTERRORBOX = &h0002 Const SEM_NOALIGNMENTFAULTEXCEPT = &h0004 Const SEM_NOOPENFILEERRORBOX = &h8000 Declare Function SetErrorMode Lib "kernel32" (uMode As DWord) As DWord Declare Function SetEvent Lib "kernel32" (hEvent As HANDLE) As BOOL Declare Function SetFileAttributes Lib "kernel32" Alias _FuncName_SetFileAttributes (lpFileName As LPCTSTR, dwFileAttributes As DWord) As BOOL Const FILE_BEGIN = 0 Const FILE_CURRENT = 1 Const FILE_END = 2 Declare Function SetFilePointer Lib "kernel32" (hFile As HANDLE, lDistanceToMove As Long, lpDistanceToMoveHigh As DWordPtr, dwMoveMethod As DWord) As DWord Declare Function SetFileTime Lib "kernel32" (hFile As HANDLE, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As BOOL Declare Function SetLastError Lib "kernel32" (dwErrCode As DWord) Declare Function SetLastErrorEx Lib "kernel32" (dwErrCode As DWord, dwType As DWord) Declare Function SetLocalTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME) As BOOL Declare Function SetPriorityClass Lib "kernel32" (hProcess As HANDLE, dwPriorityClass As DWord) As BOOL Declare Function SetThreadContext Lib "kernel32" (hThread As HANDLE, ByRef Context As CONTEXT) As BOOL Declare Function SetThreadPriority Lib "kernel32" (hThread As HANDLE, nPriority As Long) As BOOL Declare Function SetThreadPriorityBoost Lib "kernel32" ( hThread As HANDLE, DisablePriorityBoost As BOOL ) As BOOL Const EXCEPTION_MAXIMUM_PARAMETERS = 15 Type EXCEPTION_RECORD ExceptionCode As DWord ExceptionFlags As DWord ExceptionRecord As *EXCEPTION_RECORD ExceptionAddress As VoidPtr NumberParameters As DWord ExceptionInformation[ELM(EXCEPTION_MAXIMUM_PARAMETERS)] As ULONG_PTR End Type Type EXCEPTION_POINTERS ExceptionRecord As *EXCEPTION_RECORD ContextRecord As *CONTEXT End Type TypeDef PTOP_LEVEL_EXCEPTION_FILTER = *Function(ByRef ExceptionInfo As EXCEPTION_POINTERS) As Long Declare Function SetUnhandledExceptionFilter Lib "kernel32" (pTopLevelExceptionFilter As PTOP_LEVEL_EXCEPTION_FILTER) As PTOP_LEVEL_EXCEPTION_FILTER Const INFINITE = &HFFFFFFFF Declare Sub Sleep Lib "kernel32" (dwMilliseconds As DWord) Declare Function SleepEx Lib "kernel32" (dwMilliseconds As DWord, bAlertable As BOOL) As DWord Declare Function SuspendThread Lib "kernel32" (hThread As HANDLE) As DWord Declare Function SystemTimeToFileTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME, ByRef lpFileTime As FILETIME) As BOOL Declare Function TerminateProcess Lib "kernel32" (hProcess As HANDLE, dwExitCode As DWord) As BOOL Declare Function TerminateThread Lib "kernel32" (hThread As HANDLE, dwExitCode As DWord) As BOOL Declare Function TlsAlloc Lib "kernel32" () As DWord Declare Function TlsFree Lib "kernel32" (dwTlsIndex As DWord) As BOOL Declare Function TlsGetValue Lib "kernel32" (dwTlsIndex As DWord) As VoidPtr Declare Function TlsSetValue Lib "kernel32" (dwTlsIndex As DWord, pTlsValue As VoidPtr) As BOOL Declare Function UnlockFile Lib "kernel32" (hFile As HANDLE, dwFileOffsetLow As DWord, dwFileOffsetHigh As DWord, nNumberOfBytesToUnlockLow As DWord, nNumberOfBytesToUnlockHigh As DWord) As BOOL Declare Function UnhandledExceptionFilter Lib "kernel32" (ByRef ExceptionInfo As EXCEPTION_POINTERS) As Long Const PAGE_NOACCESS = &H01 Const PAGE_READONLY = &H02 Const PAGE_READWRITE = &H04 Const PAGE_WRITECOPY = &H08 Const PAGE_EXECUTE = &H10 Const PAGE_EXECUTE_READ = &H20 Const PAGE_EXECUTE_READWRITE = &H40 Const PAGE_EXECUTE_WRITECOPY = &H80 Const PAGE_GUARD = &H100 Const PAGE_NOCACHE = &H200 Const PAGE_WRITECOMBINE = &H400 Const MEM_COMMIT = &H1000 Const MEM_RESERVE = &H2000 Const MEM_DECOMMIT = &H4000 Const MEM_RELEASE = &H8000 Const MEM_FREE = &H10000 Const MEM_PRIVATE = &H20000 Const MEM_MAPPED = &H40000 Const MEM_RESET = &H80000 Const MEM_TOP_DOWN = &H100000 Const MEM_4MB_PAGES = &H80000000 Declare Function VirtualAlloc Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T, flAllocationType As DWord, flProtect As DWord) As VoidPtr Declare Function VirtualFree Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T, dwFreeType As DWord) As BOOL Declare Function VirtualLock Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T) As BOOL Declare Function VirtualProtect Lib "kernel32" ( pAddress As VoidPtr, Size As SIZE_T, flNewProtect As DWord, ByRef flOldProtect As DWord ) As BOOL Declare Function VirtualProtectEx Lib "kernel32" ( hProcess As HANDLE, pAddress As VoidPtr, Size As SIZE_T, flNewProtect As DWord, ByRef flOldProtect As DWord ) As BOOL Type MEMORY_BASIC_INFORMATION BaseAddress As VoidPtr AllocationBase As VoidPtr AllocationProtect As DWord RegionSize As SIZE_T State As DWord Protect As DWord MBIType As DWord End Type Declare Function VirtualQuery Lib "kernel32" ( pAddress As VoidPtr, ByRef mbi As MEMORY_BASIC_INFORMATION, Length As SIZE_T ) As SIZE_T Declare Function VirtualQueryEx Lib "kernel32" ( hProcess As HANDLE, pAddress As VoidPtr, ByRef mbi As MEMORY_BASIC_INFORMATION, Length As SIZE_T ) As SIZE_T Declare Function VirtualUnlock Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T) As BOOL Declare Function WaitForMultipleObjects Lib "kernel32" (nCount As DWord, pHandles As *HANDLE, fWaitAll As BOOL, dwMilliseconds As DWord) As DWord Declare Function WaitForMultipleObjectsEx Lib "kernel32" (nCount As DWord, pHandles As *HANDLE, fWaitAll As BOOL, dwMilliseconds As DWord, bAlertable As BOOL) As DWord Declare Function WaitForSingleObject Lib "kernel32" (hHandle As HANDLE, dwMilliseconds As DWord) As DWord Declare Function WaitForSingleObjectEx Lib "kernel32" (hHandle As HANDLE, dwMilliseconds As DWord, bAlertable As BOOL) As DWord Const WC_COMPOSITECHECK = &H00000200 Const WC_DISCARDNS = &H00000010 Const WC_SEPCHARS = &H00000020 Const WC_DEFAULTCHAR = &H00000040 Const WC_NO_BEST_FIT_CHARS = &H00000400 Declare Function WideCharToMultiByte Lib "Kernel32" ( CodePage As DWord, dwFlags As DWord, pWideCharStr As PCWSTR, cchWideChar As Long, pMultiByteStr As PSTR, cbMultiByte As Long, pDefaultChar As PCSTR, pUsedDefaultChar As *BOOL ) As Long Declare Function WriteFile Lib "kernel32" (hFile As HANDLE, lpBuffer As VoidPtr, nNumberOfBytesToWrite As DWord, lpNumberOfBytesWritten As DWordPtr, ByRef lpOverlapped As OVERLAPPED) As BOOL Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (Destination As VoidPtr, dwLength As DWord) Const MAKELCID(lgid, srtid) = ((((srtid As Word) As DWord)<<16) or ((lgid As Word) As DWord)) Const MAKELANGID(p, s) = (((s As Word) << 10) or (p As Word)) Const PRIMARYLANGID(lgid) = ((lgid As Word) and &H3ff) Const SUBLANGID(lgid) = ((lgid As Word) >> 10) ' ' Primary language IDs. ' Const LANG_NEUTRAL = &H00 Const LANG_INVARIANT = &H7f Const LANG_AFRIKAANS = &H36 Const LANG_ALBANIAN = &H1c Const LANG_ARABIC = &H01 Const LANG_ARMENIAN = &H2b Const LANG_ASSAMESE = &H4d Const LANG_AZERI = &H2c Const LANG_BASQUE = &H2d Const LANG_BELARUSIAN = &H23 Const LANG_BENGALI = &H45 Const LANG_BULGARIAN = &H02 Const LANG_CATALAN = &H03 Const LANG_CHINESE = &H04 Const LANG_CROATIAN = &H1a Const LANG_CZECH = &H05 Const LANG_DANISH = &H06 Const LANG_DIVEHI = &H65 Const LANG_DUTCH = &H13 Const LANG_ENGLISH = &H09 Const LANG_ESTONIAN = &H25 Const LANG_FAEROESE = &H38 Const LANG_FARSI = &H29 Const LANG_FINNISH = &H0b Const LANG_FRENCH = &H0c Const LANG_GALICIAN = &H56 Const LANG_GEORGIAN = &H37 Const LANG_GERMAN = &H07 Const LANG_GREEK = &H08 Const LANG_GUJARATI = &H47 Const LANG_HEBREW = &H0d Const LANG_HINDI = &H39 Const LANG_HUNGARIAN = &H0e Const LANG_ICELANDIC = &H0f Const LANG_INDONESIAN = &H21 Const LANG_ITALIAN = &H10 Const LANG_JAPANESE = &H11 Const LANG_KANNADA = &H4b Const LANG_KASHMIRI = &H60 Const LANG_KAZAK = &H3f Const LANG_KONKANI = &H57 Const LANG_KOREAN = &H12 Const LANG_KYRGYZ = &H40 Const LANG_LATVIAN = &H26 Const LANG_LITHUANIAN = &H27 Const LANG_MACEDONIAN = &H2f ' the Former Yugoslav Republic of Macedonia Const LANG_MALAY = &H3e Const LANG_MALAYALAM = &H4c Const LANG_MANIPURI = &H58 Const LANG_MARATHI = &H4e Const LANG_MONGOLIAN = &H50 Const LANG_NEPALI = &H61 Const LANG_NORWEGIAN = &H14 Const LANG_ORIYA = &H48 Const LANG_POLISH = &H15 Const LANG_PORTUGUESE = &H16 Const LANG_PUNJABI = &H46 Const LANG_ROMANIAN = &H18 Const LANG_RUSSIAN = &H19 Const LANG_SANSKRIT = &H4f Const LANG_SERBIAN = &H1a Const LANG_SINDHI = &H59 Const LANG_SLOVAK = &H1b Const LANG_SLOVENIAN = &H24 Const LANG_SPANISH = &H0a Const LANG_SWAHILI = &H41 Const LANG_SWEDISH = &H1d Const LANG_SYRIAC = &H5a Const LANG_TAMIL = &H49 Const LANG_TATAR = &H44 Const LANG_TELUGU = &H4a Const LANG_THAI = &H1e Const LANG_TURKISH = &H1f Const LANG_UKRAINIAN = &H22 Const LANG_URDU = &H20 Const LANG_UZBEK = &H43 Const LANG_VIETNAMESE = &H2a ' ' Sublanguage IDs. ' ' The name immediately following SUBLANG_ dictates which primary ' language ID that sublanguage ID can be combined with to form a ' valid language ID. ' Const SUBLANG_NEUTRAL = &H00 ' language neutral Const SUBLANG_DEFAULT = &H01 ' user default Const SUBLANG_SYS_DEFAULT = &H02 ' system default Const SUBLANG_ARABIC_SAUDI_ARABIA = &H01 ' Arabic (Saudi Arabia) Const SUBLANG_ARABIC_IRAQ = &H02 ' Arabic (Iraq) Const SUBLANG_ARABIC_EGYPT = &H03 ' Arabic (Egypt) Const SUBLANG_ARABIC_LIBYA = &H04 ' Arabic (Libya) Const SUBLANG_ARABIC_ALGERIA = &H05 ' Arabic (Algeria) Const SUBLANG_ARABIC_MOROCCO = &H06 ' Arabic (Morocco) Const SUBLANG_ARABIC_TUNISIA = &H07 ' Arabic (Tunisia) Const SUBLANG_ARABIC_OMAN = &H08 ' Arabic (Oman) Const SUBLANG_ARABIC_YEMEN = &H09 ' Arabic (Yemen) Const SUBLANG_ARABIC_SYRIA = &H0a ' Arabic (Syria) Const SUBLANG_ARABIC_JORDAN = &H0b ' Arabic (Jordan) Const SUBLANG_ARABIC_LEBANON = &H0c ' Arabic (Lebanon) Const SUBLANG_ARABIC_KUWAIT = &H0d ' Arabic (Kuwait) Const SUBLANG_ARABIC_UAE = &H0e ' Arabic (U.A.E) Const SUBLANG_ARABIC_BAHRAIN = &H0f ' Arabic (Bahrain) Const SUBLANG_ARABIC_QATAR = &H10 ' Arabic (Qatar) Const SUBLANG_AZERI_LATIN = &H01 ' Azeri (Latin) Const SUBLANG_AZERI_CYRILLIC = &H02 ' Azeri (Cyrillic) Const SUBLANG_CHINESE_TRADITIONAL = &H01 ' Chinese (Taiwan) Const SUBLANG_CHINESE_SIMPLIFIED = &H02 ' Chinese (PR China) Const SUBLANG_CHINESE_HONGKONG = &H03 ' Chinese (Hong Kong S.A.R., P.R.C.) Const SUBLANG_CHINESE_SINGAPORE = &H04 ' Chinese (Singapore) Const SUBLANG_CHINESE_MACAU = &H05 ' Chinese (Macau S.A.R.) Const SUBLANG_DUTCH = &H01 ' Dutch Const SUBLANG_DUTCH_BELGIAN = &H02 ' Dutch (Belgian) Const SUBLANG_ENGLISH_US = &H01 ' English (USA) Const SUBLANG_ENGLISH_UK = &H02 ' English (UK) Const SUBLANG_ENGLISH_AUS = &H03 ' English (Australian) Const SUBLANG_ENGLISH_CAN = &H04 ' English (Canadian) Const SUBLANG_ENGLISH_NZ = &H05 ' English (New Zealand) Const SUBLANG_ENGLISH_EIRE = &H06 ' English (Irish) Const SUBLANG_ENGLISH_SOUTH_AFRICA = &H07 ' English (South Africa) Const SUBLANG_ENGLISH_JAMAICA = &H08 ' English (Jamaica) Const SUBLANG_ENGLISH_CARIBBEAN = &H09 ' English (Caribbean) Const SUBLANG_ENGLISH_BELIZE = &H0a ' English (Belize) Const SUBLANG_ENGLISH_TRINIDAD = &H0b ' English (Trinidad) Const SUBLANG_ENGLISH_ZIMBABWE = &H0c ' English (Zimbabwe) Const SUBLANG_ENGLISH_PHILIPPINES = &H0d ' English (Philippines) Const SUBLANG_FRENCH = &H01 ' French Const SUBLANG_FRENCH_BELGIAN = &H02 ' French (Belgian) Const SUBLANG_FRENCH_CANADIAN = &H03 ' French (Canadian) Const SUBLANG_FRENCH_SWISS = &H04 ' French (Swiss) Const SUBLANG_FRENCH_LUXEMBOURG = &H05 ' French (Luxembourg) Const SUBLANG_FRENCH_MONACO = &H06 ' French (Monaco) Const SUBLANG_GERMAN = &H01 ' German Const SUBLANG_GERMAN_SWISS = &H02 ' German (Swiss) Const SUBLANG_GERMAN_AUSTRIAN = &H03 ' German (Austrian) Const SUBLANG_GERMAN_LUXEMBOURG = &H04 ' German (Luxembourg) Const SUBLANG_GERMAN_LIECHTENSTEIN = &H05 ' German (Liechtenstein) Const SUBLANG_ITALIAN = &H01 ' Italian Const SUBLANG_ITALIAN_SWISS = &H02 ' Italian (Swiss) Const SUBLANG_KASHMIRI_SASIA = &H02 ' Kashmiri (South Asia) Const SUBLANG_KOREAN = &H01 ' Korean (Extended Wansung) Const SUBLANG_LITHUANIAN = &H01 ' Lithuanian Const SUBLANG_MALAY_MALAYSIA = &H01 ' Malay (Malaysia) Const SUBLANG_MALAY_BRUNEI_DARUSSALAM = &H02 ' Malay (Brunei Darussalam) Const SUBLANG_NEPALI_INDIA = &H02 ' Nepali (India) Const SUBLANG_NORWEGIAN_BOKMAL = &H01 ' Norwegian (Bokmal) Const SUBLANG_NORWEGIAN_NYNORSK = &H02 ' Norwegian (Nynorsk) Const SUBLANG_PORTUGUESE = &H02 ' Portuguese Const SUBLANG_PORTUGUESE_BRAZILIAN = &H01 ' Portuguese (Brazilian) Const SUBLANG_SERBIAN_LATIN = &H02 ' Serbian (Latin) Const SUBLANG_SERBIAN_CYRILLIC = &H03 ' Serbian (Cyrillic) Const SUBLANG_SPANISH = &H01 ' Spanish (Castilian) Const SUBLANG_SPANISH_MEXICAN = &H02 ' Spanish (Mexican) Const SUBLANG_SPANISH_MODERN = &H03 ' Spanish (Spain) Const SUBLANG_SPANISH_GUATEMALA = &H04 ' Spanish (Guatemala) Const SUBLANG_SPANISH_COSTA_RICA = &H05 ' Spanish (Costa Rica) Const SUBLANG_SPANISH_PANAMA = &H06 ' Spanish (Panama) Const SUBLANG_SPANISH_DOMINICAN_REPUBLIC = &H07 ' Spanish (Dominican Republic) Const SUBLANG_SPANISH_VENEZUELA = &H08 ' Spanish (Venezuela) Const SUBLANG_SPANISH_COLOMBIA = &H09 ' Spanish (Colombia) Const SUBLANG_SPANISH_PERU = &H0a ' Spanish (Peru) Const SUBLANG_SPANISH_ARGENTINA = &H0b ' Spanish (Argentina) Const SUBLANG_SPANISH_ECUADOR = &H0c ' Spanish (Ecuador) Const SUBLANG_SPANISH_CHILE = &H0d ' Spanish (Chile) Const SUBLANG_SPANISH_URUGUAY = &H0e ' Spanish (Uruguay) Const SUBLANG_SPANISH_PARAGUAY = &H0f ' Spanish (Paraguay) Const SUBLANG_SPANISH_BOLIVIA = &H10 ' Spanish (Bolivia) Const SUBLANG_SPANISH_EL_SALVADOR = &H11 ' Spanish (El Salvador) Const SUBLANG_SPANISH_HONDURAS = &H12 ' Spanish (Honduras) Const SUBLANG_SPANISH_NICARAGUA = &H13 ' Spanish (Nicaragua) Const SUBLANG_SPANISH_PUERTO_RICO = &H14 ' Spanish (Puerto Rico) Const SUBLANG_SWEDISH = &H01 ' Swedish Const SUBLANG_SWEDISH_FINLAND = &H02 ' Swedish (Finland) Const SUBLANG_URDU_PAKISTAN = &H01 ' Urdu (Pakistan) Const SUBLANG_URDU_INDIA = &H02 ' Urdu (India) Const SUBLANG_UZBEK_LATIN = &H01 ' Uzbek (Latin) Const SUBLANG_UZBEK_CYRILLIC = &H02 ' Uzbek (Cyrillic) Const LANG_SYSTEM_DEFAULT = (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)) Const LANG_USER_DEFAULT = (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)) ' ' Sorting IDs. ' Const SORT_DEFAULT = &H0 ' sorting default Const SORT_JAPANESE_XJIS = &H0 ' Japanese XJIS order Const SORT_JAPANESE_UNICODE = &H1 ' Japanese Unicode order Const SORT_CHINESE_BIG5 = &H0 ' Chinese BIG5 order Const SORT_CHINESE_PRCP = &H0 ' PRC Chinese Phonetic order Const SORT_CHINESE_UNICODE = &H1 ' Chinese Unicode order Const SORT_CHINESE_PRC = &H2 ' PRC Chinese Stroke Count order Const SORT_CHINESE_BOPOMOFO = &H3 ' Traditional Chinese Bopomofo order Const SORT_KOREAN_KSC = &H0 ' Korean KSC order Const SORT_KOREAN_UNICODE = &H1 ' Korean Unicode order Const SORT_GERMAN_PHONE_BOOK = &H1 ' German Phone Book order Const SORT_HUNGARIAN_DEFAULT = &H0 ' Hungarian Default order Const SORT_HUNGARIAN_TECHNICAL = &H1 ' Hungarian Technical order Const SORT_GEORGIAN_TRADITIONAL = &H0 ' Georgian Traditional order Const SORT_GEORGIAN_MODERN = &H1 ' Georgian Modern order ' ' Wait functions' results. ' Const WAIT_FAILED = (&hFFFFFFFF As DWord) Const WAIT_OBJECT_0 = 0 '((STATUS_WAIT_0 ) + 0) Const WAIT_ABANDONED = &h00000080 As DWord '((STATUS_ABANDONED_WAIT_0 ) + 0) Const WAIT_ABANDONED_0 = WAIT_ABANDONED '((STATUS_ABANDONED_WAIT_0 ) + 0) Const WAIT_IO_COMPLETION = &h000000C0 'STATUS_USER_APC Declare Function FindResource Lib "kernel32" Alias _FuncName_FindResource (hInstance As HINSTANCE, lpName As LPCTSTR, lpType As LPCTSTR) As HRSRC Declare Function LoadResource Lib "kernel32" (hModule As HMODULE, hResInfo As HRSRC) As HGLOBAL Declare Function FreeResource Lib "kernel32" (hResData As HGLOBAL) As BOOL Declare Function LockResource Lib "kernel32" (hResData As HGLOBAL) As VoidPtr Declare Function SizeofResource Lib "kernel32" (hModule As HANDLE, hResInfo As HRSRC) As DWord Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias _FuncName_ExpandEnvironmentStrings (lpSrc As LPCTSTR, lpDst As LPTSTR, nSize As DWord) As DWord Type DCB DCBlength As DWord BaudRate As DWord fBitFields As DWord wReserved As Word XonLim As Word XoffLim As Word ByteSize As Byte Parity As Byte StopBits As Byte XonChar As CHAR XoffChar As CHAR ErrorChar As CHAR EofChar As CHAR EvtChar As CHAR wReserved1 As Word End Type Type COMMTIMEOUTS ReadIntervalTimeout As DWord ReadTotalTimeoutMultiplier As DWord ReadTotalTimeoutConstant As DWord WriteTotalTimeoutMultiplier As DWord WriteTotalTimeoutConstant As DWord End Type Type COMSTAT fCoBitFlds As Long 'See Comment in Win32API.Txt cbInQue As DWord cbOutQue As DWord End Type Declare Function SetCommState Lib "kernel32" (hCommDev As HANDLE, ByRef dcb As DCB) As BOOL Declare Function SetCommTimeouts Lib "kernel32" (hFile As HANDLE ,ByRef pCommTimeouts As COMMTIMEOUTS) As BOOL Declare Function ClearCommError Lib "kernel32" (hCommDevs As HANDLE, ByRef Errors As DWord, ByRef Stat As COMSTAT) As BOOL Declare Function EscapeCommFunction Lib "kernel32" (nCid As HANDLE, ByVal nFunc As DWord) As BOOL Declare Function GetCommModemStatus Lib "kernel32" (hFile As HANDLE, ByRef ModemStat As DWord) As BOOL Declare Function SetCommMask Lib "kernel32" (hFile As HANDLE, dwEvtMask As DWord) As BOOL Declare Function WaitCommEvent Lib "kernel32" (hFile As HANDLE, ByRef EvtMask As DWord, lpOverlapped As *OVERLAPPED) As BOOL Const ANYSIZE_ARRAY = 1 Type LUID LowPart As DWord HighPart As Long End Type Type LUID_AND_ATTRIBUTES Luid As LUID Attributes As DWord End Type TypeDef PLUID_AND_ATTRIBUTES = *LUID_AND_ATTRIBUTES 'TypeDef LUID_AND_ATTRIBUTES_ARRAY = LUID_AND_ATTRIBUTES[ANYSIZE_ARRAY] 'TypeDef PLUID_AND_ATTRIBUTES_ARRAY = *LUID_AND_ATTRIBUTES_ARRAY Type TOKEN_PRIVILEGES PrivilegeCount As DWord Privileges[ELM(ANYSIZE_ARRAY)] As LUID_AND_ATTRIBUTES End Type Declare Function OpenProcessToken Lib "advapi32" (ProcessHandle As HANDLE, DesiredAccess As DWord, ByRef TokenHandle As HANDLE) As BOOL Declare Function LookupPrivilegeValue Lib "advapi32" Alias _FuncName_LookupPrivilegeValue (lpSystemName As LPCTSTR, lpName As LPCTSTR, ByRef Luid As LUID) As Long Declare Function AdjustTokenPrivileges Lib "advapi32" (TokenHandle As Long, DisableAllPrivileges As Long,_ ByRef NewState As TOKEN_PRIVILEGES, BufferLength As Long, ByRef PreviousState As TOKEN_PRIVILEGES, ByRef ReturnLength As Long) As Long #endif '_INC_SYSTEM