source: trunk/ab5.0/ablib/src/api_system.sbp

Last change on this file was 635, checked in by NoWest, 16 years ago

名前空間への入れ忘れの修正と
ConsoleクラスのResetColorのバグへ対応。
正しい動作かご確認ください。

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