source: trunk/Include/api_system.sbp@ 328

Last change on this file since 328 was 328, checked in by dai, 17 years ago

x64版のInterlockedIncrement関数の簡易版を用意。(#135に関連する)

File size: 48.9 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'Lmcons.ab
216Const UNLEN = 256
217
218'----------------------
219' Kernel Operation API
220#ifdef _WIN64
221Function InterlockedIncrement(ByRef lpAddend As Long) As Long
222 lpAddend++
223 Return lpAddend
224End Function
225Function InterlockedDecrement(ByRef lpAddend As Long) As Long
226 lpAddend--
227 Return lpAddend
228End Function
229Function InterlockedExchange(ByRef Target As Long, Value As Long) As Long
230 Target = Value
231 Return Target
232End Function
233Function InterlockedCompareExchange(ByRef Destination As Long, Exchange As Long, Comperand As Long) As Long
234 InterlockedCompareExchange = Destination
235 If Destination = Comperand Then
236 Destination = Exchange
237 End If
238End Function
239Function InterlockedExchangeAdd(ByRef Addend As Long, Value As Long) As Long
240 InterlockedExchangeAdd = Addend
241 Addend += Value
242End Function
243Function InterlockedExchangePointer(ByRef Target As VoidPtr, Value As VoidPtr) As VoidPtr
244 Target = Value
245 Return Target
246End Function
247Function InterlockedCompareExchangePointer(ByRef Destination As VoidPtr, Exchange As VoidPtr, Comperand As VoidPtr) As VoidPtr
248 InterlockedCompareExchangePointer = Destination
249 If Destination = Comperand Then
250 Destination = Exchange
251 End If
252End Function
253#else
254Declare Function InterlockedIncrement Lib "kernel32" (ByRef lpAddend As Long) As Long
255Declare Function InterlockedDecrement Lib "kernel32" (ByRef lpAddend As Long) As Long
256Declare Function InterlockedExchange Lib "kernel32" (ByRef Target As Long, Value As Long) As Long
257Declare Function InterlockedCompareExchange Lib "kernel32" (ByRef Destination As Long, Exchange As Long, Comperand As Long) As Long
258Declare Function InterlockedExchangeAdd Lib "kernel32" (ByRef Addend As Long, Value As Long) As Long
259Declare Function InterlockedCompareExchangePointer Lib "kernel32" Alias "InterlockedCompareExchange" (ByRef Destination As VoidPtr, Exchange As VoidPtr, Comperand As VoidPtr) As VoidPtr
260Declare Function InterlockedExchangePointer Lib "kernel32" Alias "InterlockedExchange" (ByRef Target As VoidPtr, Value As VoidPtr) As VoidPtr
261#endif
262
263
264Declare Function Beep Lib "kernel32" (dwFreq As DWord, dwDuration As DWord) As BOOL
265Declare Function CloseHandle Lib "kernel32" (hObject As HANDLE) As BOOL
266
267Declare Function CompareFileTime Lib "kernel32" (ByRef FileTime1 As FILETIME, ByRef FileTime2 As FILETIME) As Long
268
269Const NORM_IGNORECASE = &H00000001
270Const NORM_IGNORENONSPACE = &H00000002
271Const NORM_IGNORESYMBOLS = &H00000004
272Const SORT_STRINGSORT = &H00001000
273Const NORM_IGNOREKANATYPE = &H00010000
274Const NORM_IGNOREWIDTH = &H00020000
275Const CSTR_LESS_THAN = 1
276Const CSTR_EQUAL = 2
277Const CSTR_GREATER_THAN = 3
278Declare 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
279
280Declare Function CopyFile Lib "kernel32" Alias _FuncName_CopyFile (pExistingFileName As PCTSTR, pNewFileName As PCTSTR, bFailIfExists As BOOL) As BOOL
281Declare Function CreateDirectory Lib "kernel32" Alias _FuncName_CreateDirectory (pPathName As PCTSTR, pSecurityAttributes As *SECURITY_ATTRIBUTES) As BOOL
282Declare Function CreateEvent Lib "kernel32" Alias _FuncName_CreateEvent (pEventAttributes As *SECURITY_ATTRIBUTES, bManualReset As BOOL, bInitialState As BOOL, pName As PCTSTR) As HANDLE
283Declare Function CreateMutex Lib "kernel32" Alias _FuncName_CreateMutex (lpMutexAttributes As *SECURITY_ATTRIBUTES, bInitialOwner As BOOL, lpName As PCTSTR) As HANDLE
284Declare Function CreatePipe Lib "Kernel32" (
285 ByRef hReadPipe As HANDLE,
286 ByRef hWritePipe As HANDLE,
287 ByVal pPipeAttributes As *SECURITY_ATTRIBUTES,
288 ByVal nSize As DWord) As Long
289Declare Function CreateSemaphore Lib "kernel32" Alias _FuncName_CreateSemaphore (pSemaphoreAttributes As *SECURITY_ATTRIBUTES, lInitialCount As Long, lMaximumCount As Long, pName As PCTSTR) As HANDLE
290
291TypeDef PTIMERAPCROUTINE = *Sub(lpArgToCompletionRoutine As VoidPtr, dwTimerLowValue As DWord, dwTimerHighValue As DWord)
292Declare Function CreateWaitableTimer Lib "kernel32" Alias _FuncName_CreateWaitableTimer (pTimerAttributes As *SECURITY_ATTRIBUTES, bManualReset As BOOL, pTimerName As PCTSTR) As HANDLE
293Declare Function OpenWaitableTimer Lib "kernel32" Alias _FuncName_OpenWaitableTimer (dwDesiredAccess As DWord, bInheritHandle As BOOL, pTimerName As PCTSTR) As HANDLE
294Declare 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
295Declare Function CancelWaitableTimer Lib "kernel32" (hTimer As HANDLE) As BOOL
296
297Const CREATE_NEW = 1
298Const CREATE_ALWAYS = 2
299Const OPEN_EXISTING = 3
300Const OPEN_ALWAYS = 4
301Const TRUNCATE_EXISTING = 5
302Const FILE_FLAG_WRITE_THROUGH = &H80000000
303Const FILE_FLAG_OVERLAPPED = &H40000000
304Const FILE_FLAG_NO_BUFFERING = &H20000000
305Const FILE_FLAG_RANDOM_ACCESS = &H10000000
306Const FILE_FLAG_SEQUENTIAL_SCAN = &H08000000
307Const FILE_FLAG_DELETE_ON_CLOSE = &H04000000
308Const FILE_FLAG_BACKUP_SEMANTICS = &H02000000
309Const FILE_FLAG_POSIX_SEMANTICS = &H01000000
310Const FILE_FLAG_OPEN_REPARSE_POINT = &H00200000
311Const FILE_FLAG_OPEN_NO_RECALL = &H00100000
312Declare 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
313
314Const FILE_MAP_COPY = SECTION_QUERY
315Const FILE_MAP_WRITE = SECTION_MAP_WRITE
316Const FILE_MAP_READ = SECTION_MAP_READ
317Const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS
318Declare 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
319Declare Function OpenFileMapping Lib "kernel32" Alias _FuncName_OpenFileMapping (dwDesiredAccess As DWord, bInheritHandle As BOOL, pName As PCSTR) As HANDLE
320Declare Function MapViewOfFile Lib "kernel32" (hFileMappingObject As HANDLE, dwDesiredAccess As DWord, dwFileOffsetHigh As DWord, dwFileOffsetLow As DWord, dwNumberOfBytesToMap As DWord) As VoidPtr
321Declare Function MapViewOfFileEx Lib "kernel32" (hFileMappingObject As HANDLE, dwDesiredAccess As DWord, dwFileOffsetHigh As DWord, dwFileOffsetLow As DWord, dwNumberOfBytesToMap As DWord, lpBaseAddress As VoidPtr) As VoidPtr
322Declare Function FlushViewOfFile Lib "kernel32" (lpBaseAddress As VoidPtr, dwNumberOfBytesToFlush As DWord) As BOOL
323Declare Function UnmapViewOfFile Lib "kernel32" (lpBaseAddress As VoidPtr) As BOOL
324Declare Function CreateMailslot Lib "kernel32" Alias _FuncName_CreateMailslot (pName As PCTSTR, nMaxMessageSize As DWord, lReadTimeout As DWord, pSecurityAttributes As *SECURITY_ATTRIBUTES) As HANDLE
325
326Const DEBUG_PROCESS = &H00000001
327Const DEBUG_ONLY_THIS_PROCESS = &H00000002
328Const CREATE_SUSPENDED = &H00000004
329Const DETACHED_PROCESS = &H00000008
330Const CREATE_NEW_CONSOLE = &H00000010
331Const NORMAL_PRIORITY_CLASS = &H00000020
332Const IDLE_PRIORITY_CLASS = &H00000040
333Const HIGH_PRIORITY_CLASS = &H00000080
334Const REALTIME_PRIORITY_CLASS = &H00000100
335Const CREATE_NEW_PROCESS_GROUP = &H00000200
336Const CREATE_UNICODE_ENVIRONMENT = &H00000400
337Const CREATE_SEPARATE_WOW_VDM = &H00000800
338Const CREATE_SHARED_WOW_VDM = &H00001000
339Const CREATE_FORCEDOS = &H00002000
340Const CREATE_DEFAULT_ERROR_MODE = &H04000000
341Const CREATE_NO_WINDOW = &H08000000
342Const PROFILE_USER = &H10000000
343Const PROFILE_KERNEL = &H20000000
344Const PROFILE_SERVER = &H40000000
345
346Const STARTF_USESHOWWINDOW = &H00000001
347Const STARTF_USESIZE = &H00000002
348Const STARTF_USEPOSITION = &H00000004
349Const STARTF_USECOUNTCHARS = &H00000008
350Const STARTF_USEFILLATTRIBUTE = &H00000010
351Const STARTF_RUNFULLSCREEN = &H00000020
352Const STARTF_FORCEONFEEDBACK = &H00000040
353Const STARTF_FORCEOFFFEEDBACK = &H00000080
354Const STARTF_USESTDHANDLES = &H00000100
355Const STARTF_USEHOTKEY = &H00000200
356Type STARTUPINFOW
357 cb As DWord
358 lpReserved As LPWSTR
359 lpDesktop As LPWSTR
360 lpTitle As LPWSTR
361 dwX As DWord
362 dwY As DWord
363 dwXSize As DWord
364 dwYSize As DWord
365 dwXCountChars As DWord
366 dwYCountChars As DWord
367 dwFillAttribute As DWord
368 dwFlags As DWord
369 wShowWindow As Word
370 cbReserved2 As Word
371 lpReserved2 As *Byte
372 hStdInput As HANDLE
373 hStdOutput As HANDLE
374 hStdError As HANDLE
375End Type
376Type STARTUPINFOA
377 cb As DWord
378 lpReserved As LPSTR
379 lpDesktop As LPSTR
380 lpTitle As LPSTR
381 dwX As DWord
382 dwY As DWord
383 dwXSize As DWord
384 dwYSize As DWord
385 dwXCountChars As DWord
386 dwYCountChars As DWord
387 dwFillAttribute As DWord
388 dwFlags As DWord
389 wShowWindow As Word
390 cbReserved2 As Word
391 lpReserved2 As *Byte
392 hStdInput As HANDLE
393 hStdOutput As HANDLE
394 hStdError As HANDLE
395End Type
396#ifdef UNICODE
397TypeDef STARTUPINFO = STARTUPINFOW
398#else
399TypeDef STARTUPINFO = STARTUPINFOA
400#endif
401Type PROCESS_INFORMATION
402 hProcess As HANDLE
403 hThread As HANDLE
404 dwProcessId As DWord
405 dwThreadId As DWord
406End Type
407Declare 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
408
409TypeDef LPTHREAD_START_ROUTINE = *Function(lpThreadParameter As VoidPtr) As DWord
410Declare 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
411
412Declare Sub DebugBreak Lib "kernel32" ()
413Declare Sub DeleteCriticalSection Lib "kernel32" (ByRef CriticalSection As CRITICAL_SECTION)
414Declare Function DeleteFile Lib "kernel32" Alias _FuncName_DeleteFile (pFileName As PCTSTR) As BOOL
415Declare Function DeviceIoControl Lib "Kernel32" (
416 hDevice As HANDLE,
417 dwIoControlCode As DWord,
418 pInBuffer As VoidPtr,
419 nInBufferSize As DWord,
420 pOutBuffer As VoidPtr,
421 nOutBufferSize As DWord,
422 pBytesReturned As DWordPtr,
423 pOverlapped As *OVERLAPPED
424) As Long
425Declare Function DisableThreadLibraryCalls Lib "kernel32" (hLibModule As HINSTANCE) As BOOL
426Declare Function DosDateTimeToFileTime Lib "kernel32" (wFatDate As Word, wFatTime As Word, ByRef FileTime As FILETIME) As BOOL
427Declare 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
428Declare Sub EnterCriticalSection Lib "kernel32" (ByRef lpCriticalSection As CRITICAL_SECTION)
429Declare Sub ExitProcess Lib "kernel32" (dwExitCode As DWord)
430Declare Sub ExitThread Lib "kernel32" (dwExitCode As DWord)
431Declare Sub FatalAppExit Lib "kernel32" Alias _FuncName_FatalAppExit (Action As DWord, pMessageText As PCTSTR)
432Declare Function FileTimeToDosDateTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpFatDate As Word, ByRef lpFatTime As Word) As BOOL
433Declare Function FileTimeToLocalFileTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpLocalFileTime As FILETIME) As BOOL
434Declare Function FileTimeToSystemTime Lib "kernel32" (ByRef lpFileTime As FILETIME, ByRef lpSystemTime As SYSTEMTIME) As BOOL
435Declare Sub FillMemory Lib "kernel32" Alias "RtlFillMemory" (pDest As VoidPtr, stLength As SIZE_T, c As Byte)
436Declare Function FindClose Lib "kernel32" (hFindFile As HANDLE) As BOOL
437Declare Function FindCloseChangeNotification Lib "kernel32" (hChangeHandle As HANDLE) As BOOL
438Declare Function FindFirstChangeNotification Lib "kernel32" Alias _FuncName_FindFirstChangeNotification (
439 pPathName As PCTSTR,
440 bWatchSubtree As BOOL,
441 dwNotifyFilter As DWord
442) As HANDLE
443
444Type WIN32_FIND_DATAW
445 dwFileAttributes As DWord
446 ftCreationTime As FILETIME
447 ftLastAccessTime As FILETIME
448 ftLastWriteTime As FILETIME
449 nFileSizeHigh As DWord
450 nFileSizeLow As DWord
451 dwReserved0 As DWord
452 dwReserved1 As DWord
453 cFileName[ELM(MAX_PATH)] As WCHAR
454 cAlternateFileName[13] As WCHAR
455End Type
456Type WIN32_FIND_DATAA
457 dwFileAttributes As DWord
458 ftCreationTime As FILETIME
459 ftLastAccessTime As FILETIME
460 ftLastWriteTime As FILETIME
461 nFileSizeHigh As DWord
462 nFileSizeLow As DWord
463 dwReserved0 As DWord
464 dwReserved1 As DWord
465 cFileName[ELM(MAX_PATH)] As SByte
466 cAlternateFileName[13] As SByte
467End Type
468#ifdef UNICODE
469TypeDef WIN32_FIND_DATA = WIN32_FIND_DATAW
470#else
471TypeDef WIN32_FIND_DATA = WIN32_FIND_DATAA
472#endif
473TypeDef LPWIN32_FIND_DATA = *WIN32_FIND_DATA
474Declare Function FindFirstFile Lib "kernel32" Alias _FuncName_FindFirstFile (pFileName As PCTSTR, ByRef FindFildData As WIN32_FIND_DATA) As HANDLE
475Declare Function FindNextChangeNotification Lib "kernel32" (hChangeHandle As HANDLE) As BOOL
476Declare Function FindNextFile Lib "kernel32" Alias _FuncName_FindNextFile (hFindFile As HANDLE, ByRef FindFildData As WIN32_FIND_DATA) As BOOL
477Declare Function FlushFileBuffers Lib "kernel32" (hFile As HANDLE) As BOOL
478Declare Function FlushInstructionCache Lib "kernel32"(hProcess As HANDLE, pBaseAddress As VoidPtr, Size As SIZE_T) As BOOL
479
480Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H00000100
481Const FORMAT_MESSAGE_IGNORE_INSERTS = &H00000200
482Const FORMAT_MESSAGE_FROM_STRING = &H00000400
483Const FORMAT_MESSAGE_FROM_HMODULE = &H00000800
484Const FORMAT_MESSAGE_FROM_SYSTEM = &H00001000
485Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H00002000
486Declare 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
487Declare Function FreeEnvironmentStrings Lib "kernel32" Alias _FuncName_FreeEnvironmentStrings (pszEnvironmentBlock As PCTSTR) As BOOL
488Declare Function FreeLibrary Lib "kernel32" (hLibModule As HINSTANCE) As BOOL
489Declare Sub FreeLibraryAndExitThread Lib "kernel32" (hModule As HANDLE, dwExitCode As DWord)
490Declare Function GetCommandLineA Lib "kernel32" () As PCSTR
491Declare Function GetCommandLineW Lib "kernel32" () As PCWSTR
492#ifdef UNICODE
493Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As PCWSTR
494#else
495Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As PCSTR
496#endif
497Declare Function GetCompressedFileSize Lib "kernel32" Alias _FuncName_GetCompressedFileSize (pFileName As PCTSTR, ByRef FileSizeHigh As DWord) As DWord
498
499Const MAX_COMPUTERNAME_LENGTH = 15
500Declare Function GetComputerName Lib "kernel32" Alias _FuncName_GetComputerName (pBuffer As PTSTR, ByRef nSize As DWord) As BOOL
501
502Declare Function GetCurrentDirectory Lib "kernel32" Alias _FuncName_GetCurrentDirectory (nBufferLength As DWord, pBuffer As PTSTR) As DWord
503Declare Function GetCurrentProcess Lib "kernel32" () As HANDLE
504Declare Function GetCurrentProcessId Lib "kernel32" () As DWord
505Declare Function GetCurrentThread Lib "kernel32" () As HANDLE
506Declare Function GetCurrentThreadId Lib "kernel32" () As DWord
507
508Const DATE_SHORTDATE = &H00000001
509Const DATE_LONGDATE = &H00000002
510Const DATE_USE_ALT_CALENDAR = &H00000004
511Declare 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
512
513Declare Function GetDiskFreeSpace Lib "kernel32" Alias _FuncName_GetDiskFreeSpace (pRootPathName As PCTSTR, lpSectorsPerCluster As *DWord, pBytesPerSector As *DWord, pNumberOfFreeClusters As *DWord, pTotalNumberOfClusters As *DWord) As BOOL
514Declare 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
515
516Const DRIVE_UNKNOWN = 0
517Const DRIVE_NO_ROOT_DIR = 1
518Const DRIVE_REMOVABLE = 2
519Const DRIVE_FIXED = 3
520Const DRIVE_REMOTE = 4
521Const DRIVE_CDROM = 5
522Const DRIVE_RAMDISK = 6
523Declare 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
524Declare Function GetDriveType Lib "kernel32" Alias _FuncName_GetDriveType (lpRootPathName As PCTSTR) As DWord
525
526Declare Function GetEnvironmentVariable Lib "kernel32" Alias _FuncName_GetEnvironmentVariable (lpName As PCTSTR, lpBuffer As PTSTR, nSize As DWord) As DWord
527Declare Function GetEnvironmentStrings Lib "kernel32" Alias _FuncName_GetEnvironmentStrings () As VoidPtr
528Const STILL_ACTIVE = &H00000103
529Declare Function GetExitCodeProcess Lib "kernel32" (hProcess As HANDLE, ByRef lpExitCode As DWord) As BOOL
530Declare Function GetExitCodeThread Lib "kernel32" (hThread As HANDLE, ByRef lpExitCode As DWord) As BOOL
531
532Declare Function GetFileAttributes Lib "kernel32" Alias _FuncName_GetFileAttributes (lpFileName As PCTSTR) As DWord
533Type BY_HANDLE_FILE_INFORMATION
534 dwFileAttributes As DWord
535 ftCreationTime As FILETIME
536 ftLastAccessTime As FILETIME
537 ftLastWriteTime As FILETIME
538 dwVolumeSerialNumber As DWord
539 nFileSizeHigh As DWord
540 nFileSizeLow As DWord
541 nNumberOfLinks As DWord
542 nFileIndexHigh As DWord
543 nFileIndexLow As DWord
544End Type
545Declare Function GetFileInformationByHandle Lib "kernel32" (
546 ByVal hFile As HANDLE,
547 ByRef FileInformation As BY_HANDLE_FILE_INFORMATION
548) As BOOL
549Declare Function GetFileSize Lib "kernel32" (hFile As HANDLE, pFileSizeHigh As *DWord) As DWord
550Declare Function GetFileTime Lib "kernel32" (hFile As HANDLE, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As BOOL
551
552Const FILE_TYPE_UNKNOWN = &H0000
553Const FILE_TYPE_DISK = &H0001
554Const FILE_TYPE_CHAR = &H0002
555Const FILE_TYPE_PIPE = &H0003
556Const FILE_TYPE_REMOTE = &H8000
557Declare Function GetFileType Lib "kernel32" (hFile As HANDLE) As DWord
558
559Declare Function GetFullPathName Lib "kernel32" Alias _FuncName_GetFullPathName (lpFileName As PCSTR, nBufferLength As DWord, pBuffer As PSTR, lpFilePart As *DWord) As DWord
560Declare Function GetLastError Lib "kernel32" () As DWord
561Declare Sub GetLocalTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME)
562Declare Function GetLogicalDrives Lib "kernel32" () As DWord
563Declare Function GetLogicalDriveStrings Lib "kernel32" Alias _FuncName_GetLogicalDriveStrings (nBufferLength As DWord, pBuffer As PTSTR) As DWord
564Declare Function GetLongPathName Lib "kernel32" Alias _FuncName_GetLongPathName (lpszShortPath As LPCTSTR, lpszLongPath As LPTSTR, cchBuffer As DWord) As DWord
565Declare Function GetModuleFileName Lib "kernel32" Alias _FuncName_GetModuleFileName (hModule As HINSTANCE, lpFileName As PTSTR, nSize As DWord) As DWord
566Declare Function GetModuleHandle Lib "kernel32" Alias _FuncName_GetModuleHandle (lpModuleName As PTSTR) As HINSTANCE
567Declare Function GetOverlappedResult Lib "kernel32" (
568 hFile As HANDLE,
569 pOverlapped As *OVERLAPPED,
570 pNumberOfBytesTransferred AS *DWord,
571 bWait As BOOL
572) As BOOL
573Type SYSTEM_POWER_STATUS
574 ACLineStatus As Byte
575 BatteryFlag As Byte
576 BatteryLifePercent As Byte
577 Reserved1 As Byte
578 BatteryLifeTime As Long
579 BatteryFullLifeTime As Long
580End Type
581Declare Function GetSystemPowerStatus Lib "kernel32" (ByRef SystemPowerStatus As SYSTEM_POWER_STATUS) As Long
582Declare Function GetPriorityClass Lib "kernel32" (hProcess As HANDLE) As DWord
583Declare Function GetProcAddress Lib "kernel32" (hModule As HINSTANCE, pProcName As PCSTR) As DWord
584Declare Function GetProcessAffinityMask Lib "kernel32" (
585 hProcess As HANDLE,
586 ByRef ProcessAffinityMask As ULONG_PTR,
587 ByRef SystemAffinityMask As ULONG_PTR
588) As BOOL
589Declare Function GetProcessHeap Lib "kernel32" () As HANDLE
590Declare Function GetShortPathName Lib "kernel32" Alias _FuncName_GetShortPathName (
591 pszLongPath As PCTSTR,
592 pszShortPath As PTSTR,
593 cchBuffer As DWord
594) As DWord
595
596Declare Sub GetStartupInfo Lib "kernel32" Alias _FuncName_GetStartupInfo (ByRef StartupInfo As STARTUPINFO)
597
598Const STD_INPUT_HANDLE = -10
599Const STD_OUTPUT_HANDLE = -11
600Const STD_ERROR_HANDLE = -12
601Declare Function GetStdHandle Lib "kernel32" (nStdHandle As DWord) As HANDLE
602
603Declare Function GetSystemDirectory Lib "kernel32" Alias _FuncName_GetSystemDirectory (pBuffer As PTSTR, uSize As DWord) As DWord
604
605Type SYSTEM_INFO
606 dwOemId As DWord
607 dwPageSize As DWord
608 lpMinimumApplicationAddress As VoidPtr
609 lpMaximumApplicationAddress As VoidPtr
610 dwActiveProcessorMask As ULONG_PTR
611 dwNumberOfProcessors As DWord
612 dwProcessorType As DWord
613 dwAllocationGranularity As DWord
614 wProcessorLevel As Word
615 wProcessorRevision As Word
616End Type
617Declare Sub GetSystemInfo Lib "kernel32" (ByRef SystemInfo As SYSTEM_INFO)
618
619Declare Sub GetSystemTime Lib "kernel32" (ByRef SystemTime As SYSTEMTIME)
620Declare Sub GetSystemTimeAsFileTime Lib "kernel32" (ByRef SystemTimeAsFileTime As FILETIME)
621
622Declare Function GetTempFileName Lib "kernel32" Alias _FuncName_GetTempFileName (
623 pPathName As PCTSTR,
624 pPrefixString As PCTSTR,
625 uUnique As DWord,
626 pTempFileName As PTSTR
627) As DWord
628Declare Function GetTempPath Lib "kernel32" Alias _FuncName_GetTempPath (nBufferLength As DWord, lpBuffer As PTSTR) As DWord
629Declare Function GetThreadContext Lib "kernel32" (hThread As HANDLE, ByRef Context As CONTEXT) As BOOL
630/*
631Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
632Const THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1
633Const THREAD_PRIORITY_NORMAL = 0
634Const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX
635Const THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1
636Const THREAD_PRIORITY_ERROR_RETURN = LONG_MAX
637Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
638Const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE
639*/
640Declare Function GetThreadPriority Lib "kernel32" (hThread As HANDLE) As Long
641Declare Function GetThreadPriorityBoost Lib "kernel32" (
642 hThread As HANDLE,
643 ByRef pDisablePriorityBoost As BOOL) As BOOL
644Declare Function GetTickCount Lib "kernel32" () As DWord
645
646Const TIME_NOMINUTESORSECONDS = &H00000001
647Const TIME_NOSECONDS = &H00000002
648Const TIME_NOTIMEMARKER = &H00000004
649Const TIME_FORCE24HOURFORMAT = &H00000008
650Declare 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
651Declare Function GetUserDefaultLCID Lib "kernel32" () As LCID
652Declare Function GetUserName Lib "advapi32" Alias _FuncName_GetUserName (pBuffer As PTSTR, ByRef nSize As DWord) As BOOL
653Declare Function GetVersionEx Lib "kernel32" Alias _FuncName_GetVersionEx (ByRef VersionInformation As OSVERSIONINFO) As BOOL
654Declare Function GetWindowsDirectory Lib "kernel32" Alias _FuncName_GetWindowsDirectory (pBuffer As PTSTR, uSize As DWord) As DWord
655Declare Function GlobalAlloc Lib "kernel32" (uFlags As DWord, dwBytes As SIZE_T) As HGLOBAL
656Declare Function GlobalFrags Lib "kernel32" (hMem As HGLOBAL) As DWord
657Declare Function GlobalFree Lib "kernel32" (hMem As HGLOBAL) As HGLOBAL
658Declare Function GlobalHandle Lib "kernel32" (pMem As VoidPtr) As HGLOBAL
659Declare Function GlobalLock Lib "kernel32" (hMem As HGLOBAL) As VoidPtr
660
661Type MEMORYSTATUS
662 dwLength As DWord
663 dwMemoryLoad As DWord
664 dwTotalPhys As SIZE_T
665 dwAvailPhys As SIZE_T
666 dwTotalPageFile As SIZE_T
667 dwAvailPageFile As SIZE_T
668 dwTotalVirtual As SIZE_T
669 dwAvailVirtual As SIZE_T
670End Type
671Declare Sub GlobalMemoryStatus Lib "kernel32" (ByRef lpMemStatus As MEMORYSTATUS)
672
673Declare Function GlobalReAlloc Lib "kernel32" (hMem As HGLOBAL, dwBytes As SIZE_T, uFlags As DWord) As HGLOBAL
674Declare Function GlobalSize Lib "kernel32" (hMem As HGLOBAL) As SIZE_T
675Declare Function GlobalUnlock Lib "kernel32" (hMem As HGLOBAL) As BOOL
676Declare Function HeapAlloc Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, dwBytes As SIZE_T) As VoidPtr
677Declare Function HeapCreate Lib "kernel32" (flOptions As DWord, dwInitialSize As SIZE_T, dwMaximumSize As SIZE_T) As HANDLE
678Declare Function HeapDestroy Lib "kernel32" (hHeap As HANDLE) As Long
679Declare Function HeapFree Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr) As Long
680Declare Function HeapReAlloc Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr, dwBytes As SIZE_T) As VoidPtr
681Declare Function HeapSize Lib "kernel32" (hHeap As HANDLE, dwFlags As DWord, lpMem As VoidPtr) As SIZE_T
682Declare Sub InitializeCriticalSection Lib "kernel32" (ByRef CriticalSection As CRITICAL_SECTION)
683Declare Function IsBadReadPtr Lib "kernel32" (lp As VoidPtr, ucb As ULONG_PTR) As BOOL
684Declare Function IsBadWritePtr Lib "kernel32" (lp As VoidPtr, ucb As ULONG_PTR) As BOOL
685Declare Function IsDBCSLeadByte Lib "kernel32" (TestChar As Byte) As BOOL
686
687#ifdef _WIN64
688Declare Function IsWow64Process Lib "kernel32" (hProcess As HANDLE, ByRef bWow64Process As BOOL) As BOOL
689#endif
690
691Const LCMAP_LOWERCASE = &H00000100 ' lower case letters
692Const LCMAP_UPPERCASE = &H00000200 ' upper case letters
693Const LCMAP_SORTKEY = &H00000400 ' WC sort key (normalize)
694Const LCMAP_BYTEREV = &H00000800 ' byte reversal
695Const LCMAP_HIRAGANA = &H00100000 ' map katakana to hiragana
696Const LCMAP_KATAKANA = &H00200000 ' map hiragana to katakana
697Const LCMAP_HALFWIDTH = &H00400000 ' map double byte to single byte
698Const LCMAP_FULLWIDTH = &H00800000 ' map single byte to double byte
699Const LCMAP_LINGUISTIC_CASING = &H01000000 ' use linguistic rules for casing
700Const LCMAP_SIMPLIFIED_CHINESE = &H02000000 ' map traditional chinese to simplified chinese
701Const LCMAP_TRADITIONAL_CHINESE = &H04000000 ' map simplified chinese to traditional chinese
702Declare 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
703
704Declare Sub LeaveCriticalSection Lib "kernel32" (ByRef lpCriticalSection As CRITICAL_SECTION)
705Declare Function LocalAlloc Lib "kernel32" (uFlags As DWord, uBytes As SIZE_T) As HLOCAL
706Declare Function LocalFileTimeToFileTime Lib "kernel32" (ByRef lpLocalFileTime As FILETIME, ByRef lpFileTime As FILETIME) As BOOL
707Declare Function LocalFree Lib "kernel32" (hMem As HLOCAL) As HLOCAL
708Declare Function LocalHandle Lib "kernel32" (pMem As VoidPtr) As HLOCAL
709Declare Function LocalLock Lib "kernel32" (hMem As HLOCAL) As VoidPtr
710Declare Function LocalReAlloc Lib "kernel32" (hMem As HLOCAL, dwBytes As SIZE_T, uFlags As DWord) As HLOCAL
711Declare Function LocalSize Lib "kernel32" (hMem As HLOCAL) As SIZE_T
712Declare Function LocalUnlock Lib "kernel32" (hMem As HLOCAL) As BOOL
713Declare Function LockFile Lib "kernel32" (hFile As HANDLE, dwFileOffsetLow As DWord, dwFileOffsetHigh As DWord, nNumberOfBytesToLockLow As DWord, nNumberOfBytesToLockHigh As DWord) As BOOL
714Declare Function LoadLibrary Lib "kernel32" Alias _FuncName_LoadLibrary (pLibFileName As PCTSTR) As HINSTANCE
715
716Const DONT_RESOLVE_DLL_REFERENCES = &h00000001
717Const LOAD_LIBRARY_AS_DATAFILE = &h00000002
718Const LOAD_WITH_ALTERED_SEARCH_PATH = &h00000008
719Const LOAD_IGNORE_CODE_AUTHZ_LEVEL = &h00000010
720Declare Function LoadLibraryEx Lib "kernel32" Alias _FuncName_LoadLibraryEx (pLibFileName As PCTSTR, hFile As HANDLE, dwFlags As DWord) As HINSTANCE
721
722Declare Function lstrcat Lib "kernel32" Alias _FuncName_lstrcat (lpString1 As LPTSTR, lpString2 As LPCTSTR) As LPTSTR
723Declare Function lstrcmp Lib "kernel32" Alias _FuncName_lstrcmp (lpString1 As LPCTSTR, lpString2 As LPCTSTR) As Long
724Declare Function lstrcmpi Lib "kernel32" Alias _FuncName_lstrcmpi (lpString1 As LPCTSTR, lpString2 As LPCTSTR) As Long
725Declare Function lstrcpy Lib "kernel32" Alias _FuncName_lstrcpy (lpString1 As LPTSTR, lpString2 As LPCTSTR) As LPTSTR
726Declare Function lstrcpyn Lib "kernel32" Alias _FuncName_lstrcpyn (lpString1 As LPTSTR,ByVal lpString2 As LPCTSTR,ByVal iMaxLength As Long) As LPTSTR
727Declare Function lstrlenA Lib "kernel32" (lpString As LPCSTR) As Long
728Declare Function lstrlenW Lib "kernel32" (lpString As LPCWSTR) As Long
729#ifdef UNICODE
730Declare Function lstrlen Lib "kernel32" Alias "lstrlenW" (lpString As LPCWSTR) As Long
731#else
732Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (lpString As LPCSTR) As Long
733#endif
734Declare Sub memcpy Lib "kernel32" Alias "RtlMoveMemory" (pDest As VoidPtr, pSrc As VoidPtr, length As SIZE_T)
735Declare Function MoveFile Lib "kernel32" Alias _FuncName_MoveFile (lpExistingFileName As LPCTSTR, lpNewFileName As LPCTSTR) As BOOL
736Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As PVOID, pSrc As VoidPtr, length As SIZE_T)
737
738Declare Function MulDiv Lib "kernel32" (
739 nNumber As Long,
740 nNumerator As Long,
741 nDenominator As Long
742) As Long
743
744Const CP_ACP = 0 'default to ANSI code page
745Const CP_OEMCP = 1 'default to OEM code page
746Const CP_MACCP = 2 'default to MAC code page
747Const CP_THREAD_ACP = 3 'current thread's ANSI code page
748Const CP_SYMBOL = 42 'SYMBOL translations
749Const CP_UTF7 = 65000 'UTF-7 translation
750Const CP_UTF8 = 65001 'UTF-8 translation
751
752Declare Function MultiByteToWideChar Lib "kernel32" (CodePage As DWord, dwFlags As DWord, pMultiByteStr As PCSTR, cchMultiByte As Long, pWideCharStr As PWSTR, cchWideChar As Long) As Long
753Declare Function OpenEvent Lib "kernel32" Alias _FuncName_OpenEvent (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE
754Declare Function OpenMutex Lib "kernel32" Alias _FuncName_OpenMutex (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE
755Declare Function OpenSemaphore Lib "kernel32" Alias _FuncName_OpenSemaphore (dwDesiredAccess As DWord, bInheritHandle As BOOL, lpName As LPCTSTR) As HANDLE
756Declare Function OpenProcess Lib "kernel32" (dwDesiredAccess As DWord, bInheritHandle As Long, dwProcessId As DWord) As HANDLE
757Declare Sub OutputDebugStringA Lib "kernel32" (pOutputString As PCSTR)
758Declare Sub OutputDebugStringW Lib "kernel32" (pOutputString As PCWSTR)
759#ifdef UNICODE
760Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringW" (pOutputString As PCWSTR)
761#else
762Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (pOutputString As PCSTR)
763#endif
764Declare Function PulseEvent Lib "kernel32" (hEvent As HANDLE) As BOOL
765Declare Sub RaiseException Lib "kernel32" (
766 dwExceptionCode As DWord,
767 dwExceptionFlags As DWord,
768 NumberOfArguments As DWord,
769 pArguments As *ULONG_PTR)
770Declare Function ReadFile Lib "kernel32" (hFile As HANDLE, lpBuffer As VoidPtr, nNumberOfBytesToRead As DWord, lpNumberOfBytesRead As DWordPtr, ByRef lpOverlapped As OVERLAPPED) As BOOL
771Declare Function ReadProcessMemory Lib "Kernel32" (hProcess As HANDLE, lpBaseAddress As VoidPtr, lpBuffer As VoidPtr, nSize As SIZE_T, lpNumberOfBytesRead As *SIZE_T) As BOOL
772Declare Function ReleaseMutex Lib "kernel32" (hMutex As HANDLE) As BOOL
773Declare Function ReleaseSemaphore Lib "kernel32" (hSemaphore As HANDLE, lReleaseCount As Long, ByRef lpPreviousCount As Long) As BOOL
774Declare Function RemoveDirectory Lib "kernel32" Alias _FuncName_RemoveDirectory (lpPathName As LPCTSTR) As BOOL
775Declare Function ResetEvent Lib "kernel32" (hEvent As HANDLE) As BOOL
776Declare Function ResumeThread Lib "kernel32" (hThread As HANDLE) As DWord
777Declare Function SetComputerName Lib "kernel32" Alias _FuncName_SetComputerName (lpComputerName As LPCTSTR) As BOOL
778Declare Function SetCurrentDirectory Lib "kernel32" Alias _FuncName_SetCurrentDirectory (lpPathName As LPCTSTR) As BOOL
779Declare 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
780Declare Function SetEndOfFile Lib "kernel32" (hFile As HANDLE) As BOOL
781Declare Function SetEnvironmentVariable Lib "kernel32" Alias _FuncName_SetEnvironmentVariable (lpName As LPCTSTR, lpValue As LPTSTR) As BOOL
782
783Const SEM_FAILCRITICALERRORS = &h0001
784Const SEM_NOGPFAULTERRORBOX = &h0002
785Const SEM_NOALIGNMENTFAULTEXCEPT = &h0004
786Const SEM_NOOPENFILEERRORBOX = &h8000
787Declare Function SetErrorMode Lib "kernel32" (uMode As DWord) As DWord
788Declare Function SetEvent Lib "kernel32" (hEvent As HANDLE) As BOOL
789Declare Function SetFileAttributes Lib "kernel32" Alias _FuncName_SetFileAttributes (lpFileName As LPCTSTR, dwFileAttributes As DWord) As BOOL
790
791Const FILE_BEGIN = 0
792Const FILE_CURRENT = 1
793Const FILE_END = 2
794Declare Function SetFilePointer Lib "kernel32" (hFile As HANDLE, lDistanceToMove As Long, lpDistanceToMoveHigh As DWordPtr, dwMoveMethod As DWord) As DWord
795
796Declare Function SetFileTime Lib "kernel32" (hFile As HANDLE, ByRef lpCreationTime As FILETIME, ByRef lpLastAccessTime As FILETIME, ByRef lpLastWriteTime As FILETIME) As BOOL
797Declare Sub SetLastError Lib "kernel32" (dwErrCode As DWord)
798Declare Sub SetLastErrorEx Lib "kernel32" (dwErrCode As DWord, dwType As DWord)
799Declare Function SetLocalTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME) As BOOL
800Declare Function SetPriorityClass Lib "kernel32" (hProcess As HANDLE, dwPriorityClass As DWord) As BOOL
801Declare Function SetThreadContext Lib "kernel32" (hThread As HANDLE, ByRef Context As CONTEXT) As BOOL
802Declare Function SetThreadPriority Lib "kernel32" (hThread As HANDLE, nPriority As Long) As BOOL
803Declare Function SetThreadPriorityBoost Lib "kernel32" (
804 hThread As HANDLE,
805 DisablePriorityBoost As BOOL
806) As BOOL
807
808TypeDef PTOP_LEVEL_EXCEPTION_FILTER = *Function(ByRef ExceptionInfo As EXCEPTION_POINTERS) As Long
809
810Declare Function SetUnhandledExceptionFilter Lib "kernel32" (pTopLevelExceptionFilter As PTOP_LEVEL_EXCEPTION_FILTER) As PTOP_LEVEL_EXCEPTION_FILTER
811
812Const INFINITE = &HFFFFFFFF
813Declare Sub Sleep Lib "kernel32" (dwMilliseconds As DWord)
814Declare Function SleepEx Lib "kernel32" (dwMilliseconds As DWord, bAlertable As BOOL) As DWord
815
816Declare Function SuspendThread Lib "kernel32" (hThread As HANDLE) As DWord
817Declare Function SystemTimeToFileTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME, ByRef lpFileTime As FILETIME) As BOOL
818Declare Function TerminateProcess Lib "kernel32" (hProcess As HANDLE, dwExitCode As DWord) As BOOL
819Declare Function TerminateThread Lib "kernel32" (hThread As HANDLE, dwExitCode As DWord) As BOOL
820Declare Function TlsAlloc Lib "kernel32" () As DWord
821Declare Function TlsFree Lib "kernel32" (dwTlsIndex As DWord) As BOOL
822Declare Function TlsGetValue Lib "kernel32" (dwTlsIndex As DWord) As VoidPtr
823Declare Function TlsSetValue Lib "kernel32" (dwTlsIndex As DWord, pTlsValue As VoidPtr) As BOOL
824Declare Function UnlockFile Lib "kernel32" (hFile As HANDLE, dwFileOffsetLow As DWord, dwFileOffsetHigh As DWord, nNumberOfBytesToUnlockLow As DWord, nNumberOfBytesToUnlockHigh As DWord) As BOOL
825Declare Function UnhandledExceptionFilter Lib "kernel32" (ByRef ExceptionInfo As EXCEPTION_POINTERS) As Long
826Declare Function VirtualAlloc Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T, flAllocationType As DWord, flProtect As DWord) As VoidPtr
827Declare Function VirtualFree Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T, dwFreeType As DWord) As BOOL
828Declare Function VirtualLock Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T) As BOOL
829Declare Function VirtualProtect Lib "kernel32" (
830 pAddress As VoidPtr,
831 Size As SIZE_T,
832 flNewProtect As DWord,
833 ByRef flOldProtect As DWord
834) As BOOL
835Declare Function VirtualProtectEx Lib "kernel32" (
836 hProcess As HANDLE,
837 pAddress As VoidPtr,
838 Size As SIZE_T,
839 flNewProtect As DWord,
840 ByRef flOldProtect As DWord
841) As BOOL
842Declare Function VirtualQuery Lib "kernel32" (
843 pAddress As VoidPtr,
844 ByRef mbi As MEMORY_BASIC_INFORMATION,
845 Length As SIZE_T
846) As SIZE_T
847Declare Function VirtualQueryEx Lib "kernel32" (
848 hProcess As HANDLE,
849 pAddress As VoidPtr,
850 ByRef mbi As MEMORY_BASIC_INFORMATION,
851 Length As SIZE_T
852) As SIZE_T
853Declare Function VirtualUnlock Lib "kernel32" (lpAddress As VoidPtr, dwSize As SIZE_T) As BOOL
854Declare Function WaitForMultipleObjects Lib "kernel32" (nCount As DWord, pHandles As *HANDLE, fWaitAll As BOOL, dwMilliseconds As DWord) As DWord
855Declare Function WaitForMultipleObjectsEx Lib "kernel32" (nCount As DWord, pHandles As *HANDLE, fWaitAll As BOOL, dwMilliseconds As DWord, bAlertable As BOOL) As DWord
856Declare Function WaitForSingleObject Lib "kernel32" (hHandle As HANDLE, dwMilliseconds As DWord) As DWord
857Declare Function WaitForSingleObjectEx Lib "kernel32" (hHandle As HANDLE, dwMilliseconds As DWord, bAlertable As BOOL) As DWord
858
859Const WC_COMPOSITECHECK = &H00000200
860Const WC_DISCARDNS = &H00000010
861Const WC_SEPCHARS = &H00000020
862Const WC_DEFAULTCHAR = &H00000040
863Const WC_NO_BEST_FIT_CHARS = &H00000400
864Declare Function WideCharToMultiByte Lib "Kernel32" (
865 CodePage As DWord,
866 dwFlags As DWord,
867 pWideCharStr As PCWSTR,
868 cchWideChar As Long,
869 pMultiByteStr As PSTR,
870 cbMultiByte As Long,
871 pDefaultChar As PCSTR,
872 pUsedDefaultChar As *BOOL
873) As Long
874
875Declare Function WriteFile Lib "kernel32" (hFile As HANDLE, lpBuffer As VoidPtr, nNumberOfBytesToWrite As DWord, lpNumberOfBytesWritten As DWordPtr, ByRef lpOverlapped As OVERLAPPED) As BOOL
876Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (Destination As VoidPtr, dwLength As DWord)
877
878'
879' Wait functions' results.
880'
881Const WAIT_FAILED = (&hFFFFFFFF As DWord)
882Const WAIT_OBJECT_0 = ((STATUS_WAIT_0 ) + 0)
883
884Const WAIT_ABANDONED = ((STATUS_ABANDONED_WAIT_0 ) + 0)
885Const WAIT_ABANDONED_0 = ((STATUS_ABANDONED_WAIT_0 ) + 0)
886
887Const WAIT_IO_COMPLETION = STATUS_USER_APC
888
889Declare Function FindResource Lib "kernel32" Alias _FuncName_FindResource (hInstance As HINSTANCE, lpName As LPCTSTR, lpType As LPCTSTR) As HRSRC
890Declare Function LoadResource Lib "kernel32" (hModule As HMODULE, hResInfo As HRSRC) As HGLOBAL
891Declare Function FreeResource Lib "kernel32" (hResData As HGLOBAL) As BOOL
892Declare Function LockResource Lib "kernel32" (hResData As HGLOBAL) As VoidPtr
893Declare Function SizeofResource Lib "kernel32" (hModule As HANDLE, hResInfo As HRSRC) As DWord
894
895Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias _FuncName_ExpandEnvironmentStrings (lpSrc As LPCTSTR, lpDst As LPTSTR, nSize As DWord) As DWord
896
897Type DCB
898 DCBlength As DWord
899 BaudRate As DWord
900 fBitFields As DWord
901 wReserved As Word
902 XonLim As Word
903 XoffLim As Word
904 ByteSize As Byte
905 Parity As Byte
906 StopBits As Byte
907 XonChar As CHAR
908 XoffChar As CHAR
909 ErrorChar As CHAR
910 EofChar As CHAR
911 EvtChar As CHAR
912 wReserved1 As Word
913End Type
914
915Type COMMTIMEOUTS
916 ReadIntervalTimeout As DWord
917 ReadTotalTimeoutMultiplier As DWord
918 ReadTotalTimeoutConstant As DWord
919 WriteTotalTimeoutMultiplier As DWord
920 WriteTotalTimeoutConstant As DWord
921End Type
922Type COMSTAT
923 fCoBitFlds As Long 'See Comment in Win32API.Txt
924 cbInQue As DWord
925 cbOutQue As DWord
926End Type
927Declare Function SetCommState Lib "kernel32" (hCommDev As HANDLE, ByRef dcb As DCB) As BOOL
928Declare Function SetCommTimeouts Lib "kernel32" (hFile As HANDLE ,ByRef pCommTimeouts As COMMTIMEOUTS) As BOOL
929Declare Function ClearCommError Lib "kernel32" (hCommDevs As HANDLE, ByRef Errors As DWord, ByRef Stat As COMSTAT) As BOOL
930Declare Function EscapeCommFunction Lib "kernel32" (nCid As HANDLE, ByVal nFunc As DWord) As BOOL
931Declare Function GetCommModemStatus Lib "kernel32" (hFile As HANDLE, ByRef ModemStat As DWord) As BOOL
932Declare Function SetCommMask Lib "kernel32" (hFile As HANDLE, dwEvtMask As DWord) As BOOL
933Declare Function WaitCommEvent Lib "kernel32" (hFile As HANDLE, ByRef EvtMask As DWord, lpOverlapped As *OVERLAPPED) As BOOL
934
935Declare Function OpenProcessToken Lib "advapi32" (ProcessHandle As HANDLE, DesiredAccess As DWord, ByRef TokenHandle As HANDLE) As BOOL
936Declare Function LookupPrivilegeValue Lib "advapi32" Alias _FuncName_LookupPrivilegeValue (lpSystemName As LPCTSTR, lpName As LPCTSTR, ByRef Luid As LUID) As Long
937Declare Function AdjustTokenPrivileges Lib "advapi32" (TokenHandle As Long, DisableAllPrivileges As Long,_
938 ByRef NewState As TOKEN_PRIVILEGES, BufferLength As Long,
939 ByRef PreviousState As TOKEN_PRIVILEGES, ByRef ReturnLength As Long) As Long
940
941#endif '_INC_SYSTEM
Note: See TracBrowser for help on using the repository browser.