source: Include/api_system.sbp @ 170

Last change on this file since 170 was 170, checked in by イグトランス (egtra), 16 years ago

winnt.ab, windef.ab, guiddef.abを導入

File size: 48.1 KB
Line 
1' api_system.sbp - System API
2
3#ifndef _INC_SYSTEM
4#define _INC_SYSTEM
5
6#ifdef UNICODE
7Const _FuncName_CompareString = "CompareStringW"
8Const _FuncName_CopyFile = "CopyFileW"
9Const _FuncName_CreateDirectory = "CreateDirectoryW"
10Const _FuncName_CreateEvent = "CreateEventW"
11Const _FuncName_CreateMutex = "CreateMutexW"
12Const _FuncName_CreateSemaphore = "CreateSemaphoreW"
13Const _FuncName_CreateWaitableTimer = "CreateWaitableTimerW"
14Const _FuncName_CreateFile = "CreateFileW"
15Const _FuncName_CreateFileMapping = "CreateFileMappingW"
16Const _FuncName_OpenFileMapping = "OpenFileMappingW"
17Const _FuncName_CreateMailslot = "CreateMailslotW"
18Const _FuncName_CreateProcess = "CreateProcessW"
19Const _FuncName_DeleteFile = "DeleteFileW"
20Const _FuncName_ExpandEnvironmentStrings = "ExpandEnvironmentStringsW"
21Const _FuncName_FatalAppExit = "FatalAppExitW"
22Const _FuncName_FindFirstChangeNotification = "FindFirstChangeNotificationW"
23Const _FuncName_FindFirstFile = "FindFirstFileW"
24Const _FuncName_FindNextFile = "FindNextFileW"
25Const _FuncName_FindResource = "FindResourceW"
26Const _FuncName_FormatMessage = "FormatMessageW"
27Const _FuncName_FreeEnvironmentStrings = "FreeEnvironmentStringsW"
28Const _FuncName_GetCompressedFileSize = "GetCompressedFileSizeW"
29Const _FuncName_GetComputerName = "GetComputerNameW"
30Const _FuncName_GetCurrentDirectory = "GetCurrentDirectoryW"
31Const _FuncName_GetDateFormat = "GetDateFormatW"
32Const _FuncName_GetDiskFreeSpace = "GetDiskFreeSpaceW"
33Const _FuncName_GetDiskFreeSpaceEx = "GetDiskFreeSpaceExW"
34Const _FuncName_GetVolumeInformation = "GetVolumeInformationW"
35Const _FuncName_GetDriveType = "GetDriveTypeW"
36Const _FuncName_GetEnvironmentVariable = "GetEnvironmentVariableW"
37Const _FuncName_GetEnvironmentStrings = "GetEnvironmentStringsW"
38Const _FuncName_GetFileAttributes = "GetFileAttributesW"
39Const _FuncName_GetFullPathName = "GetFullPathNameW"
40Const _FuncName_GetLogicalDriveStrings = "GetLogicalDriveStringsW"
41Const _FuncName_GetLongPathName = "GetLongPathNameW"
42Const _FuncName_GetModuleFileName = "GetModuleFileNameW"
43Const _FuncName_GetModuleHandle = "GetModuleHandleW"
44Const _FuncName_GetShortPathName = "GetShortPathNameW"
45Const _FuncName_GetStartupInfo = "GetStartupInfoW"
46Const _FuncName_GetSystemDirectory = "GetSystemDirectoryW"
47Const _FuncName_GetTempFileName = "GetTempFileNameW"
48Const _FuncName_GetTempPath = "GetTempPathW"
49Const _FuncName_GetTimeFormat = "GetTimeFormatW"
50Const _FuncName_GetUserName = "GetUserNameW"
51Const _FuncName_GetVersionEx = "GetVersionExW"
52Const _FuncName_GetWindowsDirectory = "GetWindowsDirectoryW"
53Const _FuncName_LCMapString = "LCMapStringW"
54Const _FuncName_LoadLibrary = "LoadLibraryW"
55Const _FuncName_LoadLibraryEx = "LoadLibraryExW"
56Const _FuncName_LookupPrivilegeValue = "LookupPrivilegeValueW"
57Const _FuncName_lstrcat = "lstrcatW"
58Const _FuncName_lstrcmp = "lstrcmpW"
59Const _FuncName_lstrcmpi = "lstrcmpiW"
60Const _FuncName_lstrcpy = "lstrcpyW"
61Const _FuncName_lstrcpyn = "lstrcpynW"
62Const _FuncName_MoveFile = "MoveFileW"
63Const _FuncName_OpenEvent = "OpenEventW"
64Const _FuncName_OpenMutex = "OpenMutexW"
65Const _FuncName_OpenSemaphore = "OpenSemaphoreW"
66Const _FuncName_OpenWaitableTimer = "OpenWaitableTimerW"
67Const _FuncName_RemoveDirectory = "RemoveDirectoryW"
68Const _FuncName_SetComputerName = "SetComputerNameW"
69Const _FuncName_SetCurrentDirectory = "SetCurrentDirectoryW"
70Const _FuncName_SearchPath = "SearchPathW"
71Const _FuncName_SetEnvironmentVariable = "SetEnvironmentVariableW"
72Const _FuncName_SetFileAttributes = "SetFileAttributesW"
73#else
74Const _FuncName_CompareString = "CompareStringA"
75Const _FuncName_CopyFile = "CopyFileA"
76Const _FuncName_CreateDirectory = "CreateDirectoryA"
77Const _FuncName_CreateEvent = "CreateEventA"
78Const _FuncName_CreateMutex = "CreateMutexA"
79Const _FuncName_CreateSemaphore = "CreateSemaphoreA"
80Const _FuncName_CreateWaitableTimer = "CreateWaitableTimerA"
81Const _FuncName_CreateFile = "CreateFileA"
82Const _FuncName_CreateFileMapping = "CreateFileMappingA"
83Const _FuncName_OpenFileMapping = "OpenFileMappingA"
84Const _FuncName_CreateMailslot = "CreateMailslotA"
85Const _FuncName_CreateProcess = "CreateProcessA"
86Const _FuncName_DeleteFile = "DeleteFileA"
87Const _FuncName_ExpandEnvironmentStrings = "ExpandEnvironmentStringsA"
88Const _FuncName_FatalAppExit = "FatalAppExitA"
89Const _FuncName_FindFirstChangeNotification = "FindFirstChangeNotificationA"
90Const _FuncName_FindFirstFile = "FindFirstFileA"
91Const _FuncName_FindNextFile = "FindNextFileA"
92Const _FuncName_FindResource = "FindResourceA"
93Const _FuncName_FormatMessage = "FormatMessageA"
94Const _FuncName_FreeEnvironmentStrings = "FreeEnvironmentStringsA"
95Const _FuncName_GetCompressedFileSize = "GetCompressedFileSizeA"
96Const _FuncName_GetComputerName = "GetComputerNameA"
97Const _FuncName_GetCurrentDirectory = "GetCurrentDirectoryA"
98Const _FuncName_GetDateFormat = "GetDateFormatA"
99Const _FuncName_GetDiskFreeSpace = "GetDiskFreeSpaceA"
100Const _FuncName_GetDiskFreeSpaceEx = "GetDiskFreeSpaceExA"
101Const _FuncName_GetVolumeInformation = "GetVolumeInformationA"
102Const _FuncName_GetDriveType = "GetDriveTypeA"
103Const _FuncName_GetEnvironmentVariable = "GetEnvironmentVariableA"
104Const _FuncName_GetEnvironmentStrings = "GetEnvironmentStringsA"
105Const _FuncName_GetFileAttributes = "GetFileAttributesA"
106Const _FuncName_GetFullPathName = "GetFullPathNameA"
107Const _FuncName_GetLogicalDriveStrings = "GetLogicalDriveStringsA"
108Const _FuncName_GetLongPathName = "GetLongPathNameA"
109Const _FuncName_GetModuleFileName = "GetModuleFileNameA"
110Const _FuncName_GetModuleHandle = "GetModuleHandleA"
111Const _FuncName_GetShortPathName = "GetShortPathNameA"
112Const _FuncName_GetStartupInfo = "GetStartupInfoA"
113Const _FuncName_GetSystemDirectory = "GetSystemDirectoryA"
114Const _FuncName_GetTempFileName = "GetTempFileNameA"
115Const _FuncName_GetTempPath = "GetTempPathA"
116Const _FuncName_GetTimeFormat = "GetTimeFormatA"
117Const _FuncName_GetUserName = "GetUserNameA"
118Const _FuncName_GetVersionEx = "GetVersionExA"
119Const _FuncName_GetWindowsDirectory = "GetWindowsDirectoryA"
120Const _FuncName_LCMapString = "LCMapStringA"
121Const _FuncName_LoadLibrary = "LoadLibraryA"
122Const _FuncName_LoadLibraryEx = "LoadLibraryExA"
123Const _FuncName_LookupPrivilegeValue = "LookupPrivilegeValueA"
124Const _FuncName_lstrcat = "lstrcatA"
125Const _FuncName_lstrcmp = "lstrcmpA"
126Const _FuncName_lstrcmpi = "lstrcmpiA"
127Const _FuncName_lstrcpy = "lstrcpyA"
128Const _FuncName_lstrcpyn = "lstrcpynA"
129Const _FuncName_MoveFile = "MoveFileA"
130Const _FuncName_OpenEvent = "OpenEventA"
131Const _FuncName_OpenMutex = "OpenMutexA"
132Const _FuncName_OpenSemaphore = "OpenSemaphoreA"
133Const _FuncName_OpenWaitableTimer = "OpenWaitableTimerA"
134Const _FuncName_RemoveDirectory = "RemoveDirectoryA"
135Const _FuncName_SetComputerName = "SetComputerNameA"
136Const _FuncName_SetCurrentDirectory = "SetCurrentDirectoryA"
137Const _FuncName_SearchPath = "SearchPathA"
138Const _FuncName_SetEnvironmentVariable = "SetEnvironmentVariableA"
139Const _FuncName_SetFileAttributes = "SetFileAttributesA"
140#endif
141
142
143'-------------------
144' default constants
145Const INVALID_HANDLE_VALUE = -1 As HANDLE
146Const INVALID_SET_FILE_POINTER = &HFFFFFFFF
147
148'-----------------
149' data structs
150
151'variable type - System
152TypeDef HFILE = Long
153Type _System_DeclareHandle_HANDLE:unused As DWord:End Type
154TypeDef HRSRC = *_System_DeclareHandle_HANDLE
155
156' File structure
157Type SECURITY_ATTRIBUTES
158    nLength As DWord
159    lpSecurityDescriptor As VoidPtr
160    bInheritHandle As BOOL
161End Type
162
163Type OVERLAPPED
164    Internal As ULONG_PTR
165    InternalHigh As ULONG_PTR
166    Offset As DWord
167    OffsetHigh As DWord
168    hEvent As HANDLE
169End Type
170
171' System time
172Type SYSTEMTIME
173    wYear As Word
174    wMonth As Word
175    wDayOfWeek As Word
176    wDay As Word
177    wHour As Word
178    wMinute As Word
179    wSecond As Word
180    wMilliseconds As Word
181End Type
182
183' Global Memory Flags
184Const GMEM_FIXED =          &H0000
185Const GMEM_MOVEABLE =       &H0002
186Const GMEM_NOCOMPACT =      &H0010
187Const GMEM_NODISCARD =      &H0020
188Const GMEM_ZEROINIT =       &H0040
189Const GMEM_MODIFY =         &H0080
190Const GMEM_DISCARDABLE =    &H0100
191Const GMEM_NOT_BANKED =     &H1000
192Const GMEM_SHARE =          &H2000
193Const GMEM_DDESHARE =       &H2000
194Const GMEM_INVALID_HANDLE = &H8000
195Const GHND =                GMEM_MOVEABLE or GMEM_ZEROINIT
196Const GPTR =                GMEM_FIXED or GMEM_ZEROINIT
197Const GMEM_DISCARDED =      &H4000
198
199' Locale flag
200Const LOCALE_NOUSEROVERRIDE = &H80000000
201
202'Critical Section
203Type CRITICAL_SECTION
204    DebugInfo As VoidPtr
205    LockCount As Long
206    RecursionCount As Long
207    OwningThread As HANDLE
208    LockSemaphore As HANDLE
209    SpinCount As ULONG_PTR
210End Type
211
212'Mutex
213Const MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS
214
215'----------------------
216' Kernel Operation API
217Declare Function InterlockedIncrement Lib "kernel32" (ByRef lpAddend As Long) As Long
218Declare Function InterlockedDecrement Lib "kernel32" (ByRef lpAddend As Long) As Long
219Declare Function InterlockedExchange Lib "kernel32" (ByRef Target As Long, Value As Long) As Long
220Declare Function InterlockedCompareExchange Lib "kernel32" (ByRef Destination As Long, Exchange As Long, Comperand As Long) As Long
221Declare Function InterlockedExchangeAdd Lib "kernel32" (ByRef Addend As Long, Value As Long) As Long
222#ifdef _WIN64
223Declare Function InterlockedCompareExchangePointer Lib "kernel32" (ByRef Destination As VoidPtr, Exchange As VoidPtr, Comperand As VoidPtr) As VoidPtr
224Declare Function InterlockedExchangePointer Lib "kernel32" (ByRef Target As VoidPtr, Value As VoidPtr) As VoidPtr
225#else
226Declare Function InterlockedCompareExchangePointer Lib "kernel32" Alias "InterlockedCompareExchange" (ByRef Destination As VoidPtr, Exchange As VoidPtr, Comperand As VoidPtr) As VoidPtr
227Declare Function InterlockedExchangePointer Lib "kernel32" Alias "InterlockedExchange" (ByRef Target As VoidPtr, Value As VoidPtr) As VoidPtr
228#endif
229
230
231Declare Function Beep Lib "kernel32" (dwFreq As DWord, dwDuration As DWord) As BOOL
232Declare Function CloseHandle Lib "kernel32" (hObject As HANDLE) As BOOL
233
234Declare Function CompareFileTime Lib "kernel32" (ByRef FileTime1 As FILETIME, ByRef FileTime2 As FILETIME) As Long
235
236Const NORM_IGNORECASE =     &H00000001
237Const NORM_IGNORENONSPACE = &H00000002
238Const NORM_IGNORESYMBOLS =  &H00000004
239Const SORT_STRINGSORT =     &H00001000
240Const NORM_IGNOREKANATYPE = &H00010000
241Const NORM_IGNOREWIDTH =    &H00020000
242Const CSTR_LESS_THAN =    1
243Const CSTR_EQUAL =        2
244Const CSTR_GREATER_THAN = 3
245Declare 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
246
247Declare Function CopyFile Lib "kernel32" Alias _FuncName_CopyFile (pExistingFileName As PCTSTR, pNewFileName As PCTSTR, bFailIfExists As BOOL) As BOOL
248Declare Function CreateDirectory Lib "kernel32" Alias _FuncName_CreateDirectory (pPathName As PCTSTR, pSecurityAttributes As *SECURITY_ATTRIBUTES) As BOOL
249Declare Function CreateEvent Lib "kernel32" Alias _FuncName_CreateEvent (pEventAttributes As *SECURITY_ATTRIBUTES, bManualReset As BOOL, bInitialState As BOOL, pName As PCTSTR) As HANDLE
250Declare Function CreateMutex Lib "kernel32" Alias _FuncName_CreateMutex (lpMutexAttributes As *SECURITY_ATTRIBUTES, bInitialOwner As BOOL, lpName As PCTSTR) As HANDLE
251Declare Function CreatePipe Lib "Kernel32" (
252    ByRef hReadPipe As HANDLE,
253    ByRef hWritePipe As HANDLE,
254    ByVal pPipeAttributes As *SECURITY_ATTRIBUTES,
255    ByVal nSize As DWORD) As Long
256Declare Function CreateSemaphore Lib "kernel32" Alias _FuncName_CreateSemaphore (pSemaphoreAttributes As *SECURITY_ATTRIBUTES, lInitialCount As Long, lMaximumCount As Long, pName As PCTSTR) As HANDLE
257
258TypeDef PTIMERAPCROUTINE = *Sub(lpArgToCompletionRoutine As VoidPtr, dwTimerLowValue As DWord, dwTimerHighValue As DWord)
259Declare Function CreateWaitableTimer Lib "kernel32" Alias _FuncName_CreateWaitableTimer (pTimerAttributes As *SECURITY_ATTRIBUTES, bManualReset As BOOL, pTimerName As PCTSTR) As HANDLE
260Declare Function OpenWaitableTimer Lib "kernel32" Alias _FuncName_OpenWaitableTimer (dwDesiredAccess As DWord, bInheritHandle As BOOL, pTimerName As PCTSTR) As HANDLE
261Declare 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
262Declare Function CancelWaitableTimer Lib "kernel32" (hTimer As HANDLE) As BOOL
263
264Const CREATE_NEW =        1
265Const CREATE_ALWAYS =     2
266Const OPEN_EXISTING =     3
267Const OPEN_ALWAYS =       4
268Const TRUNCATE_EXISTING = 5
269Const FILE_FLAG_WRITE_THROUGH =       &H80000000
270Const FILE_FLAG_OVERLAPPED =          &H40000000
271Const FILE_FLAG_NO_BUFFERING =        &H20000000
272Const FILE_FLAG_RANDOM_ACCESS =       &H10000000
273Const FILE_FLAG_SEQUENTIAL_SCAN =     &H08000000
274Const FILE_FLAG_DELETE_ON_CLOSE =     &H04000000
275Const FILE_FLAG_BACKUP_SEMANTICS =    &H02000000
276Const FILE_FLAG_POSIX_SEMANTICS =     &H01000000
277Const FILE_FLAG_OPEN_REPARSE_POINT =  &H00200000
278Const FILE_FLAG_OPEN_NO_RECALL =      &H00100000
279Declare 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
280
281Const FILE_MAP_COPY   = SECTION_QUERY
282Const FILE_MAP_WRITE   = SECTION_MAP_WRITE
283Const FILE_MAP_READ   = SECTION_MAP_READ
284Const FILE_MAP_ALL_ACCESS  =  SECTION_ALL_ACCESS
285Declare 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
286Declare Function OpenFileMapping Lib "kernel32" Alias _FuncName_OpenFileMapping (dwDesiredAccess As DWord, bInheritHandle As BOOL, pName As PCSTR) As HANDLE
287Declare Function MapViewOfFile Lib "kernel32" (hFileMappingObject As HANDLE, dwDesiredAccess As DWord, dwFileOffsetHigh As DWord, dwFileOffsetLow As DWord, dwNumberOfBytesToMap As DWord) As VoidPtr
288Declare Function MapViewOfFileEx Lib "kernel32" (hFileMappingObject As HANDLE, dwDesiredAccess As DWord, dwFileOffsetHigh As DWord, dwFileOffsetLow As DWord, dwNumberOfBytesToMap As DWord, lpBaseAddress As VoidPtr) As VoidPtr
289Declare Function FlushViewOfFile Lib "kernel32" (lpBaseAddress As VoidPtr, dwNumberOfBytesToFlush As DWord) As BOOL
290Declare Function UnmapViewOfFile Lib "kernel32" (lpBaseAddress As VoidPtr) As BOOL
291Declare Function CreateMailslot Lib "kernel32" Alias _FuncName_CreateMailslot (pName As PCTSTR, nMaxMessageSize As DWord, lReadTimeout As DWord, pSecurityAttributes As *SECURITY_ATTRIBUTES) As HANDLE
292
293Const DEBUG_PROCESS =              &H00000001
294Const DEBUG_ONLY_THIS_PROCESS =    &H00000002
295Const CREATE_SUSPENDED =           &H00000004
296Const DETACHED_PROCESS =           &H00000008
297Const CREATE_NEW_CONSOLE =         &H00000010
298Const NORMAL_PRIORITY_CLASS =      &H00000020
299Const IDLE_PRIORITY_CLASS =        &H00000040
300Const HIGH_PRIORITY_CLASS =        &H00000080
301Const REALTIME_PRIORITY_CLASS =    &H00000100
302Const CREATE_NEW_PROCESS_GROUP =   &H00000200
303Const CREATE_UNICODE_ENVIRONMENT = &H00000400
304Const CREATE_SEPARATE_WOW_VDM =    &H00000800
305Const CREATE_SHARED_WOW_VDM =      &H00001000
306Const CREATE_FORCEDOS =            &H00002000
307Const CREATE_DEFAULT_ERROR_MODE =  &H04000000
308Const CREATE_NO_WINDOW =           &H08000000
309Const PROFILE_USER =               &H10000000
310Const PROFILE_KERNEL =             &H20000000
311Const PROFILE_SERVER =             &H40000000
312
313Const STARTF_USESHOWWINDOW =    &H00000001
314Const STARTF_USESIZE =          &H00000002
315Const STARTF_USEPOSITION =      &H00000004
316Const STARTF_USECOUNTCHARS =    &H00000008
317Const STARTF_USEFILLATTRIBUTE = &H00000010
318Const STARTF_RUNFULLSCREEN =    &H00000020
319Const STARTF_FORCEONFEEDBACK =  &H00000040
320Const STARTF_FORCEOFFFEEDBACK = &H00000080
321Const STARTF_USESTDHANDLES =    &H00000100
322Const STARTF_USEHOTKEY =        &H00000200
323Type STARTUPINFOW
324    cb As DWord
325    lpReserved As LPWSTR
326    lpDesktop As LPWSTR
327    lpTitle As LPWSTR
328    dwX As DWord
329    dwY As DWord
330    dwXSize As DWord
331    dwYSize As DWord
332    dwXCountChars As DWord
333    dwYCountChars As DWord
334    dwFillAttribute As DWord
335    dwFlags As DWord
336    wShowWindow As Word
337    cbReserved2 As Word
338    lpReserved2 As *Byte
339    hStdInput As HANDLE
340    hStdOutput As HANDLE
341    hStdError As HANDLE
342End Type
343Type STARTUPINFOA
344    cb As DWord
345    lpReserved As LPSTR
346    lpDesktop As LPSTR
347    lpTitle As LPSTR
348    dwX As DWord
349    dwY As DWord
350    dwXSize As DWord
351    dwYSize As DWord
352    dwXCountChars As DWord
353    dwYCountChars As DWord
354    dwFillAttribute As DWord
355    dwFlags As DWord
356    wShowWindow As Word
357    cbReserved2 As Word
358    lpReserved2 As *Byte
359    hStdInput As HANDLE
360    hStdOutput As HANDLE
361    hStdError As HANDLE
362End Type
363#ifdef UNICODE
364TypeDef STARTUPINFO = STARTUPINFOW
365#else
366TypeDef STARTUPINFO = STARTUPINFOA
367#endif
368Type PROCESS_INFORMATION
369    hProcess As HANDLE
370    hThread As HANDLE
371    dwProcessId As DWord
372    dwThreadId As DWord
373End Type
374Declare 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
375
376TypeDef LPTHREAD_START_ROUTINE = *Function(lpThreadParameter As VoidPtr) As DWord
377Declare 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
378
379Declare Sub DebugBreak Lib "kernel32" ()
380Declare Sub DeleteCriticalSection Lib "kernel32" (ByRef CriticalSection As CRITICAL_SECTION)
381Declare Function DeleteFile Lib "kernel32" Alias _FuncName_DeleteFile (pFileName As PCTSTR) As BOOL
382Declare Function DeviceIoControl Lib "Kernel32" (
383    hDevice As HANDLE,
384    dwIoControlCode As DWord,
385    pInBuffer As VoidPtr,
386    nInBufferSize As DWord,
387    pOutBuffer As VoidPtr,
388    nOutBufferSize As DWord,
389    pBytesReturned As DWordPtr,
390    pOverlapped As *OVERLAPPED
391) As Long
392Declare Function DisableThreadLibraryCalls Lib "kernel32" (hLibModule As HINSTANCE) As BOOL
393Declare Function DosDateTimeToFileTime Lib "kernel32" (wFatDate As Word, wFatTime As Word, ByRef FileTime As FILETIME) As BOOL
394Declare 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
395Declare Sub EnterCriticalSection Lib "kernel32" (ByRef lpCriticalSection As CRITICAL_SECTION)
396Declare Sub ExitProcess Lib "kernel32" (dwExitCode As DWord)
397Declare Sub ExitThread Lib "kernel32" (dwExitCode As DWord)
398Declare Sub FatalAppExit Lib "kernel32" Alias _FuncName_FatalAppExit (Action As DWord, pMessageText As PCTSTR)
399Declare Function FileTimeToDosDateTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpFatDate As Word, ByRef lpFatTime As Word) As BOOL
400Declare Function FileTimeToLocalFileTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpLocalFileTime As FILETIME) As BOOL
401Declare Function FileTimeToSystemTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpSystemTime As SYSTEMTIME) As BOOL
402Declare Sub FillMemory Lib "kernel32" Alias "RtlFillMemory" (pDest As VoidPtr, stLength As SIZE_T, c As Byte)
403Declare Function FindClose Lib "kernel32" (hFindFile As HANDLE) As BOOL
404Declare Function FindCloseChangeNotification Lib "kernel32" (hChangeHandle As HANDLE) As BOOL
405Declare Function FindFirstChangeNotification Lib "kernel32" Alias _FuncName_FindFirstChangeNotification (
406    pPathName As PCTSTR,
407    bWatchSubtree As BOOL,
408    dwNotifyFilter As DWord
409) As HANDLE
410
411Type WIN32_FIND_DATAW
412    dwFileAttributes As DWord
413    ftCreationTime As FILETIME
414    ftLastAccessTime As FILETIME
415    ftLastWriteTime As FILETIME
416    nFileSizeHigh As DWord
417    nFileSizeLow As DWord
418    dwReserved0 As DWord
419    dwReserved1 As DWord
420    cFileName[ELM(MAX_PATH)] As WCHAR
421    cAlternateFileName[13] As WCHAR
422End Type
423Type WIN32_FIND_DATAA
424    dwFileAttributes As DWord
425    ftCreationTime As FILETIME
426    ftLastAccessTime As FILETIME
427    ftLastWriteTime As FILETIME
428    nFileSizeHigh As DWord
429    nFileSizeLow As DWord
430    dwReserved0 As DWord
431    dwReserved1 As DWord
432    cFileName[ELM(MAX_PATH)] As SByte
433    cAlternateFileName[13] As SByte
434End Type
435#ifdef UNICODE
436TypeDef WIN32_FIND_DATA = WIN32_FIND_DATAW
437#else
438TypeDef WIN32_FIND_DATA = WIN32_FIND_DATAA
439#endif
440TypeDef LPWIN32_FIND_DATA = *WIN32_FIND_DATA
441Declare Function FindFirstFile Lib "kernel32" Alias _FuncName_FindFirstFile (pFileName As PCTSTR, ByRef FindFildData As WIN32_FIND_DATA) As HANDLE
442Declare Function FindNextChangeNotification Lib "kernel32" (hChangeHandle As HANDLE) As BOOL
443Declare Function FindNextFile Lib "kernel32" Alias _FuncName_FindNextFile (hFindFile As HANDLE, ByRef FindFildData As WIN32_FIND_DATA) As BOOL
444Declare Function FlushFileBuffers Lib "kernel32" (hFile As HANDLE) As BOOL
445Declare Function FlushInstructionCache Lib "kernel32"(hProcess As HANDLE, pBaseAddress As VoidPtr, Size As SIZE_T) As BOOL
446
447Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H00000100
448Const FORMAT_MESSAGE_IGNORE_INSERTS =  &H00000200
449Const FORMAT_MESSAGE_FROM_STRING =     &H00000400
450Const FORMAT_MESSAGE_FROM_HMODULE =    &H00000800
451Const FORMAT_MESSAGE_FROM_SYSTEM =     &H00001000
452Const FORMAT_MESSAGE_ARGUMENT_ARRAY =  &H00002000
453Declare 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
454Declare Function FreeEnvironmentStrings Lib "kernel32" Alias _FuncName_FreeEnvironmentStrings (pszEnvironmentBlock As PCTSTR) As BOOL
455Declare Function FreeLibrary Lib "kernel32" (hLibModule As HINSTANCE) As BOOL
456Declare Sub FreeLibraryAndExitThread Lib "kernel32" (hModule As HANDLE, dwExitCode As DWord)
457Declare Function GetCommandLineA Lib "kernel32" () As PCSTR
458Declare Function GetCommandLineW Lib "kernel32" () As PCWSTR
459#ifdef UNICODE
460Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As PCWSTR
461#else
462Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As PCSTR
463#endif
464Declare Function GetCompressedFileSize Lib "kernel32" Alias _FuncName_GetCompressedFileSize (pFileName As PCTSTR, ByRef FileSizeHigh As DWord) As DWord
465
466Const MAX_COMPUTERNAME_LENGTH = 15
467Declare Function GetComputerName Lib "kernel32" Alias _FuncName_GetComputerName (pBuffer As PTSTR, ByRef nSize As Long) As Long
468
469Declare Function GetCurrentDirectory Lib "kernel32" Alias _FuncName_GetCurrentDirectory (nBufferLength As DWord, pBuffer As PTSTR) As DWord
470Declare Function GetCurrentProcess Lib "kernel32" () As HANDLE
471Declare Function GetCurrentProcessId Lib "kernel32" () As DWord
472Declare Function GetCurrentThread Lib "kernel32" () As HANDLE
473Declare Function GetCurrentThreadId Lib "kernel32" () As DWord
474
475Const DATE_SHORTDATE =        &H00000001
476Const DATE_LONGDATE =         &H00000002
477Const DATE_USE_ALT_CALENDAR = &H00000004
478Declare 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
479
480Declare Function GetDiskFreeSpace Lib "kernel32" Alias _FuncName_GetDiskFreeSpace (pRootPathName As PCTSTR, lpSectorsPerCluster As *DWord, pBytesPerSector As *DWord, pNumberOfFreeClusters As *DWord, pTotalNumberOfClusters As *DWord) As BOOL
481Declare 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
482
483Const DRIVE_UNKNOWN =     0
484Const DRIVE_NO_ROOT_DIR = 1
485Const DRIVE_REMOVABLE =   2
486Const DRIVE_FIXED =       3
487Const DRIVE_REMOTE =      4
488Const DRIVE_CDROM =       5
489Const DRIVE_RAMDISK =     6
490Declare 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
491Declare Function GetDriveType Lib "kernel32" Alias _FuncName_GetDriveType (lpRootPathName As PCTSTR) As DWord
492
493Declare Function GetEnvironmentVariable Lib "kernel32" Alias _FuncName_GetEnvironmentVariable (lpName As PCTSTR, lpBuffer As PTSTR, nSize As DWord) As DWord
494Declare Function GetEnvironmentStrings Lib "kernel32" Alias _FuncName_GetEnvironmentStrings () As VoidPtr
495Const STILL_ACTIVE = &H00000103
496Declare Function GetExitCodeProcess Lib "kernel32" (hProcess As HANDLE, ByRef lpExitCode As DWord) As BOOL
497Declare Function GetExitCodeThread Lib "kernel32" (hThread As HANDLE, ByRef lpExitCode As DWord) As BOOL
498
499Declare Function GetFileAttributes Lib "kernel32" Alias _FuncName_GetFileAttributes (lpFileName As PCTSTR) As DWord
500Type BY_HANDLE_FILE_INFORMATION
501    dwFileAttributes As DWord
502    ftCreationTime As FILETIME
503    ftLastAccessTime As FILETIME
504    ftLastWriteTime As FILETIME
505    dwVolumeSerialNumber As DWord
506    nFileSizeHigh As DWord
507    nFileSizeLow As DWord
508    nNumberOfLinks As DWord
509    nFileIndexHigh As DWord
510    nFileIndexLow As DWord
511End Type
512Declare Function GetFileInformationByHandle Lib "kernel32" (
513    ByVal hFile As HANDLE,
514    ByRef FileInformation As BY_HANDLE_FILE_INFORMATION
515) As BOOL
516Declare Function GetFileSize Lib "kernel32" (hFile As HANDLE, pFileSizeHigh As *DWord) As DWord
517Declare Function GetFileTime Lib "kernel32" (hFile As HANDLE, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As BOOL
518
519Const FILE_TYPE_UNKNOWN = &H0000
520Const FILE_TYPE_DISK =    &H0001
521Const FILE_TYPE_CHAR =    &H0002
522Const FILE_TYPE_PIPE =    &H0003
523Const FILE_TYPE_REMOTE =  &H8000
524Declare Function GetFileType Lib "kernel32" (hFile As HANDLE) As DWord
525
526Declare Function GetFullPathName Lib "kernel32" Alias _FuncName_GetFullPathName (lpFileName As PCSTR, nBufferLength As DWord, pBuffer As PSTR, lpFilePart As *DWord) As DWord
527Declare Function GetLastError Lib "kernel32" () As DWord
528Declare Sub GetLocalTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME)
529Declare Function GetLogicalDrives Lib "kernel32" () As DWord
530Declare Function GetLogicalDriveStrings Lib "kernel32" Alias _FuncName_GetLogicalDriveStrings (nBufferLength As DWord, pBuffer As PTSTR) As DWord
531Declare Function GetLongPathName Lib "kernel32" Alias _FuncName_GetLongPathName (lpszShortPath As LPCTSTR, lpszLongPath As LPTSTR, cchBuffer As DWord) As DWord
532Declare Function GetModuleFileName Lib "kernel32" Alias _FuncName_GetModuleFileName (hModule As HINSTANCE, lpFileName As PTSTR, nSize As DWord) As DWord
533Declare Function GetModuleHandle Lib "kernel32" Alias _FuncName_GetModuleHandle (lpModuleName As PTSTR) As HINSTANCE
534Declare Function GetOverlappedResult Lib "kernel32" (
535    hFile As HANDLE,
536    pOverlapped As *OVERLAPPED,
537    pNumberOfBytesTransferred AS *DWord,
538    bWait As BOOL
539) As BOOL
540Type SYSTEM_POWER_STATUS
541    ACLineStatus As Byte
542    BatteryFlag As Byte
543    BatteryLifePercent As Byte
544    Reserved1 As Byte
545    BatteryLifeTime As Long
546    BatteryFullLifeTime As Long
547End Type
548Declare Function GetSystemPowerStatus Lib "kernel32" (ByRef SystemPowerStatus As SYSTEM_POWER_STATUS) As Long
549Declare Function GetPriorityClass Lib "kernel32" (hProcess As HANDLE) As DWord
550Declare Function GetProcAddress Lib "kernel32" (hModule As HINSTANCE, pProcName As PCSTR) As DWord
551Declare Function GetProcessAffinityMask Lib "kernel32" (
552    hProcess As HANDLE,
553    ByRef ProcessAffinityMask As ULONG_PTR,
554    ByRef SystemAffinityMask As ULONG_PTR
555) As BOOL
556Declare Function GetProcessHeap Lib "kernel32" () As HANDLE
557Declare Function GetShortPathName Lib "kernel32" Alias _FuncName_GetShortPathName (
558    pszLongPath As PCTSTR,
559    pszShortPath As PTSTR,
560    cchBuffer As DWord
561) As DWord
562
563Declare Sub GetStartupInfo Lib "kernel32" Alias _FuncName_GetStartupInfo (ByRef StartupInfo As STARTUPINFO)
564
565Const STD_INPUT_HANDLE  = -10
566Const STD_OUTPUT_HANDLE = -11
567Const STD_ERROR_HANDLE  = -12
568Declare Function GetStdHandle Lib "kernel32" (nStdHandle As DWord) As HANDLE
569
570Declare Function GetSystemDirectory Lib "kernel32" Alias _FuncName_GetSystemDirectory (pBuffer As PTSTR, uSize As DWord) As DWord
571
572Type SYSTEM_INFO
573    dwOemId As DWord
574    dwPageSize As DWord
575    lpMinimumApplicationAddress As VoidPtr
576    lpMaximumApplicationAddress As VoidPtr
577    dwActiveProcessorMask As ULONG_PTR
578    dwNumberOfProcessors As DWord
579    dwProcessorType As DWord
580    dwAllocationGranularity As DWord
581    wProcessorLevel As Word
582    wProcessorRevision As Word
583End Type
584Declare Sub GetSystemInfo Lib "kernel32" (ByRef SystemInfo As SYSTEM_INFO)
585
586Declare Sub GetSystemTime Lib "kernel32" (ByRef SystemTime As SYSTEMTIME)
587Declare Sub GetSystemTimeAsFileTime Lib "kernel32" (ByRef SystemTimeAsFileTime As FILETIME)
588
589Declare Function GetTempFileName Lib "kernel32" Alias _FuncName_GetTempFileName (
590    pPathName As PCTSTR,
591    pPrefixString As PCTSTR,
592    uUnique As DWord,
593    pTempFileName As PTSTR
594) As DWord
595Declare Function GetTempPath Lib "kernel32" Alias _FuncName_GetTempPath (nBufferLength As DWord, lpBuffer As PTSTR) As DWord
596Declare Function GetThreadContext Lib "kernel32" (hThread As HANDLE, ByRef Context As CONTEXT) As BOOL
597/*
598Const THREAD_PRIORITY_LOWEST =        THREAD_BASE_PRIORITY_MIN
599Const THREAD_PRIORITY_BELOW_NORMAL =  THREAD_PRIORITY_LOWEST+1
600Const THREAD_PRIORITY_NORMAL =        0
601Const THREAD_PRIORITY_HIGHEST =       THREAD_BASE_PRIORITY_MAX
602Const THREAD_PRIORITY_ABOVE_NORMAL =  THREAD_PRIORITY_HIGHEST-1
603Const THREAD_PRIORITY_ERROR_RETURN =  LONG_MAX
604Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
605Const THREAD_PRIORITY_IDLE =          THREAD_BASE_PRIORITY_IDLE
606*/
607Declare Function GetThreadPriority Lib "kernel32" (hThread As HANDLE) As Long
608Declare Function GetThreadPriorityBoost Lib "kernel32" (
609    hThread As HANDLE,
610    ByRef pDisablePriorityBoost As BOOL) As BOOL
611Declare Function GetTickCount Lib "kernel32" () As DWord
612
613Const TIME_NOMINUTESORSECONDS  = &H00000001
614Const TIME_NOSECONDS           = &H00000002
615Const TIME_NOTIMEMARKER        = &H00000004
616Const TIME_FORCE24HOURFORMAT   = &H00000008
617Declare 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
618Declare Function GetUserDefaultLCID Lib "kernel32" () As LCID
619Declare Function GetUserName Lib "advapi32" Alias _FuncName_GetUserName (pBuffer As PTSTR, ByRef nSize As DWord) As BOOL
620Declare Function GetVersionEx Lib "kernel32" Alias _FuncName_GetVersionEx (ByRef VersionInformation As OSVERSIONINFO) As BOOL
621Declare Function GetWindowsDirectory Lib "kernel32" Alias _FuncName_GetWindowsDirectory (pBuffer As PTSTR, uSize As DWord) As DWord
622Declare Function GlobalAlloc Lib "kernel32" (uFlags As DWord, dwBytes As SIZE_T) As HGLOBAL
623Declare Function GlobalFrags Lib "kernel32" (hMem As HGLOBAL) As DWord
624Declare Function GlobalFree Lib "kernel32" (hMem As HGLOBAL) As HGLOBAL
625Declare Function GlobalHandle Lib "kernel32" (pMem As VoidPtr) As HGLOBAL
626Declare Function GlobalLock Lib "kernel32" (hMem As HGLOBAL) As VoidPtr
627
628Type MEMORYSTATUS
629    dwLength As DWord
630    dwMemoryLoad As DWord
631    dwTotalPhys As SIZE_T
632    dwAvailPhys As SIZE_T
633    dwTotalPageFile As SIZE_T
634    dwAvailPageFile As SIZE_T
635    dwTotalVirtual As SIZE_T
636    dwAvailVirtual As SIZE_T
637End Type
638Declare Sub GlobalMemoryStatus Lib "kernel32" (ByRef lpMemStatus As MEMORYSTATUS)
639
640Declare Function GlobalReAlloc Lib "kernel32" (hMem As HGLOBAL, dwBytes As SIZE_T, uFlags As DWord) As HGLOBAL
641Declare Function GlobalSize Lib "kernel32" (hMem As HGLOBAL) As SIZE_T
642Declare Function GlobalUnlock Lib "kernel32" (hMem As HGLOBAL) As BOOL
643Declare Function HeapAlloc Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, dwBytes As SIZE_T) As VoidPtr
644Declare Function HeapCreate Lib "kernel32" (flOptions As DWord, dwInitialSize As SIZE_T, dwMaximumSize As SIZE_T) As HANDLE
645Declare Function HeapDestroy Lib "kernel32" (hHeap As HANDLE) As Long
646Declare Function HeapFree Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr) As Long
647Declare Function HeapReAlloc Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr, dwBytes As SIZE_T) As VoidPtr
648Declare Function HeapSize Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr) As SIZE_T
649Declare Sub InitializeCriticalSection Lib "kernel32" (ByRef CriticalSection As CRITICAL_SECTION)
650Declare Function IsBadReadPtr Lib "kernel32" (lp As VoidPtr, ucb As ULONG_PTR) As BOOL
651Declare Function IsBadWritePtr Lib "kernel32" (lp As VoidPtr, ucb As ULONG_PTR) As BOOL
652Declare Function IsDBCSLeadByte Lib "kernel32" (TestChar As Byte) As BOOL
653
654#ifdef _WIN64
655Declare Function IsWow64Process Lib "kernel32" (hProcess As HANDLE, ByRef bWow64Process As BOOL) As BOOL
656#endif
657
658Const LCMAP_LOWERCASE           = &H00000100  ' lower case letters
659Const LCMAP_UPPERCASE           = &H00000200  ' upper case letters
660Const LCMAP_SORTKEY             = &H00000400  ' WC sort key (normalize)
661Const LCMAP_BYTEREV             = &H00000800  ' byte reversal
662Const LCMAP_HIRAGANA            = &H00100000  ' map katakana to hiragana
663Const LCMAP_KATAKANA            = &H00200000  ' map hiragana to katakana
664Const LCMAP_HALFWIDTH           = &H00400000  ' map double byte to single byte
665Const LCMAP_FULLWIDTH           = &H00800000  ' map single byte to double byte
666Const LCMAP_LINGUISTIC_CASING   = &H01000000  ' use linguistic rules for casing
667Const LCMAP_SIMPLIFIED_CHINESE  = &H02000000  ' map traditional chinese to simplified chinese
668Const LCMAP_TRADITIONAL_CHINESE = &H04000000  ' map simplified chinese to traditional chinese
669Declare 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
670
671Declare Sub LeaveCriticalSection Lib "kernel32" (ByRef lpCriticalSection As CRITICAL_SECTION)
672Declare Function LocalAlloc Lib "kernel32" (uFlags As DWord, uBytes As SIZE_T) As HLOCAL
673Declare Function LocalFileTimeToFileTime Lib "kernel32" (ByRef lpLocalFileTime As FILETIME, ByRef lpFileTime As FILETIME) As BOOL
674Declare Function LocalFree Lib "kernel32" (hMem As HLOCAL) As HLOCAL
675Declare Function LocalHandle Lib "kernel32" (pMem As VoidPtr) As HLOCAL
676Declare Function LocalLock Lib "kernel32" (hMem As HLOCAL) As VoidPtr
677Declare Function LocalReAlloc Lib "kernel32" (hMem As HLOCAL, dwBytes As SIZE_T, uFlags As DWord) As HLOCAL
678Declare Function LocalSize Lib "kernel32" (hMem As HLOCAL) As SIZE_T
679Declare Function LocalUnlock Lib "kernel32" (hMem As HLOCAL) As BOOL
680Declare Function LockFile Lib "kernel32" (hFile As DWord, dwFileOffsetLow As DWord, dwFileOffsetHigh As DWord, nNumberOfBytesToLockLow As DWord, nNumberOfBytesToLockHigh As DWord) As BOOL
681Declare Function LoadLibrary Lib "kernel32" Alias _FuncName_LoadLibrary (pLibFileName As PCTSTR) As HINSTANCE
682
683Const DONT_RESOLVE_DLL_REFERENCES   = &h00000001
684Const LOAD_LIBRARY_AS_DATAFILE      = &h00000002
685Const LOAD_WITH_ALTERED_SEARCH_PATH = &h00000008
686Const LOAD_IGNORE_CODE_AUTHZ_LEVEL  = &h00000010
687Declare Function LoadLibraryEx Lib "kernel32" Alias _FuncName_LoadLibraryEx (pLibFileName As PCTSTR, hFile As HANDLE, dwFlags As DWord) As HINSTANCE
688
689Declare Function lstrcat Lib "kernel32" Alias _FuncName_lstrcat (lpString1 As LPTSTR, lpString2 As LPCTSTR) As LPTSTR
690Declare Function lstrcmp Lib "kernel32" Alias _FuncName_lstrcmp (lpString1 As LPCTSTR, lpString2 As LPCTSTR) As Long
691Declare Function lstrcmpi Lib "kernel32" Alias _FuncName_lstrcmpi (lpString1 As LPCTSTR, lpString2 As LPCTSTR) As Long
692Declare Function lstrcpy Lib "kernel32" Alias _FuncName_lstrcpy (lpString1 As LPTSTR, lpString2 As LPCTSTR) As LPTSTR
693Declare Function lstrcpyn Lib "kernel32" Alias _FuncName_lstrcpyn (lpString1 As LPTSTR,ByVal lpString2 As LPCTSTR,ByVal iMaxLength As Long) As LPTSTR
694Declare Function lstrlenA Lib "kernel32" (lpString As LPCSTR) As Long
695Declare Function lstrlenW Lib "kernel32" (lpString As LPCWSTR) As Long
696#ifdef UNICODE
697Declare Function lstrlen Lib "kernel32" Alias "lstrlenW" (lpString As LPCWSTR) As Long
698#else
699Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (lpString As LPCSTR) As Long
700#endif
701Declare Sub memcpy Lib "kernel32" Alias "RtlMoveMemory" (pDest As VoidPtr, pSrc As VoidPtr, length As SIZE_T)
702Declare Function MoveFile Lib "kernel32" Alias _FuncName_MoveFile (lpExistingFileName As LPCTSTR, lpNewFileName As LPCTSTR) As BOOL
703Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As PVOID, pSrc As VoidPtr, length As SIZE_T)
704
705Declare Function MulDiv Lib "kernel32" (
706    nNumber As Long,
707    nNumerator As Long,
708    nDenominator As Long
709) As Long
710
711Const CP_ACP        = 0      'default to ANSI code page
712Const CP_OEMCP      = 1      'default to OEM  code page
713Const CP_MACCP      = 2      'default to MAC  code page
714Const CP_THREAD_ACP = 3      'current thread's ANSI code page
715Const CP_SYMBOL     = 42     'SYMBOL translations
716Const CP_UTF7       = 65000  'UTF-7 translation
717Const CP_UTF8       = 65001  'UTF-8 translation
718
719Declare Function MultiByteToWideChar Lib "kernel32" (CodePage As DWord, dwFlags As DWord, pMultiByteStr As PCSTR, cchMultiByte As Long, pWideCharStr As PWSTR, cchWideChar As Long) As Long
720Declare Function OpenEvent Lib "kernel32" Alias _FuncName_OpenEvent (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE
721Declare Function OpenMutex Lib "kernel32" Alias _FuncName_OpenMutex (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE
722Declare Function OpenSemaphore Lib "kernel32" Alias _FuncName_OpenSemaphore (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE
723Declare Function OpenProcess Lib "kernel32" (dwDesiredAccess As DWord, bInheritHandle As Long, dwProcessId As DWord) As HANDLE
724Declare Sub OutputDebugStringA Lib "kernel32" (pOutputString As PCSTR)
725Declare Sub OutputDebugStringW Lib "kernel32" (pOutputString As PCWSTR)
726#ifdef UNICODE
727Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringW" (pOutputString As PCWSTR)
728#else
729Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (pOutputString As PCSTR)
730#endif
731Declare Function PulseEvent Lib "kernel32" (hEvent As HANDLE) As BOOL
732Declare Sub RaiseException Lib "kernel32" (
733    dwExceptionCode As DWord,
734    dwExceptionFlags As DWord,
735    NumberOfArguments As DWord,
736    pArguments As *ULONG_PTR)
737Declare Function ReadFile Lib "kernel32" (hFile As HANDLE, lpBuffer As VoidPtr, nNumberOfBytesToRead As DWord, lpNumberOfBytesRead As DWordPtr, ByRef lpOverlapped As OVERLAPPED) As BOOL
738Declare Function ReadProcessMemory Lib "Kernel32"  (hProcess As HANDLE, lpBaseAddress As VoidPtr, lpBuffer As VoidPtr, nSize As SIZE_T, lpNumberOfBytesRead As *SIZE_T) As BOOL
739Declare Function ReleaseMutex Lib "kernel32" (hMutex As HANDLE) As BOOL
740Declare Function ReleaseSemaphore Lib "kernel32" (hSemaphore As HANDLE, lReleaseCount As Long, ByRef lpPreviousCount As Long) As BOOL
741Declare Function RemoveDirectory Lib "kernel32" Alias _FuncName_RemoveDirectory (lpPathName As LPCTSTR) As BOOL
742Declare Function ResetEvent Lib "kernel32" (hEvent As HANDLE) As BOOL
743Declare Function ResumeThread Lib "kernel32" (hThread As HANDLE) As DWord
744Declare Function SetComputerName Lib "kernel32" Alias _FuncName_SetComputerName (lpComputerName As LPCTSTR) As BOOL
745Declare Function SetCurrentDirectory Lib "kernel32" Alias _FuncName_SetCurrentDirectory (lpPathName As LPCTSTR) As BOOL
746Declare 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
747Declare Function SetEndOfFile Lib "kernel32" (hFile As HANDLE) As BOOL
748Declare Function SetEnvironmentVariable Lib "kernel32" Alias _FuncName_SetEnvironmentVariable (lpName As LPCTSTR, lpValue As LPTSTR) As BOOL
749
750Const SEM_FAILCRITICALERRORS = &h0001
751Const SEM_NOGPFAULTERRORBOX = &h0002
752Const SEM_NOALIGNMENTFAULTEXCEPT = &h0004
753Const SEM_NOOPENFILEERRORBOX = &h8000
754Declare Function SetErrorMode Lib "kernel32" (uMode As DWord) As DWord
755Declare Function SetEvent Lib "kernel32" (hEvent As HANDLE) As BOOL
756Declare Function SetFileAttributes Lib "kernel32" Alias _FuncName_SetFileAttributes (lpFileName As LPCTSTR, dwFileAttributes As DWord) As BOOL
757
758Const FILE_BEGIN =   0
759Const FILE_CURRENT = 1
760Const FILE_END =     2
761Declare Function SetFilePointer Lib "kernel32" (hFile As HANDLE, lDistanceToMove As Long, lpDistanceToMoveHigh As DWordPtr, dwMoveMethod As DWord) As DWord
762
763Declare Function SetFileTime Lib "kernel32" (hFile As HANDLE, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As BOOL
764Declare Function SetLastError Lib "kernel32" (dwErrCode As DWord)
765Declare Function SetLastErrorEx Lib "kernel32" (dwErrCode As DWord, dwType As DWord)
766Declare Function SetLocalTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME) As BOOL
767Declare Function SetPriorityClass Lib "kernel32" (hProcess As HANDLE, dwPriorityClass As DWord) As BOOL
768Declare Function SetThreadContext Lib "kernel32" (hThread As HANDLE, ByRef Context As CONTEXT) As BOOL
769Declare Function SetThreadPriority Lib "kernel32" (hThread As HANDLE, nPriority As Long) As BOOL
770Declare Function SetThreadPriorityBoost Lib "kernel32" (
771    hThread As HANDLE,
772    DisablePriorityBoost As BOOL
773) As BOOL
774
775TypeDef PTOP_LEVEL_EXCEPTION_FILTER = *Function(ByRef ExceptionInfo As EXCEPTION_POINTERS) As Long
776
777Declare Function SetUnhandledExceptionFilter Lib "kernel32" (pTopLevelExceptionFilter As PTOP_LEVEL_EXCEPTION_FILTER) As PTOP_LEVEL_EXCEPTION_FILTER
778
779Const INFINITE = &HFFFFFFFF
780Declare Sub Sleep Lib "kernel32" (dwMilliseconds As DWord)
781Declare Function SleepEx Lib "kernel32" (dwMilliseconds As DWord, bAlertable As BOOL) As DWord
782
783Declare Function SuspendThread Lib "kernel32" (hThread As HANDLE) As DWord
784Declare Function SystemTimeToFileTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME, ByRef lpFileTime As FILETIME) As BOOL
785Declare Function TerminateProcess Lib "kernel32" (hProcess As HANDLE, dwExitCode As DWord) As BOOL
786Declare Function TerminateThread Lib "kernel32" (hThread As HANDLE, dwExitCode As DWord) As BOOL
787Declare Function TlsAlloc Lib "kernel32" () As DWord
788Declare Function TlsFree Lib "kernel32" (dwTlsIndex As DWord) As BOOL
789Declare Function TlsGetValue Lib "kernel32" (dwTlsIndex As DWord) As VoidPtr
790Declare Function TlsSetValue Lib "kernel32" (dwTlsIndex As DWord, pTlsValue As VoidPtr) As BOOL
791Declare Function UnlockFile Lib "kernel32" (hFile As HANDLE, dwFileOffsetLow As DWord, dwFileOffsetHigh As DWord, nNumberOfBytesToUnlockLow As DWord, nNumberOfBytesToUnlockHigh As DWord) As BOOL
792Declare Function UnhandledExceptionFilter Lib "kernel32" (ByRef ExceptionInfo As EXCEPTION_POINTERS) As Long
793Declare Function VirtualAlloc Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T, flAllocationType As DWord, flProtect As DWord) As VoidPtr
794Declare Function VirtualFree Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T, dwFreeType As DWord) As BOOL
795Declare Function VirtualLock Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T) As BOOL
796Declare Function VirtualProtect Lib "kernel32" (
797    pAddress As VoidPtr,
798    Size As SIZE_T,
799    flNewProtect As DWord,
800    ByRef flOldProtect As DWord
801) As BOOL
802Declare Function VirtualProtectEx Lib "kernel32" (
803    hProcess As HANDLE,
804    pAddress As VoidPtr,
805    Size As SIZE_T,
806    flNewProtect As DWord,
807    ByRef flOldProtect As DWord
808) As BOOL
809Declare Function VirtualQuery Lib "kernel32" (
810    pAddress As VoidPtr,
811    ByRef mbi As MEMORY_BASIC_INFORMATION,
812    Length As SIZE_T
813) As SIZE_T
814Declare Function VirtualQueryEx Lib "kernel32" (
815    hProcess As HANDLE,
816    pAddress As VoidPtr,
817    ByRef mbi As MEMORY_BASIC_INFORMATION,
818    Length As SIZE_T
819) As SIZE_T
820Declare Function VirtualUnlock Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T) As BOOL
821Declare Function WaitForMultipleObjects Lib "kernel32" (nCount As DWord, pHandles As *HANDLE, fWaitAll As BOOL, dwMilliseconds As DWord) As DWord
822Declare Function WaitForMultipleObjectsEx Lib "kernel32" (nCount As DWord, pHandles As *HANDLE, fWaitAll As BOOL, dwMilliseconds As DWord, bAlertable As BOOL) As DWord
823Declare Function WaitForSingleObject Lib "kernel32" (hHandle As HANDLE, dwMilliseconds As DWord) As DWord
824Declare Function WaitForSingleObjectEx Lib "kernel32" (hHandle As HANDLE, dwMilliseconds As DWord, bAlertable As BOOL) As DWord
825
826Const WC_COMPOSITECHECK    = &H00000200
827Const WC_DISCARDNS         = &H00000010
828Const WC_SEPCHARS          = &H00000020
829Const WC_DEFAULTCHAR       = &H00000040
830Const WC_NO_BEST_FIT_CHARS = &H00000400
831Declare Function WideCharToMultiByte Lib "Kernel32" (
832    CodePage As DWord,
833    dwFlags As DWord,
834    pWideCharStr As PCWSTR,
835    cchWideChar As Long,
836    pMultiByteStr As PSTR,
837    cbMultiByte As Long,
838    pDefaultChar As PCSTR,
839    pUsedDefaultChar As *BOOL
840) As Long
841
842Declare Function WriteFile Lib "kernel32" (hFile As HANDLE, lpBuffer As VoidPtr, nNumberOfBytesToWrite As DWord, lpNumberOfBytesWritten As DWordPtr, ByRef lpOverlapped As OVERLAPPED) As BOOL
843Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (Destination As VoidPtr, dwLength As DWord)
844
845'
846'  Wait functions' results.
847'
848Const WAIT_FAILED = (&hFFFFFFFF As DWord)
849Const WAIT_OBJECT_0 = ((STATUS_WAIT_0 ) + 0)
850
851Const WAIT_ABANDONED = ((STATUS_ABANDONED_WAIT_0 ) + 0)
852Const WAIT_ABANDONED_0 = ((STATUS_ABANDONED_WAIT_0 ) + 0)
853
854Const WAIT_IO_COMPLETION = STATUS_USER_APC
855
856Declare Function FindResource Lib "kernel32" Alias _FuncName_FindResource (hInstance As HINSTANCE, lpName As LPCTSTR, lpType As LPCTSTR) As HRSRC
857Declare Function LoadResource Lib "kernel32" (hModule As HMODULE, hResInfo As HRSRC) As HGLOBAL
858Declare Function FreeResource Lib "kernel32" (hResData As HGLOBAL) As BOOL
859Declare Function LockResource Lib "kernel32" (hResData As HGLOBAL) As VoidPtr
860Declare Function SizeofResource Lib "kernel32" (hModule As HANDLE, hResInfo As HRSRC) As DWord
861
862Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias _FuncName_ExpandEnvironmentStrings (lpSrc As LPCTSTR, lpDst As LPTSTR, nSize As DWord) As DWord
863
864Type DCB
865    DCBlength As DWord
866    BaudRate As DWord
867    fBitFields As DWord
868    wReserved As Word
869    XonLim As Word
870    XoffLim As Word
871    ByteSize As Byte
872    Parity As Byte
873    StopBits As Byte
874    XonChar As CHAR
875    XoffChar As CHAR
876    ErrorChar As CHAR
877    EofChar As CHAR
878    EvtChar As CHAR
879    wReserved1 As Word
880End Type
881
882Type COMMTIMEOUTS
883    ReadIntervalTimeout As DWord
884    ReadTotalTimeoutMultiplier As DWord
885    ReadTotalTimeoutConstant As DWord
886    WriteTotalTimeoutMultiplier As DWord
887    WriteTotalTimeoutConstant As DWord
888End Type
889Type COMSTAT
890 fCoBitFlds As Long 'See Comment in Win32API.Txt
891 cbInQue As DWord
892 cbOutQue As DWord
893End Type
894Declare Function SetCommState Lib "kernel32" (hCommDev As HANDLE, ByRef dcb As DCB) As BOOL
895Declare Function SetCommTimeouts Lib "kernel32" (hFile As HANDLE ,ByRef pCommTimeouts As COMMTIMEOUTS) As BOOL
896Declare Function ClearCommError Lib "kernel32" (hCommDevs As HANDLE, ByRef Errors As DWord, ByRef Stat As COMSTAT) As BOOL
897Declare Function EscapeCommFunction Lib "kernel32" (nCid As HANDLE, ByVal nFunc As DWord) As BOOL
898Declare Function GetCommModemStatus Lib "kernel32" (hFile As HANDLE, ByRef ModemStat As DWord) As BOOL
899Declare Function SetCommMask Lib "kernel32" (hFile As HANDLE, dwEvtMask As DWord) As BOOL
900Declare Function WaitCommEvent Lib "kernel32" (hFile As HANDLE, ByRef EvtMask As DWord, lpOverlapped As *OVERLAPPED)  As BOOL
901
902Declare Function OpenProcessToken Lib "advapi32" (ProcessHandle As HANDLE, DesiredAccess As DWord, ByRef TokenHandle As HANDLE) As BOOL
903Declare Function LookupPrivilegeValue Lib "advapi32" Alias _FuncName_LookupPrivilegeValue (lpSystemName As LPCTSTR, lpName As LPCTSTR, ByRef Luid As LUID) As Long
904Declare Function AdjustTokenPrivileges Lib "advapi32" (TokenHandle As Long, DisableAllPrivileges As Long,_
905    ByRef NewState As TOKEN_PRIVILEGES, BufferLength As Long,
906    ByRef PreviousState As TOKEN_PRIVILEGES, ByRef ReturnLength As Long) As Long
907
908#endif '_INC_SYSTEM
Note: See TracBrowser for help on using the repository browser.