Differences From Artifact [59684aebe49706fd]:
- File
src/win32/winbase.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [5a227ddcf54fb45e]:
- File
src/win32/winbase.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
1 +/***********************************************************************\
2 +* winbase.d *
3 +* *
4 +* Windows API header module *
5 +* *
6 +* Translated from MinGW API for MS-Windows 3.10 *
7 +* *
8 +* Placed into public domain *
9 +\***********************************************************************/
1 10 module win32.winbase;
2 -
3 -// Translated from Microsoft Platform SDK August 2001 Edition
4 -// by Y.Tomino (demoonlit@inter7.jp)
5 -
6 -import win32.windef;
7 -
8 -// #ifndef _WINBASE_
9 -// #define _WINBASE_
10 -
11 -// #if _MSC_VER > 1000
12 -// #pragma once
13 -// #endif
14 -
15 -// #ifdef _MAC
16 -// #...
17 -// #endif //_MAC
18 -
19 -// #if !defined(_ADVAPI32_)
20 -// #define WINADVAPI DECLSPEC_IMPORT
21 -// #else
22 -// #...
23 -// #endif
24 -
25 -// #if !defined(_KERNEL32_)
26 -// #define WINBASEAPI DECLSPEC_IMPORT
27 -// #else
28 -// #...
29 -// #endif
30 -
31 -// #if !defined(_ZAWPROXY_)
32 -// #define ZAWPROXYAPI DECLSPEC_IMPORT
33 -// #else
34 -// #...
35 -// #endif
36 -
37 -// #ifdef __cplusplus
38 -// extern "C" {
39 -// #endif
40 -
41 -// #define DefineHandleTable(w) ((w),TRUE)
42 -// #define LimitEmsPages(dw)
43 -// #define SetSwapAreaSize(w) (w)
44 -// #define LockSegment(w) GlobalFix((HANDLE)(w))
45 -// #define UnlockSegment(w) GlobalUnfix((HANDLE)(w))
46 -alias GetTickCount GetCurrentTime;
47 -
48 -// #define Yield()
49 -
50 -HANDLE INVALID_HANDLE_VALUE = cast(HANDLE)-1;
51 -enum : uint { INVALID_FILE_SIZE = cast(DWORD)0xFFFFFFFF }
52 -enum : uint { INVALID_SET_FILE_POINTER = cast(DWORD)-1 }
53 -enum : uint { INVALID_FILE_ATTRIBUTES = cast(DWORD)-1 }
54 -
55 -enum : uint { FILE_BEGIN = 0 }
56 -enum : uint { FILE_CURRENT = 1 }
57 -enum : uint { FILE_END = 2 }
58 -
59 -enum : uint { TIME_ZONE_ID_INVALID = cast(DWORD)0xFFFFFFFF }
60 -
61 -enum : uint { WAIT_FAILED = cast(DWORD)0xFFFFFFFF }
62 -alias STATUS_WAIT_0 WAIT_OBJECT_0;
63 -
64 -alias STATUS_ABANDONED_WAIT_0 WAIT_ABANDONED;
65 -alias STATUS_ABANDONED_WAIT_0 WAIT_ABANDONED_0;
66 -
67 -alias STATUS_USER_APC WAIT_IO_COMPLETION;
68 -alias STATUS_PENDING STILL_ACTIVE;
69 -alias STATUS_ACCESS_VIOLATION EXCEPTION_ACCESS_VIOLATION;
70 -alias STATUS_DATATYPE_MISALIGNMENT EXCEPTION_DATATYPE_MISALIGNMENT;
71 -alias STATUS_BREAKPOINT EXCEPTION_BREAKPOINT;
72 -alias STATUS_SINGLE_STEP EXCEPTION_SINGLE_STEP;
73 -alias STATUS_ARRAY_BOUNDS_EXCEEDED EXCEPTION_ARRAY_BOUNDS_EXCEEDED;
74 -alias STATUS_FLOAT_DENORMAL_OPERAND EXCEPTION_FLT_DENORMAL_OPERAND;
75 -alias STATUS_FLOAT_DIVIDE_BY_ZERO EXCEPTION_FLT_DIVIDE_BY_ZERO;
76 -alias STATUS_FLOAT_INEXACT_RESULT EXCEPTION_FLT_INEXACT_RESULT;
77 -alias STATUS_FLOAT_INVALID_OPERATION EXCEPTION_FLT_INVALID_OPERATION;
78 -alias STATUS_FLOAT_OVERFLOW EXCEPTION_FLT_OVERFLOW;
79 -alias STATUS_FLOAT_STACK_CHECK EXCEPTION_FLT_STACK_CHECK;
80 -alias STATUS_FLOAT_UNDERFLOW EXCEPTION_FLT_UNDERFLOW;
81 -alias STATUS_INTEGER_DIVIDE_BY_ZERO EXCEPTION_INT_DIVIDE_BY_ZERO;
82 -alias STATUS_INTEGER_OVERFLOW EXCEPTION_INT_OVERFLOW;
83 -alias STATUS_PRIVILEGED_INSTRUCTION EXCEPTION_PRIV_INSTRUCTION;
84 -alias STATUS_IN_PAGE_ERROR EXCEPTION_IN_PAGE_ERROR;
85 -alias STATUS_ILLEGAL_INSTRUCTION EXCEPTION_ILLEGAL_INSTRUCTION;
86 -alias STATUS_NONCONTINUABLE_EXCEPTION EXCEPTION_NONCONTINUABLE_EXCEPTION;
87 -alias STATUS_STACK_OVERFLOW EXCEPTION_STACK_OVERFLOW;
88 -alias STATUS_INVALID_DISPOSITION EXCEPTION_INVALID_DISPOSITION;
89 -alias STATUS_GUARD_PAGE_VIOLATION EXCEPTION_GUARD_PAGE;
90 -alias STATUS_INVALID_HANDLE EXCEPTION_INVALID_HANDLE;
91 -alias STATUS_CONTROL_C_EXIT CONTROL_C_EXIT;
92 -alias RtlMoveMemory MoveMemory;
93 -alias RtlCopyMemory CopyMemory;
94 -alias RtlFillMemory FillMemory;
95 -alias RtlZeroMemory ZeroMemory;
96 -
97 -enum : uint { FILE_FLAG_WRITE_THROUGH = 0x80000000 }
98 -enum : uint { FILE_FLAG_OVERLAPPED = 0x40000000 }
99 -enum : uint { FILE_FLAG_NO_BUFFERING = 0x20000000 }
100 -enum : uint { FILE_FLAG_RANDOM_ACCESS = 0x10000000 }
101 -enum : uint { FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 }
102 -enum : uint { FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 }
103 -enum : uint { FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 }
104 -enum : uint { FILE_FLAG_POSIX_SEMANTICS = 0x01000000 }
105 -enum : uint { FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 }
106 -enum : uint { FILE_FLAG_OPEN_NO_RECALL = 0x00100000 }
107 -enum : uint { FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 }
108 -
109 -enum : uint { CREATE_NEW = 1 }
110 -enum : uint { CREATE_ALWAYS = 2 }
111 -enum : uint { OPEN_EXISTING = 3 }
112 -enum : uint { OPEN_ALWAYS = 4 }
113 -enum : uint { TRUNCATE_EXISTING = 5 }
114 -
115 -// #if(_WIN32_WINNT >= 0x0400)
116 -
117 -enum : uint { PROGRESS_CONTINUE = 0 }
118 -enum : uint { PROGRESS_CANCEL = 1 }
119 -enum : uint { PROGRESS_STOP = 2 }
120 -enum : uint { PROGRESS_QUIET = 3 }
121 -
122 -enum : uint { CALLBACK_CHUNK_FINISHED = 0x00000000 }
123 -enum : uint { CALLBACK_STREAM_SWITCH = 0x00000001 }
124 -
125 -enum : uint { COPY_FILE_FAIL_IF_EXISTS = 0x00000001 }
126 -enum : uint { COPY_FILE_RESTARTABLE = 0x00000002 }
127 -enum : uint { COPY_FILE_OPEN_SOURCE_FOR_WRITE = 0x00000004 }
128 -enum : uint { COPY_FILE_ALLOW_DECRYPTED_DESTINATION = 0x00000008 }
129 -// #endif /* _WIN32_WINNT >= 0x0400 */
130 -
131 -// #if (_WIN32_WINNT >= 0x0500)
132 -
133 -enum : uint { REPLACEFILE_WRITE_THROUGH = 0x00000001 }
134 -enum : uint { REPLACEFILE_IGNORE_MERGE_ERRORS = 0x00000002 }
135 -
136 -// #endif // #if (_WIN32_WINNT >= 0x0500)
137 -
138 -enum : uint { PIPE_ACCESS_INBOUND = 0x00000001 }
139 -enum : uint { PIPE_ACCESS_OUTBOUND = 0x00000002 }
140 -enum : uint { PIPE_ACCESS_DUPLEX = 0x00000003 }
141 -
142 -enum : uint { PIPE_CLIENT_END = 0x00000000 }
143 -enum : uint { PIPE_SERVER_END = 0x00000001 }
144 -
145 -enum : uint { PIPE_WAIT = 0x00000000 }
146 -enum : uint { PIPE_NOWAIT = 0x00000001 }
147 -enum : uint { PIPE_READMODE_BYTE = 0x00000000 }
148 -enum : uint { PIPE_READMODE_MESSAGE = 0x00000002 }
149 -enum : uint { PIPE_TYPE_BYTE = 0x00000000 }
150 -enum : uint { PIPE_TYPE_MESSAGE = 0x00000004 }
151 -
152 -enum : uint { PIPE_UNLIMITED_INSTANCES = 255 }
153 -
154 -enum : uint { SECURITY_ANONYMOUS = SecurityAnonymous << 16 }
155 -enum : uint { SECURITY_IDENTIFICATION = SecurityIdentification << 16 }
156 -enum : uint { SECURITY_IMPERSONATION = SecurityImpersonation << 16 }
157 -enum : uint { SECURITY_DELEGATION = SecurityDelegation << 16 }
158 -
159 -enum : uint { SECURITY_CONTEXT_TRACKING = 0x00040000 }
160 -enum : uint { SECURITY_EFFECTIVE_ONLY = 0x00080000 }
161 -
162 -enum : uint { SECURITY_SQOS_PRESENT = 0x00100000 }
163 -enum : uint { SECURITY_VALID_SQOS_FLAGS = 0x001F0000 }
164 -
165 -struct _OVERLAPPED {
166 - ULONG_PTR Internal;
167 - ULONG_PTR InternalHigh;
168 -union {
169 -struct {
170 - DWORD Offset;
171 - DWORD OffsetHigh;
172 -}
173 -
174 - PVOID Pointer;
175 -}
176 -
177 - HANDLE hEvent;
178 -}
179 -alias _OVERLAPPED OVERLAPPED;
180 -alias _OVERLAPPED* LPOVERLAPPED;
181 -
182 -struct _SECURITY_ATTRIBUTES {
183 - DWORD nLength;
184 - LPVOID lpSecurityDescriptor;
185 - BOOL bInheritHandle;
186 -}
187 -alias _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES;
188 -alias _SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES;
189 -alias _SECURITY_ATTRIBUTES* LPSECURITY_ATTRIBUTES;
190 -
191 -struct _PROCESS_INFORMATION {
192 - HANDLE hProcess;
193 - HANDLE hThread;
194 - DWORD dwProcessId;
195 - DWORD dwThreadId;
196 -}
197 -alias _PROCESS_INFORMATION PROCESS_INFORMATION;
198 -alias _PROCESS_INFORMATION* PPROCESS_INFORMATION;
199 -alias _PROCESS_INFORMATION* LPPROCESS_INFORMATION;
200 -
201 -struct _FILETIME {
202 - DWORD dwLowDateTime;
203 - DWORD dwHighDateTime;
204 -}
205 -alias _FILETIME FILETIME;
206 -alias _FILETIME* PFILETIME;
207 -alias _FILETIME* LPFILETIME;
208 -
209 -struct _SYSTEMTIME {
210 - WORD wYear;
211 - WORD wMonth;
212 - WORD wDayOfWeek;
213 - WORD wDay;
214 - WORD wHour;
215 - WORD wMinute;
216 - WORD wSecond;
217 - WORD wMilliseconds;
218 -}
219 -alias _SYSTEMTIME SYSTEMTIME;
220 -alias _SYSTEMTIME* PSYSTEMTIME;
221 -alias _SYSTEMTIME* LPSYSTEMTIME;
222 -
223 -extern(Windows) alias DWORD function( LPVOID lpThreadParameter ) PTHREAD_START_ROUTINE;
224 -alias PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
225 -
226 -// #if(_WIN32_WINNT >= 0x0400)
227 -extern(Windows) alias VOID function( LPVOID lpFiberParameter ) PFIBER_START_ROUTINE;
228 -alias PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
229 -// #endif /* _WIN32_WINNT >= 0x0400 */
230 -
231 -alias RTL_CRITICAL_SECTION CRITICAL_SECTION;
232 -alias PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
233 -alias PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
234 -
235 -alias RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
236 -alias PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
237 -alias PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
238 -
239 -// #if defined(_X86_)
240 -alias PLDT_ENTRY LPLDT_ENTRY;
241 -// #else
242 -// ...
243 -// #endif
244 -
245 -alias MUTANT_QUERY_STATE MUTEX_MODIFY_STATE;
246 -alias MUTANT_ALL_ACCESS MUTEX_ALL_ACCESS;
247 -
248 -enum : uint { SP_SERIALCOMM = cast(DWORD)0x00000001 }
249 -
250 -enum : uint { PST_UNSPECIFIED = cast(DWORD)0x00000000 }
251 -enum : uint { PST_RS232 = cast(DWORD)0x00000001 }
252 -enum : uint { PST_PARALLELPORT = cast(DWORD)0x00000002 }
253 -enum : uint { PST_RS422 = cast(DWORD)0x00000003 }
254 -enum : uint { PST_RS423 = cast(DWORD)0x00000004 }
255 -enum : uint { PST_RS449 = cast(DWORD)0x00000005 }
256 -enum : uint { PST_MODEM = cast(DWORD)0x00000006 }
257 -enum : uint { PST_FAX = cast(DWORD)0x00000021 }
258 -enum : uint { PST_SCANNER = cast(DWORD)0x00000022 }
259 -enum : uint { PST_NETWORK_BRIDGE = cast(DWORD)0x00000100 }
260 -enum : uint { PST_LAT = cast(DWORD)0x00000101 }
261 -enum : uint { PST_TCPIP_TELNET = cast(DWORD)0x00000102 }
262 -enum : uint { PST_X25 = cast(DWORD)0x00000103 }
263 -
264 -enum : uint { PCF_DTRDSR = cast(DWORD)0x0001 }
265 -enum : uint { PCF_RTSCTS = cast(DWORD)0x0002 }
266 -enum : uint { PCF_RLSD = cast(DWORD)0x0004 }
267 -enum : uint { PCF_PARITY_CHECK = cast(DWORD)0x0008 }
268 -enum : uint { PCF_XONXOFF = cast(DWORD)0x0010 }
269 -enum : uint { PCF_SETXCHAR = cast(DWORD)0x0020 }
270 -enum : uint { PCF_TOTALTIMEOUTS = cast(DWORD)0x0040 }
271 -enum : uint { PCF_INTTIMEOUTS = cast(DWORD)0x0080 }
272 -enum : uint { PCF_SPECIALCHARS = cast(DWORD)0x0100 }
273 -enum : uint { PCF_16BITMODE = cast(DWORD)0x0200 }
274 -
275 -enum : uint { SP_PARITY = cast(DWORD)0x0001 }
276 -enum : uint { SP_BAUD = cast(DWORD)0x0002 }
277 -enum : uint { SP_DATABITS = cast(DWORD)0x0004 }
278 -enum : uint { SP_STOPBITS = cast(DWORD)0x0008 }
279 -enum : uint { SP_HANDSHAKING = cast(DWORD)0x0010 }
280 -enum : uint { SP_PARITY_CHECK = cast(DWORD)0x0020 }
281 -enum : uint { SP_RLSD = cast(DWORD)0x0040 }
282 -
283 -enum : uint { BAUD_075 = cast(DWORD)0x00000001 }
284 -enum : uint { BAUD_110 = cast(DWORD)0x00000002 }
285 -enum : uint { BAUD_134_5 = cast(DWORD)0x00000004 }
286 -enum : uint { BAUD_150 = cast(DWORD)0x00000008 }
287 -enum : uint { BAUD_300 = cast(DWORD)0x00000010 }
288 -enum : uint { BAUD_600 = cast(DWORD)0x00000020 }
289 -enum : uint { BAUD_1200 = cast(DWORD)0x00000040 }
290 -enum : uint { BAUD_1800 = cast(DWORD)0x00000080 }
291 -enum : uint { BAUD_2400 = cast(DWORD)0x00000100 }
292 -enum : uint { BAUD_4800 = cast(DWORD)0x00000200 }
293 -enum : uint { BAUD_7200 = cast(DWORD)0x00000400 }
294 -enum : uint { BAUD_9600 = cast(DWORD)0x00000800 }
295 -enum : uint { BAUD_14400 = cast(DWORD)0x00001000 }
296 -enum : uint { BAUD_19200 = cast(DWORD)0x00002000 }
297 -enum : uint { BAUD_38400 = cast(DWORD)0x00004000 }
298 -enum : uint { BAUD_56K = cast(DWORD)0x00008000 }
299 -enum : uint { BAUD_128K = cast(DWORD)0x00010000 }
300 -enum : uint { BAUD_115200 = cast(DWORD)0x00020000 }
301 -enum : uint { BAUD_57600 = cast(DWORD)0x00040000 }
302 -enum : uint { BAUD_USER = cast(DWORD)0x10000000 }
303 -
304 -enum : uint { DATABITS_5 = cast(WORD)0x0001 }
305 -enum : uint { DATABITS_6 = cast(WORD)0x0002 }
306 -enum : uint { DATABITS_7 = cast(WORD)0x0004 }
307 -enum : uint { DATABITS_8 = cast(WORD)0x0008 }
308 -enum : uint { DATABITS_16 = cast(WORD)0x0010 }
309 -enum : uint { DATABITS_16X = cast(WORD)0x0020 }
310 -
311 -enum : uint { STOPBITS_10 = cast(WORD)0x0001 }
312 -enum : uint { STOPBITS_15 = cast(WORD)0x0002 }
313 -enum : uint { STOPBITS_20 = cast(WORD)0x0004 }
314 -enum : uint { PARITY_NONE = cast(WORD)0x0100 }
315 -enum : uint { PARITY_ODD = cast(WORD)0x0200 }
316 -enum : uint { PARITY_EVEN = cast(WORD)0x0400 }
317 -enum : uint { PARITY_MARK = cast(WORD)0x0800 }
318 -enum : uint { PARITY_SPACE = cast(WORD)0x1000 }
319 -
320 -struct _COMMPROP {
321 - WORD wPacketLength;
322 - WORD wPacketVersion;
323 - DWORD dwServiceMask;
324 - DWORD dwReserved1;
325 - DWORD dwMaxTxQueue;
326 - DWORD dwMaxRxQueue;
327 - DWORD dwMaxBaud;
328 - DWORD dwProvSubType;
329 - DWORD dwProvCapabilities;
330 - DWORD dwSettableParams;
331 - DWORD dwSettableBaud;
332 - WORD wSettableData;
333 - WORD wSettableStopParity;
334 - DWORD dwCurrentTxQueue;
335 - DWORD dwCurrentRxQueue;
336 - DWORD dwProvSpec1;
337 - DWORD dwProvSpec2;
338 - WCHAR wcProvChar[1];
339 -}
340 -alias _COMMPROP COMMPROP;
341 -alias _COMMPROP* LPCOMMPROP;
342 -
343 -enum : uint { COMMPROP_INITIALIZED = cast(DWORD)0xE73CF52E }
344 -
345 -struct _COMSTAT {
346 -// DWORD fCtsHold : 1;
347 -// DWORD fDsrHold : 1;
348 -// DWORD fRlsdHold : 1;
349 -// DWORD fXoffHold : 1;
350 -// DWORD fXoffSent : 1;
351 -// DWORD fEof : 1;
352 -// DWORD fTxim : 1;
353 -// DWORD fReserved : 25;
354 - DWORD cbInQue;
355 - DWORD cbOutQue;
356 -}
357 -alias _COMSTAT COMSTAT;
358 -alias _COMSTAT* LPCOMSTAT;
359 -
360 -enum : uint { DTR_CONTROL_DISABLE = 0x00 }
361 -enum : uint { DTR_CONTROL_ENABLE = 0x01 }
362 -enum : uint { DTR_CONTROL_HANDSHAKE = 0x02 }
363 -
364 -enum : uint { RTS_CONTROL_DISABLE = 0x00 }
365 -enum : uint { RTS_CONTROL_ENABLE = 0x01 }
366 -enum : uint { RTS_CONTROL_HANDSHAKE = 0x02 }
367 -enum : uint { RTS_CONTROL_TOGGLE = 0x03 }
368 -
369 -struct _DCB {
370 - DWORD DCBlength;
371 - DWORD BaudRate;
372 -// DWORD fBinary: 1;
373 -// DWORD fParity: 1;
374 -// DWORD fOutxCtsFlow:1;
375 -// DWORD fOutxDsrFlow:1;
376 -// DWORD fDtrControl:2;
377 -// DWORD fDsrSensitivity:1;
378 -// DWORD fTXContinueOnXoff: 1;
379 -// DWORD fOutX: 1;
380 -// DWORD fInX: 1;
381 -// DWORD fErrorChar: 1;
382 -// DWORD fNull: 1;
383 -// DWORD fRtsControl:2;
384 -// DWORD fAbortOnError:1;
385 -// DWORD fDummy2:17;
386 - WORD wReserved;
387 - WORD XonLim;
388 - WORD XoffLim;
389 - BYTE ByteSize;
390 - BYTE Parity;
391 - BYTE StopBits;
392 - char XonChar;
393 - char XoffChar;
394 - char ErrorChar;
395 - char EofChar;
396 - char EvtChar;
397 - WORD wReserved1;
398 -}
399 -alias _DCB DCB;
400 -alias _DCB* LPDCB;
401 -
402 -struct _COMMTIMEOUTS {
403 - DWORD ReadIntervalTimeout;
404 - DWORD ReadTotalTimeoutMultiplier;
405 - DWORD ReadTotalTimeoutConstant;
406 - DWORD WriteTotalTimeoutMultiplier;
407 - DWORD WriteTotalTimeoutConstant;
408 -}
409 -alias _COMMTIMEOUTS COMMTIMEOUTS;
410 -alias _COMMTIMEOUTS* LPCOMMTIMEOUTS;
411 -
412 -struct _COMMCONFIG {
413 - DWORD dwSize;
414 - WORD wVersion;
415 - WORD wReserved;
416 - DCB dcb;
417 - DWORD dwProviderSubType;
418 - DWORD dwProviderOffset;
419 - DWORD dwProviderSize;
420 - WCHAR wcProviderData[1];
421 -}
422 -alias _COMMCONFIG COMMCONFIG;
423 -alias _COMMCONFIG* LPCOMMCONFIG;
424 -
425 -struct _SYSTEM_INFO {
426 -union {
427 - DWORD dwOemId;
428 -struct {
429 - WORD wProcessorArchitecture;
430 - WORD wReserved;
431 -}
432 -
433 -}
434 -
435 - DWORD dwPageSize;
436 - LPVOID lpMinimumApplicationAddress;
437 - LPVOID lpMaximumApplicationAddress;
438 - DWORD_PTR dwActiveProcessorMask;
439 - DWORD dwNumberOfProcessors;
440 - DWORD dwProcessorType;
441 - DWORD dwAllocationGranularity;
442 - WORD wProcessorLevel;
443 - WORD wProcessorRevision;
444 -}
445 -alias _SYSTEM_INFO SYSTEM_INFO;
446 -alias _SYSTEM_INFO* LPSYSTEM_INFO;
447 -
448 -alias FreeLibrary FreeModule;
449 -// #define MakeProcInstance(lpProc,hInstance) (lpProc)
450 -// #define FreeProcInstance(lpProc) (lpProc)
451 -
452 -enum : uint { GMEM_FIXED = 0x0000 }
453 -enum : uint { GMEM_MOVEABLE = 0x0002 }
454 -enum : uint { GMEM_NOCOMPACT = 0x0010 }
455 -enum : uint { GMEM_NODISCARD = 0x0020 }
456 -enum : uint { GMEM_ZEROINIT = 0x0040 }
457 -enum : uint { GMEM_MODIFY = 0x0080 }
458 -enum : uint { GMEM_DISCARDABLE = 0x0100 }
459 -enum : uint { GMEM_NOT_BANKED = 0x1000 }
460 -enum : uint { GMEM_SHARE = 0x2000 }
461 -enum : uint { GMEM_DDESHARE = 0x2000 }
462 -enum : uint { GMEM_NOTIFY = 0x4000 }
463 -alias GMEM_NOT_BANKED GMEM_LOWER;
464 -enum : uint { GMEM_VALID_FLAGS = 0x7F72 }
465 -enum : uint { GMEM_INVALID_HANDLE = 0x8000 }
466 -
467 -enum : uint { GHND = GMEM_MOVEABLE | GMEM_ZEROINIT }
468 -enum : uint { GPTR = GMEM_FIXED | GMEM_ZEROINIT }
469 -
470 -// #define GlobalLRUNewest( h ) ((HANDLE)(h))
471 -// #define GlobalLRUOldest( h ) ((HANDLE)(h))
472 -// #define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE )
473 -
474 -enum : uint { GMEM_DISCARDED = 0x4000 }
475 -enum : uint { GMEM_LOCKCOUNT = 0x00FF }
476 -
477 -struct _MEMORYSTATUS {
478 - DWORD dwLength;
479 - DWORD dwMemoryLoad;
480 - SIZE_T dwTotalPhys;
481 - SIZE_T dwAvailPhys;
482 - SIZE_T dwTotalPageFile;
483 - SIZE_T dwAvailPageFile;
484 - SIZE_T dwTotalVirtual;
485 - SIZE_T dwAvailVirtual;
486 -}
487 -alias _MEMORYSTATUS MEMORYSTATUS;
488 -alias _MEMORYSTATUS* LPMEMORYSTATUS;
489 -
490 -enum : uint { LMEM_FIXED = 0x0000 }
491 -enum : uint { LMEM_MOVEABLE = 0x0002 }
492 -enum : uint { LMEM_NOCOMPACT = 0x0010 }
493 -enum : uint { LMEM_NODISCARD = 0x0020 }
494 -enum : uint { LMEM_ZEROINIT = 0x0040 }
495 -enum : uint { LMEM_MODIFY = 0x0080 }
496 -enum : uint { LMEM_DISCARDABLE = 0x0F00 }
497 -enum : uint { LMEM_VALID_FLAGS = 0x0F72 }
498 -enum : uint { LMEM_INVALID_HANDLE = 0x8000 }
499 -
500 -enum : uint { LHND = LMEM_MOVEABLE | LMEM_ZEROINIT }
501 -enum : uint { LPTR = LMEM_FIXED | LMEM_ZEROINIT }
502 -
503 -enum : uint { NONZEROLHND = LMEM_MOVEABLE }
504 -enum : uint { NONZEROLPTR = LMEM_FIXED }
505 -
506 -// #define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE )
507 -
508 -enum : uint { LMEM_DISCARDED = 0x4000 }
509 -enum : uint { LMEM_LOCKCOUNT = 0x00FF }
510 -
511 -enum : uint { DEBUG_PROCESS = 0x00000001 }
512 -enum : uint { DEBUG_ONLY_THIS_PROCESS = 0x00000002 }
513 -
514 -enum : uint { CREATE_SUSPENDED = 0x00000004 }
515 -
516 -enum : uint { DETACHED_PROCESS = 0x00000008 }
517 -
518 -enum : uint { CREATE_NEW_CONSOLE = 0x00000010 }
519 -
520 -enum : uint { NORMAL_PRIORITY_CLASS = 0x00000020 }
521 -enum : uint { IDLE_PRIORITY_CLASS = 0x00000040 }
522 -enum : uint { HIGH_PRIORITY_CLASS = 0x00000080 }
523 -enum : uint { REALTIME_PRIORITY_CLASS = 0x00000100 }
524 -
525 -enum : uint { CREATE_NEW_PROCESS_GROUP = 0x00000200 }
526 -enum : uint { CREATE_UNICODE_ENVIRONMENT = 0x00000400 }
527 -
528 -enum : uint { CREATE_SEPARATE_WOW_VDM = 0x00000800 }
529 -enum : uint { CREATE_SHARED_WOW_VDM = 0x00001000 }
530 -enum : uint { CREATE_FORCEDOS = 0x00002000 }
531 -
532 -enum : uint { BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 }
533 -enum : uint { ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 }
534 -enum : uint { STACK_SIZE_PARAM_IS_A_RESERVATION = 0x00010000 }
535 -
536 -enum : uint { CREATE_BREAKAWAY_FROM_JOB = 0x01000000 }
537 -enum : uint { CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 }
538 -
539 -enum : uint { CREATE_DEFAULT_ERROR_MODE = 0x04000000 }
540 -enum : uint { CREATE_NO_WINDOW = 0x08000000 }
541 -
542 -enum : uint { PROFILE_USER = 0x10000000 }
543 -enum : uint { PROFILE_KERNEL = 0x20000000 }
544 -enum : uint { PROFILE_SERVER = 0x40000000 }
545 -
546 -enum : uint { CREATE_IGNORE_SYSTEM_DEFAULT = 0x80000000 }
547 -
548 -alias THREAD_BASE_PRIORITY_MIN THREAD_PRIORITY_LOWEST;
549 -enum : uint { THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1 }
550 -enum : uint { THREAD_PRIORITY_NORMAL = 0 }
551 -alias THREAD_BASE_PRIORITY_MAX THREAD_PRIORITY_HIGHEST;
552 -enum : uint { THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1 }
553 -enum : uint { THREAD_PRIORITY_ERROR_RETURN = MAXLONG }
554 -
555 -alias THREAD_BASE_PRIORITY_LOWRT THREAD_PRIORITY_TIME_CRITICAL;
556 -alias THREAD_BASE_PRIORITY_IDLE THREAD_PRIORITY_IDLE;
557 -
558 -enum : uint { EXCEPTION_DEBUG_EVENT = 1 }
559 -enum : uint { CREATE_THREAD_DEBUG_EVENT = 2 }
560 -enum : uint { CREATE_PROCESS_DEBUG_EVENT = 3 }
561 -enum : uint { EXIT_THREAD_DEBUG_EVENT = 4 }
562 -enum : uint { EXIT_PROCESS_DEBUG_EVENT = 5 }
563 -enum : uint { LOAD_DLL_DEBUG_EVENT = 6 }
564 -enum : uint { UNLOAD_DLL_DEBUG_EVENT = 7 }
565 -enum : uint { OUTPUT_DEBUG_STRING_EVENT = 8 }
566 -enum : uint { RIP_EVENT = 9 }
567 -
568 -struct _EXCEPTION_DEBUG_INFO {
569 - EXCEPTION_RECORD ExceptionRecord;
570 - DWORD dwFirstChance;
571 -}
572 -alias _EXCEPTION_DEBUG_INFO EXCEPTION_DEBUG_INFO;
573 -alias _EXCEPTION_DEBUG_INFO* LPEXCEPTION_DEBUG_INFO;
574 -
575 -struct _CREATE_THREAD_DEBUG_INFO {
576 - HANDLE hThread;
577 - LPVOID lpThreadLocalBase;
578 - LPTHREAD_START_ROUTINE lpStartAddress;
579 -}
580 -alias _CREATE_THREAD_DEBUG_INFO CREATE_THREAD_DEBUG_INFO;
581 -alias _CREATE_THREAD_DEBUG_INFO* LPCREATE_THREAD_DEBUG_INFO;
582 -
583 -struct _CREATE_PROCESS_DEBUG_INFO {
584 - HANDLE hFile;
585 - HANDLE hProcess;
586 - HANDLE hThread;
587 - LPVOID lpBaseOfImage;
588 - DWORD dwDebugInfoFileOffset;
589 - DWORD nDebugInfoSize;
590 - LPVOID lpThreadLocalBase;
591 - LPTHREAD_START_ROUTINE lpStartAddress;
592 - LPVOID lpImageName;
593 - WORD fUnicode;
594 -}
595 -alias _CREATE_PROCESS_DEBUG_INFO CREATE_PROCESS_DEBUG_INFO;
596 -alias _CREATE_PROCESS_DEBUG_INFO* LPCREATE_PROCESS_DEBUG_INFO;
597 -
598 -struct _EXIT_THREAD_DEBUG_INFO {
599 - DWORD dwExitCode;
600 -}
601 -alias _EXIT_THREAD_DEBUG_INFO EXIT_THREAD_DEBUG_INFO;
602 -alias _EXIT_THREAD_DEBUG_INFO* LPEXIT_THREAD_DEBUG_INFO;
603 -
604 -struct _EXIT_PROCESS_DEBUG_INFO {
605 - DWORD dwExitCode;
606 -}
607 -alias _EXIT_PROCESS_DEBUG_INFO EXIT_PROCESS_DEBUG_INFO;
608 -alias _EXIT_PROCESS_DEBUG_INFO* LPEXIT_PROCESS_DEBUG_INFO;
609 -
610 -struct _LOAD_DLL_DEBUG_INFO {
611 - HANDLE hFile;
612 - LPVOID lpBaseOfDll;
613 - DWORD dwDebugInfoFileOffset;
614 - DWORD nDebugInfoSize;
615 - LPVOID lpImageName;
616 - WORD fUnicode;
617 -}
618 -alias _LOAD_DLL_DEBUG_INFO LOAD_DLL_DEBUG_INFO;
619 -alias _LOAD_DLL_DEBUG_INFO* LPLOAD_DLL_DEBUG_INFO;
620 -
621 -struct _UNLOAD_DLL_DEBUG_INFO {
622 - LPVOID lpBaseOfDll;
623 -}
624 -alias _UNLOAD_DLL_DEBUG_INFO UNLOAD_DLL_DEBUG_INFO;
625 -alias _UNLOAD_DLL_DEBUG_INFO* LPUNLOAD_DLL_DEBUG_INFO;
626 -
627 -struct _OUTPUT_DEBUG_STRING_INFO {
628 - LPSTR lpDebugStringData;
629 - WORD fUnicode;
630 - WORD nDebugStringLength;
631 -}
632 -alias _OUTPUT_DEBUG_STRING_INFO OUTPUT_DEBUG_STRING_INFO;
633 -alias _OUTPUT_DEBUG_STRING_INFO* LPOUTPUT_DEBUG_STRING_INFO;
634 -
635 -struct _RIP_INFO {
636 - DWORD dwError;
637 - DWORD dwType;
638 -}
639 -alias _RIP_INFO RIP_INFO;
640 -alias _RIP_INFO* LPRIP_INFO;
641 -
642 -struct _DEBUG_EVENT {
643 - DWORD dwDebugEventCode;
644 - DWORD dwProcessId;
645 - DWORD dwThreadId;
646 -union {
647 - EXCEPTION_DEBUG_INFO Exception;
648 - CREATE_THREAD_DEBUG_INFO CreateThread;
649 - CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
650 - EXIT_THREAD_DEBUG_INFO ExitThread;
651 - EXIT_PROCESS_DEBUG_INFO ExitProcess;
652 - LOAD_DLL_DEBUG_INFO LoadDll;
653 - UNLOAD_DLL_DEBUG_INFO UnloadDll;
654 - OUTPUT_DEBUG_STRING_INFO DebugString;
655 - RIP_INFO RipInfo;
656 -}
657 -
658 -}
659 -alias _DEBUG_EVENT DEBUG_EVENT;
660 -alias _DEBUG_EVENT* LPDEBUG_EVENT;
661 -
662 -// #if !defined(MIDL_PASS)
663 -alias PCONTEXT LPCONTEXT;
664 -alias PEXCEPTION_RECORD LPEXCEPTION_RECORD;
665 -alias PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
666 -// #endif
667 -
668 -enum : uint { DRIVE_UNKNOWN = 0 }
669 -enum : uint { DRIVE_NO_ROOT_DIR = 1 }
670 -enum : uint { DRIVE_REMOVABLE = 2 }
671 -enum : uint { DRIVE_FIXED = 3 }
672 -enum : uint { DRIVE_REMOTE = 4 }
673 -enum : uint { DRIVE_CDROM = 5 }
674 -enum : uint { DRIVE_RAMDISK = 6 }
675 -
676 -// #ifndef _MAC
677 -// #define GetFreeSpace(w) (0x100000L)
678 -// #else
679 -// ...
680 -// #endif
681 -
682 -enum : uint { FILE_TYPE_UNKNOWN = 0x0000 }
683 -enum : uint { FILE_TYPE_DISK = 0x0001 }
684 -enum : uint { FILE_TYPE_CHAR = 0x0002 }
685 -enum : uint { FILE_TYPE_PIPE = 0x0003 }
686 -enum : uint { FILE_TYPE_REMOTE = 0x8000 }
687 -
688 -enum : uint { STD_INPUT_HANDLE = cast(DWORD)-10 }
689 -enum : uint { STD_OUTPUT_HANDLE = cast(DWORD)-11 }
690 -enum : uint { STD_ERROR_HANDLE = cast(DWORD)-12 }
691 -
692 -enum : uint { NOPARITY = 0 }
693 -enum : uint { ODDPARITY = 1 }
694 -enum : uint { EVENPARITY = 2 }
695 -enum : uint { MARKPARITY = 3 }
696 -enum : uint { SPACEPARITY = 4 }
697 -
698 -enum : uint { ONESTOPBIT = 0 }
699 -enum : uint { ONE5STOPBITS = 1 }
700 -enum : uint { TWOSTOPBITS = 2 }
701 -
702 -enum : uint { IGNORE = 0 }
703 -enum : uint { INFINITE = 0xFFFFFFFF }
704 -
705 -enum : uint { CBR_110 = 110 }
706 -enum : uint { CBR_300 = 300 }
707 -enum : uint { CBR_600 = 600 }
708 -enum : uint { CBR_1200 = 1200 }
709 -enum : uint { CBR_2400 = 2400 }
710 -enum : uint { CBR_4800 = 4800 }
711 -enum : uint { CBR_9600 = 9600 }
712 -enum : uint { CBR_14400 = 14400 }
713 -enum : uint { CBR_19200 = 19200 }
714 -enum : uint { CBR_38400 = 38400 }
715 -enum : uint { CBR_56000 = 56000 }
716 -enum : uint { CBR_57600 = 57600 }
717 -enum : uint { CBR_115200 = 115200 }
718 -enum : uint { CBR_128000 = 128000 }
719 -enum : uint { CBR_256000 = 256000 }
720 -
721 -enum : uint { CE_RXOVER = 0x0001 }
722 -enum : uint { CE_OVERRUN = 0x0002 }
723 -enum : uint { CE_RXPARITY = 0x0004 }
724 -enum : uint { CE_FRAME = 0x0008 }
725 -enum : uint { CE_BREAK = 0x0010 }
726 -enum : uint { CE_TXFULL = 0x0100 }
727 -enum : uint { CE_PTO = 0x0200 }
728 -enum : uint { CE_IOE = 0x0400 }
729 -enum : uint { CE_DNS = 0x0800 }
730 -enum : uint { CE_OOP = 0x1000 }
731 -enum : uint { CE_MODE = 0x8000 }
732 -
733 -enum { IE_BADID = -1 }
734 -enum { IE_OPEN = -2 }
735 -enum { IE_NOPEN = -3 }
736 -enum { IE_MEMORY = -4 }
737 -enum { IE_DEFAULT = -5 }
738 -enum { IE_HARDWARE = -10 }
739 -enum { IE_BYTESIZE = -11 }
740 -enum { IE_BAUDRATE = -12 }
741 -
742 -enum : uint { EV_RXCHAR = 0x0001 }
743 -enum : uint { EV_RXFLAG = 0x0002 }
744 -enum : uint { EV_TXEMPTY = 0x0004 }
745 -enum : uint { EV_CTS = 0x0008 }
746 -enum : uint { EV_DSR = 0x0010 }
747 -enum : uint { EV_RLSD = 0x0020 }
748 -enum : uint { EV_BREAK = 0x0040 }
749 -enum : uint { EV_ERR = 0x0080 }
750 -enum : uint { EV_RING = 0x0100 }
751 -enum : uint { EV_PERR = 0x0200 }
752 -enum : uint { EV_RX80FULL = 0x0400 }
753 -enum : uint { EV_EVENT1 = 0x0800 }
754 -enum : uint { EV_EVENT2 = 0x1000 }
755 -
756 -enum : uint { SETXOFF = 1 }
757 -enum : uint { SETXON = 2 }
758 -enum : uint { SETRTS = 3 }
759 -enum : uint { CLRRTS = 4 }
760 -enum : uint { SETDTR = 5 }
761 -enum : uint { CLRDTR = 6 }
762 -enum : uint { RESETDEV = 7 }
763 -enum : uint { SETBREAK = 8 }
764 -enum : uint { CLRBREAK = 9 }
765 -
766 -enum : uint { PURGE_TXABORT = 0x0001 }
767 -enum : uint { PURGE_RXABORT = 0x0002 }
768 -enum : uint { PURGE_TXCLEAR = 0x0004 }
769 -enum : uint { PURGE_RXCLEAR = 0x0008 }
770 -
771 -enum : uint { LPTx = 0x80 }
772 -
773 -enum : uint { MS_CTS_ON = cast(DWORD)0x0010 }
774 -enum : uint { MS_DSR_ON = cast(DWORD)0x0020 }
775 -enum : uint { MS_RING_ON = cast(DWORD)0x0040 }
776 -enum : uint { MS_RLSD_ON = cast(DWORD)0x0080 }
777 -
778 -enum : uint { S_QUEUEEMPTY = 0 }
779 -enum : uint { S_THRESHOLD = 1 }
780 -enum : uint { S_ALLTHRESHOLD = 2 }
781 -
782 -enum : uint { S_NORMAL = 0 }
783 -enum : uint { S_LEGATO = 1 }
784 -enum : uint { S_STACCATO = 2 }
785 -
786 -enum : uint { S_PERIOD512 = 0 }
787 -enum : uint { S_PERIOD1024 = 1 }
788 -enum : uint { S_PERIOD2048 = 2 }
789 -enum : uint { S_PERIODVOICE = 3 }
790 -enum : uint { S_WHITE512 = 4 }
791 -enum : uint { S_WHITE1024 = 5 }
792 -enum : uint { S_WHITE2048 = 6 }
793 -enum : uint { S_WHITEVOICE = 7 }
794 -
795 -enum { S_SERDVNA = -1 }
796 -enum { S_SEROFM = -2 }
797 -enum { S_SERMACT = -3 }
798 -enum { S_SERQFUL = -4 }
799 -enum { S_SERBDNT = -5 }
800 -enum { S_SERDLN = -6 }
801 -enum { S_SERDCC = -7 }
802 -enum { S_SERDTP = -8 }
803 -enum { S_SERDVL = -9 }
804 -enum { S_SERDMD = -10 }
805 -enum { S_SERDSH = -11 }
806 -enum { S_SERDPT = -12 }
807 -enum { S_SERDFQ = -13 }
808 -enum { S_SERDDR = -14 }
809 -enum { S_SERDSR = -15 }
810 -enum { S_SERDST = -16 }
811 -
812 -enum : uint { NMPWAIT_WAIT_FOREVER = 0xffffffff }
813 -enum : uint { NMPWAIT_NOWAIT = 0x00000001 }
814 -enum : uint { NMPWAIT_USE_DEFAULT_WAIT = 0x00000000 }
815 -
816 -alias FILE_CASE_PRESERVED_NAMES FS_CASE_IS_PRESERVED;
817 -alias FILE_CASE_SENSITIVE_SEARCH FS_CASE_SENSITIVE;
818 -alias FILE_UNICODE_ON_DISK FS_UNICODE_STORED_ON_DISK;
819 -alias FILE_PERSISTENT_ACLS FS_PERSISTENT_ACLS;
820 -alias FILE_VOLUME_IS_COMPRESSED FS_VOL_IS_COMPRESSED;
821 -alias FILE_FILE_COMPRESSION FS_FILE_COMPRESSION;
822 -alias FILE_SUPPORTS_ENCRYPTION FS_FILE_ENCRYPTION;
823 -
824 -alias SECTION_QUERY FILE_MAP_COPY;
825 -alias SECTION_MAP_WRITE FILE_MAP_WRITE;
826 -alias SECTION_MAP_READ FILE_MAP_READ;
827 -alias SECTION_ALL_ACCESS FILE_MAP_ALL_ACCESS;
828 -
829 -enum : uint { OF_READ = 0x00000000 }
830 -enum : uint { OF_WRITE = 0x00000001 }
831 -enum : uint { OF_READWRITE = 0x00000002 }
832 -enum : uint { OF_SHARE_COMPAT = 0x00000000 }
833 -enum : uint { OF_SHARE_EXCLUSIVE = 0x00000010 }
834 -enum : uint { OF_SHARE_DENY_WRITE = 0x00000020 }
835 -enum : uint { OF_SHARE_DENY_READ = 0x00000030 }
836 -enum : uint { OF_SHARE_DENY_NONE = 0x00000040 }
837 -enum : uint { OF_PARSE = 0x00000100 }
838 -enum : uint { OF_DELETE = 0x00000200 }
839 -enum : uint { OF_VERIFY = 0x00000400 }
840 -enum : uint { OF_CANCEL = 0x00000800 }
841 -enum : uint { OF_CREATE = 0x00001000 }
842 -enum : uint { OF_PROMPT = 0x00002000 }
843 -enum : uint { OF_EXIST = 0x00004000 }
844 -enum : uint { OF_REOPEN = 0x00008000 }
845 -
846 -enum : uint { OFS_MAXPATHNAME = 128 }
847 -struct _OFSTRUCT {
848 - BYTE cBytes;
849 - BYTE fFixedDisk;
850 - WORD nErrCode;
851 - WORD Reserved1;
852 - WORD Reserved2;
853 - CHAR szPathName[OFS_MAXPATHNAME];
854 -}
855 -alias _OFSTRUCT OFSTRUCT;
856 -alias _OFSTRUCT* LPOFSTRUCT;
857 -alias _OFSTRUCT* POFSTRUCT;
858 -
859 -// #ifndef NOWINBASEINTERLOCK
860 -
861 -// #ifndef _NTOS_
862 -
863 -// #if defined(_M_IA64) && !defined(RC_INVOKED)
864 -
865 -// #...
866 -// #...
867 -// #...
868 -// #...
869 -// #...
870 -// #...
871 -// #...
872 -
873 -// ...
874 -
875 -// ...
876 -
877 -// ...
878 -
879 -// ...
880 -
881 -// ...
882 -
883 -// ...
884 -
885 -// ...
886 -
887 -// #...
888 -// #...
889 -// #...
890 -// #...
891 -// #...
892 -// #...
893 -// #...
894 -
895 -// #elif defined(_M_AMD64) && !defined(RC_INVOKED)
896 -
897 -// #...
898 -// #...
899 -// #...
900 -// #...
901 -// #...
902 -// #...
903 -// #...
904 -
905 -// ...
906 -
907 -// ...
908 -
909 -// ...
910 -
911 -// ...
912 -
913 -// ...
914 -
915 -// ...
916 -
917 -// ...
918 -
919 -// #...
920 -// #...
921 -// #...
922 -// #...
923 -// #...
924 -// #...
925 -// #...
926 -
927 -// #else // X86 interlocked definitions
928 -
929 -extern(Windows) export LONG InterlockedIncrement(
930 - LONG *lpAddend);
931 -
932 -extern(Windows) export LONG InterlockedDecrement(
933 - LONG *lpAddend);
934 -
935 -extern(Windows) export LONG InterlockedExchange(
936 - LONG *Target,
937 - LONG Value);
938 -
939 -void* InterlockedExchangePointer(void** t, void* v){ return cast(void*)InterlockedExchange(cast(PLONG)t, cast(LONG)v); }
940 -
941 -extern(Windows) export LONG InterlockedExchangeAdd(
942 - LONG *Addend,
943 - LONG Value);
944 -
945 -extern(Windows) export LONG InterlockedCompareExchange(
946 - LONG *Destination,
947 - LONG Exchange,
948 - LONG Comperand);
949 -
950 -// #ifdef __cplusplus
951 -
952 -PVOID __InlineInterlockedCompareExchangePointer(PVOID* Destination, PVOID ExChange, PVOID Comperand){ return(cast(PVOID)cast(LONG_PTR)InterlockedCompareExchange(cast(LONG*)Destination, cast(LONG)cast(LONG_PTR)ExChange, cast(LONG)cast(LONG_PTR)Comperand)); }
953 -alias __InlineInterlockedCompareExchangePointer InterlockedCompareExchangePointer;
954 -
955 -// #else
956 -
957 -// #...
958 -// ...
959 -
960 -// #endif /* __cplusplus */
961 -
962 -// #endif /* X86 | IA64 */
963 -
964 -// #if defined(_SLIST_HEADER_) && !defined(_NTOSP_)
965 -
966 -// ...
967 -
968 -// ...
969 -
970 -// ...
971 -
972 -// ...
973 -
974 -// ...
975 -
976 -// #endif /* _SLIST_HEADER_ */
977 -// #endif /* _NTOS_ */
978 -
979 -// #endif /* NOWINBASEINTERLOCK */
980 -
981 -extern(Windows) export BOOL FreeResource(
982 - HGLOBAL hResData);
983 -
984 -extern(Windows) export LPVOID LockResource(
985 - HGLOBAL hResData);
986 -
987 -// #define UnlockResource(hResData) ((hResData), 0)
988 -enum : uint { MAXINTATOM = 0xC000 }
989 -// #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))
990 -enum : ATOM { INVALID_ATOM = 0 }
991 -
992 -// #ifndef _MAC
11 +pragma(lib, "kernel32.lib");
12 +
13 +/**
14 +Translation Notes:
15 +The following macros are obsolete, and have no effect.
16 +
17 +LockSegment(w), MakeProcInstance(p, i), UnlockResource(h), UnlockSegment(w)
18 +FreeModule(m), FreeProcInstance(p), GetFreeSpace(w), DefineHandleTable(w)
19 +SetSwapAreaSize(w), LimitEmsPages(n), Yield()
20 +
21 +// The following Win16 functions are obselete in Win32.
22 +
23 + int _hread(HFILE, LPVOID, int);
24 + int _hwrite(HFILE, LPCSTR, int);
25 + HFILE _lclose(HFILE);
26 + HFILE _lcreat(LPCSTR, int);
27 + LONG _llseek(HFILE, LONG, int);
28 + HFILE _lopen(LPCSTR, int);
29 + UINT _lread(HFILE, LPVOID, UINT);
30 + UINT _lwrite(HFILE, LPCSTR, UINT);
31 + SIZE_T GlobalCompact(DWORD);
32 + VOID GlobalFix(HGLOBAL);
33 +* MSDN contradicts itself on GlobalFlags:
34 +* "This function is provided only for compatibility with 16-bit versions of Windows."
35 +* but also requires Windows 2000 or above
36 + UINT GlobalFlags(HGLOBAL);
37 + VOID GlobalUnfix(HGLOBAL);
38 + BOOL GlobalUnWire(HGLOBAL);
39 + PVOID GlobalWire(HGLOBAL);
40 + SIZE_T LocalCompact(UINT);
41 + UINT LocalFlags(HLOCAL);
42 + SIZE_T LocalShrink(HLOCAL, UINT);
43 +
44 +// These are not required for DMD.
45 +
46 +//FIXME:
47 +// #ifndef UNDER_CE
48 + int WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
49 +#else
50 + int WinMain(HINSTANCE, HINSTANCE, LPWSTR, int);
51 +#endif
52 +int wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int);
53 +
54 +*/
55 +
56 +import win32.windef, win32.winver;
57 +private import win32.basetyps, win32.w32api, win32.winnt;
58 +
59 +// FIXME:
60 +alias void va_list;
61 +
62 +
63 +/+
64 +//--------------------------------------
65 +// These functions are problematic
66 +
67 +version(UseNtoSKernel) {}else {
68 + /* CAREFUL: These are exported from ntoskrnl.exe and declared in winddk.h
69 + as __fastcall functions, but are exported from kernel32.dll as __stdcall */
70 + static if (_WIN32_WINNT >= 0x0501) {
71 + VOID InitializeSListHead(PSLIST_HEADER);
72 + }
73 + LONG InterlockedCompareExchange(LPLONG, LONG, LONG);
74 + // PVOID WINAPI InterlockedCompareExchangePointer(PVOID*, PVOID, PVOID);
75 + (PVOID)InterlockedCompareExchange((LPLONG)(d) (PVOID)InterlockedCompareExchange((LPLONG)(d), (LONG)(e), (LONG)(c))
76 + LONG InterlockedDecrement(LPLONG);
77 + LONG InterlockedExchange(LPLONG, LONG);
78 + // PVOID WINAPI InterlockedExchangePointer(PVOID*, PVOID);
79 + (PVOID)InterlockedExchange((LPLONG)((PVOID)InterlockedExchange((LPLONG)(t), (LONG)(v))
80 + LONG InterlockedExchangeAdd(LPLONG, LONG);
81 +
82 + static if (_WIN32_WINNT >= 0x0501) {
83 + PSLIST_ENTRY InterlockedFlushSList(PSLIST_HEADER);
84 + }
85 + LONG InterlockedIncrement(LPLONG);
86 + static if (_WIN32_WINNT >= 0x0501) {
87 + PSLIST_ENTRY InterlockedPopEntrySList(PSLIST_HEADER);
88 + PSLIST_ENTRY InterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY);
89 + }
90 +} // #endif // __USE_NTOSKRNL__
91 +//--------------------------------------
92 ++/
93 +
94 +// COMMPROP structure, used by GetCommProperties()
95 +// -----------------------------------------------
96 +
97 +// Communications provider type
98 +enum : DWORD {
99 + PST_UNSPECIFIED,
100 + PST_RS232,
101 + PST_PARALLELPORT,
102 + PST_RS422,
103 + PST_RS423,
104 + PST_RS449,
105 + PST_MODEM, // = 6
106 + PST_FAX = 0x0021,
107 + PST_SCANNER = 0x0022,
108 + PST_NETWORK_BRIDGE = 0x0100,
109 + PST_LAT = 0x0101,
110 + PST_TCPIP_TELNET = 0x0102,
111 + PST_X25 = 0x0103
112 +}
113 +
114 +// Max baud rate
115 +enum : DWORD {
116 + BAUD_075 = 0x00000001,
117 + BAUD_110 = 0x00000002,
118 + BAUD_134_5 = 0x00000004,
119 + BAUD_150 = 0x00000008,
120 + BAUD_300 = 0x00000010,
121 + BAUD_600 = 0x00000020,
122 + BAUD_1200 = 0x00000040,
123 + BAUD_1800 = 0x00000080,
124 + BAUD_2400 = 0x00000100,
125 + BAUD_4800 = 0x00000200,
126 + BAUD_7200 = 0x00000400,
127 + BAUD_9600 = 0x00000800,
128 + BAUD_14400 = 0x00001000,
129 + BAUD_19200 = 0x00002000,
130 + BAUD_38400 = 0x00004000,
131 + BAUD_56K = 0x00008000,
132 + BAUD_128K = 0x00010000,
133 + BAUD_115200 = 0x00020000,
134 + BAUD_57600 = 0x00040000,
135 + BAUD_USER = 0x10000000
136 +}
137 +
138 +// Comm capabilities
139 +enum : DWORD {
140 + PCF_DTRDSR = 0x0001,
141 + PCF_RTSCTS = 0x0002,
142 + PCF_RLSD = 0x0004,
143 + PCF_PARITY_CHECK = 0x0008,
144 + PCF_XONXOFF = 0x0010,
145 + PCF_SETXCHAR = 0x0020,
146 + PCF_TOTALTIMEOUTS = 0x0040,
147 + PCF_INTTIMEOUTS = 0x0080,
148 + PCF_SPECIALCHARS = 0x0100,
149 + PCF_16BITMODE = 0x0200
150 +}
151 +
152 +enum : DWORD {
153 + SP_PARITY = 1,
154 + SP_BAUD = 2,
155 + SP_DATABITS = 4,
156 + SP_STOPBITS = 8,
157 + SP_HANDSHAKING = 16,
158 + SP_PARITY_CHECK = 32,
159 + SP_RLSD = 64
160 +}
161 +
162 +enum : DWORD {
163 + DATABITS_5 = 1,
164 + DATABITS_6 = 2,
165 + DATABITS_7 = 4,
166 + DATABITS_8 = 8,
167 + DATABITS_16 = 16,
168 + DATABITS_16X = 32
169 +}
170 +
171 +enum : WORD {
172 + STOPBITS_10 = 0x0001,
173 + STOPBITS_15 = 0x0002,
174 + STOPBITS_20 = 0x0004,
175 + PARITY_NONE = 0x0100,
176 + PARITY_ODD = 0x0200,
177 + PARITY_EVEN = 0x0400,
178 + PARITY_MARK = 0x0800,
179 + PARITY_SPACE = 0x1000
180 +}
181 +
182 +// used by dwServiceMask
183 +const SP_SERIALCOMM = 1;
184 +
185 +struct COMMPROP {
186 + WORD wPacketLength;
187 + WORD wPacketVersion;
188 + DWORD dwServiceMask;
189 + DWORD dwReserved1;
190 + DWORD dwMaxTxQueue;
191 + DWORD dwMaxRxQueue;
192 + DWORD dwMaxBaud;
193 + DWORD dwProvSubType;
194 + DWORD dwProvCapabilities;
195 + DWORD dwSettableParams;
196 + DWORD dwSettableBaud;
197 + WORD wSettableData;
198 + WORD wSettableStopParity;
199 + DWORD dwCurrentTxQueue;
200 + DWORD dwCurrentRxQueue;
201 + DWORD dwProvSpec1;
202 + DWORD dwProvSpec2;
203 + WCHAR _wcProvChar;
204 +
205 + WCHAR* wcProvChar() { return &_wcProvChar; }
206 +}
207 +alias COMMPROP* LPCOMMPROP;
208 +
209 +// ----------
210 +
211 +// for DEBUG_EVENT
212 +enum : DWORD {
213 + EXCEPTION_DEBUG_EVENT = 1,
214 + CREATE_THREAD_DEBUG_EVENT,
215 + CREATE_PROCESS_DEBUG_EVENT,
216 + EXIT_THREAD_DEBUG_EVENT,
217 + EXIT_PROCESS_DEBUG_EVENT,
218 + LOAD_DLL_DEBUG_EVENT,
219 + UNLOAD_DLL_DEBUG_EVENT,
220 + OUTPUT_DEBUG_STRING_EVENT,
221 + RIP_EVENT
222 +}
223 +
224 +const HFILE HFILE_ERROR = cast(HFILE) (-1);
225 +
226 +// for SetFilePointer()
227 +enum : DWORD {
228 + FILE_BEGIN = 0,
229 + FILE_CURRENT = 1,
230 + FILE_END = 2
231 +}
232 +const DWORD INVALID_SET_FILE_POINTER = -1;
233 +
234 +
235 +// for OpenFile()
236 +deprecated enum : UINT {
237 + OF_READ = 0,
238 + OF_WRITE = 0x0001,
239 + OF_READWRITE = 0x0002,
240 + OF_SHARE_COMPAT = 0,
241 + OF_SHARE_EXCLUSIVE = 0x0010,
242 + OF_SHARE_DENY_WRITE = 0x0020,
243 + OF_SHARE_DENY_READ = 0x0030,
244 + OF_SHARE_DENY_NONE = 0x0040,
245 + OF_PARSE = 0x0100,
246 + OF_DELETE = 0x0200,
247 + OF_VERIFY = 0x0400,
248 + OF_CANCEL = 0x0800,
249 + OF_CREATE = 0x1000,
250 + OF_PROMPT = 0x2000,
251 + OF_EXIST = 0x4000,
252 + OF_REOPEN = 0x8000
253 +}
254 +
255 +enum : DWORD {
256 + NMPWAIT_NOWAIT = 1,
257 + NMPWAIT_WAIT_FOREVER = -1,
258 + NMPWAIT_USE_DEFAULT_WAIT = 0
259 +}
260 +
261 +// for ClearCommError()
262 +const DWORD
263 + CE_RXOVER = 0x0001,
264 + CE_OVERRUN = 0x0002,
265 + CE_RXPARITY = 0x0004,
266 + CE_FRAME = 0x0008,
267 + CE_BREAK = 0x0010,
268 + CE_TXFULL = 0x0100,
269 + CE_PTO = 0x0200,
270 + CE_IOE = 0x0400,
271 + CE_DNS = 0x0800,
272 + CE_OOP = 0x1000,
273 + CE_MODE = 0x8000;
274 +
275 +// for CopyProgressRoutine callback.
276 +enum : DWORD {
277 + PROGRESS_CONTINUE = 0,
278 + PROGRESS_CANCEL = 1,
279 + PROGRESS_STOP = 2,
280 + PROGRESS_QUIET = 3
281 +}
282 +
283 +enum : DWORD {
284 + CALLBACK_CHUNK_FINISHED = 0,
285 + CALLBACK_STREAM_SWITCH = 1
286 +}
287 +
288 +// CopyFileEx()
289 +enum : DWORD {
290 + COPY_FILE_FAIL_IF_EXISTS = 1,
291 + COPY_FILE_RESTARTABLE = 2
292 +}
293 +
294 +enum : DWORD {
295 + FILE_MAP_COPY = 1,
296 + FILE_MAP_WRITE = 2,
297 + FILE_MAP_READ = 4,
298 + FILE_MAP_ALL_ACCESS = 0x000F001F
299 +}
300 +
301 +enum : DWORD {
302 + MUTEX_ALL_ACCESS = 0x001f0001,
303 + MUTEX_MODIFY_STATE = 0x00000001,
304 + SEMAPHORE_ALL_ACCESS = 0x001f0003,
305 + SEMAPHORE_MODIFY_STATE = 0x00000002,
306 + EVENT_ALL_ACCESS = 0x001f0003,
307 + EVENT_MODIFY_STATE = 0x00000002
308 +}
309 +
310 +// CreateNamedPipe()
311 +enum : DWORD {
312 + PIPE_ACCESS_INBOUND = 1,
313 + PIPE_ACCESS_OUTBOUND = 2,
314 + PIPE_ACCESS_DUPLEX = 3
315 +}
316 +
317 +const DWORD
318 + PIPE_TYPE_BYTE = 0,
319 + PIPE_TYPE_MESSAGE = 4,
320 + PIPE_READMODE_BYTE = 0,
321 + PIPE_READMODE_MESSAGE = 2,
322 + PIPE_WAIT = 0,
323 + PIPE_NOWAIT = 1;
324 +
325 +// GetNamedPipeInfo()
326 +const DWORD
327 + PIPE_CLIENT_END = 0,
328 + PIPE_SERVER_END = 1;
329 +
330 +const DWORD PIPE_UNLIMITED_INSTANCES = 255;
331 +
332 +// dwCreationFlags for CreateProcess() and CreateProcessAsUser()
333 +enum : DWORD {
334 + DEBUG_PROCESS = 0x00000001,
335 + DEBUG_ONLY_THIS_PROCESS = 0x00000002,
336 + CREATE_SUSPENDED = 0x00000004,
337 + DETACHED_PROCESS = 0x00000008,
338 + CREATE_NEW_CONSOLE = 0x00000010,
339 + NORMAL_PRIORITY_CLASS = 0x00000020,
340 + IDLE_PRIORITY_CLASS = 0x00000040,
341 + HIGH_PRIORITY_CLASS = 0x00000080,
342 + REALTIME_PRIORITY_CLASS = 0x00000100,
343 + CREATE_NEW_PROCESS_GROUP = 0x00000200,
344 + CREATE_UNICODE_ENVIRONMENT = 0x00000400,
345 + CREATE_SEPARATE_WOW_VDM = 0x00000800,
346 + CREATE_SHARED_WOW_VDM = 0x00001000,
347 + CREATE_FORCEDOS = 0x00002000,
348 + BELOW_NORMAL_PRIORITY_CLASS = 0x00004000,
349 + ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000,
350 + CREATE_BREAKAWAY_FROM_JOB = 0x01000000,
351 + CREATE_WITH_USERPROFILE = 0x02000000,
352 + CREATE_DEFAULT_ERROR_MODE = 0x04000000,
353 + CREATE_NO_WINDOW = 0x08000000,
354 + PROFILE_USER = 0x10000000,
355 + PROFILE_KERNEL = 0x20000000,
356 + PROFILE_SERVER = 0x40000000
357 +}
358 +
359 +const DWORD CONSOLE_TEXTMODE_BUFFER = 1;
360 +
361 +// CreateFile()
362 +enum : DWORD {
363 + CREATE_NEW = 1,
364 + CREATE_ALWAYS,
365 + OPEN_EXISTING,
366 + OPEN_ALWAYS,
367 + TRUNCATE_EXISTING
368 +}
369 +
370 +// CreateFile()
371 +const DWORD
372 + FILE_FLAG_WRITE_THROUGH = 0x80000000,
373 + FILE_FLAG_OVERLAPPED = 0x40000000,
374 + FILE_FLAG_NO_BUFFERING = 0x20000000,
375 + FILE_FLAG_RANDOM_ACCESS = 0x10000000,
376 + FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000,
377 + FILE_FLAG_DELETE_ON_CLOSE = 0x04000000,
378 + FILE_FLAG_BACKUP_SEMANTICS = 0x02000000,
379 + FILE_FLAG_POSIX_SEMANTICS = 0x01000000,
380 + FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000,
381 + FILE_FLAG_OPEN_NO_RECALL = 0x00100000;
382 +
383 +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
384 + const DWORD FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000;
385 +}
386 +
387 +// for CreateFile()
388 +const DWORD
389 + SECURITY_ANONYMOUS = SECURITY_IMPERSONATION_LEVEL.SecurityAnonymous<<16,
390 + SECURITY_IDENTIFICATION = SECURITY_IMPERSONATION_LEVEL.SecurityIdentification<<16,
391 + SECURITY_IMPERSONATION = SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation<<16,
392 + SECURITY_DELEGATION = SECURITY_IMPERSONATION_LEVEL.SecurityDelegation<<16,
393 + SECURITY_CONTEXT_TRACKING = 0x00040000,
394 + SECURITY_EFFECTIVE_ONLY = 0x00080000,
395 + SECURITY_SQOS_PRESENT = 0x00100000,
396 + SECURITY_VALID_SQOS_FLAGS = 0x001F0000;
397 +
398 +
399 +// Thread exit code
400 +const DWORD STILL_ACTIVE = 0x103;
401 +
402 +/* ??? The only documentation of this seems to be about Windows CE and to
403 + * state what _doesn't_ support it.
404 + */
405 +const DWORD FIND_FIRST_EX_CASE_SENSITIVE = 1;
406 +
407 +// GetBinaryType()
408 +enum : DWORD {
409 + SCS_32BIT_BINARY = 0,
410 + SCS_DOS_BINARY,
411 + SCS_WOW_BINARY,
412 + SCS_PIF_BINARY,
413 + SCS_POSIX_BINARY,
414 + SCS_OS216_BINARY
415 +}
416 +
417 +const size_t
418 + MAX_COMPUTERNAME_LENGTH = 15,
419 + HW_PROFILE_GUIDLEN = 39,
420 + MAX_PROFILE_LEN = 80;
421 +
422 +// HW_PROFILE_INFO
423 +const DWORD
424 + DOCKINFO_UNDOCKED = 1,
425 + DOCKINFO_DOCKED = 2,
426 + DOCKINFO_USER_SUPPLIED = 4,
427 + DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED,
428 + DOCKINFO_USER_DOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED;
429 +
430 +// DriveType(), RealDriveType()
431 +enum : int {
432 + DRIVE_UNKNOWN = 0,
433 + DRIVE_NO_ROOT_DIR,
434 + DRIVE_REMOVABLE,
435 + DRIVE_FIXED,
436 + DRIVE_REMOTE,
437 + DRIVE_CDROM,
438 + DRIVE_RAMDISK
439 +}
440 +
441 +// GetFileType()
442 +enum : DWORD {
443 + FILE_TYPE_UNKNOWN = 0,
444 + FILE_TYPE_DISK,
445 + FILE_TYPE_CHAR,
446 + FILE_TYPE_PIPE,
447 + FILE_TYPE_REMOTE = 0x8000
448 +}
449 +
450 +// Get/SetHandleInformation()
451 +const DWORD
452 + HANDLE_FLAG_INHERIT = 0x01,
453 + HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x02;
454 +
455 +enum : DWORD {
456 + STD_INPUT_HANDLE = 0xFFFFFFF6,
457 + STD_OUTPUT_HANDLE = 0xFFFFFFF5,
458 + STD_ERROR_HANDLE = 0xFFFFFFF4
459 +}
460 +
461 +const HANDLE INVALID_HANDLE_VALUE = cast(HANDLE) (-1);
462 +
463 +enum : DWORD {
464 + GET_TAPE_MEDIA_INFORMATION = 0,
465 + GET_TAPE_DRIVE_INFORMATION = 1
466 +}
467 +
468 +enum : DWORD {
469 + SET_TAPE_MEDIA_INFORMATION = 0,
470 + SET_TAPE_DRIVE_INFORMATION = 1
471 +}
472 +
473 +// SetThreadPriority()/GetThreadPriority()
474 +enum : int {
475 + THREAD_PRIORITY_IDLE = -15,
476 + THREAD_PRIORITY_LOWEST = -2,
477 + THREAD_PRIORITY_BELOW_NORMAL = -1,
478 + THREAD_PRIORITY_NORMAL = 0,
479 + THREAD_PRIORITY_ABOVE_NORMAL = 1,
480 + THREAD_PRIORITY_HIGHEST = 2,
481 + THREAD_PRIORITY_TIME_CRITICAL = 15,
482 + THREAD_PRIORITY_ERROR_RETURN = 2147483647
483 +}
484 +
485 +enum : DWORD {
486 + TIME_ZONE_ID_UNKNOWN,
487 + TIME_ZONE_ID_STANDARD,
488 + TIME_ZONE_ID_DAYLIGHT,
489 + TIME_ZONE_ID_INVALID = 0xFFFFFFFF
490 +}
491 +
492 +const DWORD
493 + FS_CASE_SENSITIVE = 1,
494 + FS_CASE_IS_PRESERVED = 2,
495 + FS_UNICODE_STORED_ON_DISK = 4,
496 + FS_PERSISTENT_ACLS = 8,
497 + FS_FILE_COMPRESSION = 16,
498 + FS_VOL_IS_COMPRESSED = 32768;
499 +
500 +// Flags for GlobalAlloc
501 +const UINT
502 + GMEM_FIXED = 0,
503 + GMEM_MOVEABLE = 0x0002,
504 + GMEM_ZEROINIT = 0x0040,
505 + GPTR = 0x0040,
506 + GHND = 0x0042,
507 + GMEM_MODIFY = 0x0080, // used only for GlobalRealloc
508 + GMEM_VALID_FLAGS = 0x7F72;
509 +
510 +/+ // Obselete flags (Win16 only)
511 + GMEM_NOCOMPACT=16;
512 + GMEM_NODISCARD=32;
513 + GMEM_DISCARDABLE=256;
514 + GMEM_NOT_BANKED=4096;
515 + GMEM_LOWER=4096;
516 + GMEM_SHARE=8192;
517 + GMEM_DDESHARE=8192;
518 +
519 + GMEM_LOCKCOUNT=255;
520 +
521 +// for GlobalFlags()
522 + GMEM_DISCARDED = 16384;
523 + GMEM_INVALID_HANDLE = 32768;
524 +
525 + GMEM_NOTIFY = 16384;
526 ++/
527 +
528 +const UINT
529 + LMEM_FIXED = 0,
530 + LMEM_MOVEABLE = 0x0002,
531 + LMEM_NONZEROLPTR = 0,
532 + NONZEROLPTR = 0,
533 + LMEM_NONZEROLHND = 0x0002,
534 + NONZEROLHND = 0x0002,
535 + LMEM_DISCARDABLE = 0x0F00,
536 + LMEM_NOCOMPACT = 0x0010,
537 + LMEM_NODISCARD = 0x0020,
538 + LMEM_ZEROINIT = 0x0040,
539 + LPTR = 0x0040,
540 + LHND = 0x0042,
541 + LMEM_MODIFY = 0x0080,
542 + LMEM_LOCKCOUNT = 0x00FF,
543 + LMEM_DISCARDED = 0x4000,
544 + LMEM_INVALID_HANDLE = 0x8000;
545 +
546 +
547 +
548 +// used in EXCEPTION_RECORD
549 +enum : DWORD {
550 + STATUS_WAIT_0 = 0,
551 + STATUS_ABANDONED_WAIT_0 = 0x00000080,
552 + STATUS_USER_APC = 0x000000C0,
553 + STATUS_TIMEOUT = 0x00000102,
554 + STATUS_PENDING = 0x00000103,
555 +
556 + STATUS_SEGMENT_NOTIFICATION = 0x40000005,
557 + STATUS_GUARD_PAGE_VIOLATION = 0x80000001,
558 + STATUS_DATATYPE_MISALIGNMENT = 0x80000002,
559 + STATUS_BREAKPOINT = 0x80000003,
560 + STATUS_SINGLE_STEP = 0x80000004,
561 +
562 + STATUS_ACCESS_VIOLATION = 0xC0000005,
563 + STATUS_IN_PAGE_ERROR = 0xC0000006,
564 + STATUS_INVALID_HANDLE = 0xC0000008,
565 +
566 + STATUS_NO_MEMORY = 0xC0000017,
567 + STATUS_ILLEGAL_INSTRUCTION = 0xC000001D,
568 + STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025,
569 + STATUS_INVALID_DISPOSITION = 0xC0000026,
570 + STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C,
571 + STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D,
572 + STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E,
573 + STATUS_FLOAT_INEXACT_RESULT = 0xC000008F,
574 + STATUS_FLOAT_INVALID_OPERATION = 0xC0000090,
575 + STATUS_FLOAT_OVERFLOW = 0xC0000091,
576 + STATUS_FLOAT_STACK_CHECK = 0xC0000092,
577 + STATUS_FLOAT_UNDERFLOW = 0xC0000093,
578 + STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094,
579 + STATUS_INTEGER_OVERFLOW = 0xC0000095,
580 + STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096,
581 + STATUS_STACK_OVERFLOW = 0xC00000FD,
582 + STATUS_CONTROL_C_EXIT = 0xC000013A,
583 + STATUS_DLL_INIT_FAILED = 0xC0000142,
584 + STATUS_DLL_INIT_FAILED_LOGOFF = 0xC000026B,
585 +
586 + CONTROL_C_EXIT = STATUS_CONTROL_C_EXIT,
587 +
588 + EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION,
589 + EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT,
590 + EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT,
591 + EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP,
592 + EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED,
593 + EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND,
594 + EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO,
595 + EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT,
596 + EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION,
597 + EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW,
598 + EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK,
599 + EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW,
600 + EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO,
601 + EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW,
602 + EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION,
603 + EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR,
604 + EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION,
605 + EXCEPTION_NONCONTINUABLE_EXCEPTION = STATUS_NONCONTINUABLE_EXCEPTION,
606 + EXCEPTION_STACK_OVERFLOW = STATUS_STACK_OVERFLOW,
607 + EXCEPTION_INVALID_DISPOSITION = STATUS_INVALID_DISPOSITION,
608 + EXCEPTION_GUARD_PAGE = STATUS_GUARD_PAGE_VIOLATION,
609 + EXCEPTION_INVALID_HANDLE = STATUS_INVALID_HANDLE
610 +}
611 +
612 +// for PROCESS_HEAP_ENTRY
613 +const WORD
614 + PROCESS_HEAP_REGION = 1,
615 + PROCESS_HEAP_UNCOMMITTED_RANGE = 2,
616 + PROCESS_HEAP_ENTRY_BUSY = 4,
617 + PROCESS_HEAP_ENTRY_MOVEABLE = 16,
618 + PROCESS_HEAP_ENTRY_DDESHARE = 32;
619 +
620 +// for LoadLibraryEx()
621 +const DWORD
622 + DONT_RESOLVE_DLL_REFERENCES = 0x01, // not for WinME and earlier
623 + LOAD_LIBRARY_AS_DATAFILE = 0x02,
624 + LOAD_WITH_ALTERED_SEARCH_PATH = 0x08,
625 + LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10; // only for XP and later
626 +
627 +// for LockFile()
628 +const DWORD
629 + LOCKFILE_FAIL_IMMEDIATELY = 1,
630 + LOCKFILE_EXCLUSIVE_LOCK = 2;
631 +
632 +const MAXIMUM_WAIT_OBJECTS = 64;
633 +const MAXIMUM_SUSPEND_COUNT = 0x7F;
634 +
635 +const WAIT_OBJECT_0 = 0;
636 +const WAIT_ABANDONED_0 = 128;
637 +
638 +//const WAIT_TIMEOUT=258; // also in winerror.h
639 +
640 +enum : DWORD {
641 + WAIT_IO_COMPLETION = 0x000000C0,
642 + WAIT_ABANDONED = 0x00000080,
643 + WAIT_FAILED = 0xFFFFFFFF
644 +}
645 +
646 +// PurgeComm()
647 +const DWORD
648 + PURGE_TXABORT = 1,
649 + PURGE_RXABORT = 2,
650 + PURGE_TXCLEAR = 4,
651 + PURGE_RXCLEAR = 8;
652 +
653 +// ReadEventLog()
654 +const DWORD
655 + EVENTLOG_SEQUENTIAL_READ = 1,
656 + EVENTLOG_SEEK_READ = 2,
657 + EVENTLOG_FORWARDS_READ = 4,
658 + EVENTLOG_BACKWARDS_READ = 8;
659 +
660 +// ReportEvent()
661 +enum : WORD {
662 + EVENTLOG_SUCCESS = 0,
663 + EVENTLOG_ERROR_TYPE = 1,
664 + EVENTLOG_WARNING_TYPE = 2,
665 + EVENTLOG_INFORMATION_TYPE = 4,
666 + EVENTLOG_AUDIT_SUCCESS = 8,
667 + EVENTLOG_AUDIT_FAILURE = 16
668 +}
669 +
670 +// FormatMessage()
671 +const DWORD
672 + FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x0100,
673 + FORMAT_MESSAGE_IGNORE_INSERTS = 0x0200,
674 + FORMAT_MESSAGE_FROM_STRING = 0x0400,
675 + FORMAT_MESSAGE_FROM_HMODULE = 0x0800,
676 + FORMAT_MESSAGE_FROM_SYSTEM = 0x1000,
677 + FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x2000;
678 +
679 +const DWORD FORMAT_MESSAGE_MAX_WIDTH_MASK = 255;
680 +
681 +// also in ddk/ntapi.h
682 +// To restore default error mode, call SetErrorMode(0)
683 +enum {
684 + SEM_FAILCRITICALERRORS = 0x0001,
685 + SEM_NOGPFAULTERRORBOX = 0x0002,
686 + SEM_NOALIGNMENTFAULTEXCEPT = 0x0004,
687 + SEM_NOOPENFILEERRORBOX = 0x8000
688 +}
689 +// end ntapi.h
690 +
691 +enum {
692 + SLE_ERROR = 1,
693 + SLE_MINORERROR,
694 + SLE_WARNING
695 +}
696 +
697 +const SHUTDOWN_NORETRY = 1;
698 +
699 +// Return type for exception filters.
700 +enum : LONG {
701 + EXCEPTION_EXECUTE_HANDLER = 1,
702 + EXCEPTION_CONTINUE_EXECUTION = -1,
703 + EXCEPTION_CONTINUE_SEARCH = 0
704 +}
705 +
706 +enum : ATOM {
707 + MAXINTATOM = 0xC000,
708 + INVALID_ATOM = 0
709 +}
710 +
711 +const IGNORE = 0;
712 +const INFINITE = 0xFFFFFFFF;
713 +
714 +// EscapeCommFunction()
715 +enum {
716 + SETXOFF = 1,
717 + SETXON,
718 + SETRTS,
719 + CLRRTS,
720 + SETDTR,
721 + CLRDTR, // = 6
722 + SETBREAK = 8,
723 + CLRBREAK = 9
724 +}
725 +
726 +
727 +// for SetCommMask()
728 +const DWORD
729 + EV_RXCHAR = 0x0001,
730 + EV_RXFLAG = 0x0002,
731 + EV_TXEMPTY = 0x0004,
732 + EV_CTS = 0x0008,
733 + EV_DSR = 0x0010,
734 + EV_RLSD = 0x0020,
735 + EV_BREAK = 0x0040,
736 + EV_ERR = 0x0080,
737 + EV_RING = 0x0100,
738 + EV_PERR = 0x0200,
739 + EV_RX80FULL = 0x0400,
740 + EV_EVENT1 = 0x0800,
741 + EV_EVENT2 = 0x1000;
742 +
743 +// GetCommModemStatus()
744 +const DWORD
745 + MS_CTS_ON = 0x0010,
746 + MS_DSR_ON = 0x0020,
747 + MS_RING_ON = 0x0040,
748 + MS_RLSD_ON = 0x0080;
749 +
750 +
751 +// DCB
752 +enum : BYTE {
753 + NOPARITY = 0,
754 + ODDPARITY,
755 + EVENPARITY,
756 + MARKPARITY,
757 + SPACEPARITY
758 +}
759 +// DCB
760 +enum : BYTE {
761 + ONESTOPBIT = 0,
762 + ONE5STOPBITS,
763 + TWOSTOPBITS
764 +}
765 +// DCB
766 +enum : DWORD {
767 + CBR_110 = 110,
768 + CBR_300 = 300,
769 + CBR_600 = 600,
770 + CBR_1200 = 1200,
771 + CBR_2400 = 2400,
772 + CBR_4800 = 4800,
773 + CBR_9600 = 9600,
774 + CBR_14400 = 14400,
775 + CBR_19200 = 19200,
776 + CBR_38400 = 38400,
777 + CBR_56000 = 56000,
778 + CBR_57600 = 57600,
779 + CBR_115200 = 115200,
780 + CBR_128000 = 128000,
781 + CBR_256000 = 256000
782 +}
783 +// DCB, 2-bit bitfield
784 +enum {
785 + DTR_CONTROL_DISABLE = 0,
786 + DTR_CONTROL_ENABLE,
787 + DTR_CONTROL_HANDSHAKE
788 +}
789 +
790 +// DCB, 2-bit bitfield
791 +enum {
792 + RTS_CONTROL_DISABLE = 0,
793 + RTS_CONTROL_ENABLE,
794 + RTS_CONTROL_HANDSHAKE,
795 + RTS_CONTROL_TOGGLE,
796 +}
797 +
798 +// WIN32_STREAM_ID
799 +enum : DWORD {
800 + BACKUP_INVALID = 0,
801 + BACKUP_DATA,
802 + BACKUP_EA_DATA,
803 + BACKUP_SECURITY_DATA,
804 + BACKUP_ALTERNATE_DATA,
805 + BACKUP_LINK,
806 + BACKUP_PROPERTY_DATA,
807 + BACKUP_OBJECT_ID,
808 + BACKUP_REPARSE_DATA,
809 + BACKUP_SPARSE_BLOCK
810 +}
811 +
812 +// WIN32_STREAM_ID
813 +enum : DWORD {
814 + STREAM_NORMAL_ATTRIBUTE = 0,
815 + STREAM_MODIFIED_WHEN_READ = 1,
816 + STREAM_CONTAINS_SECURITY = 2,
817 + STREAM_CONTAINS_PROPERTIES = 4
818 +}
819 +
820 +// STARTUPINFO
821 +const DWORD
822 + STARTF_USESHOWWINDOW = 0x0001,
823 + STARTF_USESIZE = 0x0002,
824 + STARTF_USEPOSITION = 0x0004,
825 + STARTF_USECOUNTCHARS = 0x0008,
826 + STARTF_USEFILLATTRIBUTE = 0x0010,
827 + STARTF_RUNFULLSCREEN = 0x0020,
828 + STARTF_FORCEONFEEDBACK = 0x0040,
829 + STARTF_FORCEOFFFEEDBACK = 0x0080,
830 + STARTF_USESTDHANDLES = 0x0100,
831 + STARTF_USEHOTKEY = 0x0200;
832 +
833 +// ???
834 +enum {
835 + TC_NORMAL = 0,
836 + TC_HARDERR = 1,
837 + TC_GP_TRAP = 2,
838 + TC_SIGNAL = 3
839 +}
840 +
841 +/+ These seem to be Windows CE-specific
842 +enum {
843 + AC_LINE_OFFLINE = 0,
844 + AC_LINE_ONLINE = 1,
845 + AC_LINE_BACKUP_POWER = 2,
846 + AC_LINE_UNKNOWN = 255
847 +}
848 +
849 +enum {
850 + BATTERY_FLAG_HIGH = 1,
851 + BATTERY_FLAG_LOW = 2,
852 + BATTERY_FLAG_CRITICAL = 4,
853 + BATTERY_FLAG_CHARGING = 8,
854 + BATTERY_FLAG_NO_BATTERY = 128,
855 + BATTERY_FLAG_UNKNOWN = 255,
856 + BATTERY_PERCENTAGE_UNKNOWN = 255,
857 + BATTERY_LIFE_UNKNOWN = 0xFFFFFFFF
858 +}
859 ++/
860 +
993 861 // ???
994 -// ???
995 -// #else
996 -// ...
997 -// #endif
998 -// WinMain
999 -
1000 -extern(Windows) export BOOL FreeLibrary(
1001 - HMODULE hLibModule);
1002 -
1003 -extern(Windows) export VOID FreeLibraryAndExitThread(
1004 - HMODULE hLibModule,
1005 - DWORD dwExitCode);
1006 -
1007 -extern(Windows) export BOOL DisableThreadLibraryCalls(
1008 - HMODULE hLibModule);
1009 -
1010 -extern(Windows) export FARPROC GetProcAddress(
1011 - HMODULE hModule,
1012 - LPCSTR lpProcName);
1013 -
1014 -extern(Windows) export DWORD GetVersion();
1015 -
1016 -extern(Windows) export HGLOBAL GlobalAlloc(
1017 - UINT uFlags,
1018 - SIZE_T dwBytes);
1019 -
1020 -extern(Windows) export HGLOBAL GlobalReAlloc(
1021 - HGLOBAL hMem,
1022 - SIZE_T dwBytes,
1023 - UINT uFlags);
1024 -
1025 -extern(Windows) export SIZE_T GlobalSize(
1026 - HGLOBAL hMem);
1027 -
1028 -extern(Windows) export UINT GlobalFlags(
1029 - HGLOBAL hMem);
1030 -
1031 -extern(Windows) export LPVOID GlobalLock(
1032 - HGLOBAL hMem);
1033 -
1034 -extern(Windows) export HGLOBAL GlobalHandle(
1035 - LPCVOID pMem);
1036 -
1037 -extern(Windows) export BOOL GlobalUnlock(
1038 - HGLOBAL hMem);
1039 -
1040 -extern(Windows) export HGLOBAL GlobalFree(
1041 - HGLOBAL hMem);
1042 -
1043 -extern(Windows) export SIZE_T GlobalCompact(
1044 - DWORD dwMinFree);
1045 -
1046 -extern(Windows) export VOID GlobalFix(
1047 - HGLOBAL hMem);
1048 -
1049 -extern(Windows) export VOID GlobalUnfix(
1050 - HGLOBAL hMem);
1051 -
1052 -extern(Windows) export LPVOID GlobalWire(
1053 - HGLOBAL hMem);
1054 -
1055 -extern(Windows) export BOOL GlobalUnWire(
1056 - HGLOBAL hMem);
1057 -
1058 -extern(Windows) export VOID GlobalMemoryStatus(
1059 - LPMEMORYSTATUS lpBuffer);
1060 -
1061 -struct _MEMORYSTATUSEX {
1062 - DWORD dwLength;
1063 - DWORD dwMemoryLoad;
1064 - DWORDLONG ullTotalPhys;
1065 - DWORDLONG ullAvailPhys;
1066 - DWORDLONG ullTotalPageFile;
1067 - DWORDLONG ullAvailPageFile;
1068 - DWORDLONG ullTotalVirtual;
1069 - DWORDLONG ullAvailVirtual;
1070 - DWORDLONG ullAvailExtendedVirtual;
1071 -}
1072 -alias _MEMORYSTATUSEX MEMORYSTATUSEX;
1073 -alias _MEMORYSTATUSEX* LPMEMORYSTATUSEX;
1074 -
1075 -extern(Windows) export BOOL GlobalMemoryStatusEx(
1076 - LPMEMORYSTATUSEX lpBuffer);
1077 -
1078 -extern(Windows) export HLOCAL LocalAlloc(
1079 - UINT uFlags,
1080 - SIZE_T uBytes);
1081 -
1082 -extern(Windows) export HLOCAL LocalReAlloc(
1083 - HLOCAL hMem,
1084 - SIZE_T uBytes,
1085 - UINT uFlags);
1086 -
1087 -extern(Windows) export LPVOID LocalLock(
1088 - HLOCAL hMem);
1089 -
1090 -extern(Windows) export HLOCAL LocalHandle(
1091 - LPCVOID pMem);
1092 -
1093 -extern(Windows) export BOOL LocalUnlock(
1094 - HLOCAL hMem);
1095 -
1096 -extern(Windows) export SIZE_T LocalSize(
1097 - HLOCAL hMem);
1098 -
1099 -extern(Windows) export UINT LocalFlags(
1100 - HLOCAL hMem);
1101 -
1102 -extern(Windows) export HLOCAL LocalFree(
1103 - HLOCAL hMem);
1104 -
1105 -extern(Windows) export SIZE_T LocalShrink(
1106 - HLOCAL hMem,
1107 - UINT cbNewSize);
1108 -
1109 -extern(Windows) export SIZE_T LocalCompact(
1110 - UINT uMinFree);
1111 -
1112 -extern(Windows) export BOOL FlushInstructionCache(
1113 - HANDLE hProcess,
1114 - LPCVOID lpBaseAddress,
1115 - SIZE_T dwSize);
1116 -
1117 -extern(Windows) export LPVOID VirtualAlloc(
1118 - LPVOID lpAddress,
1119 - SIZE_T dwSize,
1120 - DWORD flAllocationType,
1121 - DWORD flProtect);
1122 -
1123 -extern(Windows) export BOOL VirtualFree(
1124 - LPVOID lpAddress,
1125 - SIZE_T dwSize,
1126 - DWORD dwFreeType);
1127 -
1128 -extern(Windows) export BOOL VirtualProtect(
1129 - LPVOID lpAddress,
1130 - SIZE_T dwSize,
1131 - DWORD flNewProtect,
1132 - PDWORD lpflOldProtect);
1133 -
1134 -extern(Windows) export SIZE_T VirtualQuery(
1135 - LPCVOID lpAddress,
1136 - PMEMORY_BASIC_INFORMATION lpBuffer,
1137 - SIZE_T dwLength);
1138 -
1139 -extern(Windows) export LPVOID VirtualAllocEx(
1140 - HANDLE hProcess,
1141 - LPVOID lpAddress,
1142 - SIZE_T dwSize,
1143 - DWORD flAllocationType,
1144 - DWORD flProtect);
1145 -
1146 -extern(Windows) export UINT GetWriteWatch(
1147 - DWORD dwFlags,
1148 - PVOID lpBaseAddress,
1149 - SIZE_T dwRegionSize,
1150 - PVOID *lpAddresses,
1151 - PULONG_PTR lpdwCount,
1152 - PULONG lpdwGranularity);
1153 -
1154 -extern(Windows) export UINT ResetWriteWatch(
1155 - LPVOID lpBaseAddress,
1156 - SIZE_T dwRegionSize);
1157 -
1158 -extern(Windows) export BOOL VirtualFreeEx(
1159 - HANDLE hProcess,
1160 - LPVOID lpAddress,
1161 - SIZE_T dwSize,
1162 - DWORD dwFreeType);
1163 -
1164 -extern(Windows) export BOOL VirtualProtectEx(
1165 - HANDLE hProcess,
1166 - LPVOID lpAddress,
1167 - SIZE_T dwSize,
1168 - DWORD flNewProtect,
1169 - PDWORD lpflOldProtect);
1170 -
1171 -extern(Windows) export SIZE_T VirtualQueryEx(
1172 - HANDLE hProcess,
1173 - LPCVOID lpAddress,
1174 - PMEMORY_BASIC_INFORMATION lpBuffer,
1175 - SIZE_T dwLength);
1176 -
1177 -extern(Windows) export HANDLE HeapCreate(
1178 - DWORD flOptions,
1179 - SIZE_T dwInitialSize,
1180 - SIZE_T dwMaximumSize);
1181 -
1182 -extern(Windows) export BOOL HeapDestroy(
1183 - HANDLE hHeap);
1184 -
1185 -extern(Windows) export LPVOID HeapAlloc(
1186 - HANDLE hHeap,
1187 - DWORD dwFlags,
1188 - SIZE_T dwBytes);
1189 -
1190 -extern(Windows) export LPVOID HeapReAlloc(
1191 - HANDLE hHeap,
1192 - DWORD dwFlags,
1193 - LPVOID lpMem,
1194 - SIZE_T dwBytes);
1195 -
1196 -extern(Windows) export BOOL HeapFree(
1197 - HANDLE hHeap,
1198 - DWORD dwFlags,
1199 - LPVOID lpMem);
1200 -
1201 -extern(Windows) export SIZE_T HeapSize(
1202 - HANDLE hHeap,
1203 - DWORD dwFlags,
1204 - LPCVOID lpMem);
1205 -
1206 -extern(Windows) export BOOL HeapValidate(
1207 - HANDLE hHeap,
1208 - DWORD dwFlags,
1209 - LPCVOID lpMem);
1210 -
1211 -extern(Windows) export SIZE_T HeapCompact(
1212 - HANDLE hHeap,
1213 - DWORD dwFlags);
1214 -
1215 -extern(Windows) export HANDLE GetProcessHeap();
1216 -
1217 -extern(Windows) export DWORD GetProcessHeaps(
1218 - DWORD NumberOfHeaps,
1219 - PHANDLE ProcessHeaps);
1220 -
1221 -struct _PROCESS_HEAP_ENTRY {
1222 - PVOID lpData;
1223 - DWORD cbData;
1224 - BYTE cbOverhead;
1225 - BYTE iRegionIndex;
1226 - WORD wFlags;
1227 -union {
1228 -struct {
1229 - HANDLE hMem;
1230 - DWORD dwReserved[ 3 ];
1231 -}
1232 -
1233 -struct {
1234 - DWORD dwCommittedSize;
1235 - DWORD dwUnCommittedSize;
1236 - LPVOID lpFirstBlock;
1237 - LPVOID lpLastBlock;
1238 -}
1239 -
1240 -}
1241 -
1242 -}
1243 -alias _PROCESS_HEAP_ENTRY PROCESS_HEAP_ENTRY;
1244 -alias _PROCESS_HEAP_ENTRY* LPPROCESS_HEAP_ENTRY;
1245 -alias _PROCESS_HEAP_ENTRY* PPROCESS_HEAP_ENTRY;
1246 -
1247 -enum : uint { PROCESS_HEAP_REGION = 0x0001 }
1248 -enum : uint { PROCESS_HEAP_UNCOMMITTED_RANGE = 0x0002 }
1249 -enum : uint { PROCESS_HEAP_ENTRY_BUSY = 0x0004 }
1250 -enum : uint { PROCESS_HEAP_ENTRY_MOVEABLE = 0x0010 }
1251 -enum : uint { PROCESS_HEAP_ENTRY_DDESHARE = 0x0020 }
1252 -
1253 -extern(Windows) export BOOL HeapLock(
1254 - HANDLE hHeap);
1255 -
1256 -extern(Windows) export BOOL HeapUnlock(
1257 - HANDLE hHeap);
1258 -
1259 -extern(Windows) export BOOL HeapWalk(
1260 - HANDLE hHeap,
1261 - LPPROCESS_HEAP_ENTRY lpEntry);
1262 -
1263 -extern(Windows) export BOOL HeapSetInformation(
1264 - PVOID HeapHandle,
1265 - HEAP_INFORMATION_CLASS HeapInformationClass,
1266 - PVOID HeapInformation ,
1267 - SIZE_T HeapInformationLength );
1268 -
1269 -extern(Windows) export BOOL HeapQueryInformation(
1270 - PVOID HeapHandle,
1271 - HEAP_INFORMATION_CLASS HeapInformationClass,
1272 - PVOID HeapInformation ,
1273 - SIZE_T HeapInformationLength ,
1274 - PSIZE_T ReturnLength );
1275 -
1276 -enum : uint { SCS_32BIT_BINARY = 0 }
1277 -enum : uint { SCS_DOS_BINARY = 1 }
1278 -enum : uint { SCS_WOW_BINARY = 2 }
1279 -enum : uint { SCS_PIF_BINARY = 3 }
1280 -enum : uint { SCS_POSIX_BINARY = 4 }
1281 -enum : uint { SCS_OS216_BINARY = 5 }
1282 -enum : uint { SCS_64BIT_BINARY = 6 }
1283 -
1284 -// #if defined(_WIN64)
1285 -// #...
862 +const HINSTANCE_ERROR = 32;
863 +
864 +// returned from GetFileSize()
865 +const DWORD INVALID_FILE_SIZE = 0xFFFFFFFF;
866 +
867 +const DWORD TLS_OUT_OF_INDEXES = 0xFFFFFFFF;
868 +
869 +// GetWriteWatch()
870 +const DWORD WRITE_WATCH_FLAG_RESET = 1;
871 +
872 +static if (_WIN32_WINNT_ONLY) {
873 + // for LogonUser()
874 + enum : DWORD {
875 + LOGON32_LOGON_INTERACTIVE = 2,
876 + LOGON32_LOGON_NETWORK = 3,
877 + LOGON32_LOGON_BATCH = 4,
878 + LOGON32_LOGON_SERVICE = 5,
879 + LOGON32_LOGON_UNLOCK = 7
880 + }
881 +
882 + // for LogonUser()
883 + enum : DWORD {
884 + LOGON32_PROVIDER_DEFAULT,
885 + LOGON32_PROVIDER_WINNT35,
886 + LOGON32_PROVIDER_WINNT40,
887 + LOGON32_PROVIDER_WINNT50
888 + }
889 +
890 + // for MoveFileEx()
891 + const DWORD
892 + MOVEFILE_REPLACE_EXISTING = 1,
893 + MOVEFILE_COPY_ALLOWED = 2,
894 + MOVEFILE_DELAY_UNTIL_REBOOT = 4,
895 + MOVEFILE_WRITE_THROUGH = 8;
896 +
897 + // DefineDosDevice()
898 + const DWORD
899 + DDD_RAW_TARGET_PATH = 1,
900 + DDD_REMOVE_DEFINITION = 2,
901 + DDD_EXACT_MATCH_ON_REMOVE = 4;
902 +
903 + static if (_WIN32_WINNT >= 0x500) {
904 + enum : DWORD {
905 + LOGON32_LOGON_NETWORK_CLEARTEXT = 8,
906 + LOGON32_LOGON_NEW_CREDENTIALS = 9
907 + }
908 +
909 + // ReplaceFile()
910 + const DWORD
911 + REPLACEFILE_WRITE_THROUGH = 1,
912 + REPLACEFILE_IGNORE_MERGE_ERRORS = 2;
913 + }
914 +
915 + static if (_WIN32_WINNT >= 0x501) {
916 + const DWORD
917 + GET_MODULE_HANDLE_EX_FLAG_PIN = 1,
918 + GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2,
919 + GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4;
920 +
921 + // for ACTCTX
922 + const DWORD
923 + ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x01,
924 + ACTCTX_FLAG_LANGID_VALID = 0x02,
925 + ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x04,
926 + ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x08,
927 + ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x10,
928 + ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x20,
929 + ACTCTX_FLAG_HMODULE_VALID = 0x80;
930 +
931 + // DeactivateActCtx()
932 + const DWORD DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 1;
933 + // FindActCtxSectionString()
934 + const DWORD FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 1;
935 + // QueryActCtxW()
936 + const DWORD
937 + QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x04,
938 + QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x08,
939 + QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x10;
940 +
941 + enum {
942 + LOGON_WITH_PROFILE = 1,
943 + LOGON_NETCREDENTIALS_ONLY
944 + }
945 + }
946 +}
947 +
948 +// ----
949 +
950 +struct FILETIME {
951 + DWORD dwLowDateTime;
952 + DWORD dwHighDateTime;
953 +}
954 +alias FILETIME* PFILETIME, LPFILETIME;
955 +
956 +struct BY_HANDLE_FILE_INFORMATION {
957 + DWORD dwFileAttributes;
958 + FILETIME ftCreationTime;
959 + FILETIME ftLastAccessTime;
960 + FILETIME ftLastWriteTime;
961 + DWORD dwVolumeSerialNumber;
962 + DWORD nFileSizeHigh;
963 + DWORD nFileSizeLow;
964 + DWORD nNumberOfLinks;
965 + DWORD nFileIndexHigh;
966 + DWORD nFileIndexLow;
967 +}
968 +alias BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION;
969 +
970 +struct DCB {
971 + DWORD DCBlength = DCB.sizeof;
972 + DWORD BaudRate;
973 +/+
974 + DWORD fBinary:1; // Binary Mode (skip EOF check)
975 + DWORD fParity:1; // Enable parity checking
976 + DWORD fOutxCtsFlow:1; // CTS handshaking on output
977 + DWORD fOutxDsrFlow:1; // DSR handshaking on output
978 + DWORD fDtrControl:2; // DTR Flow control
979 + DWORD fDsrSensitivity:1; // DSR Sensitivity
980 + DWORD fTXContinueOnXoff:1; // Continue TX when Xoff sent
981 + DWORD fOutX:1; // Enable output X-ON/X-OFF
982 + DWORD fInX:1; // Enable input X-ON/X-OFF
983 + DWORD fErrorChar:1; // Enable Err Replacement
984 + DWORD fNull:1; // Enable Null stripping
985 + DWORD fRtsControl:2; // Rts Flow control
986 + DWORD fAbortOnError:1; // Abort all reads and writes on Error
987 + DWORD fDummy2:17; // Reserved
988 ++/
989 + uint _bf;
990 + bool fBinary(bool f) { _bf = (_bf & ~0x0001) | f; return f; }
991 + bool fParity(bool f) { _bf = (_bf & ~0x0002) | (f<<1); return f; }
992 + bool fOutxCtsFlow(bool f) { _bf = (_bf & ~0x0004) | (f<<2); return f; }
993 + bool fOutxDsrFlow(bool f) { _bf = (_bf & ~0x0008) | (f<<3); return f; }
994 + byte fDtrControl(byte x) { _bf = (_bf & ~0x0030) | (x<<4); return cast(byte)(x & 3); }
995 + bool fDsrSensitivity(bool f) { _bf = (_bf & ~0x0040) | (f<<6); return f; }
996 + bool fTXContinueOnXoff(bool f) { _bf = (_bf & ~0x0080) | (f<<7); return f; }
997 + bool fOutX(bool f) { _bf = (_bf & ~0x0100) | (f<<8); return f; }
998 + bool fInX(bool f) { _bf = (_bf & ~0x0200) | (f<<9); return f; }
999 + bool fErrorChar(bool f) { _bf = (_bf & ~0x0400) | (f<<10); return f; }
1000 + bool fNull(bool f) { _bf = (_bf & ~0x0800) | (f<<11); return f; }
1001 + byte fRtsControl(byte x) { _bf = (_bf & ~0x3000) | (x<<12); return cast(byte)(x & 3); }
1002 + bool fAbortOnError(bool f) { _bf = (_bf & ~0x4000) | (f<<14); return f; }
1003 +
1004 + bool fBinary() { return cast(bool) (_bf & 1); }
1005 + bool fParity() { return cast(bool) (_bf & 2); }
1006 + bool fOutxCtsFlow() { return cast(bool) (_bf & 4); }
1007 + bool fOutxDsrFlow() { return cast(bool) (_bf & 8); }
1008 + byte fDtrControl() { return cast(byte) ((_bf & (32+16))>>4); }
1009 + bool fDsrSensitivity() { return cast(bool) (_bf & 64); }
1010 + bool fTXContinueOnXoff() { return cast(bool) (_bf & 128); }
1011 + bool fOutX() { return cast(bool) (_bf & 256); }
1012 + bool fInX() { return cast(bool) (_bf & 512); }
1013 + bool fErrorChar() { return cast(bool) (_bf & 1024); }
1014 + bool fNull() { return cast(bool) (_bf & 2048); }
1015 + byte fRtsControl() { return cast(byte) ((_bf & (4096+8192))>>12); }
1016 + bool fAbortOnError() { return cast(bool) (_bf & 16384); }
1017 +
1018 + WORD wReserved;
1019 + WORD XonLim;
1020 + WORD XoffLim;
1021 + BYTE ByteSize;
1022 + BYTE Parity;
1023 + BYTE StopBits;
1024 + char XonChar;
1025 + char XoffChar;
1026 + char ErrorChar;
1027 + char EofChar;
1028 + char EvtChar;
1029 + WORD wReserved1;
1030 +}
1031 +alias DCB* LPDCB;
1032 +
1033 +struct COMMCONFIG {
1034 + DWORD dwSize = COMMCONFIG.sizeof;
1035 + WORD wVersion;
1036 + WORD wReserved;
1037 + DCB dcb;
1038 + DWORD dwProviderSubType;
1039 + DWORD dwProviderOffset;
1040 + DWORD dwProviderSize;
1041 + WCHAR _wcProviderData;
1042 +
1043 + WCHAR* wcProviderData() { return &_wcProviderData; }
1044 +}
1045 +alias COMMCONFIG* LPCOMMCONFIG;
1046 +
1047 +struct COMMTIMEOUTS {
1048 + DWORD ReadIntervalTimeout;
1049 + DWORD ReadTotalTimeoutMultiplier;
1050 + DWORD ReadTotalTimeoutConstant;
1051 + DWORD WriteTotalTimeoutMultiplier;
1052 + DWORD WriteTotalTimeoutConstant;
1053 +}
1054 +alias COMMTIMEOUTS* LPCOMMTIMEOUTS;
1055 +
1056 +struct COMSTAT {
1057 +/+
1058 + DWORD fCtsHold:1;
1059 + DWORD fDsrHold:1;
1060 + DWORD fRlsdHold:1;
1061 + DWORD fXoffHold:1;
1062 + DWORD fXoffSent:1;
1063 + DWORD fEof:1;
1064 + DWORD fTxim:1;
1065 + DWORD fReserved:25;
1066 ++/
1067 + DWORD _bf;
1068 + bool fCtsHold(bool f) { _bf = (_bf & ~1) | f; return f; }
1069 + bool fDsrHold(bool f) { _bf = (_bf & ~2) | (f<<1); return f; }
1070 + bool fRlsdHold(bool f) { _bf = (_bf & ~4) | (f<<2); return f; }
1071 + bool fXoffHold(bool f) { _bf = (_bf & ~8) | (f<<3); return f; }
1072 + bool fXoffSent(bool f) { _bf = (_bf & ~16) | (f<<4); return f; }
1073 + bool fEof(bool f) { _bf = (_bf & ~32) | (f<<5); return f; }
1074 + bool fTxim(bool f) { _bf = (_bf & ~64) | (f<<6); return f; }
1075 +
1076 + bool fCtsHold() { return cast(bool) (_bf & 1); }
1077 + bool fDsrHold() { return cast(bool) (_bf & 2); }
1078 + bool fRlsdHold() { return cast(bool) (_bf & 4); }
1079 + bool fXoffHold() { return cast(bool) (_bf & 8); }
1080 + bool fXoffSent() { return cast(bool) (_bf & 16); }
1081 + bool fEof() { return cast(bool) (_bf & 32); }
1082 + bool fTxim() { return cast(bool) (_bf & 64); }
1083 +
1084 + DWORD cbInQue;
1085 + DWORD cbOutQue;
1086 +}
1087 +alias COMSTAT* LPCOMSTAT;
1088 +
1089 +struct CREATE_PROCESS_DEBUG_INFO {
1090 + HANDLE hFile;
1091 + HANDLE hProcess;
1092 + HANDLE hThread;
1093 + LPVOID lpBaseOfImage;
1094 + DWORD dwDebugInfoFileOffset;
1095 + DWORD nDebugInfoSize;
1096 + LPVOID lpThreadLocalBase;
1097 + LPTHREAD_START_ROUTINE lpStartAddress;
1098 + LPVOID lpImageName;
1099 + WORD fUnicode;
1100 +}
1101 +alias CREATE_PROCESS_DEBUG_INFO* LPCREATE_PROCESS_DEBUG_INFO;
1102 +
1103 +struct CREATE_THREAD_DEBUG_INFO {
1104 + HANDLE hThread;
1105 + LPVOID lpThreadLocalBase;
1106 + LPTHREAD_START_ROUTINE lpStartAddress;
1107 +}
1108 +alias CREATE_THREAD_DEBUG_INFO* LPCREATE_THREAD_DEBUG_INFO;
1109 +
1110 +struct EXCEPTION_DEBUG_INFO {
1111 + EXCEPTION_RECORD ExceptionRecord;
1112 + DWORD dwFirstChance;
1113 +}
1114 +alias EXCEPTION_DEBUG_INFO* LPEXCEPTION_DEBUG_INFO;
1115 +
1116 +struct EXIT_THREAD_DEBUG_INFO {
1117 + DWORD dwExitCode;
1118 +}
1119 +alias EXIT_THREAD_DEBUG_INFO* LPEXIT_THREAD_DEBUG_INFO;
1120 +
1121 +struct EXIT_PROCESS_DEBUG_INFO {
1122 + DWORD dwExitCode;
1123 +}
1124 +alias EXIT_PROCESS_DEBUG_INFO* LPEXIT_PROCESS_DEBUG_INFO;
1125 +
1126 +struct LOAD_DLL_DEBUG_INFO {
1127 + HANDLE hFile;
1128 + LPVOID lpBaseOfDll;
1129 + DWORD dwDebugInfoFileOffset;
1130 + DWORD nDebugInfoSize;
1131 + LPVOID lpImageName;
1132 + WORD fUnicode;
1133 +}
1134 +alias LOAD_DLL_DEBUG_INFO* LPLOAD_DLL_DEBUG_INFO;
1135 +
1136 +struct UNLOAD_DLL_DEBUG_INFO {
1137 + LPVOID lpBaseOfDll;
1138 +}
1139 +alias UNLOAD_DLL_DEBUG_INFO* LPUNLOAD_DLL_DEBUG_INFO;
1140 +
1141 +struct OUTPUT_DEBUG_STRING_INFO {
1142 + LPSTR lpDebugStringData;
1143 + WORD fUnicode;
1144 + WORD nDebugStringLength;
1145 +}
1146 +alias OUTPUT_DEBUG_STRING_INFO* LPOUTPUT_DEBUG_STRING_INFO;
1147 +
1148 +struct RIP_INFO {
1149 + DWORD dwError;
1150 + DWORD dwType;
1151 +}
1152 +alias RIP_INFO* LPRIP_INFO;
1153 +
1154 +struct DEBUG_EVENT {
1155 + DWORD dwDebugEventCode;
1156 + DWORD dwProcessId;
1157 + DWORD dwThreadId;
1158 + union {
1159 + EXCEPTION_DEBUG_INFO Exception;
1160 + CREATE_THREAD_DEBUG_INFO CreateThread;
1161 + CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
1162 + EXIT_THREAD_DEBUG_INFO ExitThread;
1163 + EXIT_PROCESS_DEBUG_INFO ExitProcess;
1164 + LOAD_DLL_DEBUG_INFO LoadDll;
1165 + UNLOAD_DLL_DEBUG_INFO UnloadDll;
1166 + OUTPUT_DEBUG_STRING_INFO DebugString;
1167 + RIP_INFO RipInfo;
1168 + }
1169 +}
1170 +alias DEBUG_EVENT* LPDEBUG_EVENT;
1171 +
1172 +struct OVERLAPPED {
1173 + ULONG_PTR Internal;
1174 + ULONG_PTR InternalHigh;
1175 + union {
1176 + struct {
1177 + DWORD Offset;
1178 + DWORD OffsetHigh;
1179 + }
1180 + PVOID Pointer;
1181 + }
1182 + HANDLE hEvent;
1183 +}
1184 +alias OVERLAPPED* POVERLAPPED, LPOVERLAPPED;
1185 +
1186 +struct STARTUPINFOA {
1187 + DWORD cb = STARTUPINFOA.sizeof;
1188 + LPSTR lpReserved;
1189 + LPSTR lpDesktop;
1190 + LPSTR lpTitle;
1191 + DWORD dwX;
1192 + DWORD dwY;
1193 + DWORD dwXSize;
1194 + DWORD dwYSize;
1195 + DWORD dwXCountChars;
1196 + DWORD dwYCountChars;
1197 + DWORD dwFillAttribute;
1198 + DWORD dwFlags;
1199 + WORD wShowWindow;
1200 + WORD cbReserved2;
1201 + PBYTE lpReserved2;
1202 + HANDLE hStdInput;
1203 + HANDLE hStdOutput;
1204 + HANDLE hStdError;
1205 +}
1206 +alias STARTUPINFOA* LPSTARTUPINFOA;
1207 +
1208 +struct STARTUPINFOW {
1209 + DWORD cb = STARTUPINFOW.sizeof;
1210 + LPWSTR lpReserved;
1211 + LPWSTR lpDesktop;
1212 + LPWSTR lpTitle;
1213 + DWORD dwX;
1214 + DWORD dwY;
1215 + DWORD dwXSize;
1216 + DWORD dwYSize;
1217 + DWORD dwXCountChars;
1218 + DWORD dwYCountChars;
1219 + DWORD dwFillAttribute;
1220 + DWORD dwFlags;
1221 + WORD wShowWindow;
1222 + WORD cbReserved2;
1223 + PBYTE lpReserved2;
1224 + HANDLE hStdInput;
1225 + HANDLE hStdOutput;
1226 + HANDLE hStdError;
1227 +}
1228 +alias STARTUPINFOW* LPSTARTUPINFOW;
1229 +
1230 +struct PROCESS_INFORMATION {
1231 + HANDLE hProcess;
1232 + HANDLE hThread;
1233 + DWORD dwProcessId;
1234 + DWORD dwThreadId;
1235 +}
1236 +alias PROCESS_INFORMATION* PPROCESS_INFORMATION, LPPROCESS_INFORMATION;
1237 +
1238 +struct CRITICAL_SECTION_DEBUG {
1239 + WORD Type;
1240 + WORD CreatorBackTraceIndex;
1241 + CRITICAL_SECTION* CriticalSection;
1242 + LIST_ENTRY ProcessLocksList;
1243 + DWORD EntryCount;
1244 + DWORD ContentionCount;
1245 + DWORD[2] Spare;
1246 +}
1247 +alias CRITICAL_SECTION_DEBUG* PCRITICAL_SECTION_DEBUG;
1248 +
1249 +struct CRITICAL_SECTION {
1250 + PCRITICAL_SECTION_DEBUG DebugInfo;
1251 + LONG LockCount;
1252 + LONG RecursionCount;
1253 + HANDLE OwningThread;
1254 + HANDLE LockSemaphore;
1255 + DWORD SpinCount;
1256 +}
1257 +alias CRITICAL_SECTION* PCRITICAL_SECTION, LPCRITICAL_SECTION;
1258 +
1259 +struct SYSTEMTIME {
1260 + WORD wYear;
1261 + WORD wMonth;
1262 + WORD wDayOfWeek;
1263 + WORD wDay;
1264 + WORD wHour;
1265 + WORD wMinute;
1266 + WORD wSecond;
1267 + WORD wMilliseconds;
1268 +}
1269 +alias SYSTEMTIME* LPSYSTEMTIME;
1270 +
1271 +static if (_WIN32_WINDOWS >= 0x410) {
1272 + struct WIN32_FILE_ATTRIBUTE_DATA {
1273 + DWORD dwFileAttributes;
1274 + FILETIME ftCreationTime;
1275 + FILETIME ftLastAccessTime;
1276 + FILETIME ftLastWriteTime;
1277 + DWORD nFileSizeHigh;
1278 + DWORD nFileSizeLow;
1279 + }
1280 + alias WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA;
1281 +}
1282 +
1283 +struct WIN32_FIND_DATAA {
1284 + DWORD dwFileAttributes;
1285 + FILETIME ftCreationTime;
1286 + FILETIME ftLastAccessTime;
1287 + FILETIME ftLastWriteTime;
1288 + DWORD nFileSizeHigh;
1289 + DWORD nFileSizeLow;
1290 +// #ifdef _WIN32_WCE
1291 +// DWORD dwOID;
1286 1292 // #else
1287 -alias SCS_32BIT_BINARY SCS_THIS_PLATFORM_BINARY;
1293 + DWORD dwReserved0;
1294 + DWORD dwReserved1;
1295 +// #endif
1296 + CHAR[MAX_PATH] cFileName;
1297 +// #ifndef _WIN32_WCE
1298 + CHAR[14] cAlternateFileName;
1288 1299 // #endif
1289 -
1290 -extern(Windows) export BOOL GetBinaryTypeA(
1291 - LPCSTR lpApplicationName,
1292 - LPDWORD lpBinaryType);
1293 -extern(Windows) export BOOL GetBinaryTypeW(
1294 - LPCWSTR lpApplicationName,
1295 - LPDWORD lpBinaryType);
1296 -// #ifdef UNICODE
1297 -alias GetBinaryTypeW GetBinaryType;
1298 -// #else
1299 -// #...
1300 -// #endif // !UNICODE
1301 -
1302 -extern(Windows) export DWORD GetShortPathNameA(
1303 - LPCSTR lpszLongPath,
1304 - LPSTR lpszShortPath,
1305 - DWORD cchBuffer);
1306 -extern(Windows) export DWORD GetShortPathNameW(
1307 - LPCWSTR lpszLongPath,
1308 - LPWSTR lpszShortPath,
1309 - DWORD cchBuffer);
1310 -// #ifdef UNICODE
1311 -alias GetShortPathNameW GetShortPathName;
1312 -// #else
1313 -// #...
1314 -// #endif // !UNICODE
1315 -
1316 -extern(Windows) export DWORD GetLongPathNameA(
1317 - LPCSTR lpszShortPath,
1318 - LPSTR lpszLongPath,
1319 - DWORD cchBuffer);
1320 -extern(Windows) export DWORD GetLongPathNameW(
1321 - LPCWSTR lpszShortPath,
1322 - LPWSTR lpszLongPath,
1323 - DWORD cchBuffer);
1324 -// #ifdef UNICODE
1325 -alias GetLongPathNameW GetLongPathName;
1326 -// #else
1327 -// #...
1328 -// #endif // !UNICODE
1329 -
1330 -extern(Windows) export BOOL GetProcessAffinityMask(
1331 - HANDLE hProcess,
1332 - PDWORD_PTR lpProcessAffinityMask,
1333 - PDWORD_PTR lpSystemAffinityMask);
1334 -
1335 -extern(Windows) export BOOL SetProcessAffinityMask(
1336 - HANDLE hProcess,
1337 - DWORD_PTR dwProcessAffinityMask);
1338 -
1339 -extern(Windows) export BOOL GetProcessTimes(
1340 - HANDLE hProcess,
1341 - LPFILETIME lpCreationTime,
1342 - LPFILETIME lpExitTime,
1343 - LPFILETIME lpKernelTime,
1344 - LPFILETIME lpUserTime);
1345 -
1346 -extern(Windows) export BOOL GetProcessIoCounters(
1347 - HANDLE hProcess,
1348 - PIO_COUNTERS lpIoCounters);
1349 -
1350 -extern(Windows) export BOOL GetProcessWorkingSetSize(
1351 - HANDLE hProcess,
1352 - PSIZE_T lpMinimumWorkingSetSize,
1353 - PSIZE_T lpMaximumWorkingSetSize);
1354 -
1355 -extern(Windows) export BOOL SetProcessWorkingSetSize(
1356 - HANDLE hProcess,
1357 - SIZE_T dwMinimumWorkingSetSize,
1358 - SIZE_T dwMaximumWorkingSetSize);
1359 -
1360 -extern(Windows) export HANDLE OpenProcess(
1361 - DWORD dwDesiredAccess,
1362 - BOOL bInheritHandle,
1363 - DWORD dwProcessId);
1364 -
1365 -extern(Windows) export HANDLE GetCurrentProcess();
1366 -
1367 -extern(Windows) export DWORD GetCurrentProcessId();
1368 -
1369 -extern(Windows) export VOID ExitProcess(
1370 - UINT uExitCode);
1371 -
1372 -extern(Windows) export BOOL TerminateProcess(
1373 - HANDLE hProcess,
1374 - UINT uExitCode);
1375 -
1376 -extern(Windows) export BOOL GetExitCodeProcess(
1377 - HANDLE hProcess,
1378 - LPDWORD lpExitCode);
1379 -
1380 -extern(Windows) export VOID FatalExit(
1381 - int ExitCode);
1382 -
1383 -extern(Windows) export LPSTR GetEnvironmentStrings();
1384 -
1385 -extern(Windows) export LPWSTR GetEnvironmentStringsW();
1386 -
1387 -// #ifdef UNICODE
1388 -alias GetEnvironmentStringsW GetEnvironmentStrings;
1300 +}
1301 +alias WIN32_FIND_DATAA* PWIN32_FIND_DATAA, LPWIN32_FIND_DATAA;
1302 +
1303 +struct WIN32_FIND_DATAW {
1304 + DWORD dwFileAttributes;
1305 + FILETIME ftCreationTime;
1306 + FILETIME ftLastAccessTime;
1307 + FILETIME ftLastWriteTime;
1308 + DWORD nFileSizeHigh;
1309 + DWORD nFileSizeLow;
1310 +// #ifdef _WIN32_WCE
1311 +// DWORD dwOID;
1389 1312 // #else
1390 -// #...
1391 -// #endif // !UNICODE
1392 -
1393 -extern(Windows) export BOOL FreeEnvironmentStringsA(
1394 - LPSTR);
1395 -extern(Windows) export BOOL FreeEnvironmentStringsW(
1396 - LPWSTR);
1397 -// #ifdef UNICODE
1398 -alias FreeEnvironmentStringsW FreeEnvironmentStrings;
1399 -// #else
1400 -// #...
1401 -// #endif // !UNICODE
1402 -
1403 -extern(Windows) export VOID RaiseException(
1404 - DWORD dwExceptionCode,
1405 - DWORD dwExceptionFlags,
1406 - DWORD nNumberOfArguments,
1407 - ULONG_PTR *lpArguments);
1408 -
1409 -extern(Windows) export LONG UnhandledExceptionFilter(
1410 - _EXCEPTION_POINTERS *ExceptionInfo);
1411 -
1412 -extern(Windows) alias LONG function( _EXCEPTION_POINTERS *ExceptionInfo ) PTOP_LEVEL_EXCEPTION_FILTER;
1413 -alias PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1414 -
1415 -extern(Windows) export LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
1416 - LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
1417 -
1418 -// #if(_WIN32_WINNT >= 0x0400)
1419 -
1420 -extern(Windows) export LPVOID CreateFiber(
1421 - SIZE_T dwStackSize,
1422 - LPFIBER_START_ROUTINE lpStartAddress,
1423 - LPVOID lpParameter);
1424 -
1425 -extern(Windows) export LPVOID CreateFiberEx(
1426 - SIZE_T dwStackCommitSize,
1427 - SIZE_T dwStackReserveSize,
1428 - DWORD dwFlags,
1429 - LPFIBER_START_ROUTINE lpStartAddress,
1430 - LPVOID lpParameter);
1431 -
1432 -extern(Windows) export VOID DeleteFiber(
1433 - LPVOID lpFiber);
1434 -
1435 -extern(Windows) export LPVOID ConvertThreadToFiber(
1436 - LPVOID lpParameter);
1437 -
1438 -extern(Windows) export BOOL ConvertFiberToThread();
1439 -
1440 -extern(Windows) export VOID SwitchToFiber(
1441 - LPVOID lpFiber);
1442 -
1443 -extern(Windows) export BOOL SwitchToThread();
1444 -// #endif /* _WIN32_WINNT >= 0x0400 */
1445 -
1446 -extern(Windows) export HANDLE CreateThread(
1447 - LPSECURITY_ATTRIBUTES lpThreadAttributes,
1448 - SIZE_T dwStackSize,
1449 - LPTHREAD_START_ROUTINE lpStartAddress,
1450 - LPVOID lpParameter,
1451 - DWORD dwCreationFlags,
1452 - LPDWORD lpThreadId);
1453 -
1454 -extern(Windows) export HANDLE CreateRemoteThread(
1455 - HANDLE hProcess,
1456 - LPSECURITY_ATTRIBUTES lpThreadAttributes,
1457 - SIZE_T dwStackSize,
1458 - LPTHREAD_START_ROUTINE lpStartAddress,
1459 - LPVOID lpParameter,
1460 - DWORD dwCreationFlags,
1461 - LPDWORD lpThreadId);
1462 -
1463 -extern(Windows) export HANDLE GetCurrentThread();
1464 -
1465 -extern(Windows) export DWORD GetCurrentThreadId();
1466 -
1467 -extern(Windows) export DWORD_PTR SetThreadAffinityMask(
1468 - HANDLE hThread,
1469 - DWORD_PTR dwThreadAffinityMask);
1470 -
1471 -// #if(_WIN32_WINNT >= 0x0400)
1472 -extern(Windows) export DWORD SetThreadIdealProcessor(
1473 - HANDLE hThread,
1474 - DWORD dwIdealProcessor);
1475 -// #endif /* _WIN32_WINNT >= 0x0400 */
1476 -
1477 -extern(Windows) export BOOL SetProcessPriorityBoost(
1478 - HANDLE hProcess,
1479 - BOOL bDisablePriorityBoost);
1480 -
1481 -extern(Windows) export BOOL GetProcessPriorityBoost(
1482 - HANDLE hProcess,
1483 - PBOOL pDisablePriorityBoost);
1484 -
1485 -extern(Windows) export BOOL RequestWakeupLatency(
1486 - LATENCY_TIME latency);
1487 -
1488 -extern(Windows) export BOOL IsSystemResumeAutomatic();
1489 -
1490 -extern(Windows) export HANDLE OpenThread(
1491 - DWORD dwDesiredAccess,
1492 - BOOL bInheritHandle,
1493 - DWORD dwThreadId);
1494 -
1495 -extern(Windows) export BOOL SetThreadPriority(
1496 - HANDLE hThread,
1497 - int nPriority);
1498 -
1499 -extern(Windows) export BOOL SetThreadPriorityBoost(
1500 - HANDLE hThread,
1501 - BOOL bDisablePriorityBoost);
1502 -
1503 -extern(Windows) export BOOL GetThreadPriorityBoost(
1504 - HANDLE hThread,
1505 - PBOOL pDisablePriorityBoost);
1506 -
1507 -extern(Windows) export int GetThreadPriority(
1508 - HANDLE hThread);
1509 -
1510 -extern(Windows) export BOOL GetThreadTimes(
1511 - HANDLE hThread,
1512 - LPFILETIME lpCreationTime,
1513 - LPFILETIME lpExitTime,
1514 - LPFILETIME lpKernelTime,
1515 - LPFILETIME lpUserTime);
1516 -
1517 -extern(Windows) export VOID ExitThread(
1518 - DWORD dwExitCode);
1519 -
1520 -extern(Windows) export BOOL TerminateThread(
1521 - HANDLE hThread,
1522 - DWORD dwExitCode);
1523 -
1524 -extern(Windows) export BOOL GetExitCodeThread(
1525 - HANDLE hThread,
1526 - LPDWORD lpExitCode);
1527 -
1528 -extern(Windows) export BOOL GetThreadSelectorEntry(
1529 - HANDLE hThread,
1530 - DWORD dwSelector,
1531 - LPLDT_ENTRY lpSelectorEntry);
1532 -
1533 -extern(Windows) export EXECUTION_STATE SetThreadExecutionState(
1534 - EXECUTION_STATE esFlags);
1535 -
1536 -extern(Windows) export DWORD GetLastError();
1537 -
1538 -extern(Windows) export VOID SetLastError(
1539 - DWORD dwErrCode);
1540 -
1541 -// #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_RESTORE_LAST_ERROR" is a bit long.
1542 -
1543 -// #if defined(WINBASE_DECLARE_RESTORE_LAST_ERROR)
1544 -
1545 -// ...
1546 -
1547 -// ...
1548 -// #...
1549 -// #...
1550 -// #...
1551 -
1313 + DWORD dwReserved0;
1314 + DWORD dwReserved1;
1315 +// #endif
1316 + WCHAR[MAX_PATH] cFileName;
1317 +// #ifndef _WIN32_WCE
1318 + WCHAR[14] cAlternateFileName;
1552 1319 // #endif
1553 -// #endif
1554 -
1555 -bit HasOverlappedIoCompleted(LPOVERLAPPED lpOverlapped){ return (*lpOverlapped).Internal != STATUS_PENDING; }
1556 -
1557 -extern(Windows) export BOOL GetOverlappedResult(
1558 - HANDLE hFile,
1559 - LPOVERLAPPED lpOverlapped,
1560 - LPDWORD lpNumberOfBytesTransferred,
1561 - BOOL bWait);
1562 -
1563 -extern(Windows) export HANDLE CreateIoCompletionPort(
1564 - HANDLE FileHandle,
1565 - HANDLE ExistingCompletionPort,
1566 - ULONG_PTR CompletionKey,
1567 - DWORD NumberOfConcurrentThreads);
1568 -
1569 -extern(Windows) export BOOL GetQueuedCompletionStatus(
1570 - HANDLE CompletionPort,
1571 - LPDWORD lpNumberOfBytesTransferred,
1572 - PULONG_PTR lpCompletionKey,
1573 - LPOVERLAPPED *lpOverlapped,
1574 - DWORD dwMilliseconds);
1575 -
1576 -extern(Windows) export BOOL PostQueuedCompletionStatus(
1577 - HANDLE CompletionPort,
1578 - DWORD dwNumberOfBytesTransferred,
1579 - ULONG_PTR dwCompletionKey,
1580 - LPOVERLAPPED lpOverlapped);
1581 -
1582 -enum : uint { SEM_FAILCRITICALERRORS = 0x0001 }
1583 -enum : uint { SEM_NOGPFAULTERRORBOX = 0x0002 }
1584 -enum : uint { SEM_NOALIGNMENTFAULTEXCEPT = 0x0004 }
1585 -enum : uint { SEM_NOOPENFILEERRORBOX = 0x8000 }
1586 -
1587 -extern(Windows) export UINT SetErrorMode(
1588 - UINT uMode);
1589 -
1590 -extern(Windows) export BOOL ReadProcessMemory(
1591 - HANDLE hProcess,
1592 - LPCVOID lpBaseAddress,
1593 - LPVOID lpBuffer,
1594 - SIZE_T nSize,
1595 - SIZE_T * lpNumberOfBytesRead);
1596 -
1597 -extern(Windows) export BOOL WriteProcessMemory(
1598 - HANDLE hProcess,
1599 - LPVOID lpBaseAddress,
1600 - LPCVOID lpBuffer,
1601 - SIZE_T nSize,
1602 - SIZE_T * lpNumberOfBytesWritten);
1603 -
1604 -// #if !defined(MIDL_PASS)
1605 -extern(Windows) export BOOL GetThreadContext(
1606 - HANDLE hThread,
1607 - LPCONTEXT lpContext);
1608 -
1609 -extern(Windows) export BOOL SetThreadContext(
1610 - HANDLE hThread,
1611 - CONTEXT *lpContext);
1612 -// #endif
1613 -
1614 -extern(Windows) export DWORD SuspendThread(
1615 - HANDLE hThread);
1616 -
1617 -extern(Windows) export DWORD ResumeThread(
1618 - HANDLE hThread);
1619 -
1620 -// #if(_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
1621 -
1622 -// ...
1623 -
1624 -// ...
1625 -
1626 -// #endif /* _WIN32_WINNT >= 0x0400 || _WIN32_WINDOWS > 0x0400 */
1627 -
1628 -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
1629 -extern(Windows) export BOOL IsDebuggerPresent();
1630 -// #endif
1631 -
1632 -extern(Windows) export VOID DebugBreak();
1633 -
1634 -extern(Windows) export BOOL WaitForDebugEvent(
1635 - LPDEBUG_EVENT lpDebugEvent,
1636 - DWORD dwMilliseconds);
1637 -
1638 -extern(Windows) export BOOL ContinueDebugEvent(
1639 - DWORD dwProcessId,
1640 - DWORD dwThreadId,
1641 - DWORD dwContinueStatus);
1642 -
1643 -extern(Windows) export BOOL DebugActiveProcess(
1644 - DWORD dwProcessId);
1645 -
1646 -extern(Windows) export BOOL DebugActiveProcessStop(
1647 - DWORD dwProcessId);
1648 -
1649 -extern(Windows) export BOOL DebugSetProcessKillOnExit(
1650 - BOOL KillOnExit);
1651 -
1652 -extern(Windows) export BOOL DebugBreakProcess(
1653 - HANDLE Process);
1654 -
1655 -extern(Windows) export VOID InitializeCriticalSection(
1656 - LPCRITICAL_SECTION lpCriticalSection);
1657 -
1658 -extern(Windows) export VOID EnterCriticalSection(
1659 - LPCRITICAL_SECTION lpCriticalSection);
1660 -
1661 -extern(Windows) export VOID LeaveCriticalSection(
1662 - LPCRITICAL_SECTION lpCriticalSection);
1663 -
1664 -// #if (_WIN32_WINNT >= 0x0403)
1665 -extern(Windows) export BOOL InitializeCriticalSectionAndSpinCount(
1666 - LPCRITICAL_SECTION lpCriticalSection,
1667 - DWORD dwSpinCount);
1668 -
1669 -extern(Windows) export DWORD SetCriticalSectionSpinCount(
1670 - LPCRITICAL_SECTION lpCriticalSection,
1671 - DWORD dwSpinCount);
1672 -// #endif
1673 -
1674 -// #if(_WIN32_WINNT >= 0x0400)
1675 -extern(Windows) export BOOL TryEnterCriticalSection(
1676 - LPCRITICAL_SECTION lpCriticalSection);
1677 -// #endif /* _WIN32_WINNT >= 0x0400 */
1678 -
1679 -extern(Windows) export VOID DeleteCriticalSection(
1680 - LPCRITICAL_SECTION lpCriticalSection);
1681 -
1682 -extern(Windows) export BOOL SetEvent(
1683 - HANDLE hEvent);
1684 -
1685 -extern(Windows) export BOOL ResetEvent(
1686 - HANDLE hEvent);
1687 -
1688 -extern(Windows) export BOOL PulseEvent(
1689 - HANDLE hEvent);
1690 -
1691 -extern(Windows) export BOOL ReleaseSemaphore(
1692 - HANDLE hSemaphore,
1693 - LONG lReleaseCount,
1694 - LPLONG lpPreviousCount);
1695 -
1696 -extern(Windows) export BOOL ReleaseMutex(
1697 - HANDLE hMutex);
1698 -
1699 -extern(Windows) export DWORD WaitForSingleObject(
1700 - HANDLE hHandle,
1701 - DWORD dwMilliseconds);
1702 -
1703 -extern(Windows) export DWORD WaitForMultipleObjects(
1704 - DWORD nCount,
1705 - HANDLE *lpHandles,
1706 - BOOL bWaitAll,
1707 - DWORD dwMilliseconds);
1708 -
1709 -extern(Windows) export VOID Sleep(
1710 - DWORD dwMilliseconds);
1711 -
1712 -extern(Windows) export HGLOBAL LoadResource(
1713 - HMODULE hModule,
1714 - HRSRC hResInfo);
1715 -
1716 -extern(Windows) export DWORD SizeofResource(
1717 - HMODULE hModule,
1718 - HRSRC hResInfo);
1719 -
1720 -extern(Windows) export ATOM GlobalDeleteAtom(
1721 - ATOM nAtom);
1722 -
1723 -extern(Windows) export BOOL InitAtomTable(
1724 - DWORD nSize);
1725 -
1726 -extern(Windows) export ATOM DeleteAtom(
1727 - ATOM nAtom);
1728 -
1729 -extern(Windows) export UINT SetHandleCount(
1730 - UINT uNumber);
1731 -
1732 -extern(Windows) export DWORD GetLogicalDrives();
1733 -
1734 -extern(Windows) export BOOL LockFile(
1735 - HANDLE hFile,
1736 - DWORD dwFileOffsetLow,
1737 - DWORD dwFileOffsetHigh,
1738 - DWORD nNumberOfBytesToLockLow,
1739 - DWORD nNumberOfBytesToLockHigh);
1740 -
1741 -extern(Windows) export BOOL UnlockFile(
1742 - HANDLE hFile,
1743 - DWORD dwFileOffsetLow,
1744 - DWORD dwFileOffsetHigh,
1745 - DWORD nNumberOfBytesToUnlockLow,
1746 - DWORD nNumberOfBytesToUnlockHigh);
1747 -
1748 -extern(Windows) export BOOL LockFileEx(
1749 - HANDLE hFile,
1750 - DWORD dwFlags,
1751 - DWORD dwReserved,
1752 - DWORD nNumberOfBytesToLockLow,
1753 - DWORD nNumberOfBytesToLockHigh,
1754 - LPOVERLAPPED lpOverlapped);
1755 -
1756 -enum : uint { LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 }
1757 -enum : uint { LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 }
1758 -
1759 -extern(Windows) export BOOL UnlockFileEx(
1760 - HANDLE hFile,
1761 - DWORD dwReserved,
1762 - DWORD nNumberOfBytesToUnlockLow,
1763 - DWORD nNumberOfBytesToUnlockHigh,
1764 - LPOVERLAPPED lpOverlapped);
1765 -
1766 -struct _BY_HANDLE_FILE_INFORMATION {
1767 - DWORD dwFileAttributes;
1768 - FILETIME ftCreationTime;
1769 - FILETIME ftLastAccessTime;
1770 - FILETIME ftLastWriteTime;
1771 - DWORD dwVolumeSerialNumber;
1772 - DWORD nFileSizeHigh;
1773 - DWORD nFileSizeLow;
1774 - DWORD nNumberOfLinks;
1775 - DWORD nFileIndexHigh;
1776 - DWORD nFileIndexLow;
1320 +}
1321 +alias WIN32_FIND_DATAW* PWIN32_FIND_DATAW, LPWIN32_FIND_DATAW;
1322 +
1323 +static if (_WIN32_WINNT_ONLY) {
1324 + struct WIN32_STREAM_ID {
1325 + DWORD dwStreamId;
1326 + DWORD dwStreamAttributes;
1327 + LARGE_INTEGER Size;
1328 + DWORD dwStreamNameSize;
1329 + WCHAR _cStreamName;
1330 +
1331 + WCHAR* cStreamName() { return &_cStreamName; }
1332 + }
1333 + alias WIN32_STREAM_ID* LPWIN32_STREAM_ID;
1334 +
1335 + enum FINDEX_INFO_LEVELS {
1336 + FindExInfoStandard,
1337 + FindExInfoMaxInfoLevel
1338 + }
1339 +
1340 + enum FINDEX_SEARCH_OPS {
1341 + FindExSearchNameMatch,
1342 + FindExSearchLimitToDirectories,
1343 + FindExSearchLimitToDevices,
1344 + FindExSearchMaxSearchOp
1345 + }
1346 +
1347 + enum ACL_INFORMATION_CLASS {
1348 + AclRevisionInformation = 1,
1349 + AclSizeInformation
1350 + }
1351 +
1352 + struct HW_PROFILE_INFOA {
1353 + DWORD dwDockInfo;
1354 + CHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid;
1355 + CHAR[MAX_PROFILE_LEN] szHwProfileName;
1356 + }
1357 + alias HW_PROFILE_INFOA* LPHW_PROFILE_INFOA;
1358 +
1359 + struct HW_PROFILE_INFOW {
1360 + DWORD dwDockInfo;
1361 + WCHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid;
1362 + WCHAR[MAX_PROFILE_LEN] szHwProfileName;
1363 + }
1364 + alias HW_PROFILE_INFOW* LPHW_PROFILE_INFOW;
1365 +}
1366 +
1367 +/* ??? MSDN documents this only for Windows CE/Mobile, but it's used by
1368 + * GetFileAttributesEx, which is in desktop Windows.
1369 + */
1370 +enum GET_FILEEX_INFO_LEVELS {
1371 + GetFileExInfoStandard,
1372 + GetFileExMaxInfoLevel
1373 +}
1374 +
1375 +struct SYSTEM_INFO {
1376 + union {
1377 + DWORD dwOemId;
1378 + struct {
1379 + WORD wProcessorArchitecture;
1380 + WORD wReserved;
1381 + }
1382 + }
1383 + DWORD dwPageSize;
1384 + PVOID lpMinimumApplicationAddress;
1385 + PVOID lpMaximumApplicationAddress;
1386 + DWORD dwActiveProcessorMask;
1387 + DWORD dwNumberOfProcessors;
1388 + DWORD dwProcessorType;
1389 + DWORD dwAllocationGranularity;
1390 + WORD wProcessorLevel;
1391 + WORD wProcessorRevision;
1392 +}
1393 +alias SYSTEM_INFO* LPSYSTEM_INFO;
1394 +
1395 +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
1396 + struct SYSTEM_POWER_STATUS {
1397 + BYTE ACLineStatus;
1398 + BYTE BatteryFlag;
1399 + BYTE BatteryLifePercent;
1400 + BYTE Reserved1;
1401 + DWORD BatteryLifeTime;
1402 + DWORD BatteryFullLifeTime;
1403 + }
1404 + alias SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS;
1405 +}
1406 +
1407 +struct TIME_ZONE_INFORMATION {
1408 + LONG Bias;
1409 + WCHAR[32] StandardName;
1410 + SYSTEMTIME StandardDate;
1411 + LONG StandardBias;
1412 + WCHAR[32] DaylightName;
1413 + SYSTEMTIME DaylightDate;
1414 + LONG DaylightBias;
1415 +}
1416 +alias TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION;
1417 +
1418 +// MSDN documents this, possibly erroneously, as Win2000+.
1419 +struct MEMORYSTATUS {
1420 + DWORD dwLength;
1421 + DWORD dwMemoryLoad;
1422 + DWORD dwTotalPhys;
1423 + DWORD dwAvailPhys;
1424 + DWORD dwTotalPageFile;
1425 + DWORD dwAvailPageFile;
1426 + DWORD dwTotalVirtual;
1427 + DWORD dwAvailVirtual;
1428 +}
1429 +alias MEMORYSTATUS* LPMEMORYSTATUS;
1430 +
1431 +static if (_WIN32_WINNT >= 0x500) {
1432 + struct MEMORYSTATUSEX {
1433 + DWORD dwLength;
1434 + DWORD dwMemoryLoad;
1435 + DWORDLONG ullTotalPhys;
1436 + DWORDLONG ullAvailPhys;
1437 + DWORDLONG ullTotalPageFile;
1438 + DWORDLONG ullAvailPageFile;
1439 + DWORDLONG ullTotalVirtual;
1440 + DWORDLONG ullAvailVirtual;
1441 + DWORDLONG ullAvailExtendedVirtual;
1442 + }
1443 + alias MEMORYSTATUSEX* LPMEMORYSTATUSEX;
1444 +}
1445 +
1446 +struct LDT_ENTRY {
1447 + WORD LimitLow;
1448 + WORD BaseLow;
1449 + struct {
1450 + BYTE BaseMid;
1451 + BYTE Flags1;
1452 + BYTE Flags2;
1453 + BYTE BaseHi;
1454 +
1455 + byte Type(byte f) { Flags1 = cast(BYTE) ((Flags1 & 0xE0) | f); return cast(byte)(f & 0x1F); }
1456 + byte Dpl(byte f) { Flags1 = cast(BYTE) ((Flags1 & 0x9F) | (f<<5)); return cast(byte)(f & 3); }
1457 + bool Pres(bool f) { Flags1 = cast(BYTE) ((Flags1 & 0x7F) | (f<<7)); return f; }
1458 +
1459 + byte LimitHi(byte f) { Flags2 = cast(BYTE) ((Flags2 & 0xF0) | (f&0x0F)); return cast(byte)(f & 0x0F); }
1460 + bool Sys(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0xEF) | (f<<4)); return f; }
1461 + // Next bit is reserved
1462 + bool Default_Big(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0xBF) | (f<<6)); return f; }
1463 + bool Granularity(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0x7F) | (f<<7)); return f; }
1464 +
1465 + byte Type() { return cast(byte) (Flags1 & 0x1F); }
1466 + byte Dpl() { return cast(byte) ((Flags1 & 0x60)>>5); }
1467 + bool Pres() { return cast(bool) (Flags1 & 0x80); }
1468 +
1469 + byte LimitHi() { return cast(byte) (Flags2 & 0x0F); }
1470 + bool Sys() { return cast(bool) (Flags2 & 0x10); }
1471 + bool Default_Big() { return cast(bool) (Flags2 & 0x40); }
1472 + bool Granularity() { return cast(bool) (Flags2 & 0x80); }
1473 + }
1474 +/+
1475 + union HighWord {
1476 + struct Bytes {
1477 + BYTE BaseMid;
1478 + BYTE Flags1;
1479 + BYTE Flags2;
1480 + BYTE BaseHi;
1481 + }
1482 + struct Bits {
1483 + DWORD BaseMid:8;
1484 + DWORD Type:5;
1485 + DWORD Dpl:2;
1486 + DWORD Pres:1;
1487 + DWORD LimitHi:4;
1488 + DWORD Sys:1;
1489 + DWORD Reserved_0:1;
1490 + DWORD Default_Big:1;
1491 + DWORD Granularity:1;
1492 + DWORD BaseHi:8;
1493 + }
1494 + }
1495 ++/
1496 +}
1497 +alias LDT_ENTRY* PLDT_ENTRY, LPLDT_ENTRY;
1498 +
1499 +/* As with the other memory management functions and structures, MSDN's
1500 + * Windows version info shall be taken with a cup of salt.
1501 + */
1502 +struct PROCESS_HEAP_ENTRY {
1503 + PVOID lpData;
1504 + DWORD cbData;
1505 + BYTE cbOverhead;
1506 + BYTE iRegionIndex;
1507 + WORD wFlags;
1508 + union {
1509 + struct Block {
1510 + HANDLE hMem;
1511 + DWORD[3] dwReserved;
1512 + }
1513 + struct Region {
1514 + DWORD dwCommittedSize;
1515 + DWORD dwUnCommittedSize;
1516 + LPVOID lpFirstBlock;
1517 + LPVOID lpLastBlock;
1518 + }
1519 + }
1520 +}
1521 +alias PROCESS_HEAP_ENTRY* LPPROCESS_HEAP_ENTRY;
1522 +
1523 +struct OFSTRUCT {
1524 + BYTE cBytes = OFSTRUCT.sizeof;
1525 + BYTE fFixedDisk;
1526 + WORD nErrCode;
1527 + WORD Reserved1;
1528 + WORD Reserved2;
1529 + CHAR[128] szPathName; // const OFS_MAXPATHNAME = 128;
1530 +}
1531 +alias OFSTRUCT* LPOFSTRUCT, POFSTRUCT;
1532 +
1533 +/* ??? MSDN documents this only for Windows CE, but it's used by
1534 + * ImageGetCertificateData, which is in desktop Windows.
1535 + */
1536 +struct WIN_CERTIFICATE {
1537 + DWORD dwLength;
1538 + WORD wRevision;
1539 + WORD wCertificateType;
1540 + BYTE _bCertificate;
1541 +
1542 + BYTE* bCertificate() { return &_bCertificate; }
1543 +}
1544 +alias WIN_CERTIFICATE* LPWIN_CERTIFICATE;
1545 +
1546 +static if (_WIN32_WINNT >= 0x500) {
1547 + enum COMPUTER_NAME_FORMAT {
1548 + ComputerNameNetBIOS,
1549 + ComputerNameDnsHostname,
1550 + ComputerNameDnsDomain,
1551 + ComputerNameDnsFullyQualified,
1552 + ComputerNamePhysicalNetBIOS,
1553 + ComputerNamePhysicalDnsHostname,
1554 + ComputerNamePhysicalDnsDomain,
1555 + ComputerNamePhysicalDnsFullyQualified,
1556 + ComputerNameMax
1557 + }
1558 +}
1559 +
1560 +static if (_WIN32_WINNT >= 0x501) {
1561 + struct ACTCTXA {
1562 + ULONG cbSize = this.sizeof;
1563 + DWORD dwFlags;
1564 + LPCSTR lpSource;
1565 + USHORT wProcessorArchitecture;
1566 + LANGID wLangId;
1567 + LPCSTR lpAssemblyDirectory;
1568 + LPCSTR lpResourceName;
1569 + LPCSTR lpApplicationName;
1570 + HMODULE hModule;
1571 + }
1572 + alias ACTCTXA* PACTCTXA;
1573 + alias CPtr!(ACTCTXA) PCACTCTXA;
1574 +
1575 + struct ACTCTXW {
1576 + ULONG cbSize = this.sizeof;
1577 + DWORD dwFlags;
1578 + LPCWSTR lpSource;
1579 + USHORT wProcessorArchitecture;
1580 + LANGID wLangId;
1581 + LPCWSTR lpAssemblyDirectory;
1582 + LPCWSTR lpResourceName;
1583 + LPCWSTR lpApplicationName;
1584 + HMODULE hModule;
1585 + }
1586 + alias ACTCTXW* PACTCTXW;
1587 + alias CPtr!(ACTCTXW) PCACTCTXW;
1588 +
1589 + struct ACTCTX_SECTION_KEYED_DATA {
1590 + ULONG cbSize = this.sizeof;
1591 + ULONG ulDataFormatVersion;
1592 + PVOID lpData;
1593 + ULONG ulLength;
1594 + PVOID lpSectionGlobalData;
1595 + ULONG ulSectionGlobalDataLength;
1596 + PVOID lpSectionBase;
1597 + ULONG ulSectionTotalLength;
1598 + HANDLE hActCtx;
1599 + HANDLE ulAssemblyRosterIndex;
1600 + }
1601 + alias ACTCTX_SECTION_KEYED_DATA* PACTCTX_SECTION_KEYED_DATA;
1602 + alias CPtr!(ACTCTX_SECTION_KEYED_DATA) PCACTCTX_SECTION_KEYED_DATA;
1603 +
1604 + enum MEMORY_RESOURCE_NOTIFICATION_TYPE {
1605 + LowMemoryResourceNotification,
1606 + HighMemoryResourceNotification
1607 + }
1608 +
1609 +} // (_WIN32_WINNT >= 0x0501)
1610 +
1611 +static if (WINVER >= 0x410) {
1612 + /* apparently used only by SetThreadExecutionState (Win2000+)
1613 + * and DDK functions (version compatibility not established)
1614 + */
1615 + alias DWORD EXECUTION_STATE;
1616 +}
1617 +
1618 +// Callbacks
1619 +extern (Windows) {
1620 + alias DWORD function(LPVOID) LPTHREAD_START_ROUTINE;
1621 + alias DWORD function(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER,
1622 + DWORD, DWORD, HANDLE, HANDLE, LPVOID) LPPROGRESS_ROUTINE;
1623 + alias void function(PVOID) LPFIBER_START_ROUTINE;
1624 +
1625 + alias BOOL function(HMODULE, LPCSTR, LPCSTR, WORD, LONG) ENUMRESLANGPROCA;
1626 + alias BOOL function(HMODULE, LPCWSTR, LPCWSTR, WORD, LONG) ENUMRESLANGPROCW;
1627 + alias BOOL function(HMODULE, LPCSTR, LPSTR, LONG) ENUMRESNAMEPROCA;
1628 + alias BOOL function(HMODULE, LPCWSTR, LPWSTR, LONG) ENUMRESNAMEPROCW;
1629 + alias BOOL function(HMODULE, LPSTR, LONG) ENUMRESTYPEPROCA;
1630 + alias BOOL function(HMODULE, LPWSTR, LONG) ENUMRESTYPEPROCW;
1631 + alias void function(DWORD, DWORD, LPOVERLAPPED) LPOVERLAPPED_COMPLETION_ROUTINE;
1632 + alias LONG function(LPEXCEPTION_POINTERS) PTOP_LEVEL_EXCEPTION_FILTER;
1633 + alias PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
1634 +
1635 + alias void function(ULONG_PTR) PAPCFUNC;
1636 + alias void function(PVOID, DWORD, DWORD) PTIMERAPCROUTINE;
1637 +
1638 + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
1639 + alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACK;
1640 + }
1641 +}
1642 +
1643 +LPTSTR MAKEINTATOM(short i) {
1644 + return cast(LPTSTR) i;
1777 1645 }
1778 -alias _BY_HANDLE_FILE_INFORMATION BY_HANDLE_FILE_INFORMATION;
1779 -alias _BY_HANDLE_FILE_INFORMATION* PBY_HANDLE_FILE_INFORMATION;
1780 -alias _BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION;
1781 -
1782 -extern(Windows) export BOOL GetFileInformationByHandle(
1783 - HANDLE hFile,
1784 - LPBY_HANDLE_FILE_INFORMATION lpFileInformation);
1785 -
1786 -extern(Windows) export DWORD GetFileType(
1787 - HANDLE hFile);
1788 -
1789 -extern(Windows) export DWORD GetFileSize(
1790 - HANDLE hFile,
1791 - LPDWORD lpFileSizeHigh);
1792 -
1793 -extern(Windows) export BOOL GetFileSizeEx(
1794 - HANDLE hFile,
1795 - PLARGE_INTEGER lpFileSize);
1796 -
1797 -extern(Windows) export HANDLE GetStdHandle(
1798 - DWORD nStdHandle);
1799 -
1800 -extern(Windows) export BOOL SetStdHandle(
1801 - DWORD nStdHandle,
1802 - HANDLE hHandle);
1803 -
1804 -extern(Windows) export BOOL WriteFile(
1805 - HANDLE hFile,
1806 - LPCVOID lpBuffer,
1807 - DWORD nNumberOfBytesToWrite,
1808 - LPDWORD lpNumberOfBytesWritten,
1809 - LPOVERLAPPED lpOverlapped);
1810 -
1811 -extern(Windows) export BOOL ReadFile(
1812 - HANDLE hFile,
1813 - LPVOID lpBuffer,
1814 - DWORD nNumberOfBytesToRead,
1815 - LPDWORD lpNumberOfBytesRead,
1816 - LPOVERLAPPED lpOverlapped);
1817 -
1818 -extern(Windows) export BOOL FlushFileBuffers(
1819 - HANDLE hFile);
1820 -
1821 -extern(Windows) export BOOL DeviceIoControl(
1822 - HANDLE hDevice,
1823 - DWORD dwIoControlCode,
1824 - LPVOID lpInBuffer,
1825 - DWORD nInBufferSize,
1826 - LPVOID lpOutBuffer,
1827 - DWORD nOutBufferSize,
1828 - LPDWORD lpBytesReturned,
1829 - LPOVERLAPPED lpOverlapped);
1830 -
1831 -extern(Windows) export BOOL RequestDeviceWakeup(
1832 - HANDLE hDevice);
1833 -
1834 -extern(Windows) export BOOL CancelDeviceWakeupRequest(
1835 - HANDLE hDevice);
1836 -
1837 -extern(Windows) export BOOL GetDevicePowerState(
1838 - HANDLE hDevice,
1839 - BOOL *pfOn);
1840 -
1841 -extern(Windows) export BOOL SetMessageWaitingIndicator(
1842 - HANDLE hMsgIndicator,
1843 - ULONG ulMsgCount);
1844 -
1845 -extern(Windows) export BOOL SetEndOfFile(
1846 - HANDLE hFile);
1847 -
1848 -extern(Windows) export DWORD SetFilePointer(
1849 - HANDLE hFile,
1850 - LONG lDistanceToMove,
1851 - PLONG lpDistanceToMoveHigh,
1852 - DWORD dwMoveMethod);
1853 -
1854 -extern(Windows) export BOOL SetFilePointerEx(
1855 - HANDLE hFile,
1856 - LARGE_INTEGER liDistanceToMove,
1857 - PLARGE_INTEGER lpNewFilePointer,
1858 - DWORD dwMoveMethod);
1859 -
1860 -extern(Windows) export BOOL FindClose(
1861 - HANDLE hFindFile);
1862 -
1863 -extern(Windows) export BOOL GetFileTime(
1864 - HANDLE hFile,
1865 - LPFILETIME lpCreationTime,
1866 - LPFILETIME lpLastAccessTime,
1867 - LPFILETIME lpLastWriteTime);
1868 -
1869 -extern(Windows) export BOOL SetFileTime(
1870 - HANDLE hFile,
1871 - FILETIME *lpCreationTime,
1872 - FILETIME *lpLastAccessTime,
1873 - FILETIME *lpLastWriteTime);
1874 -
1875 -extern(Windows) export BOOL SetFileValidData(
1876 - HANDLE hFile,
1877 - LONGLONG ValidDataLength);
1878 -
1879 -extern(Windows) export BOOL SetFileShortNameA(
1880 - HANDLE hFile,
1881 - LPCSTR lpShortName);
1882 -extern(Windows) export BOOL SetFileShortNameW(
1883 - HANDLE hFile,
1884 - LPCWSTR lpShortName);
1885 -// #ifdef UNICODE
1886 -alias SetFileShortNameW SetFileShortName;
1887 -// #else
1888 -// #...
1889 -// #endif // !UNICODE
1890 -
1891 -extern(Windows) export BOOL CloseHandle(
1892 - HANDLE hObject);
1893 -
1894 -extern(Windows) export BOOL DuplicateHandle(
1895 - HANDLE hSourceProcessHandle,
1896 - HANDLE hSourceHandle,
1897 - HANDLE hTargetProcessHandle,
1898 - LPHANDLE lpTargetHandle,
1899 - DWORD dwDesiredAccess,
1900 - BOOL bInheritHandle,
1901 - DWORD dwOptions);
1902 -
1903 -extern(Windows) export BOOL GetHandleInformation(
1904 - HANDLE hObject,
1905 - LPDWORD lpdwFlags);
1906 -
1907 -extern(Windows) export BOOL SetHandleInformation(
1908 - HANDLE hObject,
1909 - DWORD dwMask,
1910 - DWORD dwFlags);
1911 -
1912 -enum : uint { HANDLE_FLAG_INHERIT = 0x00000001 }
1913 -enum : uint { HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x00000002 }
1914 -
1915 -enum : uint { HINSTANCE_ERROR = 32 }
1916 -
1917 -extern(Windows) export DWORD LoadModule(
1918 - LPCSTR lpModuleName,
1919 - LPVOID lpParameterBlock);
1920 -
1921 -extern(Windows) export UINT WinExec(
1922 - LPCSTR lpCmdLine,
1923 - UINT uCmdShow);
1924 -
1925 -extern(Windows) export BOOL ClearCommBreak(
1926 - HANDLE hFile);
1927 -
1928 -extern(Windows) export BOOL ClearCommError(
1929 - HANDLE hFile,
1930 - LPDWORD lpErrors,
1931 - LPCOMSTAT lpStat);
1932 -
1933 -extern(Windows) export BOOL SetupComm(
1934 - HANDLE hFile,
1935 - DWORD dwInQueue,
1936 - DWORD dwOutQueue);
1937 -
1938 -extern(Windows) export BOOL EscapeCommFunction(
1939 - HANDLE hFile,
1940 - DWORD dwFunc);
1941 -
1942 -extern(Windows) export BOOL GetCommConfig(
1943 - HANDLE hCommDev,
1944 - LPCOMMCONFIG lpCC,
1945 - LPDWORD lpdwSize);
1946 -
1947 -extern(Windows) export BOOL GetCommMask(
1948 - HANDLE hFile,
1949 - LPDWORD lpEvtMask);
1950 -
1951 -extern(Windows) export BOOL GetCommProperties(
1952 - HANDLE hFile,
1953 - LPCOMMPROP lpCommProp);
1954 -
1955 -extern(Windows) export BOOL GetCommModemStatus(
1956 - HANDLE hFile,
1957 - LPDWORD lpModemStat);
1958 -
1959 -extern(Windows) export BOOL GetCommState(
1960 - HANDLE hFile,
1961 - LPDCB lpDCB);
1962 -
1963 -extern(Windows) export BOOL GetCommTimeouts(
1964 - HANDLE hFile,
1965 - LPCOMMTIMEOUTS lpCommTimeouts);
1966 -
1967 -extern(Windows) export BOOL PurgeComm(
1968 - HANDLE hFile,
1969 - DWORD dwFlags);
1970 -
1971 -extern(Windows) export BOOL SetCommBreak(
1972 - HANDLE hFile);
1973 -
1974 -extern(Windows) export BOOL SetCommConfig(
1975 - HANDLE hCommDev,
1976 - LPCOMMCONFIG lpCC,
1977 - DWORD dwSize);
1978 -
1979 -extern(Windows) export BOOL SetCommMask(
1980 - HANDLE hFile,
1981 - DWORD dwEvtMask);
1982 -
1983 -extern(Windows) export BOOL SetCommState(
1984 - HANDLE hFile,
1985 - LPDCB lpDCB);
1986 -
1987 -extern(Windows) export BOOL SetCommTimeouts(
1988 - HANDLE hFile,
1989 - LPCOMMTIMEOUTS lpCommTimeouts);
1990 -
1991 -extern(Windows) export BOOL TransmitCommChar(
1992 - HANDLE hFile,
1993 - char cChar);
1994 -
1995 -extern(Windows) export BOOL WaitCommEvent(
1996 - HANDLE hFile,
1997 - LPDWORD lpEvtMask,
1998 - LPOVERLAPPED lpOverlapped);
1999 -
2000 -extern(Windows) export DWORD SetTapePosition(
2001 - HANDLE hDevice,
2002 - DWORD dwPositionMethod,
2003 - DWORD dwPartition,
2004 - DWORD dwOffsetLow,
2005 - DWORD dwOffsetHigh,
2006 - BOOL bImmediate);
2007 -
2008 -extern(Windows) export DWORD GetTapePosition(
2009 - HANDLE hDevice,
2010 - DWORD dwPositionType,
2011 - LPDWORD lpdwPartition,
2012 - LPDWORD lpdwOffsetLow,
2013 - LPDWORD lpdwOffsetHigh);
2014 -
2015 -extern(Windows) export DWORD PrepareTape(
2016 - HANDLE hDevice,
2017 - DWORD dwOperation,
2018 - BOOL bImmediate);
2019 -
2020 -extern(Windows) export DWORD EraseTape(
2021 - HANDLE hDevice,
2022 - DWORD dwEraseType,
2023 - BOOL bImmediate);
2024 -
2025 -extern(Windows) export DWORD CreateTapePartition(
2026 - HANDLE hDevice,
2027 - DWORD dwPartitionMethod,
2028 - DWORD dwCount,
2029 - DWORD dwSize);
2030 -
2031 -extern(Windows) export DWORD WriteTapemark(
2032 - HANDLE hDevice,
2033 - DWORD dwTapemarkType,
2034 - DWORD dwTapemarkCount,
2035 - BOOL bImmediate);
2036 -
2037 -extern(Windows) export DWORD GetTapeStatus(
2038 - HANDLE hDevice);
2039 -
2040 -extern(Windows) export DWORD GetTapeParameters(
2041 - HANDLE hDevice,
2042 - DWORD dwOperation,
2043 - LPDWORD lpdwSize,
2044 - LPVOID lpTapeInformation);
2045 -
2046 -enum : uint { GET_TAPE_MEDIA_INFORMATION = 0 }
2047 -enum : uint { GET_TAPE_DRIVE_INFORMATION = 1 }
2048 -
2049 -extern(Windows) export DWORD SetTapeParameters(
2050 - HANDLE hDevice,
2051 - DWORD dwOperation,
2052 - LPVOID lpTapeInformation);
2053 -
2054 -enum : uint { SET_TAPE_MEDIA_INFORMATION = 0 }
2055 -enum : uint { SET_TAPE_DRIVE_INFORMATION = 1 }
2056 -
2057 -extern(Windows) export BOOL Beep(
2058 - DWORD dwFreq,
2059 - DWORD dwDuration);
2060 -
2061 -extern(Windows) export int MulDiv(
2062 - int nNumber,
2063 - int nNumerator,
2064 - int nDenominator);
2065 -
2066 -extern(Windows) export VOID GetSystemTime(
2067 - LPSYSTEMTIME lpSystemTime);
2068 -
2069 -extern(Windows) export VOID GetSystemTimeAsFileTime(
2070 - LPFILETIME lpSystemTimeAsFileTime);
2071 -
2072 -extern(Windows) export BOOL SetSystemTime(
2073 - SYSTEMTIME *lpSystemTime);
2074 -
2075 -extern(Windows) export VOID GetLocalTime(
2076 - LPSYSTEMTIME lpSystemTime);
2077 -
2078 -extern(Windows) export BOOL SetLocalTime(
2079 - SYSTEMTIME *lpSystemTime);
2080 -
2081 -extern(Windows) export VOID GetSystemInfo(
2082 - LPSYSTEM_INFO lpSystemInfo);
2083 -
2084 -// #if _WIN32_WINNT >= 0x0501
2085 -extern(Windows) export VOID GetNativeSystemInfo(
2086 - LPSYSTEM_INFO lpSystemInfo);
2087 -// #endif
2088 -
2089 -extern(Windows) export BOOL IsProcessorFeaturePresent(
2090 - DWORD ProcessorFeature);
2091 -
2092 -struct _TIME_ZONE_INFORMATION {
2093 - LONG Bias;
2094 - WCHAR StandardName[ 32 ];
2095 - SYSTEMTIME StandardDate;
2096 - LONG StandardBias;
2097 - WCHAR DaylightName[ 32 ];
2098 - SYSTEMTIME DaylightDate;
2099 - LONG DaylightBias;
1646 +
1647 +extern (Windows) {
1648 + ATOM AddAtomA(LPCSTR);
1649 + ATOM AddAtomW(LPCWSTR);
1650 + BOOL AreFileApisANSI();
1651 + BOOL Beep(DWORD, DWORD);
1652 + HANDLE BeginUpdateResourceA(LPCSTR, BOOL);
1653 + HANDLE BeginUpdateResourceW(LPCWSTR, BOOL);
1654 + BOOL BuildCommDCBA(LPCSTR, LPDCB);
1655 + BOOL BuildCommDCBW(LPCWSTR, LPDCB);
1656 + BOOL BuildCommDCBAndTimeoutsA(LPCSTR, LPDCB, LPCOMMTIMEOUTS);
1657 + BOOL BuildCommDCBAndTimeoutsW(LPCWSTR, LPDCB, LPCOMMTIMEOUTS);
1658 + BOOL CallNamedPipeA(LPCSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD);
1659 + BOOL CallNamedPipeW(LPCWSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD);
1660 + BOOL CancelDeviceWakeupRequest(HANDLE);
1661 + BOOL CheckTokenMembership(HANDLE, PSID, PBOOL);
1662 + BOOL ClearCommBreak(HANDLE);
1663 + BOOL ClearCommError(HANDLE, PDWORD, LPCOMSTAT);
1664 + BOOL CloseHandle(HANDLE);
1665 + BOOL CommConfigDialogA(LPCSTR, HWND, LPCOMMCONFIG);
1666 + BOOL CommConfigDialogW(LPCWSTR, HWND, LPCOMMCONFIG);
1667 + LONG CompareFileTime(CPtr!(FILETIME), CPtr!(FILETIME));
1668 + BOOL ContinueDebugEvent(DWORD, DWORD, DWORD);
1669 + BOOL CopyFileA(LPCSTR, LPCSTR, BOOL);
1670 + BOOL CopyFileW(LPCWSTR, LPCWSTR, BOOL);
1671 + BOOL CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1672 + BOOL CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1673 +
1674 + /+ FIXME
1675 + alias memmove RtlMoveMemory;
1676 + alias memcpy RtlCopyMemory;
1677 +
1678 + void RtlFillMemory(PVOID dest, SIZE_T len, BYTE fill) {
1679 + memset(dest, fill, len);
1680 + }
1681 +
1682 + void RtlZeroMemory(PVOID dest, SIZE_T len) {
1683 + RtlFillMemory(dest, len , 0);
1684 + }
1685 +
1686 + alias RtlMoveMemory MoveMemory;
1687 + alias RtlCopyMemory CopyMemory;
1688 + alias RtlFillMemory FillMemory;
1689 + alias RtlZeroMemory ZeroMemory;
1690 + +/
1691 + BOOL CreateDirectoryA(LPCSTR, LPSECURITY_ATTRIBUTES);
1692 + BOOL CreateDirectoryW(LPCWSTR, LPSECURITY_ATTRIBUTES);
1693 + BOOL CreateDirectoryExA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
1694 + BOOL CreateDirectoryExW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
1695 + HANDLE CreateEventA(LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCSTR);
1696 + HANDLE CreateEventW(LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR);
1697 + HANDLE CreateFileA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
1698 + HANDLE CreateFileW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
1699 + HANDLE CreateIoCompletionPort(HANDLE, HANDLE, ULONG_PTR, DWORD);
1700 + HANDLE CreateMailslotA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
1701 + HANDLE CreateMailslotW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
1702 + HANDLE CreateMutexA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
1703 + HANDLE CreateMutexW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR);
1704 + BOOL CreatePipe(PHANDLE, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD);
1705 + BOOL CreateProcessA(LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION);
1706 + BOOL CreateProcessW(LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION);
1707 + HANDLE CreateSemaphoreA(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCSTR);
1708 + HANDLE CreateSemaphoreW(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCWSTR);
1709 + HANDLE CreateThread(LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, PVOID, DWORD, PDWORD);
1710 + BOOL DebugActiveProcess(DWORD);
1711 + void DebugBreak();
1712 + ATOM DeleteAtom(ATOM);
1713 + void DeleteCriticalSection(PCRITICAL_SECTION);
1714 + BOOL DeleteFileA(LPCSTR);
1715 + BOOL DeleteFileW(LPCWSTR);
1716 + BOOL DisableThreadLibraryCalls(HMODULE);
1717 + BOOL DosDateTimeToFileTime(WORD, WORD, LPFILETIME);
1718 + BOOL DuplicateHandle(HANDLE, HANDLE, HANDLE, PHANDLE, DWORD, BOOL, DWORD);
1719 + BOOL EndUpdateResourceA(HANDLE, BOOL);
1720 + BOOL EndUpdateResourceW(HANDLE, BOOL);
1721 + void EnterCriticalSection(LPCRITICAL_SECTION);
1722 + BOOL EnumResourceLanguagesA(HMODULE, LPCSTR, LPCSTR, ENUMRESLANGPROC, LONG_PTR);
1723 + BOOL EnumResourceLanguagesW(HMODULE, LPCWSTR, LPCWSTR, ENUMRESLANGPROC, LONG_PTR);
1724 + BOOL EnumResourceNamesA(HMODULE, LPCSTR, ENUMRESNAMEPROC, LONG_PTR);
1725 + BOOL EnumResourceNamesW(HMODULE, LPCWSTR, ENUMRESNAMEPROC, LONG_PTR);
1726 + BOOL EnumResourceTypesA(HMODULE, ENUMRESTYPEPROC, LONG_PTR);
1727 + BOOL EnumResourceTypesW(HMODULE, ENUMRESTYPEPROC, LONG_PTR);
1728 + BOOL EscapeCommFunction(HANDLE, DWORD);
1729 + void ExitProcess(UINT); // Never returns
1730 + void ExitThread(DWORD); // Never returns
1731 + DWORD ExpandEnvironmentStringsA(LPCSTR, LPSTR, DWORD);
1732 + DWORD ExpandEnvironmentStringsW(LPCWSTR, LPWSTR, DWORD);
1733 + void FatalAppExitA(UINT, LPCSTR);
1734 + void FatalAppExitW(UINT, LPCWSTR);
1735 + void FatalExit(int);
1736 + BOOL FileTimeToDosDateTime(CPtr!(FILETIME) , LPWORD, LPWORD);
1737 + BOOL FileTimeToLocalFileTime(CPtr!(FILETIME) , LPFILETIME);
1738 + BOOL FileTimeToSystemTime(CPtr!(FILETIME) , LPSYSTEMTIME);
1739 + ATOM FindAtomA(LPCSTR);
1740 + ATOM FindAtomW(LPCWSTR);
1741 + BOOL FindClose(HANDLE);
1742 + BOOL FindCloseChangeNotification(HANDLE);
1743 + HANDLE FindFirstChangeNotificationA(LPCSTR, BOOL, DWORD);
1744 + HANDLE FindFirstChangeNotificationW(LPCWSTR, BOOL, DWORD);
1745 + HANDLE FindFirstFileA(LPCSTR, LPWIN32_FIND_DATAA);
1746 + HANDLE FindFirstFileW(LPCWSTR, LPWIN32_FIND_DATAW);
1747 + BOOL FindNextChangeNotification(HANDLE);
1748 + BOOL FindNextFileA(HANDLE, LPWIN32_FIND_DATAA);
1749 + BOOL FindNextFileW(HANDLE, LPWIN32_FIND_DATAW);
1750 + HRSRC FindResourceA(HMODULE, LPCSTR, LPCSTR);
1751 + HRSRC FindResourceW(HINSTANCE, LPCWSTR, LPCWSTR);
1752 + HRSRC FindResourceExA(HINSTANCE, LPCSTR, LPCSTR, WORD);
1753 + HRSRC FindResourceExW(HINSTANCE, LPCWSTR, LPCWSTR, WORD);
1754 + BOOL FlushFileBuffers(HANDLE);
1755 + BOOL FlushInstructionCache(HANDLE, PCVOID, DWORD);
1756 + DWORD FormatMessageA(DWORD, PCVOID, DWORD, DWORD, LPSTR, DWORD, va_list*);
1757 + DWORD FormatMessageW(DWORD, PCVOID, DWORD, DWORD, LPWSTR, DWORD, va_list*);
1758 + BOOL FreeEnvironmentStringsA(LPSTR);
1759 + BOOL FreeEnvironmentStringsW(LPWSTR);
1760 + BOOL FreeLibrary(HMODULE);
1761 + void FreeLibraryAndExitThread(HMODULE, DWORD); // never returns
1762 + BOOL FreeResource(HGLOBAL);
1763 + UINT GetAtomNameA(ATOM, LPSTR, int);
1764 + UINT GetAtomNameW(ATOM, LPWSTR, int);
1765 + LPSTR GetCommandLineA();
1766 + LPWSTR GetCommandLineW();
1767 + BOOL GetCommConfig(HANDLE, LPCOMMCONFIG, PDWORD);
1768 + BOOL GetCommMask(HANDLE, PDWORD);
1769 + BOOL GetCommModemStatus(HANDLE, PDWORD);
1770 + BOOL GetCommProperties(HANDLE, LPCOMMPROP);
1771 + BOOL GetCommState(HANDLE, LPDCB);
1772 + BOOL GetCommTimeouts(HANDLE, LPCOMMTIMEOUTS);
1773 + BOOL GetComputerNameA(LPSTR, PDWORD);
1774 + BOOL GetComputerNameW(LPWSTR, PDWORD);
1775 + DWORD GetCurrentDirectoryA(DWORD, LPSTR);
1776 + DWORD GetCurrentDirectoryW(DWORD, LPWSTR);
1777 + HANDLE GetCurrentProcess();
1778 + DWORD GetCurrentProcessId();
1779 + HANDLE GetCurrentThread();
1780 +/* In MinGW:
1781 +#ifdef _WIN32_WCE
1782 +extern DWORD GetCurrentThreadId(void);
1783 +#else
1784 +WINBASEAPI DWORD WINAPI GetCurrentThreadId(void);
1785 +#endif
1786 +*/
1787 + DWORD GetCurrentThreadId();
1788 +
1789 + alias GetTickCount GetCurrentTime;
1790 +
1791 + BOOL GetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, PDWORD);
1792 + BOOL GetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, PDWORD);
1793 + BOOL GetDiskFreeSpaceA(LPCSTR, PDWORD, PDWORD, PDWORD, PDWORD);
1794 + BOOL GetDiskFreeSpaceW(LPCWSTR, PDWORD, PDWORD, PDWORD, PDWORD);
1795 + BOOL GetDiskFreeSpaceExA(LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
1796 + BOOL GetDiskFreeSpaceExW(LPCWSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
1797 + UINT GetDriveTypeA(LPCSTR);
1798 + UINT GetDriveTypeW(LPCWSTR);
1799 + LPSTR GetEnvironmentStrings(); // ???
1800 + LPSTR GetEnvironmentStringsA();
1801 + LPWSTR GetEnvironmentStringsW();
1802 + DWORD GetEnvironmentVariableA(LPCSTR, LPSTR, DWORD);
1803 + DWORD GetEnvironmentVariableW(LPCWSTR, LPWSTR, DWORD);
1804 + BOOL GetExitCodeProcess(HANDLE, PDWORD);
1805 + BOOL GetExitCodeThread(HANDLE, PDWORD);
1806 + DWORD GetFileAttributesA(LPCSTR);
1807 + DWORD GetFileAttributesW(LPCWSTR);
1808 + BOOL GetFileInformationByHandle(HANDLE, LPBY_HANDLE_FILE_INFORMATION);
1809 + DWORD GetFileSize(HANDLE, PDWORD);
1810 + BOOL GetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME);
1811 + DWORD GetFileType(HANDLE);
1812 + DWORD GetFullPathNameA(LPCSTR, DWORD, LPSTR, LPSTR*);
1813 + DWORD GetFullPathNameW(LPCWSTR, DWORD, LPWSTR, LPWSTR*);
1814 + DWORD GetLastError();
1815 + void GetLocalTime(LPSYSTEMTIME);
1816 + DWORD GetLogicalDrives();
1817 + DWORD GetLogicalDriveStringsA(DWORD, LPSTR);
1818 + DWORD GetLogicalDriveStringsW(DWORD, LPWSTR);
1819 + BOOL GetMailslotInfo(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD);
1820 + DWORD GetModuleFileNameA(HINSTANCE, LPSTR, DWORD);
1821 + DWORD GetModuleFileNameW(HINSTANCE, LPWSTR, DWORD);
1822 + HMODULE GetModuleHandleA(LPCSTR);
1823 + HMODULE GetModuleHandleW(LPCWSTR);
1824 + BOOL GetNamedPipeHandleStateA(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LPSTR, DWORD);
1825 + BOOL GetNamedPipeHandleStateW(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LPWSTR, DWORD);
1826 + BOOL GetNamedPipeInfo(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD);
1827 + BOOL GetOverlappedResult(HANDLE, LPOVERLAPPED, PDWORD, BOOL);
1828 + DWORD GetPriorityClass(HANDLE);
1829 + UINT GetPrivateProfileIntA(LPCSTR, LPCSTR, INT, LPCSTR);
1830 + UINT GetPrivateProfileIntW(LPCWSTR, LPCWSTR, INT, LPCWSTR);
1831 + DWORD GetPrivateProfileSectionA(LPCSTR, LPSTR, DWORD, LPCSTR);
1832 + DWORD GetPrivateProfileSectionW(LPCWSTR, LPWSTR, DWORD, LPCWSTR);
1833 + DWORD GetPrivateProfileSectionNamesA(LPSTR, DWORD, LPCSTR);
1834 + DWORD GetPrivateProfileSectionNamesW(LPWSTR, DWORD, LPCWSTR);
1835 + DWORD GetPrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD, LPCSTR);
1836 + DWORD GetPrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD, LPCWSTR);
1837 + BOOL GetPrivateProfileStructA(LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR);
1838 + BOOL GetPrivateProfileStructW(LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR);
1839 + FARPROC GetProcAddress(HINSTANCE, LPCSTR);
1840 + BOOL GetProcessAffinityMask(HANDLE, PDWORD, PDWORD);
1841 + DWORD GetProcessVersion(DWORD);
1842 + UINT GetProfileIntA(LPCSTR, LPCSTR, INT);
1843 + UINT GetProfileIntW(LPCWSTR, LPCWSTR, INT);
1844 + DWORD GetProfileSectionA(LPCSTR, LPSTR, DWORD);
1845 + DWORD GetProfileSectionW(LPCWSTR, LPWSTR, DWORD);
1846 + DWORD GetProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD);
1847 + DWORD GetProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD);
1848 + DWORD GetShortPathNameA(LPCSTR, LPSTR, DWORD);
1849 + DWORD GetShortPathNameW(LPCWSTR, LPWSTR, DWORD);
1850 + VOID GetStartupInfoA(LPSTARTUPINFOA);
1851 + VOID GetStartupInfoW(LPSTARTUPINFOW);
1852 + HANDLE GetStdHandle(DWORD);
1853 + UINT GetSystemDirectoryA(LPSTR, UINT);
1854 + UINT GetSystemDirectoryW(LPWSTR, UINT);
1855 + VOID GetSystemInfo(LPSYSTEM_INFO);
1856 + VOID GetSystemTime(LPSYSTEMTIME);
1857 + BOOL GetSystemTimeAdjustment(PDWORD, PDWORD, PBOOL);
1858 + void GetSystemTimeAsFileTime(LPFILETIME);
1859 + UINT GetTempFileNameA(LPCSTR, LPCSTR, UINT, LPSTR);
1860 + UINT GetTempFileNameW(LPCWSTR, LPCWSTR, UINT, LPWSTR);
1861 + DWORD GetTempPathA(DWORD, LPSTR);
1862 + DWORD GetTempPathW(DWORD, LPWSTR);
1863 + BOOL GetThreadContext(HANDLE, LPCONTEXT);
1864 + int GetThreadPriority(HANDLE);
1865 + BOOL GetThreadSelectorEntry(HANDLE, DWORD, LPLDT_ENTRY);
1866 + DWORD GetTickCount();
1867 + DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
1868 + BOOL GetUserNameA (LPSTR, PDWORD);
1869 + BOOL GetUserNameW(LPWSTR, PDWORD);
1870 + DWORD GetVersion();
1871 + BOOL GetVersionExA(LPOSVERSIONINFOA);
1872 + BOOL GetVersionExW(LPOSVERSIONINFOW);
1873 + BOOL GetVolumeInformationA(LPCSTR, LPSTR, DWORD, PDWORD, PDWORD, PDWORD, LPSTR, DWORD);
1874 + BOOL GetVolumeInformationW(LPCWSTR, LPWSTR, DWORD, PDWORD, PDWORD, PDWORD, LPWSTR, DWORD);
1875 + UINT GetWindowsDirectoryA(LPSTR, UINT);
1876 + UINT GetWindowsDirectoryW(LPWSTR, UINT);
1877 + DWORD GetWindowThreadProcessId(HWND, PDWORD);
1878 + ATOM GlobalAddAtomA(LPCSTR);
1879 + ATOM GlobalAddAtomW(LPCWSTR);
1880 + ATOM GlobalDeleteAtom(ATOM);
1881 + ATOM GlobalFindAtomA(LPCSTR);
1882 + ATOM GlobalFindAtomW(LPCWSTR);
1883 + UINT GlobalGetAtomNameA(ATOM, LPSTR, int);
1884 + UINT GlobalGetAtomNameW(ATOM, LPWSTR, int);
1885 +
1886 + bool HasOverlappedIoCompleted(LPOVERLAPPED lpOverlapped) {
1887 + return lpOverlapped.Internal != STATUS_PENDING;
1888 + }
1889 +
1890 + BOOL InitAtomTable(DWORD);
1891 + VOID InitializeCriticalSection(LPCRITICAL_SECTION);
1892 + /* ??? The next two are allegedly obsolete and "supported only for
1893 + * backward compatibility with the 16-bit Windows API". Yet the
1894 + * replacements IsBadReadPtr and IsBadWritePtr are apparently Win2000+
1895 + * only. Where's the mistake?
1896 + */
1897 + BOOL IsBadHugeReadPtr(PCVOID, UINT);
1898 + BOOL IsBadHugeWritePtr(PVOID, UINT);
1899 + BOOL IsBadReadPtr(PCVOID, UINT);
1900 + BOOL IsBadStringPtrA(LPCSTR, UINT);
1901 + BOOL IsBadStringPtrW(LPCWSTR, UINT);
1902 + BOOL IsBadWritePtr(PVOID, UINT);
1903 + void LeaveCriticalSection(LPCRITICAL_SECTION);
1904 + HINSTANCE LoadLibraryA(LPCSTR);
1905 + HINSTANCE LoadLibraryW(LPCWSTR);
1906 + HINSTANCE LoadLibraryExA(LPCSTR, HANDLE, DWORD);
1907 + HINSTANCE LoadLibraryExW(LPCWSTR, HANDLE, DWORD);
1908 + DWORD LoadModule(LPCSTR, PVOID);
1909 + HGLOBAL LoadResource(HINSTANCE, HRSRC);
1910 + BOOL LocalFileTimeToFileTime(CPtr!(FILETIME) , LPFILETIME);
1911 + BOOL LockFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
1912 + PVOID LockResource(HGLOBAL);
1913 +
1914 + LPSTR lstrcatA(LPSTR, LPCSTR);
1915 + LPWSTR lstrcatW(LPWSTR, LPCWSTR);
1916 + int lstrcmpA(LPCSTR, LPCSTR);
1917 + int lstrcmpiA(LPCSTR, LPCSTR);
1918 + int lstrcmpiW(LPCWSTR, LPCWSTR);
1919 + int lstrcmpW(LPCWSTR, LPCWSTR);
1920 + LPSTR lstrcpyA(LPSTR, LPCSTR);
1921 + LPSTR lstrcpynA(LPSTR, LPCSTR, int);
1922 + LPWSTR lstrcpynW(LPWSTR, LPCWSTR, int);
1923 + LPWSTR lstrcpyW(LPWSTR, LPCWSTR);
1924 + int lstrlenA(LPCSTR);
1925 + int lstrlenW(LPCWSTR);
1926 +
1927 + BOOL MoveFileA(LPCSTR, LPCSTR);
1928 + BOOL MoveFileW(LPCWSTR, LPCWSTR);
1929 + int MulDiv(int, int, int);
1930 + HANDLE OpenEventA(DWORD, BOOL, LPCSTR);
1931 + HANDLE OpenEventW(DWORD, BOOL, LPCWSTR);
1932 + deprecated HFILE OpenFile(LPCSTR, LPOFSTRUCT, UINT);
1933 + HANDLE OpenMutexA(DWORD, BOOL, LPCSTR);
1934 + HANDLE OpenMutexW(DWORD, BOOL, LPCWSTR);
1935 + HANDLE OpenProcess(DWORD, BOOL, DWORD);
1936 + HANDLE OpenSemaphoreA(DWORD, BOOL, LPCSTR);
1937 + HANDLE OpenSemaphoreW(DWORD, BOOL, LPCWSTR);
1938 + void OutputDebugStringA(LPCSTR);
1939 + void OutputDebugStringW(LPCWSTR);
1940 + BOOL PeekNamedPipe(HANDLE, PVOID, DWORD, PDWORD, PDWORD, PDWORD);
1941 + BOOL PulseEvent(HANDLE);
1942 + BOOL PurgeComm(HANDLE, DWORD);
1943 + BOOL QueryPerformanceCounter(PLARGE_INTEGER);
1944 + BOOL QueryPerformanceFrequency(PLARGE_INTEGER);
1945 + DWORD QueueUserAPC(PAPCFUNC, HANDLE, ULONG_PTR);
1946 + void RaiseException(DWORD, DWORD, DWORD, CPtr!(DWORD));
1947 + BOOL ReadFile(HANDLE, PVOID, DWORD, PDWORD, LPOVERLAPPED);
1948 + BOOL ReadFileEx(HANDLE, PVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
1949 + BOOL ReadProcessMemory(HANDLE, PCVOID, PVOID, DWORD, PDWORD);
1950 + BOOL ReleaseMutex(HANDLE);
1951 + BOOL ReleaseSemaphore(HANDLE, LONG, LPLONG);
1952 + BOOL RemoveDirectoryA(LPCSTR);
1953 + BOOL RemoveDirectoryW(LPCWSTR);
1954 +/* In MinGW:
1955 +#ifdef _WIN32_WCE
1956 +extern BOOL ResetEvent(HANDLE);
1957 +#else
1958 +WINBASEAPI BOOL WINAPI ResetEvent(HANDLE);
1959 +#endif
1960 +*/
1961 + BOOL ResetEvent(HANDLE);
1962 + DWORD ResumeThread(HANDLE);
1963 + DWORD SearchPathA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR*);
1964 + DWORD SearchPathW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR*);
1965 + BOOL SetCommBreak(HANDLE);
1966 + BOOL SetCommConfig(HANDLE, LPCOMMCONFIG, DWORD);
1967 + BOOL SetCommMask(HANDLE, DWORD);
1968 + BOOL SetCommState(HANDLE, LPDCB);
1969 + BOOL SetCommTimeouts(HANDLE, LPCOMMTIMEOUTS);
1970 + BOOL SetComputerNameA(LPCSTR);
1971 + BOOL SetComputerNameW(LPCWSTR);
1972 + BOOL SetCurrentDirectoryA(LPCSTR);
1973 + BOOL SetCurrentDirectoryW(LPCWSTR);
1974 + BOOL SetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, DWORD);
1975 + BOOL SetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, DWORD);
1976 + BOOL SetEndOfFile(HANDLE);
1977 + BOOL SetEnvironmentVariableA(LPCSTR, LPCSTR);
1978 + BOOL SetEnvironmentVariableW(LPCWSTR, LPCWSTR);
1979 + UINT SetErrorMode(UINT);
1980 +/* In MinGW:
1981 +#ifdef _WIN32_WCE
1982 +extern BOOL SetEvent(HANDLE);
1983 +#else
1984 +WINBASEAPI BOOL WINAPI SetEvent(HANDLE);
1985 +#endif
1986 +*/
1987 + BOOL SetEvent(HANDLE);
1988 + VOID SetFileApisToANSI();
1989 + VOID SetFileApisToOEM();
1990 + BOOL SetFileAttributesA(LPCSTR, DWORD);
1991 + BOOL SetFileAttributesW(LPCWSTR, DWORD);
1992 + DWORD SetFilePointer(HANDLE, LONG, PLONG, DWORD);
1993 + BOOL SetFileTime(HANDLE, CPtr!(FILETIME), CPtr!(FILETIME), CPtr!(FILETIME));
1994 + deprecated UINT SetHandleCount(UINT);
1995 + void SetLastError(DWORD);
1996 + void SetLastErrorEx(DWORD, DWORD);
1997 + BOOL SetLocalTime(CPtr!(SYSTEMTIME));
1998 + BOOL SetMailslotInfo(HANDLE, DWORD);
1999 + BOOL SetNamedPipeHandleState(HANDLE, PDWORD, PDWORD, PDWORD);
2000 + BOOL SetPriorityClass(HANDLE, DWORD);
2001 + BOOL SetStdHandle(DWORD, HANDLE);
2002 + BOOL SetSystemTime(CPtr!(SYSTEMTIME));
2003 + DWORD SetThreadAffinityMask(HANDLE, DWORD);
2004 + BOOL SetThreadContext(HANDLE, CPtr!(CONTEXT));
2005 + BOOL SetThreadPriority(HANDLE, int);
2006 + BOOL SetTimeZoneInformation(CPtr!(TIME_ZONE_INFORMATION));
2007 + LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
2008 + BOOL SetupComm(HANDLE, DWORD, DWORD);
2009 + BOOL SetVolumeLabelA(LPCSTR, LPCSTR);
2010 + BOOL SetVolumeLabelW(LPCWSTR, LPCWSTR);
2011 +
2012 + DWORD SizeofResource(HINSTANCE, HRSRC);
2013 + void Sleep(DWORD);
2014 + DWORD SleepEx(DWORD, BOOL);
2015 + DWORD SuspendThread(HANDLE);
2016 + BOOL SystemTimeToFileTime(CPtr!(SYSTEMTIME), LPFILETIME);
2017 + BOOL TerminateProcess(HANDLE, UINT);
2018 + BOOL TerminateThread(HANDLE, DWORD);
2019 + DWORD TlsAlloc();
2020 + BOOL TlsFree(DWORD);
2021 + PVOID TlsGetValue(DWORD);
2022 + BOOL TlsSetValue(DWORD, PVOID);
2023 + BOOL TransactNamedPipe(HANDLE, PVOID, DWORD, PVOID, DWORD, PDWORD, LPOVERLAPPED);
2024 + BOOL TransmitCommChar(HANDLE, char);
2025 + LONG UnhandledExceptionFilter(LPEXCEPTION_POINTERS);
2026 + BOOL UnlockFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
2027 + BOOL WaitCommEvent(HANDLE, PDWORD, LPOVERLAPPED);
2028 + BOOL WaitForDebugEvent(LPDEBUG_EVENT, DWORD);
2029 + DWORD WaitForMultipleObjects(DWORD, CPtr!(HANDLE), BOOL, DWORD);
2030 + DWORD WaitForMultipleObjectsEx(DWORD, CPtr!(HANDLE), BOOL, DWORD, BOOL);
2031 + DWORD WaitForSingleObject(HANDLE, DWORD);
2032 + DWORD WaitForSingleObjectEx(HANDLE, DWORD, BOOL);
2033 + BOOL WaitNamedPipeA(LPCSTR, DWORD);
2034 + BOOL WaitNamedPipeW(LPCWSTR, DWORD);
2035 + // undocumented on MSDN
2036 + BOOL WinLoadTrustProvider(GUID*);
2037 + BOOL WriteFile(HANDLE, PCVOID, DWORD, PDWORD, LPOVERLAPPED);
2038 + BOOL WriteFileEx(HANDLE, PCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
2039 + BOOL WritePrivateProfileSectionA(LPCSTR, LPCSTR, LPCSTR);
2040 + BOOL WritePrivateProfileSectionW(LPCWSTR, LPCWSTR, LPCWSTR);
2041 + BOOL WritePrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPCSTR);
2042 + BOOL WritePrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR);
2043 + BOOL WritePrivateProfileStructA(LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR);
2044 + BOOL WritePrivateProfileStructW(LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR);
2045 + BOOL WriteProcessMemory(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T*);
2046 + BOOL WriteProfileSectionA(LPCSTR, LPCSTR);
2047 + BOOL WriteProfileSectionW(LPCWSTR, LPCWSTR);
2048 + BOOL WriteProfileStringA(LPCSTR, LPCSTR, LPCSTR);
2049 + BOOL WriteProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR);
2050 +
2051 + /* Memory allocation functions.
2052 + * MSDN documents these erroneously as Win2000+; thus it is uncertain what
2053 + * version compatibility they really have.
2054 + */
2055 + HGLOBAL GlobalAlloc(UINT, DWORD);
2056 + HGLOBAL GlobalDiscard(HGLOBAL);
2057 + HGLOBAL GlobalFree(HGLOBAL);
2058 + HGLOBAL GlobalHandle(PCVOID);
2059 + LPVOID GlobalLock(HGLOBAL);
2060 + VOID GlobalMemoryStatus(LPMEMORYSTATUS);
2061 + HGLOBAL GlobalReAlloc(HGLOBAL, DWORD, UINT);
2062 + DWORD GlobalSize(HGLOBAL);
2063 + BOOL GlobalUnlock(HGLOBAL);
2064 + PVOID HeapAlloc(HANDLE, DWORD, DWORD);
2065 + SIZE_T HeapCompact(HANDLE, DWORD);
2066 + HANDLE HeapCreate(DWORD, DWORD, DWORD);
2067 + BOOL HeapDestroy(HANDLE);
2068 + BOOL HeapFree(HANDLE, DWORD, PVOID);
2069 + BOOL HeapLock(HANDLE);
2070 + PVOID HeapReAlloc(HANDLE, DWORD, PVOID, DWORD);
2071 + DWORD HeapSize(HANDLE, DWORD, PCVOID);
2072 + BOOL HeapUnlock(HANDLE);
2073 + BOOL HeapValidate(HANDLE, DWORD, PCVOID);
2074 + BOOL HeapWalk(HANDLE, LPPROCESS_HEAP_ENTRY);
2075 + HLOCAL LocalAlloc(UINT, SIZE_T);
2076 + HLOCAL LocalDiscard(HLOCAL);
2077 + HLOCAL LocalFree(HLOCAL);
2078 + HLOCAL LocalHandle(LPCVOID);
2079 + PVOID LocalLock(HLOCAL);
2080 + HLOCAL LocalReAlloc(HLOCAL, SIZE_T, UINT);
2081 + UINT LocalSize(HLOCAL);
2082 + BOOL LocalUnlock(HLOCAL);
2083 + PVOID VirtualAlloc(PVOID, DWORD, DWORD, DWORD);
2084 + PVOID VirtualAllocEx(HANDLE, PVOID, DWORD, DWORD, DWORD);
2085 + BOOL VirtualFree(PVOID, DWORD, DWORD);
2086 + BOOL VirtualFreeEx(HANDLE, PVOID, DWORD, DWORD);
2087 + BOOL VirtualLock(PVOID, DWORD);
2088 + BOOL VirtualProtect(PVOID, DWORD, DWORD, PDWORD);
2089 + BOOL VirtualProtectEx(HANDLE, PVOID, DWORD, DWORD, PDWORD);
2090 + DWORD VirtualQuery(LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD);
2091 + DWORD VirtualQueryEx(HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD);
2092 + BOOL VirtualUnlock(PVOID, DWORD);
2093 +
2094 + static if (_WIN32_WINDOWS >= 0x600) {
2095 + BOOL CancelIoEx(HANDLE, LPOVERLAPPED);
2096 + }
2097 +
2098 + static if (_WIN32_WINDOWS >= 0x410) {
2099 + BOOL CancelIo(HANDLE);
2100 + BOOL CancelWaitableTimer(HANDLE);
2101 + PVOID ConvertThreadToFiber(PVOID);
2102 + LPVOID CreateFiber(SIZE_T, LPFIBER_START_ROUTINE, LPVOID);
2103 + HANDLE CreateWaitableTimerA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
2104 + HANDLE CreateWaitableTimerW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR);
2105 + void DeleteFiber(PVOID);
2106 + BOOL GetFileAttributesExA(LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID);
2107 + BOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID);
2108 + DWORD GetLongPathNameA(LPCSTR, LPSTR, DWORD);
2109 + DWORD GetLongPathNameW(LPCWSTR, LPWSTR, DWORD);
2110 + BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION, DWORD);
2111 + BOOL IsDebuggerPresent();
2112 + HANDLE OpenWaitableTimerA(DWORD, BOOL, LPCSTR);
2113 + HANDLE OpenWaitableTimerW(DWORD, BOOL, LPCWSTR);
2114 + DWORD QueryDosDeviceA(LPCSTR, LPSTR, DWORD);
2115 + DWORD QueryDosDeviceW(LPCWSTR, LPWSTR, DWORD);
2116 + BOOL SetWaitableTimer(HANDLE, CPtr!(LARGE_INTEGER), LONG, PTIMERAPCROUTINE, PVOID, BOOL);
2117 + void SwitchToFiber(PVOID);
2118 + }
2119 +
2120 + static if (WINVER >= 0x500) {
2121 + HANDLE OpenThread(DWORD, BOOL, DWORD);
2122 + }
2123 +
2124 + static if (_WIN32_WINNT_ONLY) {
2125 + BOOL AccessCheck(PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, PDWORD, PDWORD, PBOOL);
2126 + BOOL AccessCheckAndAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL);
2127 + BOOL AccessCheckAndAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, PDWORD, PBOOL, PBOOL);
2128 + BOOL AddAccessAllowedAce(PACL, DWORD, DWORD, PSID);
2129 + BOOL AddAccessDeniedAce(PACL, DWORD, DWORD, PSID);
2130 + BOOL AddAce(PACL, DWORD, DWORD, PVOID, DWORD);
2131 + BOOL AddAuditAccessAce(PACL, DWORD, DWORD, PSID, BOOL, BOOL);
2132 + BOOL AdjustTokenGroups(HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD);
2133 + BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
2134 + BOOL AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*);
2135 + BOOL AllocateLocallyUniqueId(PLUID);
2136 + BOOL AreAllAccessesGranted(DWORD, DWORD);
2137 + BOOL AreAnyAccessesGranted(DWORD, DWORD);
2138 + BOOL BackupEventLogA(HANDLE, LPCSTR);
2139 + BOOL BackupEventLogW(HANDLE, LPCWSTR);
2140 + BOOL BackupRead(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*);
2141 + BOOL BackupSeek(HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID*);
2142 + BOOL BackupWrite(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID*);
2143 + BOOL ClearEventLogA(HANDLE, LPCSTR);
2144 + BOOL ClearEventLogW(HANDLE, LPCWSTR);
2145 + BOOL CloseEventLog(HANDLE);
2146 + BOOL ConnectNamedPipe(HANDLE, LPOVERLAPPED);
2147 + BOOL CopySid(DWORD, PSID, PSID);
2148 + HANDLE CreateNamedPipeA(LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
2149 + HANDLE CreateNamedPipeW(LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
2150 + BOOL CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR*, BOOL, HANDLE, PGENERIC_MAPPING);
2151 + BOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION);
2152 + BOOL CreateProcessAsUserW(HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, PVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION);
2153 + HANDLE CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD);
2154 + DWORD CreateTapePartition(HANDLE, DWORD, DWORD, DWORD);
2155 + BOOL DefineDosDeviceA(DWORD, LPCSTR, LPCSTR);
2156 + BOOL DefineDosDeviceW(DWORD, LPCWSTR, LPCWSTR);
2157 + BOOL DeleteAce(PACL, DWORD);
2158 + BOOL DeregisterEventSource(HANDLE);
2159 + BOOL DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
2160 + BOOL DeviceIoControl(HANDLE, DWORD, PVOID, DWORD, PVOID, DWORD, PDWORD, POVERLAPPED);
2161 + BOOL DisconnectNamedPipe(HANDLE);
2162 + BOOL DuplicateToken(HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE);
2163 + BOOL DuplicateTokenEx(HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE);
2164 + BOOL EqualPrefixSid(PSID, PSID);
2165 + BOOL EqualSid(PSID, PSID);
2166 + DWORD EraseTape(HANDLE, DWORD, BOOL);
2167 + HANDLE FindFirstFileExA(LPCSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD);
2168 + HANDLE FindFirstFileExW(LPCWSTR, FINDEX_INFO_LEVELS, PVOID, FINDEX_SEARCH_OPS, PVOID, DWORD);
2169 + BOOL FindFirstFreeAce(PACL, PVOID*);
2170 + PVOID FreeSid(PSID);
2171 + BOOL GetAce(PACL, DWORD, LPVOID*);
2172 + BOOL GetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS);
2173 + BOOL GetBinaryTypeA(LPCSTR, PDWORD);
2174 + BOOL GetBinaryTypeW(LPCWSTR, PDWORD);
2175 + DWORD GetCompressedFileSizeA(LPCSTR, PDWORD);
2176 + DWORD GetCompressedFileSizeW(LPCWSTR, PDWORD);
2177 + BOOL GetCurrentHwProfileA(LPHW_PROFILE_INFOA);
2178 + BOOL GetCurrentHwProfileW(LPHW_PROFILE_INFOW);
2179 + BOOL GetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
2180 + BOOL GetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
2181 + BOOL GetHandleInformation(HANDLE, PDWORD);
2182 + BOOL GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
2183 + DWORD GetLengthSid(PSID);
2184 + BOOL GetNumberOfEventLogRecords(HANDLE, PDWORD);
2185 + BOOL GetOldestEventLogRecord(HANDLE, PDWORD);
2186 + BOOL GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
2187 + BOOL GetProcessPriorityBoost(HANDLE, PBOOL);
2188 + BOOL GetProcessShutdownParameters(PDWORD, PDWORD);
2189 + BOOL GetProcessTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);
2190 + HWINSTA GetProcessWindowStation();
2191 + BOOL GetProcessWorkingSetSize(HANDLE, PSIZE_T, PSIZE_T);
2192 + BOOL GetQueuedCompletionStatus(HANDLE, PDWORD, PULONG_PTR, LPOVERLAPPED*, DWORD);
2193 + BOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, PDWORD);
2194 + BOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL);
2195 + BOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID*, LPBOOL);
2196 + DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
2197 + BOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID*, LPBOOL);
2198 + BOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, LPBOOL, PACL*, LPBOOL);
2199 + PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(PSID);
2200 + DWORD GetSidLengthRequired(UCHAR);
2201 + PDWORD GetSidSubAuthority(PSID, DWORD);
2202 + PUCHAR GetSidSubAuthorityCount(PSID);
2203 + DWORD GetTapeParameters(HANDLE, DWORD, PDWORD, PVOID);
2204 + DWORD GetTapePosition(HANDLE, DWORD, PDWORD, PDWORD, PDWORD);
2205 + DWORD GetTapeStatus(HANDLE);
2206 + BOOL GetThreadPriorityBoost(HANDLE, PBOOL);
2207 + BOOL GetThreadTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME);
2208 + BOOL GetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD, PDWORD);
2209 + BOOL ImpersonateLoggedOnUser(HANDLE);
2210 + BOOL ImpersonateNamedPipeClient(HANDLE);
2211 + BOOL ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
2212 + BOOL InitializeAcl(PACL, DWORD, DWORD);
2213 + DWORD SetCriticalSectionSpinCount(LPCRITICAL_SECTION, DWORD);
2214 + BOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR, DWORD);
2215 + BOOL InitializeSid(PSID, PSID_IDENTIFIER_AUTHORITY, BYTE);
2216 + BOOL IsProcessorFeaturePresent(DWORD);
2217 + BOOL IsTextUnicode(PCVOID, int, LPINT);
2218 + BOOL IsValidAcl(PACL);
2219 + BOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
2220 + BOOL IsValidSid(PSID);
2221 + BOOL LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);
2222 + BOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE);
2223 + BOOL LogonUserW(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE);
2224 + BOOL LookupAccountNameA(LPCSTR, LPCSTR, PSID, PDWORD, LPSTR, PDWORD, PSID_NAME_USE);
2225 + BOOL LookupAccountNameW(LPCWSTR, LPCWSTR, PSID, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE);
2226 + BOOL LookupAccountSidA(LPCSTR, PSID, LPSTR, PDWORD, LPSTR, PDWORD, PSID_NAME_USE);
2227 + BOOL LookupAccountSidW(LPCWSTR, PSID, LPWSTR, PDWORD, LPWSTR, PDWORD, PSID_NAME_USE);
2228 + BOOL LookupPrivilegeDisplayNameA(LPCSTR, LPCSTR, LPSTR, PDWORD, PDWORD);
2229 + BOOL LookupPrivilegeDisplayNameW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, PDWORD);
2230 + BOOL LookupPrivilegeNameA(LPCSTR, PLUID, LPSTR, PDWORD);
2231 + BOOL LookupPrivilegeNameW(LPCWSTR, PLUID, LPWSTR, PDWORD);
2232 + BOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID);
2233 + BOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID);
2234 + BOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD);
2235 + BOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD);
2236 + VOID MapGenericMask(PDWORD, PGENERIC_MAPPING);
2237 + BOOL MoveFileExA(LPCSTR, LPCSTR, DWORD);
2238 + BOOL MoveFileExW(LPCWSTR, LPCWSTR, DWORD);
2239 + BOOL NotifyChangeEventLog(HANDLE, HANDLE);
2240 + BOOL ObjectCloseAuditAlarmA(LPCSTR, PVOID, BOOL);
2241 + BOOL ObjectCloseAuditAlarmW(LPCWSTR, PVOID, BOOL);
2242 + BOOL ObjectDeleteAuditAlarmA(LPCSTR, PVOID, BOOL);
2243 + BOOL ObjectDeleteAuditAlarmW(LPCWSTR, PVOID, BOOL);
2244 + BOOL ObjectOpenAuditAlarmA(LPCSTR, PVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL);
2245 + BOOL ObjectOpenAuditAlarmW(LPCWSTR, PVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL);
2246 + BOOL ObjectPrivilegeAuditAlarmA(LPCSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL);
2247 + BOOL ObjectPrivilegeAuditAlarmW(LPCWSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL);
2248 + HANDLE OpenBackupEventLogA(LPCSTR, LPCSTR);
2249 + HANDLE OpenBackupEventLogW(LPCWSTR, LPCWSTR);
2250 + HANDLE OpenEventLogA(LPCSTR, LPCSTR);
2251 + HANDLE OpenEventLogW(LPCWSTR, LPCWSTR);
2252 + BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE);
2253 + BOOL OpenThreadToken(HANDLE, DWORD, BOOL, PHANDLE);
2254 + BOOL PostQueuedCompletionStatus(HANDLE, DWORD, ULONG_PTR, LPOVERLAPPED);
2255 + DWORD PrepareTape(HANDLE, DWORD, BOOL);
2256 + BOOL PrivilegeCheck(HANDLE, PPRIVILEGE_SET, PBOOL);
2257 + BOOL PrivilegedServiceAuditAlarmA(LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, BOOL);
2258 + BOOL PrivilegedServiceAuditAlarmW(LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, BOOL);
2259 + BOOL ReadDirectoryChangesW(HANDLE, PVOID, DWORD, BOOL, DWORD, PDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
2260 + BOOL ReadEventLogA(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*);
2261 + BOOL ReadEventLogW(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*);
2262 + BOOL ReadFileScatter(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED);
2263 + HANDLE RegisterEventSourceA (LPCSTR, LPCSTR);
2264 + HANDLE RegisterEventSourceW(LPCWSTR, LPCWSTR);
2265 + BOOL ReportEventA(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCSTR*, PVOID);
2266 + BOOL ReportEventW(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCWSTR*, PVOID);
2267 + BOOL RevertToSelf();
2268 + BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS);
2269 + BOOL SetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
2270 + BOOL SetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
2271 + BOOL SetHandleInformation(HANDLE, DWORD, DWORD);
2272 + BOOL SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
2273 + BOOL SetPrivateObjectSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR* , PGENERIC_MAPPING, HANDLE);
2274 + BOOL SetProcessAffinityMask(HANDLE, DWORD);
2275 + BOOL SetProcessPriorityBoost(HANDLE, BOOL);
2276 + BOOL SetProcessShutdownParameters(DWORD, DWORD);
2277 + BOOL SetProcessWorkingSetSize(HANDLE, SIZE_T, SIZE_T);
2278 + BOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
2279 + BOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL);
2280 + BOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL);
2281 + BOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
2282 + BOOL SetSystemTimeAdjustment(DWORD, BOOL);
2283 + DWORD SetTapeParameters(HANDLE, DWORD, PVOID);
2284 + DWORD SetTapePosition(HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL);
2285 + BOOL SetThreadPriorityBoost(HANDLE, BOOL);
2286 + BOOL SetThreadToken(PHANDLE, HANDLE);
2287 + BOOL SetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD);
2288 + DWORD SignalObjectAndWait(HANDLE, HANDLE, DWORD, BOOL);
2289 + BOOL SwitchToThread();
2290 + BOOL SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME);
2291 + BOOL TryEnterCriticalSection(LPCRITICAL_SECTION);
2292 + BOOL UnlockFileEx(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED);
2293 + BOOL UpdateResourceA(HANDLE, LPCSTR, LPCSTR, WORD, PVOID, DWORD);
2294 + BOOL UpdateResourceW(HANDLE, LPCWSTR, LPCWSTR, WORD, PVOID, DWORD);
2295 + BOOL WriteFileGather(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED);
2296 + DWORD WriteTapemark(HANDLE, DWORD, DWORD, BOOL);
2297 +
2298 + static if (_WIN32_WINNT >= 0x500) {
2299 + BOOL AddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID);
2300 + BOOL AddAccessDeniedAceEx(PACL, DWORD, DWORD, DWORD, PSID);
2301 + PVOID AddVectoredExceptionHandler(ULONG, PVECTORED_EXCEPTION_HANDLER);
2302 + BOOL AllocateUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR);
2303 + BOOL AssignProcessToJobObject(HANDLE, HANDLE);
2304 + BOOL ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG);
2305 + LPVOID CreateFiberEx(SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID);
2306 + HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR);
2307 + HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR);
2308 + BOOL CreateHardLinkA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
2309 + BOOL CreateHardLinkW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
2310 + HANDLE CreateJobObjectA(LPSECURITY_ATTRIBUTES, LPCSTR);
2311 + HANDLE CreateJobObjectW(LPSECURITY_ATTRIBUTES, LPCWSTR);
2312 + BOOL CreateProcessWithLogonW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION);
2313 + HANDLE CreateTimerQueue();
2314 + BOOL CreateTimerQueueTimer(PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, ULONG);
2315 + BOOL DeleteTimerQueue(HANDLE);
2316 + BOOL DeleteTimerQueueEx(HANDLE, HANDLE);
2317 + BOOL DeleteTimerQueueTimer(HANDLE, HANDLE, HANDLE);
2318 + BOOL DeleteVolumeMountPointA(LPCSTR);
2319 + BOOL DeleteVolumeMountPointW(LPCWSTR);
2320 + BOOL DnsHostnameToComputerNameA(LPCSTR, LPSTR, LPDWORD);
2321 + BOOL DnsHostnameToComputerNameW(LPCWSTR, LPWSTR, LPDWORD);
2322 + BOOL EncryptFileA(LPCSTR);
2323 + BOOL EncryptFileW(LPCWSTR);
2324 + BOOL FileEncryptionStatusA(LPCSTR, LPDWORD);
2325 + BOOL FileEncryptionStatusW(LPCWSTR, LPDWORD);
2326 + HANDLE FindFirstVolumeA(LPCSTR, DWORD);
2327 + HANDLE FindFirstVolumeMountPointA(LPSTR, LPSTR, DWORD);
2328 + HANDLE FindFirstVolumeMountPointW(LPWSTR, LPWSTR, DWORD);
2329 + HANDLE FindFirstVolumeW(LPCWSTR, DWORD);
2330 + BOOL FindNextVolumeA(HANDLE, LPCSTR, DWORD);
2331 + BOOL FindNextVolumeW(HANDLE, LPWSTR, DWORD);
2332 + BOOL FindNextVolumeMountPointA(HANDLE, LPSTR, DWORD);
2333 + BOOL FindNextVolumeMountPointW(HANDLE, LPWSTR, DWORD);
2334 + BOOL FindVolumeClose(HANDLE);
2335 + BOOL FindVolumeMountPointClose(HANDLE);
2336 + BOOL FlushViewOfFile(PCVOID, DWORD);
2337 + BOOL FreeUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR);
2338 + BOOL GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPDWORD);
2339 + BOOL GetComputerNameExW(COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD);
2340 + BOOL GetFileSizeEx(HANDLE, PLARGE_INTEGER);
2341 + BOOL GetModuleHandleExA(DWORD, LPCSTR, HMODULE*);
2342 + BOOL GetModuleHandleExW(DWORD, LPCWSTR, HMODULE*);
2343 + HANDLE GetProcessHeap();
2344 + DWORD GetProcessHeaps(DWORD, PHANDLE);
2345 + BOOL GetProcessIoCounters(HANDLE, PIO_COUNTERS);
2346 + BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
2347 + UINT GetSystemWindowsDirectoryA(LPSTR, UINT);
2348 + UINT GetSystemWindowsDirectoryW(LPWSTR, UINT);
2349 + BOOL GetVolumeNameForVolumeMountPointA(LPCSTR, LPSTR, DWORD);
2350 + BOOL GetVolumeNameForVolumeMountPointW(LPCWSTR, LPWSTR, DWORD);
2351 + BOOL GetVolumePathNameA(LPCSTR, LPSTR, DWORD);
2352 + BOOL GetVolumePathNameW(LPCWSTR, LPWSTR, DWORD);
2353 + BOOL GlobalMemoryStatusEx(LPMEMORYSTATUSEX);
2354 + BOOL IsBadCodePtr(FARPROC);
2355 + BOOL IsSystemResumeAutomatic();
2356 + BOOL MapUserPhysicalPages(PVOID, ULONG_PTR, PULONG_PTR);
2357 + BOOL MapUserPhysicalPagesScatter(PVOID*, ULONG_PTR, PULONG_PTR);
2358 + PVOID MapViewOfFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
2359 + PVOID MapViewOfFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, PVOID);
2360 + HANDLE OpenFileMappingA(DWORD, BOOL, LPCSTR);
2361 + HANDLE OpenFileMappingW(DWORD, BOOL, LPCWSTR);
2362 + BOOL ProcessIdToSessionId(DWORD, DWORD*);
2363 + BOOL QueryInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD);
2364 + ULONG RemoveVectoredExceptionHandler(PVOID);
2365 + BOOL ReplaceFileA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID);
2366 + BOOL ReplaceFileW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID);
2367 + BOOL SetComputerNameExA(COMPUTER_NAME_FORMAT, LPCSTR);
2368 + BOOL SetComputerNameExW(COMPUTER_NAME_FORMAT, LPCWSTR);
2369 + BOOL SetFilePointerEx(HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD);
2370 + BOOL SetInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD);
2371 + BOOL SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL);
2372 + BOOL SetSystemPowerState(BOOL, BOOL);
2373 + EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE);
2374 + DWORD SetThreadIdealProcessor(HANDLE, DWORD);
2375 + BOOL SetVolumeMountPointA(LPCSTR, LPCSTR);
2376 + BOOL SetVolumeMountPointW(LPCWSTR, LPCWSTR);
2377 + BOOL TerminateJobObject(HANDLE, UINT);
2378 + BOOL UnmapViewOfFile(PVOID);
2379 + BOOL UnregisterWait(HANDLE);
2380 + BOOL UnregisterWaitEx(HANDLE, HANDLE);
2381 + BOOL VerifyVersionInfoA(LPOSVERSIONINFOEXA, DWORD, DWORDLONG);
2382 + BOOL VerifyVersionInfoW(LPOSVERSIONINFOEXW, DWORD, DWORDLONG);
2383 + }
2384 +
2385 + static if (_WIN32_WINNT >= 0x501) {
2386 + BOOL ActivateActCtx(HANDLE, ULONG_PTR*);
2387 + void AddRefActCtx(HANDLE);
2388 + BOOL CheckNameLegalDOS8Dot3A(LPCSTR, LPSTR, DWORD, PBOOL, PBOOL);
2389 + BOOL CheckNameLegalDOS8Dot3W(LPCWSTR, LPSTR, DWORD, PBOOL, PBOOL);
2390 + BOOL CheckRemoteDebuggerPresent(HANDLE, PBOOL);
2391 + BOOL ConvertFiberToThread();
2392 + HANDLE CreateActCtxA(PCACTCTXA);
2393 + HANDLE CreateActCtxW(PCACTCTXW);
2394 + HANDLE CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE);
2395 + BOOL DeactivateActCtx(DWORD, ULONG_PTR);
2396 + BOOL DebugActiveProcessStop(DWORD);
2397 + BOOL DebugBreakProcess(HANDLE);
2398 + BOOL DebugSetProcessKillOnExit(BOOL);
2399 + BOOL FindActCtxSectionGuid(DWORD, CPtr!(GUID), ULONG, CPtr!(GUID),
2400 + PACTCTX_SECTION_KEYED_DATA);
2401 + BOOL FindActCtxSectionStringA(DWORD, CPtr!(GUID), ULONG, LPCSTR,
2402 + PACTCTX_SECTION_KEYED_DATA);
2403 + BOOL FindActCtxSectionStringW(DWORD, CPtr!(GUID), ULONG, LPCWSTR,
2404 + PACTCTX_SECTION_KEYED_DATA);
2405 + BOOL GetCurrentActCtx(HANDLE*);
2406 + VOID GetNativeSystemInfo(LPSYSTEM_INFO);
2407 + BOOL GetProcessHandleCount(HANDLE, PDWORD);
2408 + BOOL GetSystemRegistryQuota(PDWORD, PDWORD);
2409 + BOOL GetSystemTimes(LPFILETIME, LPFILETIME, LPFILETIME);
2410 + UINT GetSystemWow64DirectoryA(LPSTR, UINT);
2411 + UINT GetSystemWow64DirectoryW(LPWSTR, UINT);
2412 + BOOL GetThreadIOPendingFlag(HANDLE, PBOOL);
2413 + BOOL GetVolumePathNamesForVolumeNameA(LPCSTR, LPSTR, DWORD, PDWORD);
2414 + BOOL GetVolumePathNamesForVolumeNameW(LPCWSTR, LPWSTR, DWORD, PDWORD);
2415 + UINT GetWriteWatch(DWORD, PVOID, SIZE_T, PVOID*, PULONG_PTR, PULONG);
2416 + BOOL HeapQueryInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T);
2417 + BOOL HeapSetInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T);
2418 + BOOL IsProcessInJob(HANDLE, HANDLE, PBOOL);
2419 + BOOL IsWow64Process(HANDLE, PBOOL);
2420 + BOOL QueryActCtxW(DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T*);
2421 + BOOL QueryMemoryResourceNotification(HANDLE, PBOOL);
2422 + void ReleaseActCtx(HANDLE);
2423 + UINT ResetWriteWatch(LPVOID, SIZE_T);
2424 + BOOL SetFileShortNameA(HANDLE, LPCSTR);
2425 + BOOL SetFileShortNameW(HANDLE, LPCWSTR);
2426 + BOOL SetFileValidData(HANDLE, LONGLONG);
2427 + BOOL ZombifyActCtx(HANDLE);
2428 + }
2429 +
2430 + static if (_WIN32_WINNT >= 0x502) {
2431 + DWORD GetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD);
2432 + DWORD GetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD);
2433 + DWORD GetDllDirectoryA(DWORD, LPSTR);
2434 + DWORD GetDllDirectoryW(DWORD, LPWSTR);
2435 + DWORD GetProcessId(HANDLE);
2436 + HANDLE ReOpenFile(HANDLE, DWORD, DWORD, DWORD);
2437 + BOOL SetDllDirectoryA(LPCSTR);
2438 + BOOL SetDllDirectoryW(LPCWSTR);
2439 + BOOL SetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD);
2440 + BOOL SetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD);
2441 + }
2442 + }
2443 +
2444 + // ???
2445 + static if (_WIN32_WINNT >= 0x510) {
2446 + VOID RestoreLastError(DWORD);
2447 + }
2100 2448 }
2101 -alias _TIME_ZONE_INFORMATION TIME_ZONE_INFORMATION;
2102 -alias _TIME_ZONE_INFORMATION* PTIME_ZONE_INFORMATION;
2103 -alias _TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION;
2449 +
2450 +
2451 +version (Unicode) {
2452 + alias STARTUPINFOW STARTUPINFO;
2453 + alias WIN32_FIND_DATAW WIN32_FIND_DATA;
2454 + alias ENUMRESLANGPROCW ENUMRESLANGPROC;
2455 + alias ENUMRESNAMEPROCW ENUMRESNAMEPROC;
2456 + alias ENUMRESTYPEPROCW ENUMRESTYPEPROC;
2457 + alias AddAtomW AddAtom;
2458 + alias BeginUpdateResourceW BeginUpdateResource;
2459 + alias BuildCommDCBW BuildCommDCB;
2460 + alias BuildCommDCBAndTimeoutsW BuildCommDCBAndTimeouts;
2461 + alias CallNamedPipeW CallNamedPipe;
2462 + alias CommConfigDialogW CommConfigDialog;
2463 + alias CopyFileW CopyFile;
2464 + alias CopyFileExW CopyFileEx;
2465 + alias CreateDirectoryW CreateDirectory;
2466 + alias CreateDirectoryExW CreateDirectoryEx;
2467 + alias CreateEventW CreateEvent;
2468 + alias CreateFileW CreateFile;
2469 + alias CreateMailslotW CreateMailslot;
2470 + alias CreateMutexW CreateMutex;
2471 + alias CreateProcessW CreateProcess;
2472 + alias CreateSemaphoreW CreateSemaphore;
2473 + alias DeleteFileW DeleteFile;
2474 + alias EndUpdateResourceW EndUpdateResource;
2475 + alias EnumResourceLanguagesW EnumResourceLanguages;
2476 + alias EnumResourceNamesW EnumResourceNames;
2477 + alias EnumResourceTypesW EnumResourceTypes;
2478 + alias ExpandEnvironmentStringsW ExpandEnvironmentStrings;
2479 + alias FatalAppExitW FatalAppExit;
2480 + alias FindAtomW FindAtom;
2481 + alias FindFirstChangeNotificationW FindFirstChangeNotification;
2482 + alias FindFirstFileW FindFirstFile;
2483 + alias FindNextFileW FindNextFile;
2484 + alias FindResourceW FindResource;
2485 + alias FindResourceExW FindResourceEx;
2486 + alias FormatMessageW FormatMessage;
2487 + alias FreeEnvironmentStringsW FreeEnvironmentStrings;
2488 + alias GetAtomNameW GetAtomName;
2489 + alias GetCommandLineW GetCommandLine;
2490 + alias GetComputerNameW GetComputerName;
2491 + alias GetCurrentDirectoryW GetCurrentDirectory;
2492 + alias GetDefaultCommConfigW GetDefaultCommConfig;
2493 + alias GetDiskFreeSpaceW GetDiskFreeSpace;
2494 + alias GetDiskFreeSpaceExW GetDiskFreeSpaceEx;
2495 + alias GetDriveTypeW GetDriveType;
2496 + alias GetEnvironmentStringsW GetEnvironmentStrings;
2497 + alias GetEnvironmentVariableW GetEnvironmentVariable;
2498 + alias GetFileAttributesW GetFileAttributes;
2499 + alias GetFullPathNameW GetFullPathName;
2500 + alias GetLogicalDriveStringsW GetLogicalDriveStrings;
2501 + alias GetModuleFileNameW GetModuleFileName;
2502 + alias GetModuleHandleW GetModuleHandle;
2503 + alias GetNamedPipeHandleStateW GetNamedPipeHandleState;
2504 + alias GetPrivateProfileIntW GetPrivateProfileInt;
2505 + alias GetPrivateProfileSectionW GetPrivateProfileSection;
2506 + alias GetPrivateProfileSectionNamesW GetPrivateProfileSectionNames;
2507 + alias GetPrivateProfileStringW GetPrivateProfileString;
2508 + alias GetPrivateProfileStructW GetPrivateProfileStruct;
2509 + alias GetProfileIntW GetProfileInt;
2510 + alias GetProfileSectionW GetProfileSection;
2511 + alias GetProfileStringW GetProfileString;
2512 + alias GetShortPathNameW GetShortPathName;
2513 + alias GetStartupInfoW GetStartupInfo;
2514 + alias GetSystemDirectoryW GetSystemDirectory;
2515 + alias GetTempFileNameW GetTempFileName;
2516 + alias GetTempPathW GetTempPath;
2517 + alias GetUserNameW GetUserName;
2518 + alias GetVersionExW GetVersionEx;
2519 + alias GetVolumeInformationW GetVolumeInformation;
2520 + alias GetWindowsDirectoryW GetWindowsDirectory;
2521 + alias GlobalAddAtomW GlobalAddAtom;
2522 + alias GlobalFindAtomW GlobalFindAtom;
2523 + alias GlobalGetAtomNameW GlobalGetAtomName;
2524 + alias IsBadStringPtrW IsBadStringPtr;
2525 + alias LoadLibraryW LoadLibrary;
2526 + alias LoadLibraryExW LoadLibraryEx;
2527 + alias lstrcatW lstrcat;
2528 + alias lstrcmpW lstrcmp;
2529 + alias lstrcmpiW lstrcmpi;
2530 + alias lstrcpyW lstrcpy;
2531 + alias lstrcpynW lstrcpyn;
2532 + alias lstrlenW lstrlen;
2533 + alias MoveFileW MoveFile;
2534 + alias OpenEventW OpenEvent;
2535 + alias OpenMutexW OpenMutex;
2536 + alias OpenSemaphoreW OpenSemaphore;
2537 + alias OutputDebugStringW OutputDebugString;
2538 + alias RemoveDirectoryW RemoveDirectory;
2539 + alias SearchPathW SearchPath;
2540 + alias SetComputerNameW SetComputerName;
2541 + alias SetCurrentDirectoryW SetCurrentDirectory;
2542 + alias SetDefaultCommConfigW SetDefaultCommConfig;
2543 + alias SetEnvironmentVariableW SetEnvironmentVariable;
2544 + alias SetFileAttributesW SetFileAttributes;
2545 + alias SetVolumeLabelW SetVolumeLabel;
2546 + alias WaitNamedPipeW WaitNamedPipe;
2547 + alias WritePrivateProfileSectionW WritePrivateProfileSection;
2548 + alias WritePrivateProfileStringW WritePrivateProfileString;
2549 + alias WritePrivateProfileStructW WritePrivateProfileStruct;
2550 + alias WriteProfileSectionW WriteProfileSection;
2551 + alias WriteProfileStringW WriteProfileString;
2552 +
2553 + static if (_WIN32_WINDOWS >= 0x410) {
2554 + alias CreateWaitableTimerW CreateWaitableTimer;
2555 + alias GetFileAttributesExW GetFileAttributesEx;
2556 + alias GetLongPathNameW GetLongPathName;
2557 + alias QueryDosDeviceW QueryDosDevice;
2558 + }
2559 +
2560 + static if (_WIN32_WINNT_ONLY) {
2561 + alias HW_PROFILE_INFOW HW_PROFILE_INFO;
2562 + alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm;
2563 + alias BackupEventLogW BackupEventLog;
2564 + alias ClearEventLogW ClearEventLog;
2565 + alias CreateNamedPipeW CreateNamedPipe;
2566 + alias CreateProcessAsUserW CreateProcessAsUser;
2567 + alias DefineDosDeviceW DefineDosDevice;
2568 + alias FindFirstFileExW FindFirstFileEx;
2569 + alias GetBinaryTypeW GetBinaryType;
2570 + alias GetCompressedFileSizeW GetCompressedFileSize;
2571 + alias GetFileSecurityW GetFileSecurity;
2572 + alias LogonUserW LogonUser;
2573 + alias LookupAccountNameW LookupAccountName;
2574 + alias LookupAccountSidW LookupAccountSid;
2575 + alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName;
2576 + alias LookupPrivilegeNameW LookupPrivilegeName;
2577 + alias LookupPrivilegeValueW LookupPrivilegeValue;
2578 + alias MoveFileExW MoveFileEx;
2579 + alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm;
2580 + alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm;
2581 + alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm;
2582 + alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm;
2583 + alias OpenBackupEventLogW OpenBackupEventLog;
2584 + alias OpenEventLogW OpenEventLog;
2585 + alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm;
2586 + alias ReadEventLogW ReadEventLog;
2587 + alias RegisterEventSourceW RegisterEventSource;
2588 + alias ReportEventW ReportEvent;
2589 + alias SetFileSecurityW SetFileSecurity;
2590 + alias UpdateResourceW UpdateResource;
2104 2591
2105 -extern(Windows) export BOOL SystemTimeToTzSpecificLocalTime(
2106 - LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
2107 - LPSYSTEMTIME lpUniversalTime,
2108 - LPSYSTEMTIME lpLocalTime);
2592 + static if (_WIN32_WINNT >= 0x500) {
2593 + alias CreateFileMappingW CreateFileMapping;
2594 + alias CreateHardLinkW CreateHardLink;
2595 + alias CreateJobObjectW CreateJobObject;
2596 + alias DeleteVolumeMountPointW DeleteVolumeMountPoint;
2597 + alias DnsHostnameToComputerNameW DnsHostnameToComputerName;
2598 + alias EncryptFileW EncryptFile;
2599 + alias FileEncryptionStatusW FileEncryptionStatus;
2600 + alias FindFirstVolumeW FindFirstVolume;
2601 + alias FindFirstVolumeMountPointW FindFirstVolumeMountPoint;
2602 + alias FindNextVolumeW FindNextVolume;
2603 + alias FindNextVolumeMountPointW FindNextVolumeMountPoint;
2604 + alias GetModuleHandleExW GetModuleHandleEx;
2605 + alias GetSystemWindowsDirectoryW GetSystemWindowsDirectory;
2606 + alias GetVolumeNameForVolumeMountPointW GetVolumeNameForVolumeMountPoint;
2607 + alias GetVolumePathNameW GetVolumePathName;
2608 + alias OpenFileMappingW OpenFileMapping;
2609 + alias ReplaceFileW ReplaceFile;
2610 + alias SetVolumeMountPointW SetVolumeMountPoint;
2611 + alias VerifyVersionInfoW VerifyVersionInfo;
2612 + }
2109 2613
2110 -extern(Windows) export BOOL TzSpecificLocalTimeToSystemTime(
2111 - LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
2112 - LPSYSTEMTIME lpLocalTime,
2113 - LPSYSTEMTIME lpUniversalTime);
2114 -
2115 -extern(Windows) export DWORD GetTimeZoneInformation(
2116 - LPTIME_ZONE_INFORMATION lpTimeZoneInformation);
2614 + static if (_WIN32_WINNT >= 0x501) {
2615 + alias ACTCTXW ACTCTX;
2616 + alias CheckNameLegalDOS8Dot3W CheckNameLegalDOS8Dot3;
2617 + alias CreateActCtxW CreateActCtx;
2618 + alias FindActCtxSectionStringW FindActCtxSectionString;
2619 + alias GetSystemWow64DirectoryW GetSystemWow64Directory;
2620 + alias GetVolumePathNamesForVolumeNameW GetVolumePathNamesForVolumeName;
2621 + alias SetFileShortNameW SetFileShortName;
2622 + }
2117 2623
2118 -extern(Windows) export BOOL SetTimeZoneInformation(
2119 - TIME_ZONE_INFORMATION *lpTimeZoneInformation);
2624 + static if (_WIN32_WINNT >= 0x502) {
2625 + alias SetFirmwareEnvironmentVariableW SetFirmwareEnvironmentVariable;
2626 + alias SetDllDirectoryW SetDllDirectory;
2627 + alias GetDllDirectoryW GetDllDirectory;
2628 + }
2629 + }
2120 2630
2121 -extern(Windows) export BOOL SystemTimeToFileTime(
2122 - SYSTEMTIME *lpSystemTime,
2123 - LPFILETIME lpFileTime);
2124 -
2125 -extern(Windows) export BOOL FileTimeToLocalFileTime(
2126 - FILETIME *lpFileTime,
2127 - LPFILETIME lpLocalFileTime);
2631 +} else {
2632 + alias STARTUPINFOA STARTUPINFO;
2633 + alias WIN32_FIND_DATAA WIN32_FIND_DATA;
2634 + alias ENUMRESLANGPROCW ENUMRESLANGPROC;
2635 + alias ENUMRESNAMEPROCW ENUMRESNAMEPROC;
2636 + alias ENUMRESTYPEPROCW ENUMRESTYPEPROC;
2637 + alias AddAtomA AddAtom;
2638 + alias BeginUpdateResourceA BeginUpdateResource;
2639 + alias BuildCommDCBA BuildCommDCB;
2640 + alias BuildCommDCBAndTimeoutsA BuildCommDCBAndTimeouts;
2641 + alias CallNamedPipeA CallNamedPipe;
2642 + alias CommConfigDialogA CommConfigDialog;
2643 + alias CopyFileA CopyFile;
2644 + alias CopyFileExA CopyFileEx;
2645 + alias CreateDirectoryA CreateDirectory;
2646 + alias CreateDirectoryExA CreateDirectoryEx;
2647 + alias CreateEventA CreateEvent;
2648 + alias CreateFileA CreateFile;
2649 + alias CreateMailslotA CreateMailslot;
2650 + alias CreateMutexA CreateMutex;
2651 + alias CreateProcessA CreateProcess;
2652 + alias CreateSemaphoreA CreateSemaphore;
2653 + alias DeleteFileA DeleteFile;
2654 + alias EndUpdateResourceA EndUpdateResource;
2655 + alias EnumResourceLanguagesA EnumResourceLanguages;
2656 + alias EnumResourceNamesA EnumResourceNames;
2657 + alias EnumResourceTypesA EnumResourceTypes;
2658 + alias ExpandEnvironmentStringsA ExpandEnvironmentStrings;
2659 + alias FatalAppExitA FatalAppExit;
2660 + alias FindAtomA FindAtom;
2661 + alias FindFirstChangeNotificationA FindFirstChangeNotification;
2662 + alias FindFirstFileA FindFirstFile;
2663 + alias FindNextFileA FindNextFile;
2664 + alias FindResourceA FindResource;
2665 + alias FindResourceExA FindResourceEx;
2666 + alias FormatMessageA FormatMessage;
2667 + alias FreeEnvironmentStringsA FreeEnvironmentStrings;
2668 + alias GetAtomNameA GetAtomName;
2669 + alias GetCommandLineA GetCommandLine;
2670 + alias GetComputerNameA GetComputerName;
2671 + alias GetCurrentDirectoryA GetCurrentDirectory;
2672 + alias GetDefaultCommConfigA GetDefaultCommConfig;
2673 + alias GetDiskFreeSpaceA GetDiskFreeSpace;
2674 + alias GetDiskFreeSpaceExA GetDiskFreeSpaceEx;
2675 + alias GetDriveTypeA GetDriveType;
2676 + alias GetEnvironmentVariableA GetEnvironmentVariable;
2677 + alias GetFileAttributesA GetFileAttributes;
2678 + alias GetFullPathNameA GetFullPathName;
2679 + alias GetLogicalDriveStringsA GetLogicalDriveStrings;
2680 + alias GetNamedPipeHandleStateA GetNamedPipeHandleState;
2681 + alias GetModuleHandleA GetModuleHandle;
2682 + alias GetModuleFileNameA GetModuleFileName;
2683 + alias GetPrivateProfileIntA GetPrivateProfileInt;
2684 + alias GetPrivateProfileSectionA GetPrivateProfileSection;
2685 + alias GetPrivateProfileSectionNamesA GetPrivateProfileSectionNames;
2686 + alias GetPrivateProfileStringA GetPrivateProfileString;
2687 + alias GetPrivateProfileStructA GetPrivateProfileStruct;
2688 + alias GetProfileIntA GetProfileInt;
2689 + alias GetProfileSectionA GetProfileSection;
2690 + alias GetProfileStringA GetProfileString;
2691 + alias GetShortPathNameA GetShortPathName;
2692 + alias GetStartupInfoA GetStartupInfo;
2693 + alias GetSystemDirectoryA GetSystemDirectory;
2694 + alias GetTempFileNameA GetTempFileName;
2695 + alias GetTempPathA GetTempPath;
2696 + alias GetUserNameA GetUserName;
2697 + alias GetVersionExA GetVersionEx;
2698 + alias GetVolumeInformationA GetVolumeInformation;
2699 + alias GetWindowsDirectoryA GetWindowsDirectory;
2700 + alias GlobalAddAtomA GlobalAddAtom;
2701 + alias GlobalFindAtomA GlobalFindAtom;
2702 + alias GlobalGetAtomNameA GlobalGetAtomName;
2703 + alias IsBadStringPtrA IsBadStringPtr;
2704 + alias LoadLibraryA LoadLibrary;
2705 + alias LoadLibraryExA LoadLibraryEx;
2706 + alias lstrcatA lstrcat;
2707 + alias lstrcmpA lstrcmp;
2708 + alias lstrcmpiA lstrcmpi;
2709 + alias lstrcpyA lstrcpy;
2710 + alias lstrcpynA lstrcpyn;
2711 + alias lstrlenA lstrlen;
2712 + alias MoveFileA MoveFile;
2713 + alias OpenEventA OpenEvent;
2714 + alias OpenMutexA OpenMutex;
2715 + alias OpenSemaphoreA OpenSemaphore;
2716 + alias OutputDebugStringA OutputDebugString;
2717 + alias RemoveDirectoryA RemoveDirectory;
2718 + alias SearchPathA SearchPath;
2719 + alias SetComputerNameA SetComputerName;
2720 + alias SetCurrentDirectoryA SetCurrentDirectory;
2721 + alias SetDefaultCommConfigA SetDefaultCommConfig;
2722 + alias SetEnvironmentVariableA SetEnvironmentVariable;
2723 + alias SetFileAttributesA SetFileAttributes;
2724 + alias SetVolumeLabelA SetVolumeLabel;
2725 + alias WaitNamedPipeA WaitNamedPipe;
2726 + alias WritePrivateProfileSectionA WritePrivateProfileSection;
2727 + alias WritePrivateProfileStringA WritePrivateProfileString;
2728 + alias WritePrivateProfileStructA WritePrivateProfileStruct;
2729 + alias WriteProfileSectionA WriteProfileSection;
2730 + alias WriteProfileStringA WriteProfileString;
2128 2731
2129 -extern(Windows) export BOOL LocalFileTimeToFileTime(
2130 - FILETIME *lpLocalFileTime,
2131 - LPFILETIME lpFileTime);
2132 -
2133 -extern(Windows) export BOOL FileTimeToSystemTime(
2134 - FILETIME *lpFileTime,
2135 - LPSYSTEMTIME lpSystemTime);
2136 -
2137 -extern(Windows) export LONG CompareFileTime(
2138 - FILETIME *lpFileTime1,
2139 - FILETIME *lpFileTime2);
2140 -
2141 -extern(Windows) export BOOL FileTimeToDosDateTime(
2142 - FILETIME *lpFileTime,
2143 - LPWORD lpFatDate,
2144 - LPWORD lpFatTime);
2145 -
2146 -extern(Windows) export BOOL DosDateTimeToFileTime(
2147 - WORD wFatDate,
2148 - WORD wFatTime,
2149 - LPFILETIME lpFileTime);
2732 + static if (_WIN32_WINDOWS >= 0x410) {
2733 + alias CreateWaitableTimerA CreateWaitableTimer;
2734 + alias GetFileAttributesExA GetFileAttributesEx;
2735 + alias GetLongPathNameA GetLongPathName;
2736 + alias QueryDosDeviceA QueryDosDevice;
2737 + }
2150 2738
2151 -extern(Windows) export DWORD GetTickCount();
2152 -
2153 -extern(Windows) export BOOL SetSystemTimeAdjustment(
2154 - DWORD dwTimeAdjustment,
2155 - BOOL bTimeAdjustmentDisabled);
2156 -
2157 -extern(Windows) export BOOL GetSystemTimeAdjustment(
2158 - PDWORD lpTimeAdjustment,
2159 - PDWORD lpTimeIncrement,
2160 - PBOOL lpTimeAdjustmentDisabled);
2161 -
2162 -// #if !defined(MIDL_PASS)
2163 -extern(Windows) export DWORD FormatMessageA(
2164 - DWORD dwFlags,
2165 - LPCVOID lpSource,
2166 - DWORD dwMessageId,
2167 - DWORD dwLanguageId,
2168 - LPSTR lpBuffer,
2169 - DWORD nSize,
2170 - va_list *Arguments);
2171 -extern(Windows) export DWORD FormatMessageW(
2172 - DWORD dwFlags,
2173 - LPCVOID lpSource,
2174 - DWORD dwMessageId,
2175 - DWORD dwLanguageId,
2176 - LPWSTR lpBuffer,
2177 - DWORD nSize,
2178 - va_list *Arguments);
2179 -// #ifdef UNICODE
2180 -alias FormatMessageW FormatMessage;
2181 -// #else
2182 -// #...
2183 -// #endif // !UNICODE
2184 -// #endif
2185 -
2186 -enum : uint { FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100 }
2187 -enum : uint { FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200 }
2188 -enum : uint { FORMAT_MESSAGE_FROM_STRING = 0x00000400 }
2189 -enum : uint { FORMAT_MESSAGE_FROM_HMODULE = 0x00000800 }
2190 -enum : uint { FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000 }
2191 -enum : uint { FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000 }
2192 -enum : uint { FORMAT_MESSAGE_MAX_WIDTH_MASK = 0x000000FF }
2193 -
2194 -extern(Windows) export BOOL CreatePipe(
2195 - PHANDLE hReadPipe,
2196 - PHANDLE hWritePipe,
2197 - LPSECURITY_ATTRIBUTES lpPipeAttributes,
2198 - DWORD nSize);
2739 + static if (_WIN32_WINNT_ONLY) {
2740 + alias HW_PROFILE_INFOA HW_PROFILE_INFO;
2741 + alias AccessCheckAndAuditAlarmA AccessCheckAndAuditAlarm;
2742 + alias BackupEventLogA BackupEventLog;
2743 + alias ClearEventLogA ClearEventLog;
2744 + alias CreateNamedPipeA CreateNamedPipe;
2745 + alias CreateProcessAsUserA CreateProcessAsUser;
2746 + alias DefineDosDeviceA DefineDosDevice;
2747 + alias FindFirstFileExA FindFirstFileEx;
2748 + alias GetBinaryTypeA GetBinaryType;
2749 + alias GetCompressedFileSizeA GetCompressedFileSize;
2750 + alias GetFileSecurityA GetFileSecurity;
2751 + alias LogonUserA LogonUser;
2752 + alias LookupAccountNameA LookupAccountName;
2753 + alias LookupAccountSidA LookupAccountSid;
2754 + alias LookupPrivilegeDisplayNameA LookupPrivilegeDisplayName;
2755 + alias LookupPrivilegeNameA LookupPrivilegeName;
2756 + alias LookupPrivilegeValueA LookupPrivilegeValue;
2757 + alias MoveFileExA MoveFileEx;
2758 + alias ObjectCloseAuditAlarmA ObjectCloseAuditAlarm;
2759 + alias ObjectDeleteAuditAlarmA ObjectDeleteAuditAlarm;
2760 + alias ObjectOpenAuditAlarmA ObjectOpenAuditAlarm;
2761 + alias ObjectPrivilegeAuditAlarmA ObjectPrivilegeAuditAlarm;
2762 + alias OpenBackupEventLogA OpenBackupEventLog;
2763 + alias OpenEventLogA OpenEventLog;
2764 + alias PrivilegedServiceAuditAlarmA PrivilegedServiceAuditAlarm;
2765 + alias ReadEventLogA ReadEventLog;
2766 + alias RegisterEventSourceA RegisterEventSource;
2767 + alias ReportEventA ReportEvent;
2768 + alias SetFileSecurityA SetFileSecurity;
2769 + alias UpdateResourceA UpdateResource;
2199 2770
2200 -extern(Windows) export BOOL ConnectNamedPipe(
2201 - HANDLE hNamedPipe,
2202 - LPOVERLAPPED lpOverlapped);
2203 -
2204 -extern(Windows) export BOOL DisconnectNamedPipe(
2205 - HANDLE hNamedPipe);
2206 -
2207 -extern(Windows) export BOOL SetNamedPipeHandleState(
2208 - HANDLE hNamedPipe,
2209 - LPDWORD lpMode,
2210 - LPDWORD lpMaxCollectionCount,
2211 - LPDWORD lpCollectDataTimeout);
2212 -
2213 -extern(Windows) export BOOL GetNamedPipeInfo(
2214 - HANDLE hNamedPipe,
2215 - LPDWORD lpFlags,
2216 - LPDWORD lpOutBufferSize,
2217 - LPDWORD lpInBufferSize,
2218 - LPDWORD lpMaxInstances);
2219 -
2220 -extern(Windows) export BOOL PeekNamedPipe(
2221 - HANDLE hNamedPipe,
2222 - LPVOID lpBuffer,
2223 - DWORD nBufferSize,
2224 - LPDWORD lpBytesRead,
2225 - LPDWORD lpTotalBytesAvail,
2226 - LPDWORD lpBytesLeftThisMessage);
2227 -
2228 -extern(Windows) export BOOL TransactNamedPipe(
2229 - HANDLE hNamedPipe,
2230 - LPVOID lpInBuffer,
2231 - DWORD nInBufferSize,
2232 - LPVOID lpOutBuffer,
2233 - DWORD nOutBufferSize,
2234 - LPDWORD lpBytesRead,
2235 - LPOVERLAPPED lpOverlapped);
2236 -
2237 -extern(Windows) export HANDLE CreateMailslotA(
2238 - LPCSTR lpName,
2239 - DWORD nMaxMessageSize,
2240 - DWORD lReadTimeout,
2241 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2242 -extern(Windows) export HANDLE CreateMailslotW(
2243 - LPCWSTR lpName,
2244 - DWORD nMaxMessageSize,
2245 - DWORD lReadTimeout,
2246 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2247 -// #ifdef UNICODE
2248 -alias CreateMailslotW CreateMailslot;
2249 -// #else
2250 -// #...
2251 -// #endif // !UNICODE
2252 -
2253 -extern(Windows) export BOOL GetMailslotInfo(
2254 - HANDLE hMailslot,
2255 - LPDWORD lpMaxMessageSize,
2256 - LPDWORD lpNextSize,
2257 - LPDWORD lpMessageCount,
2258 - LPDWORD lpReadTimeout);
2771 + static if (_WIN32_WINNT >= 0x500) {
2772 + alias CreateFileMappingA CreateFileMapping;
2773 + alias CreateHardLinkA CreateHardLink;
2774 + alias CreateJobObjectA CreateJobObject;
2775 + alias DeleteVolumeMountPointA DeleteVolumeMountPoint;
2776 + alias DnsHostnameToComputerNameA DnsHostnameToComputerName;
2777 + alias EncryptFileA EncryptFile;
2778 + alias FileEncryptionStatusA FileEncryptionStatus;
2779 + alias FindFirstVolumeA FindFirstVolume;
2780 + alias FindFirstVolumeMountPointA FindFirstVolumeMountPoint;
2781 + alias FindNextVolumeA FindNextVolume;
2782 + alias FindNextVolumeMountPointA FindNextVolumeMountPoint;
2783 + alias GetModuleHandleExA GetModuleHandleEx;
2784 + alias GetSystemWindowsDirectoryA GetSystemWindowsDirectory;
2785 + alias GetVolumeNameForVolumeMountPointA GetVolumeNameForVolumeMountPoint;
2786 + alias GetVolumePathNameA GetVolumePathName;
2787 + alias OpenFileMappingA OpenFileMapping;
2788 + alias ReplaceFileA ReplaceFile;
2789 + alias SetVolumeMountPointA SetVolumeMountPoint;
2790 + alias VerifyVersionInfoA VerifyVersionInfo;
2791 + }
2259 2792
2260 -extern(Windows) export BOOL SetMailslotInfo(
2261 - HANDLE hMailslot,
2262 - DWORD lReadTimeout);
2263 -
2264 -extern(Windows) export LPVOID MapViewOfFile(
2265 - HANDLE hFileMappingObject,
2266 - DWORD dwDesiredAccess,
2267 - DWORD dwFileOffsetHigh,
2268 - DWORD dwFileOffsetLow,
2269 - SIZE_T dwNumberOfBytesToMap);
2270 -
2271 -extern(Windows) export BOOL FlushViewOfFile(
2272 - LPCVOID lpBaseAddress,
2273 - SIZE_T dwNumberOfBytesToFlush);
2274 -
2275 -extern(Windows) export BOOL UnmapViewOfFile(
2276 - LPCVOID lpBaseAddress);
2277 -
2278 -extern(Windows) export BOOL EncryptFileA(
2279 - LPCSTR lpFileName);
2280 -extern(Windows) export BOOL EncryptFileW(
2281 - LPCWSTR lpFileName);
2282 -// #ifdef UNICODE
2283 -alias EncryptFileW EncryptFile;
2284 -// #else
2285 -// #...
2286 -// #endif // !UNICODE
2287 -
2288 -extern(Windows) export BOOL DecryptFileA(
2289 - LPCSTR lpFileName,
2290 - DWORD dwReserved);
2291 -extern(Windows) export BOOL DecryptFileW(
2292 - LPCWSTR lpFileName,
2293 - DWORD dwReserved);
2294 -// #ifdef UNICODE
2295 -alias DecryptFileW DecryptFile;
2296 -// #else
2297 -// #...
2298 -// #endif // !UNICODE
2299 -
2300 -enum : uint { FILE_ENCRYPTABLE = 0 }
2301 -enum : uint { FILE_IS_ENCRYPTED = 1 }
2302 -enum : uint { FILE_SYSTEM_ATTR = 2 }
2303 -enum : uint { FILE_ROOT_DIR = 3 }
2304 -enum : uint { FILE_SYSTEM_DIR = 4 }
2305 -enum : uint { FILE_UNKNOWN = 5 }
2306 -enum : uint { FILE_SYSTEM_NOT_SUPPORT = 6 }
2307 -enum : uint { FILE_USER_DISALLOWED = 7 }
2308 -enum : uint { FILE_READ_ONLY = 8 }
2309 -enum : uint { FILE_DIR_DISALLOWED = 9 }
2310 -
2311 -extern(Windows) export BOOL FileEncryptionStatusA(
2312 - LPCSTR lpFileName,
2313 - LPDWORD lpStatus);
2314 -extern(Windows) export BOOL FileEncryptionStatusW(
2315 - LPCWSTR lpFileName,
2316 - LPDWORD lpStatus);
2317 -// #ifdef UNICODE
2318 -alias FileEncryptionStatusW FileEncryptionStatus;
2319 -// #else
2320 -// #...
2321 -// #endif // !UNICODE
2322 -
2323 -enum : uint { EFS_USE_RECOVERY_KEYS = 0x1 }
2324 -
2325 -extern(Windows) alias DWORD function( PBYTE pbData, PVOID pvCallbackContext, ULONG ulLength ) PFE_EXPORT_FUNC;
2326 -
2327 -extern(Windows) alias DWORD function( PBYTE pbData, PVOID pvCallbackContext, PULONG ulLength ) PFE_IMPORT_FUNC;
2328 -
2329 -enum : uint { CREATE_FOR_IMPORT = 1 }
2330 -enum : uint { CREATE_FOR_DIR = 2 }
2331 -enum : uint { OVERWRITE_HIDDEN = 4 }
2332 -
2333 -extern(Windows) export DWORD OpenEncryptedFileRawA(
2334 - LPCSTR lpFileName,
2335 - ULONG ulFlags,
2336 - PVOID * pvContext);
2337 -extern(Windows) export DWORD OpenEncryptedFileRawW(
2338 - LPCWSTR lpFileName,
2339 - ULONG ulFlags,
2340 - PVOID * pvContext);
2341 -// #ifdef UNICODE
2342 -alias OpenEncryptedFileRawW OpenEncryptedFileRaw;
2343 -// #else
2344 -// #...
2345 -// #endif // !UNICODE
2346 -
2347 -extern(Windows) export DWORD ReadEncryptedFileRaw(
2348 - PFE_EXPORT_FUNC pfExportCallback,
2349 - PVOID pvCallbackContext,
2350 - PVOID pvContext);
2351 -
2352 -extern(Windows) export DWORD WriteEncryptedFileRaw(
2353 - PFE_IMPORT_FUNC pfImportCallback,
2354 - PVOID pvCallbackContext,
2355 - PVOID pvContext);
2356 -
2357 -extern(Windows) export VOID CloseEncryptedFileRaw(
2358 - PVOID pvContext);
2793 + static if (_WIN32_WINNT >= 0x501) {
2794 + alias ACTCTXA ACTCTX;
2795 + alias CheckNameLegalDOS8Dot3A CheckNameLegalDOS8Dot3;
2796 + alias CreateActCtxA CreateActCtx;
2797 + alias FindActCtxSectionStringA FindActCtxSectionString;
2798 + alias GetSystemWow64DirectoryA GetSystemWow64Directory;
2799 + alias GetVolumePathNamesForVolumeNameA GetVolumePathNamesForVolumeName;
2800 + alias SetFileShortNameA SetFileShortName;
2801 + }
2359 2802
2360 -extern(Windows) export int lstrcmpA(
2361 - LPCSTR lpString1,
2362 - LPCSTR lpString2);
2363 -extern(Windows) export int lstrcmpW(
2364 - LPCWSTR lpString1,
2365 - LPCWSTR lpString2);
2366 -// #ifdef UNICODE
2367 -alias lstrcmpW lstrcmp;
2368 -// #else
2369 -// #...
2370 -// #endif // !UNICODE
2371 -
2372 -extern(Windows) export int lstrcmpiA(
2373 - LPCSTR lpString1,
2374 - LPCSTR lpString2);
2375 -extern(Windows) export int lstrcmpiW(
2376 - LPCWSTR lpString1,
2377 - LPCWSTR lpString2);
2378 -// #ifdef UNICODE
2379 -alias lstrcmpiW lstrcmpi;
2380 -// #else
2381 -// #...
2382 -// #endif // !UNICODE
2383 -
2384 -extern(Windows) export LPSTR lstrcpynA(
2385 - LPSTR lpString1,
2386 - LPCSTR lpString2,
2387 - int iMaxLength);
2388 -extern(Windows) export LPWSTR lstrcpynW(
2389 - LPWSTR lpString1,
2390 - LPCWSTR lpString2,
2391 - int iMaxLength);
2392 -// #ifdef UNICODE
2393 -alias lstrcpynW lstrcpyn;
2394 -// #else
2395 -// #...
2396 -// #endif // !UNICODE
2397 -
2398 -extern(Windows) export LPSTR lstrcpyA(
2399 - LPSTR lpString1,
2400 - LPCSTR lpString2);
2401 -extern(Windows) export LPWSTR lstrcpyW(
2402 - LPWSTR lpString1,
2403 - LPCWSTR lpString2);
2404 -// #ifdef UNICODE
2405 -alias lstrcpyW lstrcpy;
2406 -// #else
2407 -// #...
2408 -// #endif // !UNICODE
2409 -
2410 -extern(Windows) export LPSTR lstrcatA(
2411 - LPSTR lpString1,
2412 - LPCSTR lpString2);
2413 -extern(Windows) export LPWSTR lstrcatW(
2414 - LPWSTR lpString1,
2415 - LPCWSTR lpString2);
2416 -// #ifdef UNICODE
2417 -alias lstrcatW lstrcat;
2418 -// #else
2419 -// #...
2420 -// #endif // !UNICODE
2421 -
2422 -extern(Windows) export int lstrlenA(
2423 - LPCSTR lpString);
2424 -extern(Windows) export int lstrlenW(
2425 - LPCWSTR lpString);
2426 -// #ifdef UNICODE
2427 -alias lstrlenW lstrlen;
2428 -// #else
2429 -// #...
2430 -// #endif // !UNICODE
2431 -
2432 -extern(Windows) export HFILE OpenFile(
2433 - LPCSTR lpFileName,
2434 - LPOFSTRUCT lpReOpenBuff,
2435 - UINT uStyle);
2436 -
2437 -extern(Windows) export HFILE _lopen(
2438 - LPCSTR lpPathName,
2439 - int iReadWrite);
2440 -
2441 -extern(Windows) export HFILE _lcreat(
2442 - LPCSTR lpPathName,
2443 - int iAttribute);
2444 -
2445 -extern(Windows) export UINT _lread(
2446 - HFILE hFile,
2447 - LPVOID lpBuffer,
2448 - UINT uBytes);
2449 -
2450 -extern(Windows) export UINT _lwrite(
2451 - HFILE hFile,
2452 - LPCSTR lpBuffer,
2453 - UINT uBytes);
2454 -
2455 -extern(Windows) export int _hread(
2456 - HFILE hFile,
2457 - LPVOID lpBuffer,
2458 - int lBytes);
2459 -
2460 -extern(Windows) export int _hwrite(
2461 - HFILE hFile,
2462 - LPCSTR lpBuffer,
2463 - int lBytes);
2464 -
2465 -extern(Windows) export HFILE _lclose(
2466 - HFILE hFile);
2467 -
2468 -extern(Windows) export LONG _llseek(
2469 - HFILE hFile,
2470 - LONG lOffset,
2471 - int iOrigin);
2472 -
2473 -extern(Windows) export BOOL IsTextUnicode(
2474 - VOID* lpBuffer,
2475 - int cb,
2476 - LPINT lpi);
2477 -
2478 -extern(Windows) export DWORD TlsAlloc();
2479 -
2480 -enum : uint { TLS_OUT_OF_INDEXES = cast(DWORD)0xFFFFFFFF }
2481 -
2482 -extern(Windows) export LPVOID TlsGetValue(
2483 - DWORD dwTlsIndex);
2484 -
2485 -extern(Windows) export BOOL TlsSetValue(
2486 - DWORD dwTlsIndex,
2487 - LPVOID lpTlsValue);
2488 -
2489 -extern(Windows) export BOOL TlsFree(
2490 - DWORD dwTlsIndex);
2491 -
2492 -extern(Windows) alias VOID function( DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped ) LPOVERLAPPED_COMPLETION_ROUTINE;
2493 -
2494 -extern(Windows) export DWORD SleepEx(
2495 - DWORD dwMilliseconds,
2496 - BOOL bAlertable);
2497 -
2498 -extern(Windows) export DWORD WaitForSingleObjectEx(
2499 - HANDLE hHandle,
2500 - DWORD dwMilliseconds,
2501 - BOOL bAlertable);
2502 -
2503 -extern(Windows) export DWORD WaitForMultipleObjectsEx(
2504 - DWORD nCount,
2505 - HANDLE *lpHandles,
2506 - BOOL bWaitAll,
2507 - DWORD dwMilliseconds,
2508 - BOOL bAlertable);
2509 -
2510 -// #if(_WIN32_WINNT >= 0x0400)
2511 -extern(Windows) export DWORD SignalObjectAndWait(
2512 - HANDLE hObjectToSignal,
2513 - HANDLE hObjectToWaitOn,
2514 - DWORD dwMilliseconds,
2515 - BOOL bAlertable);
2516 -// #endif /* _WIN32_WINNT >= 0x0400 */
2517 -
2518 -extern(Windows) export BOOL ReadFileEx(
2519 - HANDLE hFile,
2520 - LPVOID lpBuffer,
2521 - DWORD nNumberOfBytesToRead,
2522 - LPOVERLAPPED lpOverlapped,
2523 - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
2524 -
2525 -extern(Windows) export BOOL WriteFileEx(
2526 - HANDLE hFile,
2527 - LPCVOID lpBuffer,
2528 - DWORD nNumberOfBytesToWrite,
2529 - LPOVERLAPPED lpOverlapped,
2530 - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
2531 -
2532 -extern(Windows) export BOOL BackupRead(
2533 - HANDLE hFile,
2534 - LPBYTE lpBuffer,
2535 - DWORD nNumberOfBytesToRead,
2536 - LPDWORD lpNumberOfBytesRead,
2537 - BOOL bAbort,
2538 - BOOL bProcessSecurity,
2539 - LPVOID *lpContext);
2540 -
2541 -extern(Windows) export BOOL BackupSeek(
2542 - HANDLE hFile,
2543 - DWORD dwLowBytesToSeek,
2544 - DWORD dwHighBytesToSeek,
2545 - LPDWORD lpdwLowByteSeeked,
2546 - LPDWORD lpdwHighByteSeeked,
2547 - LPVOID *lpContext);
2548 -
2549 -extern(Windows) export BOOL BackupWrite(
2550 - HANDLE hFile,
2551 - LPBYTE lpBuffer,
2552 - DWORD nNumberOfBytesToWrite,
2553 - LPDWORD lpNumberOfBytesWritten,
2554 - BOOL bAbort,
2555 - BOOL bProcessSecurity,
2556 - LPVOID *lpContext);
2557 -
2558 -struct _WIN32_STREAM_ID {
2559 - DWORD dwStreamId ;
2560 - DWORD dwStreamAttributes ;
2561 - LARGE_INTEGER Size ;
2562 - DWORD dwStreamNameSize ;
2563 - WCHAR cStreamName[ ANYSIZE_ARRAY ] ;
2803 + static if (_WIN32_WINNT >= 0x502) {
2804 + alias GetDllDirectoryA GetDllDirectory;
2805 + alias SetDllDirectoryA SetDllDirectory;
2806 + alias SetFirmwareEnvironmentVariableA SetFirmwareEnvironmentVariable;
2807 + }
2808 + }
2564 2809 }
2565 -alias _WIN32_STREAM_ID WIN32_STREAM_ID;
2566 -alias _WIN32_STREAM_ID* LPWIN32_STREAM_ID;
2567 2810
2568 -enum : uint { BACKUP_INVALID = 0x00000000 }
2569 -enum : uint { BACKUP_DATA = 0x00000001 }
2570 -enum : uint { BACKUP_EA_DATA = 0x00000002 }
2571 -enum : uint { BACKUP_SECURITY_DATA = 0x00000003 }
2572 -enum : uint { BACKUP_ALTERNATE_DATA = 0x00000004 }
2573 -enum : uint { BACKUP_LINK = 0x00000005 }
2574 -enum : uint { BACKUP_PROPERTY_DATA = 0x00000006 }
2575 -enum : uint { BACKUP_OBJECT_ID = 0x00000007 }
2576 -enum : uint { BACKUP_REPARSE_DATA = 0x00000008 }
2577 -enum : uint { BACKUP_SPARSE_BLOCK = 0x00000009 }
2578 -
2579 -enum : uint { STREAM_NORMAL_ATTRIBUTE = 0x00000000 }
2580 -enum : uint { STREAM_MODIFIED_WHEN_READ = 0x00000001 }
2581 -enum : uint { STREAM_CONTAINS_SECURITY = 0x00000002 }
2582 -enum : uint { STREAM_CONTAINS_PROPERTIES = 0x00000004 }
2583 -enum : uint { STREAM_SPARSE_ATTRIBUTE = 0x00000008 }
2584 -
2585 -extern(Windows) export BOOL ReadFileScatter(
2586 - HANDLE hFile,
2587 - FILE_SEGMENT_ELEMENT aSegmentArray[],
2588 - DWORD nNumberOfBytesToRead,
2589 - LPDWORD lpReserved,
2590 - LPOVERLAPPED lpOverlapped);
2591 -
2592 -extern(Windows) export BOOL WriteFileGather(
2593 - HANDLE hFile,
2594 - FILE_SEGMENT_ELEMENT aSegmentArray[],
2595 - DWORD nNumberOfBytesToWrite,
2596 - LPDWORD lpReserved,
2597 - LPOVERLAPPED lpOverlapped);
2598 -
2599 -enum : uint { STARTF_USESHOWWINDOW = 0x00000001 }
2600 -enum : uint { STARTF_USESIZE = 0x00000002 }
2601 -enum : uint { STARTF_USEPOSITION = 0x00000004 }
2602 -enum : uint { STARTF_USECOUNTCHARS = 0x00000008 }
2603 -enum : uint { STARTF_USEFILLATTRIBUTE = 0x00000010 }
2604 -enum : uint { STARTF_RUNFULLSCREEN = 0x00000020 }
2605 -enum : uint { STARTF_FORCEONFEEDBACK = 0x00000040 }
2606 -enum : uint { STARTF_FORCEOFFFEEDBACK = 0x00000080 }
2607 -enum : uint { STARTF_USESTDHANDLES = 0x00000100 }
2608 -
2609 -// #if(WINVER >= 0x0400)
2811 +alias STARTUPINFO* LPSTARTUPINFO;
2812 +alias WIN32_FIND_DATA* LPWIN32_FIND_DATA;
2610 2813
2611 -enum : uint { STARTF_USEHOTKEY = 0x00000200 }
2612 -// #endif /* WINVER >= 0x0400 */
2613 -
2614 -struct _STARTUPINFOA {
2615 - DWORD cb;
2616 - LPSTR lpReserved;
2617 - LPSTR lpDesktop;
2618 - LPSTR lpTitle;
2619 - DWORD dwX;
2620 - DWORD dwY;
2621 - DWORD dwXSize;
2622 - DWORD dwYSize;
2623 - DWORD dwXCountChars;
2624 - DWORD dwYCountChars;
2625 - DWORD dwFillAttribute;
2626 - DWORD dwFlags;
2627 - WORD wShowWindow;
2628 - WORD cbReserved2;
2629 - LPBYTE lpReserved2;
2630 - HANDLE hStdInput;
2631 - HANDLE hStdOutput;
2632 - HANDLE hStdError;
2633 -}
2634 -alias _STARTUPINFOA STARTUPINFOA;
2635 -alias _STARTUPINFOA* LPSTARTUPINFOA;
2636 -
2637 -struct _STARTUPINFOW {
2638 - DWORD cb;
2639 - LPWSTR lpReserved;
2640 - LPWSTR lpDesktop;
2641 - LPWSTR lpTitle;
2642 - DWORD dwX;
2643 - DWORD dwY;
2644 - DWORD dwXSize;
2645 - DWORD dwYSize;
2646 - DWORD dwXCountChars;
2647 - DWORD dwYCountChars;
2648 - DWORD dwFillAttribute;
2649 - DWORD dwFlags;
2650 - WORD wShowWindow;
2651 - WORD cbReserved2;
2652 - LPBYTE lpReserved2;
2653 - HANDLE hStdInput;
2654 - HANDLE hStdOutput;
2655 - HANDLE hStdError;
2656 -}
2657 -alias _STARTUPINFOW STARTUPINFOW;
2658 -alias _STARTUPINFOW* LPSTARTUPINFOW;
2659 -
2660 -// #ifdef UNICODE
2661 -alias STARTUPINFOW STARTUPINFO;
2662 -alias LPSTARTUPINFOW LPSTARTUPINFO;
2663 -// #else
2664 -// ...
2665 -// #endif // UNICODE
2666 -
2667 -enum : uint { SHUTDOWN_NORETRY = 0x00000001 }
2668 -
2669 -struct _WIN32_FIND_DATAA {
2670 - DWORD dwFileAttributes;
2671 - FILETIME ftCreationTime;
2672 - FILETIME ftLastAccessTime;
2673 - FILETIME ftLastWriteTime;
2674 - DWORD nFileSizeHigh;
2675 - DWORD nFileSizeLow;
2676 - DWORD dwReserved0;
2677 - DWORD dwReserved1;
2678 - CHAR cFileName[ MAX_PATH ];
2679 - CHAR cAlternateFileName[ 14 ];
2680 -// #ifdef _MAC
2681 -// ...
2682 -// #endif
2683 -}
2684 -alias _WIN32_FIND_DATAA WIN32_FIND_DATAA;
2685 -alias _WIN32_FIND_DATAA* PWIN32_FIND_DATAA;
2686 -alias _WIN32_FIND_DATAA* LPWIN32_FIND_DATAA;
2687 -
2688 -struct _WIN32_FIND_DATAW {
2689 - DWORD dwFileAttributes;
2690 - FILETIME ftCreationTime;
2691 - FILETIME ftLastAccessTime;
2692 - FILETIME ftLastWriteTime;
2693 - DWORD nFileSizeHigh;
2694 - DWORD nFileSizeLow;
2695 - DWORD dwReserved0;
2696 - DWORD dwReserved1;
2697 - WCHAR cFileName[ MAX_PATH ];
2698 - WCHAR cAlternateFileName[ 14 ];
2699 -// #ifdef _MAC
2700 -// ...
2701 -// #endif
2702 -}
2703 -alias _WIN32_FIND_DATAW WIN32_FIND_DATAW;
2704 -alias _WIN32_FIND_DATAW* PWIN32_FIND_DATAW;
2705 -alias _WIN32_FIND_DATAW* LPWIN32_FIND_DATAW;
2706 -
2707 -// #ifdef UNICODE
2708 -alias WIN32_FIND_DATAW WIN32_FIND_DATA;
2709 -alias PWIN32_FIND_DATAW PWIN32_FIND_DATA;
2710 -alias LPWIN32_FIND_DATAW LPWIN32_FIND_DATA;
2711 -// #else
2712 -// ...
2713 -// #endif // UNICODE
2714 -
2715 -struct _WIN32_FILE_ATTRIBUTE_DATA {
2716 - DWORD dwFileAttributes;
2717 - FILETIME ftCreationTime;
2718 - FILETIME ftLastAccessTime;
2719 - FILETIME ftLastWriteTime;
2720 - DWORD nFileSizeHigh;
2721 - DWORD nFileSizeLow;
2722 -}
2723 -alias _WIN32_FILE_ATTRIBUTE_DATA WIN32_FILE_ATTRIBUTE_DATA;
2724 -alias _WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA;
2725 -
2726 -extern(Windows) export HANDLE CreateMutexA(
2727 - LPSECURITY_ATTRIBUTES lpMutexAttributes,
2728 - BOOL bInitialOwner,
2729 - LPCSTR lpName);
2730 -extern(Windows) export HANDLE CreateMutexW(
2731 - LPSECURITY_ATTRIBUTES lpMutexAttributes,
2732 - BOOL bInitialOwner,
2733 - LPCWSTR lpName);
2734 -// #ifdef UNICODE
2735 -alias CreateMutexW CreateMutex;
2736 -// #else
2737 -// #...
2738 -// #endif // !UNICODE
2739 -
2740 -extern(Windows) export HANDLE OpenMutexA(
2741 - DWORD dwDesiredAccess,
2742 - BOOL bInheritHandle,
2743 - LPCSTR lpName);
2744 -extern(Windows) export HANDLE OpenMutexW(
2745 - DWORD dwDesiredAccess,
2746 - BOOL bInheritHandle,
2747 - LPCWSTR lpName);
2748 -// #ifdef UNICODE
2749 -alias OpenMutexW OpenMutex;
2750 -// #else
2751 -// #...
2752 -// #endif // !UNICODE
2753 -
2754 -extern(Windows) export HANDLE CreateEventA(
2755 - LPSECURITY_ATTRIBUTES lpEventAttributes,
2756 - BOOL bManualReset,
2757 - BOOL bInitialState,
2758 - LPCSTR lpName);
2759 -extern(Windows) export HANDLE CreateEventW(
2760 - LPSECURITY_ATTRIBUTES lpEventAttributes,
2761 - BOOL bManualReset,
2762 - BOOL bInitialState,
2763 - LPCWSTR lpName);
2764 -// #ifdef UNICODE
2765 -alias CreateEventW CreateEvent;
2766 -// #else
2767 -// #...
2768 -// #endif // !UNICODE
2769 -
2770 -extern(Windows) export HANDLE OpenEventA(
2771 - DWORD dwDesiredAccess,
2772 - BOOL bInheritHandle,
2773 - LPCSTR lpName);
2774 -extern(Windows) export HANDLE OpenEventW(
2775 - DWORD dwDesiredAccess,
2776 - BOOL bInheritHandle,
2777 - LPCWSTR lpName);
2778 -// #ifdef UNICODE
2779 -alias OpenEventW OpenEvent;
2780 -// #else
2781 -// #...
2782 -// #endif // !UNICODE
2783 -
2784 -extern(Windows) export HANDLE CreateSemaphoreA(
2785 - LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
2786 - LONG lInitialCount,
2787 - LONG lMaximumCount,
2788 - LPCSTR lpName);
2789 -extern(Windows) export HANDLE CreateSemaphoreW(
2790 - LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
2791 - LONG lInitialCount,
2792 - LONG lMaximumCount,
2793 - LPCWSTR lpName);
2794 -// #ifdef UNICODE
2795 -alias CreateSemaphoreW CreateSemaphore;
2796 -// #else
2797 -// #...
2798 -// #endif // !UNICODE
2799 -
2800 -extern(Windows) export HANDLE OpenSemaphoreA(
2801 - DWORD dwDesiredAccess,
2802 - BOOL bInheritHandle,
2803 - LPCSTR lpName);
2804 -extern(Windows) export HANDLE OpenSemaphoreW(
2805 - DWORD dwDesiredAccess,
2806 - BOOL bInheritHandle,
2807 - LPCWSTR lpName);
2808 -// #ifdef UNICODE
2809 -alias OpenSemaphoreW OpenSemaphore;
2810 -// #else
2811 -// #...
2812 -// #endif // !UNICODE
2813 -
2814 -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
2815 -extern(Windows) alias VOID function( LPVOID lpArgToCompletionRoutine, DWORD dwTimerLowValue, DWORD dwTimerHighValue ) PTIMERAPCROUTINE;
2814 +static if (_WIN32_WINNT_ONLY) {
2815 + alias HW_PROFILE_INFO* LPHW_PROFILE_INFO;
2816 2816
2817 -extern(Windows) export HANDLE CreateWaitableTimerA(
2818 - LPSECURITY_ATTRIBUTES lpTimerAttributes,
2819 - BOOL bManualReset,
2820 - LPCSTR lpTimerName);
2821 -extern(Windows) export HANDLE CreateWaitableTimerW(
2822 - LPSECURITY_ATTRIBUTES lpTimerAttributes,
2823 - BOOL bManualReset,
2824 - LPCWSTR lpTimerName);
2825 -// #ifdef UNICODE
2826 -alias CreateWaitableTimerW CreateWaitableTimer;
2827 -// #else
2828 -// #...
2829 -// #endif // !UNICODE
2830 -
2831 -extern(Windows) export HANDLE OpenWaitableTimerA(
2832 - DWORD dwDesiredAccess,
2833 - BOOL bInheritHandle,
2834 - LPCSTR lpTimerName);
2835 -extern(Windows) export HANDLE OpenWaitableTimerW(
2836 - DWORD dwDesiredAccess,
2837 - BOOL bInheritHandle,
2838 - LPCWSTR lpTimerName);
2839 -// #ifdef UNICODE
2840 -alias OpenWaitableTimerW OpenWaitableTimer;
2841 -// #else
2842 -// #...
2843 -// #endif // !UNICODE
2844 -
2845 -extern(Windows) export BOOL SetWaitableTimer(
2846 - HANDLE hTimer,
2847 - LARGE_INTEGER *lpDueTime,
2848 - LONG lPeriod,
2849 - PTIMERAPCROUTINE pfnCompletionRoutine,
2850 - LPVOID lpArgToCompletionRoutine,
2851 - BOOL fResume);
2852 -
2853 -extern(Windows) export BOOL CancelWaitableTimer(
2854 - HANDLE hTimer);
2855 -// #endif /* (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) */
2856 -
2857 -extern(Windows) export HANDLE CreateFileMappingA(
2858 - HANDLE hFile,
2859 - LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
2860 - DWORD flProtect,
2861 - DWORD dwMaximumSizeHigh,
2862 - DWORD dwMaximumSizeLow,
2863 - LPCSTR lpName);
2864 -extern(Windows) export HANDLE CreateFileMappingW(
2865 - HANDLE hFile,
2866 - LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
2867 - DWORD flProtect,
2868 - DWORD dwMaximumSizeHigh,
2869 - DWORD dwMaximumSizeLow,
2870 - LPCWSTR lpName);
2871 -// #ifdef UNICODE
2872 -alias CreateFileMappingW CreateFileMapping;
2873 -// #else
2874 -// #...
2875 -// #endif // !UNICODE
2876 -
2877 -extern(Windows) export HANDLE OpenFileMappingA(
2878 - DWORD dwDesiredAccess,
2879 - BOOL bInheritHandle,
2880 - LPCSTR lpName);
2881 -extern(Windows) export HANDLE OpenFileMappingW(
2882 - DWORD dwDesiredAccess,
2883 - BOOL bInheritHandle,
2884 - LPCWSTR lpName);
2885 -// #ifdef UNICODE
2886 -alias OpenFileMappingW OpenFileMapping;
2887 -// #else
2888 -// #...
2889 -// #endif // !UNICODE
2890 -
2891 -extern(Windows) export DWORD GetLogicalDriveStringsA(
2892 - DWORD nBufferLength,
2893 - LPSTR lpBuffer);
2894 -extern(Windows) export DWORD GetLogicalDriveStringsW(
2895 - DWORD nBufferLength,
2896 - LPWSTR lpBuffer);
2897 -// #ifdef UNICODE
2898 -alias GetLogicalDriveStringsW GetLogicalDriveStrings;
2899 -// #else
2900 -// #...
2901 -// #endif // !UNICODE
2902 -
2903 -// #if _WIN32_WINNT >= 0x0501
2904 -
2905 -alias int _MEMORY_RESOURCE_NOTIFICATION_TYPE;
2906 -enum {
2907 - LowMemoryResourceNotification,
2908 - HighMemoryResourceNotification,
2909 -}
2910 -alias _MEMORY_RESOURCE_NOTIFICATION_TYPE MEMORY_RESOURCE_NOTIFICATION_TYPE;
2911 -
2912 -extern(Windows) export HANDLE CreateMemoryResourceNotification(
2913 - MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType);
2914 -
2915 -extern(Windows) export BOOL QueryMemoryResourceNotification(
2916 - HANDLE ResourceNotificationHandle,
2917 - PBOOL ResourceState);
2918 -
2919 -// #endif // _WIN32_WINNT >= 0x0501
2920 -
2921 -extern(Windows) export HMODULE LoadLibraryA(
2922 - LPCSTR lpLibFileName);
2923 -extern(Windows) export HMODULE LoadLibraryW(
2924 - LPCWSTR lpLibFileName);
2925 -// #ifdef UNICODE
2926 -alias LoadLibraryW LoadLibrary;
2927 -// #else
2928 -// #...
2929 -// #endif // !UNICODE
2930 -
2931 -extern(Windows) export HMODULE LoadLibraryExA(
2932 - LPCSTR lpLibFileName,
2933 - HANDLE hFile,
2934 - DWORD dwFlags);
2935 -extern(Windows) export HMODULE LoadLibraryExW(
2936 - LPCWSTR lpLibFileName,
2937 - HANDLE hFile,
2938 - DWORD dwFlags);
2939 -// #ifdef UNICODE
2940 -alias LoadLibraryExW LoadLibraryEx;
2941 -// #else
2942 -// #...
2943 -// #endif // !UNICODE
2944 -
2945 -enum : uint { DONT_RESOLVE_DLL_REFERENCES = 0x00000001 }
2946 -enum : uint { LOAD_LIBRARY_AS_DATAFILE = 0x00000002 }
2947 -enum : uint { LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008 }
2948 -enum : uint { LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010 }
2949 -
2950 -extern(Windows) export DWORD GetModuleFileNameA(
2951 - HMODULE hModule,
2952 - LPSTR lpFilename,
2953 - DWORD nSize);
2954 -extern(Windows) export DWORD GetModuleFileNameW(
2955 - HMODULE hModule,
2956 - LPWSTR lpFilename,
2957 - DWORD nSize);
2958 -// #ifdef UNICODE
2959 -alias GetModuleFileNameW GetModuleFileName;
2960 -// #else
2961 -// #...
2962 -// #endif // !UNICODE
2963 -
2964 -extern(Windows) export HMODULE GetModuleHandleA(
2965 - LPCSTR lpModuleName);
2966 -extern(Windows) export HMODULE GetModuleHandleW(
2967 - LPCWSTR lpModuleName);
2968 -// #ifdef UNICODE
2969 -alias GetModuleHandleW GetModuleHandle;
2970 -// #else
2971 -// #...
2972 -// #endif // !UNICODE
2973 -
2974 -// #if !defined(RC_INVOKED)
2975 -// #if _WIN32_WINNT > 0x0500 || defined(WINBASE_DECLARE_GET_MODULE_HANDLE_EX) || ISOLATION_AWARE_ENABLED
2976 -
2977 -enum : uint { GET_MODULE_HANDLE_EX_FLAG_PIN = 0x00000001 }
2978 -enum : uint { GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 0x00000002 }
2979 -enum : uint { GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 0x00000004 }
2980 -
2981 -extern(Windows) alias BOOL function( DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule ) PGET_MODULE_HANDLE_EXA;
2982 -extern(Windows) alias BOOL function( DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule ) PGET_MODULE_HANDLE_EXW;
2983 -// #ifdef UNICODE
2984 -alias PGET_MODULE_HANDLE_EXW PGET_MODULE_HANDLE_EX;
2985 -// #else
2986 -// #...
2987 -// #endif // !UNICODE
2988 -
2989 -extern(Windows) export BOOL GetModuleHandleExA(
2990 - DWORD dwFlags,
2991 - LPCSTR lpModuleName,
2992 - HMODULE* phModule);
2993 -extern(Windows) export BOOL GetModuleHandleExW(
2994 - DWORD dwFlags,
2995 - LPCWSTR lpModuleName,
2996 - HMODULE* phModule);
2997 -// #ifdef UNICODE
2998 -alias GetModuleHandleExW GetModuleHandleEx;
2999 -// #else
3000 -// #...
3001 -// #endif // !UNICODE
3002 -
3003 -// #endif
3004 -// #endif
3005 -
3006 -extern(Windows) export BOOL CreateProcessA(
3007 - LPCSTR lpApplicationName,
3008 - LPSTR lpCommandLine,
3009 - LPSECURITY_ATTRIBUTES lpProcessAttributes,
3010 - LPSECURITY_ATTRIBUTES lpThreadAttributes,
3011 - BOOL bInheritHandles,
3012 - DWORD dwCreationFlags,
3013 - LPVOID lpEnvironment,
3014 - LPCSTR lpCurrentDirectory,
3015 - LPSTARTUPINFOA lpStartupInfo,
3016 - LPPROCESS_INFORMATION lpProcessInformation);
3017 -extern(Windows) export BOOL CreateProcessW(
3018 - LPCWSTR lpApplicationName,
3019 - LPWSTR lpCommandLine,
3020 - LPSECURITY_ATTRIBUTES lpProcessAttributes,
3021 - LPSECURITY_ATTRIBUTES lpThreadAttributes,
3022 - BOOL bInheritHandles,
3023 - DWORD dwCreationFlags,
3024 - LPVOID lpEnvironment,
3025 - LPCWSTR lpCurrentDirectory,
3026 - LPSTARTUPINFOW lpStartupInfo,
3027 - LPPROCESS_INFORMATION lpProcessInformation);
3028 -// #ifdef UNICODE
3029 -alias CreateProcessW CreateProcess;
3030 -// #else
3031 -// #...
3032 -// #endif // !UNICODE
3033 -
3034 -extern(Windows) export BOOL SetProcessShutdownParameters(
3035 - DWORD dwLevel,
3036 - DWORD dwFlags);
3037 -
3038 -extern(Windows) export BOOL GetProcessShutdownParameters(
3039 - LPDWORD lpdwLevel,
3040 - LPDWORD lpdwFlags);
3041 -
3042 -extern(Windows) export DWORD GetProcessVersion(
3043 - DWORD ProcessId);
3044 -
3045 -extern(Windows) export VOID FatalAppExitA(
3046 - UINT uAction,
3047 - LPCSTR lpMessageText);
3048 -extern(Windows) export VOID FatalAppExitW(
3049 - UINT uAction,
3050 - LPCWSTR lpMessageText);
3051 -// #ifdef UNICODE
3052 -alias FatalAppExitW FatalAppExit;
3053 -// #else
3054 -// #...
3055 -// #endif // !UNICODE
3056 -
3057 -extern(Windows) export VOID GetStartupInfoA(
3058 - LPSTARTUPINFOA lpStartupInfo);
3059 -extern(Windows) export VOID GetStartupInfoW(
3060 - LPSTARTUPINFOW lpStartupInfo);
3061 -// #ifdef UNICODE
3062 -alias GetStartupInfoW GetStartupInfo;
3063 -// #else
3064 -// #...
3065 -// #endif // !UNICODE
3066 -
3067 -extern(Windows) export LPSTR GetCommandLineA();
3068 -extern(Windows) export LPWSTR GetCommandLineW();
3069 -// #ifdef UNICODE
3070 -alias GetCommandLineW GetCommandLine;
3071 -// #else
3072 -// #...
3073 -// #endif // !UNICODE
3074 -
3075 -extern(Windows) export DWORD GetEnvironmentVariableA(
3076 - LPCSTR lpName,
3077 - LPSTR lpBuffer,
3078 - DWORD nSize);
3079 -extern(Windows) export DWORD GetEnvironmentVariableW(
3080 - LPCWSTR lpName,
3081 - LPWSTR lpBuffer,
3082 - DWORD nSize);
3083 -// #ifdef UNICODE
3084 -alias GetEnvironmentVariableW GetEnvironmentVariable;
3085 -// #else
3086 -// #...
3087 -// #endif // !UNICODE
3088 -
3089 -extern(Windows) export BOOL SetEnvironmentVariableA(
3090 - LPCSTR lpName,
3091 - LPCSTR lpValue);
3092 -extern(Windows) export BOOL SetEnvironmentVariableW(
3093 - LPCWSTR lpName,
3094 - LPCWSTR lpValue);
3095 -// #ifdef UNICODE
3096 -alias SetEnvironmentVariableW SetEnvironmentVariable;
3097 -// #else
3098 -// #...
3099 -// #endif // !UNICODE
3100 -
3101 -extern(Windows) export DWORD ExpandEnvironmentStringsA(
3102 - LPCSTR lpSrc,
3103 - LPSTR lpDst,
3104 - DWORD nSize);
3105 -extern(Windows) export DWORD ExpandEnvironmentStringsW(
3106 - LPCWSTR lpSrc,
3107 - LPWSTR lpDst,
3108 - DWORD nSize);
3109 -// #ifdef UNICODE
3110 -alias ExpandEnvironmentStringsW ExpandEnvironmentStrings;
3111 -// #else
3112 -// #...
3113 -// #endif // !UNICODE
3114 -
3115 -extern(Windows) export DWORD GetFirmwareEnvironmentVariableA(
3116 - LPCSTR lpName,
3117 - LPCSTR lpGuid,
3118 - PVOID pBuffer,
3119 - DWORD nSize);
3120 -extern(Windows) export DWORD GetFirmwareEnvironmentVariableW(
3121 - LPCWSTR lpName,
3122 - LPCWSTR lpGuid,
3123 - PVOID pBuffer,
3124 - DWORD nSize);
3125 -// #ifdef UNICODE
3126 -alias GetFirmwareEnvironmentVariableW GetFirmwareEnvironmentVariable;
3127 -// #else
3128 -// #...
3129 -// #endif // !UNICODE
3130 -
3131 -extern(Windows) export BOOL SetFirmwareEnvironmentVariableA(
3132 - LPCSTR lpName,
3133 - LPCSTR lpGuid,
3134 - PVOID pValue,
3135 - DWORD nSize);
3136 -extern(Windows) export BOOL SetFirmwareEnvironmentVariableW(
3137 - LPCWSTR lpName,
3138 - LPCWSTR lpGuid,
3139 - PVOID pValue,
3140 - DWORD nSize);
3141 -// #ifdef UNICODE
3142 -alias SetFirmwareEnvironmentVariableW SetFirmwareEnvironmentVariable;
3143 -// #else
3144 -// #...
3145 -// #endif // !UNICODE
3146 -
3147 -extern(Windows) export VOID OutputDebugStringA(
3148 - LPCSTR lpOutputString);
3149 -extern(Windows) export VOID OutputDebugStringW(
3150 - LPCWSTR lpOutputString);
3151 -// #ifdef UNICODE
3152 -alias OutputDebugStringW OutputDebugString;
3153 -// #else
3154 -// #...
3155 -// #endif // !UNICODE
3156 -
3157 -extern(Windows) export HRSRC FindResourceA(
3158 - HMODULE hModule,
3159 - LPCSTR lpName,
3160 - LPCSTR lpType);
3161 -extern(Windows) export HRSRC FindResourceW(
3162 - HMODULE hModule,
3163 - LPCWSTR lpName,
3164 - LPCWSTR lpType);
3165 -// #ifdef UNICODE
3166 -alias FindResourceW FindResource;
3167 -// #else
3168 -// #...
3169 -// #endif // !UNICODE
3170 -
3171 -extern(Windows) export HRSRC FindResourceExA(
3172 - HMODULE hModule,
3173 - LPCSTR lpType,
3174 - LPCSTR lpName,
3175 - WORD wLanguage);
3176 -extern(Windows) export HRSRC FindResourceExW(
3177 - HMODULE hModule,
3178 - LPCWSTR lpType,
3179 - LPCWSTR lpName,
3180 - WORD wLanguage);
3181 -// #ifdef UNICODE
3182 -alias FindResourceExW FindResourceEx;
3183 -// #else
3184 -// #...
3185 -// #endif // !UNICODE
3186 -
3187 -// #ifdef STRICT
3188 -extern(Windows) alias BOOL function(HMODULE hModule, LPSTR lpType, LONG_PTR lParam) ENUMRESTYPEPROCA;
3189 -extern(Windows) alias BOOL function(HMODULE hModule, LPWSTR lpType, LONG_PTR lParam) ENUMRESTYPEPROCW;
3190 -// #ifdef UNICODE
3191 -alias ENUMRESTYPEPROCW ENUMRESTYPEPROC;
3192 -// #else
3193 -// #...
3194 -// #endif // !UNICODE
3195 -extern(Windows) alias BOOL function(HMODULE hModule, LPCSTR lpType, LPSTR lpName, LONG_PTR lParam) ENUMRESNAMEPROCA;
3196 -extern(Windows) alias BOOL function(HMODULE hModule, LPCWSTR lpType, LPWSTR lpName, LONG_PTR lParam) ENUMRESNAMEPROCW;
3197 -// #ifdef UNICODE
3198 -alias ENUMRESNAMEPROCW ENUMRESNAMEPROC;
3199 -// #else
3200 -// #...
3201 -// #endif // !UNICODE
3202 -extern(Windows) alias BOOL function(HMODULE hModule, LPCSTR lpType, LPCSTR lpName, WORD wLanguage, LONG_PTR lParam) ENUMRESLANGPROCA;
3203 -extern(Windows) alias BOOL function(HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage, LONG_PTR lParam) ENUMRESLANGPROCW;
3204 -// #ifdef UNICODE
3205 -alias ENUMRESLANGPROCW ENUMRESLANGPROC;
3206 -// #else
3207 -// #...
3208 -// #endif // !UNICODE
3209 -// #else
3210 -// ...
3211 -// #ifdef UNICODE
3212 -// ...
3213 -// #else
3214 -// ...
3215 -// #endif // UNICODE
3216 -// ...
3217 -// #ifdef UNICODE
3218 -// ...
3219 -// #else
3220 -// ...
3221 -// #endif // UNICODE
3222 -// ...
3223 -// #ifdef UNICODE
3224 -// ...
3225 -// #else
3226 -// ...
3227 -// #endif // UNICODE
3228 -// #endif
3229 -
3230 -extern(Windows) export BOOL EnumResourceTypesA(
3231 - HMODULE hModule,
3232 - ENUMRESTYPEPROCA lpEnumFunc,
3233 - LONG_PTR lParam);
3234 -extern(Windows) export BOOL EnumResourceTypesW(
3235 - HMODULE hModule,
3236 - ENUMRESTYPEPROCW lpEnumFunc,
3237 - LONG_PTR lParam);
3238 -// #ifdef UNICODE
3239 -alias EnumResourceTypesW EnumResourceTypes;
3240 -// #else
3241 -// #...
3242 -// #endif // !UNICODE
3243 -
3244 -extern(Windows) export BOOL EnumResourceNamesA(
3245 - HMODULE hModule,
3246 - LPCSTR lpType,
3247 - ENUMRESNAMEPROCA lpEnumFunc,
3248 - LONG_PTR lParam);
3249 -extern(Windows) export BOOL EnumResourceNamesW(
3250 - HMODULE hModule,
3251 - LPCWSTR lpType,
3252 - ENUMRESNAMEPROCW lpEnumFunc,
3253 - LONG_PTR lParam);
3254 -// #ifdef UNICODE
3255 -alias EnumResourceNamesW EnumResourceNames;
3256 -// #else
3257 -// #...
3258 -// #endif // !UNICODE
3259 -
3260 -extern(Windows) export BOOL EnumResourceLanguagesA(
3261 - HMODULE hModule,
3262 - LPCSTR lpType,
3263 - LPCSTR lpName,
3264 - ENUMRESLANGPROCA lpEnumFunc,
3265 - LONG_PTR lParam);
3266 -extern(Windows) export BOOL EnumResourceLanguagesW(
3267 - HMODULE hModule,
3268 - LPCWSTR lpType,
3269 - LPCWSTR lpName,
3270 - ENUMRESLANGPROCW lpEnumFunc,
3271 - LONG_PTR lParam);
3272 -// #ifdef UNICODE
3273 -alias EnumResourceLanguagesW EnumResourceLanguages;
3274 -// #else
3275 -// #...
3276 -// #endif // !UNICODE
3277 -
3278 -extern(Windows) export HANDLE BeginUpdateResourceA(
3279 - LPCSTR pFileName,
3280 - BOOL bDeleteExistingResources);
3281 -extern(Windows) export HANDLE BeginUpdateResourceW(
3282 - LPCWSTR pFileName,
3283 - BOOL bDeleteExistingResources);
3284 -// #ifdef UNICODE
3285 -alias BeginUpdateResourceW BeginUpdateResource;
3286 -// #else
3287 -// #...
3288 -// #endif // !UNICODE
3289 -
3290 -extern(Windows) export BOOL UpdateResourceA(
3291 - HANDLE hUpdate,
3292 - LPCSTR lpType,
3293 - LPCSTR lpName,
3294 - WORD wLanguage,
3295 - LPVOID lpData,
3296 - DWORD cbData);
3297 -extern(Windows) export BOOL UpdateResourceW(
3298 - HANDLE hUpdate,
3299 - LPCWSTR lpType,
3300 - LPCWSTR lpName,
3301 - WORD wLanguage,
3302 - LPVOID lpData,
3303 - DWORD cbData);
3304 -// #ifdef UNICODE
3305 -alias UpdateResourceW UpdateResource;
3306 -// #else
3307 -// #...
3308 -// #endif // !UNICODE
3309 -
3310 -extern(Windows) export BOOL EndUpdateResourceA(
3311 - HANDLE hUpdate,
3312 - BOOL fDiscard);
3313 -extern(Windows) export BOOL EndUpdateResourceW(
3314 - HANDLE hUpdate,
3315 - BOOL fDiscard);
3316 -// #ifdef UNICODE
3317 -alias EndUpdateResourceW EndUpdateResource;
3318 -// #else
3319 -// #...
3320 -// #endif // !UNICODE
3321 -
3322 -extern(Windows) export ATOM GlobalAddAtomA(
3323 - LPCSTR lpString);
3324 -extern(Windows) export ATOM GlobalAddAtomW(
3325 - LPCWSTR lpString);
3326 -// #ifdef UNICODE
3327 -alias GlobalAddAtomW GlobalAddAtom;
3328 -// #else
3329 -// #...
3330 -// #endif // !UNICODE
3331 -
3332 -extern(Windows) export ATOM GlobalFindAtomA(
3333 - LPCSTR lpString);
3334 -extern(Windows) export ATOM GlobalFindAtomW(
3335 - LPCWSTR lpString);
3336 -// #ifdef UNICODE
3337 -alias GlobalFindAtomW GlobalFindAtom;
3338 -// #else
3339 -// #...
3340 -// #endif // !UNICODE
3341 -
3342 -extern(Windows) export UINT GlobalGetAtomNameA(
3343 - ATOM nAtom,
3344 - LPSTR lpBuffer,
3345 - int nSize);
3346 -extern(Windows) export UINT GlobalGetAtomNameW(
3347 - ATOM nAtom,
3348 - LPWSTR lpBuffer,
3349 - int nSize);
3350 -// #ifdef UNICODE
3351 -alias GlobalGetAtomNameW GlobalGetAtomName;
3352 -// #else
3353 -// #...
3354 -// #endif // !UNICODE
3355 -
3356 -extern(Windows) export ATOM AddAtomA(
3357 - LPCSTR lpString);
3358 -extern(Windows) export ATOM AddAtomW(
3359 - LPCWSTR lpString);
3360 -// #ifdef UNICODE
3361 -alias AddAtomW AddAtom;
3362 -// #else
3363 -// #...
3364 -// #endif // !UNICODE
3365 -
3366 -extern(Windows) export ATOM FindAtomA(
3367 - LPCSTR lpString);
3368 -extern(Windows) export ATOM FindAtomW(
3369 - LPCWSTR lpString);
3370 -// #ifdef UNICODE
3371 -alias FindAtomW FindAtom;
3372 -// #else
3373 -// #...
3374 -// #endif // !UNICODE
3375 -
3376 -extern(Windows) export UINT GetAtomNameA(
3377 - ATOM nAtom,
3378 - LPSTR lpBuffer,
3379 - int nSize);
3380 -extern(Windows) export UINT GetAtomNameW(
3381 - ATOM nAtom,
3382 - LPWSTR lpBuffer,
3383 - int nSize);
3384 -// #ifdef UNICODE
3385 -alias GetAtomNameW GetAtomName;
3386 -// #else
3387 -// #...
3388 -// #endif // !UNICODE
3389 -
3390 -extern(Windows) export UINT GetProfileIntA(
3391 - LPCSTR lpAppName,
3392 - LPCSTR lpKeyName,
3393 - INT nDefault);
3394 -extern(Windows) export UINT GetProfileIntW(
3395 - LPCWSTR lpAppName,
3396 - LPCWSTR lpKeyName,
3397 - INT nDefault);
3398 -// #ifdef UNICODE
3399 -alias GetProfileIntW GetProfileInt;
3400 -// #else
3401 -// #...
3402 -// #endif // !UNICODE
3403 -
3404 -extern(Windows) export DWORD GetProfileStringA(
3405 - LPCSTR lpAppName,
3406 - LPCSTR lpKeyName,
3407 - LPCSTR lpDefault,
3408 - LPSTR lpReturnedString,
3409 - DWORD nSize);
3410 -extern(Windows) export DWORD GetProfileStringW(
3411 - LPCWSTR lpAppName,
3412 - LPCWSTR lpKeyName,
3413 - LPCWSTR lpDefault,
3414 - LPWSTR lpReturnedString,
3415 - DWORD nSize);
3416 -// #ifdef UNICODE
3417 -alias GetProfileStringW GetProfileString;
3418 -// #else
3419 -// #...
3420 -// #endif // !UNICODE
3421 -
3422 -extern(Windows) export BOOL WriteProfileStringA(
3423 - LPCSTR lpAppName,
3424 - LPCSTR lpKeyName,
3425 - LPCSTR lpString);
3426 -extern(Windows) export BOOL WriteProfileStringW(
3427 - LPCWSTR lpAppName,
3428 - LPCWSTR lpKeyName,
3429 - LPCWSTR lpString);
3430 -// #ifdef UNICODE
3431 -alias WriteProfileStringW WriteProfileString;
3432 -// #else
3433 -// #...
3434 -// #endif // !UNICODE
3435 -
3436 -extern(Windows) export DWORD GetProfileSectionA(
3437 - LPCSTR lpAppName,
3438 - LPSTR lpReturnedString,
3439 - DWORD nSize);
3440 -extern(Windows) export DWORD GetProfileSectionW(
3441 - LPCWSTR lpAppName,
3442 - LPWSTR lpReturnedString,
3443 - DWORD nSize);
3444 -// #ifdef UNICODE
3445 -alias GetProfileSectionW GetProfileSection;
3446 -// #else
3447 -// #...
3448 -// #endif // !UNICODE
3449 -
3450 -extern(Windows) export BOOL WriteProfileSectionA(
3451 - LPCSTR lpAppName,
3452 - LPCSTR lpString);
3453 -extern(Windows) export BOOL WriteProfileSectionW(
3454 - LPCWSTR lpAppName,
3455 - LPCWSTR lpString);
3456 -// #ifdef UNICODE
3457 -alias WriteProfileSectionW WriteProfileSection;
3458 -// #else
3459 -// #...
3460 -// #endif // !UNICODE
3461 -
3462 -extern(Windows) export UINT GetPrivateProfileIntA(
3463 - LPCSTR lpAppName,
3464 - LPCSTR lpKeyName,
3465 - INT nDefault,
3466 - LPCSTR lpFileName);
3467 -extern(Windows) export UINT GetPrivateProfileIntW(
3468 - LPCWSTR lpAppName,
3469 - LPCWSTR lpKeyName,
3470 - INT nDefault,
3471 - LPCWSTR lpFileName);
3472 -// #ifdef UNICODE
3473 -alias GetPrivateProfileIntW GetPrivateProfileInt;
3474 -// #else
3475 -// #...
3476 -// #endif // !UNICODE
3477 -
3478 -extern(Windows) export DWORD GetPrivateProfileStringA(
3479 - LPCSTR lpAppName,
3480 - LPCSTR lpKeyName,
3481 - LPCSTR lpDefault,
3482 - LPSTR lpReturnedString,
3483 - DWORD nSize,
3484 - LPCSTR lpFileName);
3485 -extern(Windows) export DWORD GetPrivateProfileStringW(
3486 - LPCWSTR lpAppName,
3487 - LPCWSTR lpKeyName,
3488 - LPCWSTR lpDefault,
3489 - LPWSTR lpReturnedString,
3490 - DWORD nSize,
3491 - LPCWSTR lpFileName);
3492 -// #ifdef UNICODE
3493 -alias GetPrivateProfileStringW GetPrivateProfileString;
3494 -// #else
3495 -// #...
3496 -// #endif // !UNICODE
3497 -
3498 -extern(Windows) export BOOL WritePrivateProfileStringA(
3499 - LPCSTR lpAppName,
3500 - LPCSTR lpKeyName,
3501 - LPCSTR lpString,
3502 - LPCSTR lpFileName);
3503 -extern(Windows) export BOOL WritePrivateProfileStringW(
3504 - LPCWSTR lpAppName,
3505 - LPCWSTR lpKeyName,
3506 - LPCWSTR lpString,
3507 - LPCWSTR lpFileName);
3508 -// #ifdef UNICODE
3509 -alias WritePrivateProfileStringW WritePrivateProfileString;
3510 -// #else
3511 -// #...
3512 -// #endif // !UNICODE
3513 -
3514 -extern(Windows) export DWORD GetPrivateProfileSectionA(
3515 - LPCSTR lpAppName,
3516 - LPSTR lpReturnedString,
3517 - DWORD nSize,
3518 - LPCSTR lpFileName);
3519 -extern(Windows) export DWORD GetPrivateProfileSectionW(
3520 - LPCWSTR lpAppName,
3521 - LPWSTR lpReturnedString,
3522 - DWORD nSize,
3523 - LPCWSTR lpFileName);
3524 -// #ifdef UNICODE
3525 -alias GetPrivateProfileSectionW GetPrivateProfileSection;
3526 -// #else
3527 -// #...
3528 -// #endif // !UNICODE
3529 -
3530 -extern(Windows) export BOOL WritePrivateProfileSectionA(
3531 - LPCSTR lpAppName,
3532 - LPCSTR lpString,
3533 - LPCSTR lpFileName);
3534 -extern(Windows) export BOOL WritePrivateProfileSectionW(
3535 - LPCWSTR lpAppName,
3536 - LPCWSTR lpString,
3537 - LPCWSTR lpFileName);
3538 -// #ifdef UNICODE
3539 -alias WritePrivateProfileSectionW WritePrivateProfileSection;
3540 -// #else
3541 -// #...
3542 -// #endif // !UNICODE
3543 -
3544 -extern(Windows) export DWORD GetPrivateProfileSectionNamesA(
3545 - LPSTR lpszReturnBuffer,
3546 - DWORD nSize,
3547 - LPCSTR lpFileName);
3548 -extern(Windows) export DWORD GetPrivateProfileSectionNamesW(
3549 - LPWSTR lpszReturnBuffer,
3550 - DWORD nSize,
3551 - LPCWSTR lpFileName);
3552 -// #ifdef UNICODE
3553 -alias GetPrivateProfileSectionNamesW GetPrivateProfileSectionNames;
3554 -// #else
3555 -// #...
3556 -// #endif // !UNICODE
3557 -
3558 -extern(Windows) export BOOL GetPrivateProfileStructA(
3559 - LPCSTR lpszSection,
3560 - LPCSTR lpszKey,
3561 - LPVOID lpStruct,
3562 - UINT uSizeStruct,
3563 - LPCSTR szFile);
3564 -extern(Windows) export BOOL GetPrivateProfileStructW(
3565 - LPCWSTR lpszSection,
3566 - LPCWSTR lpszKey,
3567 - LPVOID lpStruct,
3568 - UINT uSizeStruct,
3569 - LPCWSTR szFile);
3570 -// #ifdef UNICODE
3571 -alias GetPrivateProfileStructW GetPrivateProfileStruct;
3572 -// #else
3573 -// #...
3574 -// #endif // !UNICODE
3575 -
3576 -extern(Windows) export BOOL WritePrivateProfileStructA(
3577 - LPCSTR lpszSection,
3578 - LPCSTR lpszKey,
3579 - LPVOID lpStruct,
3580 - UINT uSizeStruct,
3581 - LPCSTR szFile);
3582 -extern(Windows) export BOOL WritePrivateProfileStructW(
3583 - LPCWSTR lpszSection,
3584 - LPCWSTR lpszKey,
3585 - LPVOID lpStruct,
3586 - UINT uSizeStruct,
3587 - LPCWSTR szFile);
3588 -// #ifdef UNICODE
3589 -alias WritePrivateProfileStructW WritePrivateProfileStruct;
3590 -// #else
3591 -// #...
3592 -// #endif // !UNICODE
3593 -
3594 -extern(Windows) export UINT GetDriveTypeA(
3595 - LPCSTR lpRootPathName);
3596 -extern(Windows) export UINT GetDriveTypeW(
3597 - LPCWSTR lpRootPathName);
3598 -// #ifdef UNICODE
3599 -alias GetDriveTypeW GetDriveType;
3600 -// #else
3601 -// #...
3602 -// #endif // !UNICODE
3603 -
3604 -extern(Windows) export UINT GetSystemDirectoryA(
3605 - LPSTR lpBuffer,
3606 - UINT uSize);
3607 -extern(Windows) export UINT GetSystemDirectoryW(
3608 - LPWSTR lpBuffer,
3609 - UINT uSize);
3610 -// #ifdef UNICODE
3611 -alias GetSystemDirectoryW GetSystemDirectory;
3612 -// #else
3613 -// #...
3614 -// #endif // !UNICODE
3615 -
3616 -extern(Windows) export DWORD GetTempPathA(
3617 - DWORD nBufferLength,
3618 - LPSTR lpBuffer);
3619 -extern(Windows) export DWORD GetTempPathW(
3620 - DWORD nBufferLength,
3621 - LPWSTR lpBuffer);
3622 -// #ifdef UNICODE
3623 -alias GetTempPathW GetTempPath;
3624 -// #else
3625 -// #...
3626 -// #endif // !UNICODE
3627 -
3628 -extern(Windows) export UINT GetTempFileNameA(
3629 - LPCSTR lpPathName,
3630 - LPCSTR lpPrefixString,
3631 - UINT uUnique,
3632 - LPSTR lpTempFileName);
3633 -extern(Windows) export UINT GetTempFileNameW(
3634 - LPCWSTR lpPathName,
3635 - LPCWSTR lpPrefixString,
3636 - UINT uUnique,
3637 - LPWSTR lpTempFileName);
3638 -// #ifdef UNICODE
3639 -alias GetTempFileNameW GetTempFileName;
3640 -// #else
3641 -// #...
3642 -// #endif // !UNICODE
3643 -
3644 -extern(Windows) export UINT GetWindowsDirectoryA(
3645 - LPSTR lpBuffer,
3646 - UINT uSize);
3647 -extern(Windows) export UINT GetWindowsDirectoryW(
3648 - LPWSTR lpBuffer,
3649 - UINT uSize);
3650 -// #ifdef UNICODE
3651 -alias GetWindowsDirectoryW GetWindowsDirectory;
3652 -// #else
3653 -// #...
3654 -// #endif // !UNICODE
3655 -
3656 -extern(Windows) export UINT GetSystemWindowsDirectoryA(
3657 - LPSTR lpBuffer,
3658 - UINT uSize);
3659 -extern(Windows) export UINT GetSystemWindowsDirectoryW(
3660 - LPWSTR lpBuffer,
3661 - UINT uSize);
3662 -// #ifdef UNICODE
3663 -alias GetSystemWindowsDirectoryW GetSystemWindowsDirectory;
3664 -// #else
3665 -// #...
3666 -// #endif // !UNICODE
3667 -
3668 -// #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECTORY" is a bit long.
3669 -// #if _WIN32_WINNT >= 0x0501 || defined(WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECTORY)
3670 -
3671 -extern(Windows) export UINT GetSystemWow64DirectoryA(
3672 - LPSTR lpBuffer,
3673 - UINT uSize);
3674 -extern(Windows) export UINT GetSystemWow64DirectoryW(
3675 - LPWSTR lpBuffer,
3676 - UINT uSize);
3677 -// #ifdef UNICODE
3678 -alias GetSystemWow64DirectoryW GetSystemWow64Directory;
3679 -// #else
3680 -// #...
3681 -// #endif // !UNICODE
3682 -
3683 -extern(Windows) alias UINT function( LPSTR lpBuffer, UINT uSize) PGET_SYSTEM_WOW64_DIRECTORY_A;
3684 -extern(Windows) alias UINT function( LPWSTR lpBuffer, UINT uSize) PGET_SYSTEM_WOW64_DIRECTORY_W;
3685 -
3686 -const char[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A = "GetSystemWow64DirectoryA";
3687 -const wchar[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W = "GetSystemWow64DirectoryA";
3688 -const TCHAR[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T = "GetSystemWow64DirectoryA";
3689 -const char[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A = "GetSystemWow64DirectoryW";
3690 -const wchar[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W = "GetSystemWow64DirectoryW";
3691 -const TCHAR[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T = "GetSystemWow64DirectoryW";
3692 -
3693 -// #ifdef UNICODE
3694 -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A;
3695 -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W;
3696 -alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T;
3697 -// #else
3698 -// #...
3699 -// #...
3700 -// #...
3701 -// #endif
3702 -
3703 -// #endif // _WIN32_WINNT >= 0x0501
3704 -// #endif
3705 -
3706 -extern(Windows) export BOOL SetCurrentDirectoryA(
3707 - LPCSTR lpPathName);
3708 -extern(Windows) export BOOL SetCurrentDirectoryW(
3709 - LPCWSTR lpPathName);
3710 -// #ifdef UNICODE
3711 -alias SetCurrentDirectoryW SetCurrentDirectory;
3712 -// #else
3713 -// #...
3714 -// #endif // !UNICODE
3715 -
3716 -extern(Windows) export DWORD GetCurrentDirectoryA(
3717 - DWORD nBufferLength,
3718 - LPSTR lpBuffer);
3719 -extern(Windows) export DWORD GetCurrentDirectoryW(
3720 - DWORD nBufferLength,
3721 - LPWSTR lpBuffer);
3722 -// #ifdef UNICODE
3723 -alias GetCurrentDirectoryW GetCurrentDirectory;
3724 -// #else
3725 -// #...
3726 -// #endif // !UNICODE
3727 -
3728 -extern(Windows) export BOOL GetDiskFreeSpaceA(
3729 - LPCSTR lpRootPathName,
3730 - LPDWORD lpSectorsPerCluster,
3731 - LPDWORD lpBytesPerSector,
3732 - LPDWORD lpNumberOfFreeClusters,
3733 - LPDWORD lpTotalNumberOfClusters);
3734 -extern(Windows) export BOOL GetDiskFreeSpaceW(
3735 - LPCWSTR lpRootPathName,
3736 - LPDWORD lpSectorsPerCluster,
3737 - LPDWORD lpBytesPerSector,
3738 - LPDWORD lpNumberOfFreeClusters,
3739 - LPDWORD lpTotalNumberOfClusters);
3740 -// #ifdef UNICODE
3741 -alias GetDiskFreeSpaceW GetDiskFreeSpace;
3742 -// #else
3743 -// #...
3744 -// #endif // !UNICODE
3745 -
3746 -extern(Windows) export BOOL GetDiskFreeSpaceExA(
3747 - LPCSTR lpDirectoryName,
3748 - PULARGE_INTEGER lpFreeBytesAvailableToCaller,
3749 - PULARGE_INTEGER lpTotalNumberOfBytes,
3750 - PULARGE_INTEGER lpTotalNumberOfFreeBytes);
3751 -extern(Windows) export BOOL GetDiskFreeSpaceExW(
3752 - LPCWSTR lpDirectoryName,
3753 - PULARGE_INTEGER lpFreeBytesAvailableToCaller,
3754 - PULARGE_INTEGER lpTotalNumberOfBytes,
3755 - PULARGE_INTEGER lpTotalNumberOfFreeBytes);
3756 -// #ifdef UNICODE
3757 -alias GetDiskFreeSpaceExW GetDiskFreeSpaceEx;
3758 -// #else
3759 -// #...
3760 -// #endif // !UNICODE
3761 -
3762 -extern(Windows) export BOOL CreateDirectoryA(
3763 - LPCSTR lpPathName,
3764 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
3765 -extern(Windows) export BOOL CreateDirectoryW(
3766 - LPCWSTR lpPathName,
3767 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
3768 -// #ifdef UNICODE
3769 -alias CreateDirectoryW CreateDirectory;
3770 -// #else
3771 -// #...
3772 -// #endif // !UNICODE
3773 -
3774 -extern(Windows) export BOOL CreateDirectoryExA(
3775 - LPCSTR lpTemplateDirectory,
3776 - LPCSTR lpNewDirectory,
3777 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
3778 -extern(Windows) export BOOL CreateDirectoryExW(
3779 - LPCWSTR lpTemplateDirectory,
3780 - LPCWSTR lpNewDirectory,
3781 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
3782 -// #ifdef UNICODE
3783 -alias CreateDirectoryExW CreateDirectoryEx;
3784 -// #else
3785 -// #...
3786 -// #endif // !UNICODE
3787 -
3788 -extern(Windows) export BOOL RemoveDirectoryA(
3789 - LPCSTR lpPathName);
3790 -extern(Windows) export BOOL RemoveDirectoryW(
3791 - LPCWSTR lpPathName);
3792 -// #ifdef UNICODE
3793 -alias RemoveDirectoryW RemoveDirectory;
3794 -// #else
3795 -// #...
3796 -// #endif // !UNICODE
3797 -
3798 -extern(Windows) export DWORD GetFullPathNameA(
3799 - LPCSTR lpFileName,
3800 - DWORD nBufferLength,
3801 - LPSTR lpBuffer,
3802 - LPSTR *lpFilePart);
3803 -extern(Windows) export DWORD GetFullPathNameW(
3804 - LPCWSTR lpFileName,
3805 - DWORD nBufferLength,
3806 - LPWSTR lpBuffer,
3807 - LPWSTR *lpFilePart);
3808 -// #ifdef UNICODE
3809 -alias GetFullPathNameW GetFullPathName;
3810 -// #else
3811 -// #...
3812 -// #endif // !UNICODE
3813 -
3814 -enum : uint { DDD_RAW_TARGET_PATH = 0x00000001 }
3815 -enum : uint { DDD_REMOVE_DEFINITION = 0x00000002 }
3816 -enum : uint { DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 }
3817 -enum : uint { DDD_NO_BROADCAST_SYSTEM = 0x00000008 }
3818 -enum : uint { DDD_LUID_BROADCAST_DRIVE = 0x00000010 }
3819 -
3820 -extern(Windows) export BOOL DefineDosDeviceA(
3821 - DWORD dwFlags,
3822 - LPCSTR lpDeviceName,
3823 - LPCSTR lpTargetPath);
3824 -extern(Windows) export BOOL DefineDosDeviceW(
3825 - DWORD dwFlags,
3826 - LPCWSTR lpDeviceName,
3827 - LPCWSTR lpTargetPath);
3828 -// #ifdef UNICODE
3829 -alias DefineDosDeviceW DefineDosDevice;
3830 -// #else
3831 -// #...
3832 -// #endif // !UNICODE
3833 -
3834 -extern(Windows) export DWORD QueryDosDeviceA(
3835 - LPCSTR lpDeviceName,
3836 - LPSTR lpTargetPath,
3837 - DWORD ucchMax);
3838 -extern(Windows) export DWORD QueryDosDeviceW(
3839 - LPCWSTR lpDeviceName,
3840 - LPWSTR lpTargetPath,
3841 - DWORD ucchMax);
3842 -// #ifdef UNICODE
3843 -alias QueryDosDeviceW QueryDosDevice;
3844 -// #else
3845 -// #...
3846 -// #endif // !UNICODE
3847 -
3848 -// #define EXPAND_LOCAL_DRIVES
3849 -
3850 -extern(Windows) export HANDLE CreateFileA(
3851 - LPCSTR lpFileName,
3852 - DWORD dwDesiredAccess,
3853 - DWORD dwShareMode,
3854 - LPSECURITY_ATTRIBUTES lpSecurityAttributes,
3855 - DWORD dwCreationDisposition,
3856 - DWORD dwFlagsAndAttributes,
3857 - HANDLE hTemplateFile);
3858 -extern(Windows) export HANDLE CreateFileW(
3859 - LPCWSTR lpFileName,
3860 - DWORD dwDesiredAccess,
3861 - DWORD dwShareMode,
3862 - LPSECURITY_ATTRIBUTES lpSecurityAttributes,
3863 - DWORD dwCreationDisposition,
3864 - DWORD dwFlagsAndAttributes,
3865 - HANDLE hTemplateFile);
3866 -// #ifdef UNICODE
3867 -alias CreateFileW CreateFile;
3868 -// #else
3869 -// #...
3870 -// #endif // !UNICODE
3871 -
3872 -extern(Windows) export BOOL SetFileAttributesA(
3873 - LPCSTR lpFileName,
3874 - DWORD dwFileAttributes);
3875 -extern(Windows) export BOOL SetFileAttributesW(
3876 - LPCWSTR lpFileName,
3877 - DWORD dwFileAttributes);
3878 -// #ifdef UNICODE
3879 -alias SetFileAttributesW SetFileAttributes;
3880 -// #else
3881 -// #...
3882 -// #endif // !UNICODE
3883 -
3884 -extern(Windows) export DWORD GetFileAttributesA(
3885 - LPCSTR lpFileName);
3886 -extern(Windows) export DWORD GetFileAttributesW(
3887 - LPCWSTR lpFileName);
3888 -// #ifdef UNICODE
3889 -alias GetFileAttributesW GetFileAttributes;
3890 -// #else
3891 -// #...
3892 -// #endif // !UNICODE
3893 -
3894 -alias int _GET_FILEEX_INFO_LEVELS;
3895 -enum {
3896 - GetFileExInfoStandard,
3897 - GetFileExMaxInfoLevel,
3898 -}
3899 -alias _GET_FILEEX_INFO_LEVELS GET_FILEEX_INFO_LEVELS;
3900 -
3901 -extern(Windows) export BOOL GetFileAttributesExA(
3902 - LPCSTR lpFileName,
3903 - GET_FILEEX_INFO_LEVELS fInfoLevelId,
3904 - LPVOID lpFileInformation);
3905 -extern(Windows) export BOOL GetFileAttributesExW(
3906 - LPCWSTR lpFileName,
3907 - GET_FILEEX_INFO_LEVELS fInfoLevelId,
3908 - LPVOID lpFileInformation);
3909 -// #ifdef UNICODE
3910 -alias GetFileAttributesExW GetFileAttributesEx;
3911 -// #else
3912 -// #...
3913 -// #endif // !UNICODE
3914 -
3915 -extern(Windows) export DWORD GetCompressedFileSizeA(
3916 - LPCSTR lpFileName,
3917 - LPDWORD lpFileSizeHigh);
3918 -extern(Windows) export DWORD GetCompressedFileSizeW(
3919 - LPCWSTR lpFileName,
3920 - LPDWORD lpFileSizeHigh);
3921 -// #ifdef UNICODE
3922 -alias GetCompressedFileSizeW GetCompressedFileSize;
3923 -// #else
3924 -// #...
3925 -// #endif // !UNICODE
3926 -
3927 -extern(Windows) export BOOL DeleteFileA(
3928 - LPCSTR lpFileName);
3929 -extern(Windows) export BOOL DeleteFileW(
3930 - LPCWSTR lpFileName);
3931 -// #ifdef UNICODE
3932 -alias DeleteFileW DeleteFile;
3933 -// #else
3934 -// #...
3935 -// #endif // !UNICODE
3936 -
3937 -// #if(_WIN32_WINNT >= 0x0400)
3938 -alias int _FINDEX_INFO_LEVELS;
3939 -enum {
3940 - FindExInfoStandard,
3941 - FindExInfoMaxInfoLevel,
3942 -}
3943 -alias _FINDEX_INFO_LEVELS FINDEX_INFO_LEVELS;
3944 -
3945 -alias int _FINDEX_SEARCH_OPS;
3946 -enum {
3947 - FindExSearchNameMatch,
3948 - FindExSearchLimitToDirectories,
3949 - FindExSearchLimitToDevices,
3950 - FindExSearchMaxSearchOp,
3951 -}
3952 -alias _FINDEX_SEARCH_OPS FINDEX_SEARCH_OPS;
3953 -
3954 -enum : uint { FIND_FIRST_EX_CASE_SENSITIVE = 0x00000001 }
3955 -
3956 -extern(Windows) export HANDLE FindFirstFileExA(
3957 - LPCSTR lpFileName,
3958 - FINDEX_INFO_LEVELS fInfoLevelId,
3959 - LPVOID lpFindFileData,
3960 - FINDEX_SEARCH_OPS fSearchOp,
3961 - LPVOID lpSearchFilter,
3962 - DWORD dwAdditionalFlags);
3963 -extern(Windows) export HANDLE FindFirstFileExW(
3964 - LPCWSTR lpFileName,
3965 - FINDEX_INFO_LEVELS fInfoLevelId,
3966 - LPVOID lpFindFileData,
3967 - FINDEX_SEARCH_OPS fSearchOp,
3968 - LPVOID lpSearchFilter,
3969 - DWORD dwAdditionalFlags);
3970 -// #ifdef UNICODE
3971 -alias FindFirstFileExW FindFirstFileEx;
3972 -// #else
3973 -// #...
3974 -// #endif // !UNICODE
3975 -// #endif /* _WIN32_WINNT >= 0x0400 */
3976 -
3977 -extern(Windows) export HANDLE FindFirstFileA(
3978 - LPCSTR lpFileName,
3979 - LPWIN32_FIND_DATAA lpFindFileData);
3980 -extern(Windows) export HANDLE FindFirstFileW(
3981 - LPCWSTR lpFileName,
3982 - LPWIN32_FIND_DATAW lpFindFileData);
3983 -// #ifdef UNICODE
3984 -alias FindFirstFileW FindFirstFile;
3985 -// #else
3986 -// #...
3987 -// #endif // !UNICODE
3988 -
3989 -extern(Windows) export BOOL FindNextFileA(
3990 - HANDLE hFindFile,
3991 - LPWIN32_FIND_DATAA lpFindFileData);
3992 -extern(Windows) export BOOL FindNextFileW(
3993 - HANDLE hFindFile,
3994 - LPWIN32_FIND_DATAW lpFindFileData);
3995 -// #ifdef UNICODE
3996 -alias FindNextFileW FindNextFile;
3997 -// #else
3998 -// #...
3999 -// #endif // !UNICODE
4000 -
4001 -extern(Windows) export DWORD SearchPathA(
4002 - LPCSTR lpPath,
4003 - LPCSTR lpFileName,
4004 - LPCSTR lpExtension,
4005 - DWORD nBufferLength,
4006 - LPSTR lpBuffer,
4007 - LPSTR *lpFilePart);
4008 -extern(Windows) export DWORD SearchPathW(
4009 - LPCWSTR lpPath,
4010 - LPCWSTR lpFileName,
4011 - LPCWSTR lpExtension,
4012 - DWORD nBufferLength,
4013 - LPWSTR lpBuffer,
4014 - LPWSTR *lpFilePart);
4015 -// #ifdef UNICODE
4016 -alias SearchPathW SearchPath;
4017 -// #else
4018 -// #...
4019 -// #endif // !UNICODE
4020 -
4021 -extern(Windows) export BOOL CopyFileA(
4022 - LPCSTR lpExistingFileName,
4023 - LPCSTR lpNewFileName,
4024 - BOOL bFailIfExists);
4025 -extern(Windows) export BOOL CopyFileW(
4026 - LPCWSTR lpExistingFileName,
4027 - LPCWSTR lpNewFileName,
4028 - BOOL bFailIfExists);
4029 -// #ifdef UNICODE
4030 -alias CopyFileW CopyFile;
4031 -// #else
4032 -// #...
4033 -// #endif // !UNICODE
4034 -
4035 -// #if(_WIN32_WINNT >= 0x0400)
4036 -extern(Windows) alias DWORD function( LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason, HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData ) LPPROGRESS_ROUTINE;
4037 -
4038 -extern(Windows) export BOOL CopyFileExA(
4039 - LPCSTR lpExistingFileName,
4040 - LPCSTR lpNewFileName,
4041 - LPPROGRESS_ROUTINE lpProgressRoutine ,
4042 - LPVOID lpData ,
4043 - LPBOOL pbCancel ,
4044 - DWORD dwCopyFlags);
4045 -extern(Windows) export BOOL CopyFileExW(
4046 - LPCWSTR lpExistingFileName,
4047 - LPCWSTR lpNewFileName,
4048 - LPPROGRESS_ROUTINE lpProgressRoutine ,
4049 - LPVOID lpData ,
4050 - LPBOOL pbCancel ,
4051 - DWORD dwCopyFlags);
4052 -// #ifdef UNICODE
4053 -alias CopyFileExW CopyFileEx;
4054 -// #else
4055 -// #...
4056 -// #endif // !UNICODE
4057 -// #endif /* _WIN32_WINNT >= 0x0400 */
4058 -
4059 -extern(Windows) export BOOL MoveFileA(
4060 - LPCSTR lpExistingFileName,
4061 - LPCSTR lpNewFileName);
4062 -extern(Windows) export BOOL MoveFileW(
4063 - LPCWSTR lpExistingFileName,
4064 - LPCWSTR lpNewFileName);
4065 -// #ifdef UNICODE
4066 -alias MoveFileW MoveFile;
4067 -// #else
4068 -// #...
4069 -// #endif // !UNICODE
4070 -
4071 -extern(Windows) export BOOL MoveFileExA(
4072 - LPCSTR lpExistingFileName,
4073 - LPCSTR lpNewFileName,
4074 - DWORD dwFlags);
4075 -extern(Windows) export BOOL MoveFileExW(
4076 - LPCWSTR lpExistingFileName,
4077 - LPCWSTR lpNewFileName,
4078 - DWORD dwFlags);
4079 -// #ifdef UNICODE
4080 -alias MoveFileExW MoveFileEx;
4081 -// #else
4082 -// #...
4083 -// #endif // !UNICODE
4084 -
4085 -// #if (_WIN32_WINNT >= 0x0500)
4086 -extern(Windows) export BOOL MoveFileWithProgressA(
4087 - LPCSTR lpExistingFileName,
4088 - LPCSTR lpNewFileName,
4089 - LPPROGRESS_ROUTINE lpProgressRoutine ,
4090 - LPVOID lpData ,
4091 - DWORD dwFlags);
4092 -extern(Windows) export BOOL MoveFileWithProgressW(
4093 - LPCWSTR lpExistingFileName,
4094 - LPCWSTR lpNewFileName,
4095 - LPPROGRESS_ROUTINE lpProgressRoutine ,
4096 - LPVOID lpData ,
4097 - DWORD dwFlags);
4098 -// #ifdef UNICODE
4099 -alias MoveFileWithProgressW MoveFileWithProgress;
4100 -// #else
4101 -// #...
4102 -// #endif // !UNICODE
4103 -// #endif // (_WIN32_WINNT >= 0x0500)
4104 -
4105 -enum : uint { MOVEFILE_REPLACE_EXISTING = 0x00000001 }
4106 -enum : uint { MOVEFILE_COPY_ALLOWED = 0x00000002 }
4107 -enum : uint { MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004 }
4108 -enum : uint { MOVEFILE_WRITE_THROUGH = 0x00000008 }
4109 -// #if (_WIN32_WINNT >= 0x0500)
4110 -enum : uint { MOVEFILE_CREATE_HARDLINK = 0x00000010 }
4111 -enum : uint { MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x00000020 }
4112 -// #endif // (_WIN32_WINNT >= 0x0500)
4113 -
4114 -// #if (_WIN32_WINNT >= 0x0500)
4115 -extern(Windows) export BOOL ReplaceFileA(
4116 - LPCSTR lpReplacedFileName,
4117 - LPCSTR lpReplacementFileName,
4118 - LPCSTR lpBackupFileName,
4119 - DWORD dwReplaceFlags,
4120 - LPVOID lpExclude,
4121 - LPVOID lpReserved);
4122 -extern(Windows) export BOOL ReplaceFileW(
4123 - LPCWSTR lpReplacedFileName,
4124 - LPCWSTR lpReplacementFileName,
4125 - LPCWSTR lpBackupFileName,
4126 - DWORD dwReplaceFlags,
4127 - LPVOID lpExclude,
4128 - LPVOID lpReserved);
4129 -// #ifdef UNICODE
4130 -alias ReplaceFileW ReplaceFile;
4131 -// #else
4132 -// #...
4133 -// #endif // !UNICODE
4134 -// #endif // (_WIN32_WINNT >= 0x0500)
4135 -
4136 -// #if (_WIN32_WINNT >= 0x0500)
4137 -
4138 -extern(Windows) export BOOL CreateHardLinkA(
4139 - LPCSTR lpFileName,
4140 - LPCSTR lpExistingFileName,
4141 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
4142 -extern(Windows) export BOOL CreateHardLinkW(
4143 - LPCWSTR lpFileName,
4144 - LPCWSTR lpExistingFileName,
4145 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
4146 -// #ifdef UNICODE
4147 -alias CreateHardLinkW CreateHardLink;
4148 -// #else
4149 -// #...
4150 -// #endif // !UNICODE
4151 -
4152 -// #endif // (_WIN32_WINNT >= 0x0500)
4153 -
4154 -extern(Windows) export HANDLE CreateNamedPipeA(
4155 - LPCSTR lpName,
4156 - DWORD dwOpenMode,
4157 - DWORD dwPipeMode,
4158 - DWORD nMaxInstances,
4159 - DWORD nOutBufferSize,
4160 - DWORD nInBufferSize,
4161 - DWORD nDefaultTimeOut,
4162 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
4163 -extern(Windows) export HANDLE CreateNamedPipeW(
4164 - LPCWSTR lpName,
4165 - DWORD dwOpenMode,
4166 - DWORD dwPipeMode,
4167 - DWORD nMaxInstances,
4168 - DWORD nOutBufferSize,
4169 - DWORD nInBufferSize,
4170 - DWORD nDefaultTimeOut,
4171 - LPSECURITY_ATTRIBUTES lpSecurityAttributes);
4172 -// #ifdef UNICODE
4173 -alias CreateNamedPipeW CreateNamedPipe;
4174 -// #else
4175 -// #...
4176 -// #endif // !UNICODE
4177 -
4178 -extern(Windows) export BOOL GetNamedPipeHandleStateA(
4179 - HANDLE hNamedPipe,
4180 - LPDWORD lpState,
4181 - LPDWORD lpCurInstances,
4182 - LPDWORD lpMaxCollectionCount,
4183 - LPDWORD lpCollectDataTimeout,
4184 - LPSTR lpUserName,
4185 - DWORD nMaxUserNameSize);
4186 -extern(Windows) export BOOL GetNamedPipeHandleStateW(
4187 - HANDLE hNamedPipe,
4188 - LPDWORD lpState,
4189 - LPDWORD lpCurInstances,
4190 - LPDWORD lpMaxCollectionCount,
4191 - LPDWORD lpCollectDataTimeout,
4192 - LPWSTR lpUserName,
4193 - DWORD nMaxUserNameSize);
4194 -// #ifdef UNICODE
4195 -alias GetNamedPipeHandleStateW GetNamedPipeHandleState;
4196 -// #else
4197 -// #...
4198 -// #endif // !UNICODE
4199 -
4200 -extern(Windows) export BOOL CallNamedPipeA(
4201 - LPCSTR lpNamedPipeName,
4202 - LPVOID lpInBuffer,
4203 - DWORD nInBufferSize,
4204 - LPVOID lpOutBuffer,
4205 - DWORD nOutBufferSize,
4206 - LPDWORD lpBytesRead,
4207 - DWORD nTimeOut);
4208 -extern(Windows) export BOOL CallNamedPipeW(
4209 - LPCWSTR lpNamedPipeName,
4210 - LPVOID lpInBuffer,
4211 - DWORD nInBufferSize,
4212 - LPVOID lpOutBuffer,
4213 - DWORD nOutBufferSize,
4214 - LPDWORD lpBytesRead,
4215 - DWORD nTimeOut);
4216 -// #ifdef UNICODE
4217 -alias CallNamedPipeW CallNamedPipe;
4218 -// #else
4219 -// #...
4220 -// #endif // !UNICODE
4221 -
4222 -extern(Windows) export BOOL WaitNamedPipeA(
4223 - LPCSTR lpNamedPipeName,
4224 - DWORD nTimeOut);
4225 -extern(Windows) export BOOL WaitNamedPipeW(
4226 - LPCWSTR lpNamedPipeName,
4227 - DWORD nTimeOut);
4228 -// #ifdef UNICODE
4229 -alias WaitNamedPipeW WaitNamedPipe;
4230 -// #else
4231 -// #...
4232 -// #endif // !UNICODE
4233 -
4234 -extern(Windows) export BOOL SetVolumeLabelA(
4235 - LPCSTR lpRootPathName,
4236 - LPCSTR lpVolumeName);
4237 -extern(Windows) export BOOL SetVolumeLabelW(
4238 - LPCWSTR lpRootPathName,
4239 - LPCWSTR lpVolumeName);
4240 -// #ifdef UNICODE
4241 -alias SetVolumeLabelW SetVolumeLabel;
4242 -// #else
4243 -// #...
4244 -// #endif // !UNICODE
4245 -
4246 -extern(Windows) export VOID SetFileApisToOEM();
4247 -
4248 -extern(Windows) export VOID SetFileApisToANSI();
4249 -
4250 -extern(Windows) export BOOL AreFileApisANSI();
4251 -
4252 -extern(Windows) export BOOL GetVolumeInformationA(
4253 - LPCSTR lpRootPathName,
4254 - LPSTR lpVolumeNameBuffer,
4255 - DWORD nVolumeNameSize,
4256 - LPDWORD lpVolumeSerialNumber,
4257 - LPDWORD lpMaximumComponentLength,
4258 - LPDWORD lpFileSystemFlags,
4259 - LPSTR lpFileSystemNameBuffer,
4260 - DWORD nFileSystemNameSize);
4261 -extern(Windows) export BOOL GetVolumeInformationW(
4262 - LPCWSTR lpRootPathName,
4263 - LPWSTR lpVolumeNameBuffer,
4264 - DWORD nVolumeNameSize,
4265 - LPDWORD lpVolumeSerialNumber,
4266 - LPDWORD lpMaximumComponentLength,
4267 - LPDWORD lpFileSystemFlags,
4268 - LPWSTR lpFileSystemNameBuffer,
4269 - DWORD nFileSystemNameSize);
4270 -// #ifdef UNICODE
4271 -alias GetVolumeInformationW GetVolumeInformation;
4272 -// #else
4273 -// #...
4274 -// #endif // !UNICODE
4275 -
4276 -extern(Windows) export BOOL CancelIo(
4277 - HANDLE hFile);
4278 -
4279 -extern(Windows) export BOOL ClearEventLogA(
4280 - HANDLE hEventLog,
4281 - LPCSTR lpBackupFileName);
4282 -extern(Windows) export BOOL ClearEventLogW(
4283 - HANDLE hEventLog,
4284 - LPCWSTR lpBackupFileName);
4285 -// #ifdef UNICODE
4286 -alias ClearEventLogW ClearEventLog;
4287 -// #else
4288 -// #...
4289 -// #endif // !UNICODE
4290 -
4291 -extern(Windows) export BOOL BackupEventLogA(
4292 - HANDLE hEventLog,
4293 - LPCSTR lpBackupFileName);
4294 -extern(Windows) export BOOL BackupEventLogW(
4295 - HANDLE hEventLog,
4296 - LPCWSTR lpBackupFileName);
4297 -// #ifdef UNICODE
4298 -alias BackupEventLogW BackupEventLog;
4299 -// #else
4300 -// #...
4301 -// #endif // !UNICODE
4302 -
4303 -extern(Windows) export BOOL CloseEventLog(
4304 - HANDLE hEventLog);
4305 -
4306 -extern(Windows) export BOOL DeregisterEventSource(
4307 - HANDLE hEventLog);
4308 -
4309 -extern(Windows) export BOOL NotifyChangeEventLog(
4310 - HANDLE hEventLog,
4311 - HANDLE hEvent);
4312 -
4313 -extern(Windows) export BOOL GetNumberOfEventLogRecords(
4314 - HANDLE hEventLog,
4315 - PDWORD NumberOfRecords);
4316 -
4317 -extern(Windows) export BOOL GetOldestEventLogRecord(
4318 - HANDLE hEventLog,
4319 - PDWORD OldestRecord);
4320 -
4321 -extern(Windows) export HANDLE OpenEventLogA(
4322 - LPCSTR lpUNCServerName,
4323 - LPCSTR lpSourceName);
4324 -extern(Windows) export HANDLE OpenEventLogW(
4325 - LPCWSTR lpUNCServerName,
4326 - LPCWSTR lpSourceName);
4327 -// #ifdef UNICODE
4328 -alias OpenEventLogW OpenEventLog;
4329 -// #else
4330 -// #...
4331 -// #endif // !UNICODE
4332 -
4333 -extern(Windows) export HANDLE RegisterEventSourceA(
4334 - LPCSTR lpUNCServerName,
4335 - LPCSTR lpSourceName);
4336 -extern(Windows) export HANDLE RegisterEventSourceW(
4337 - LPCWSTR lpUNCServerName,
4338 - LPCWSTR lpSourceName);
4339 -// #ifdef UNICODE
4340 -alias RegisterEventSourceW RegisterEventSource;
4341 -// #else
4342 -// #...
4343 -// #endif // !UNICODE
4344 -
4345 -extern(Windows) export HANDLE OpenBackupEventLogA(
4346 - LPCSTR lpUNCServerName,
4347 - LPCSTR lpFileName);
4348 -extern(Windows) export HANDLE OpenBackupEventLogW(
4349 - LPCWSTR lpUNCServerName,
4350 - LPCWSTR lpFileName);
4351 -// #ifdef UNICODE
4352 -alias OpenBackupEventLogW OpenBackupEventLog;
4353 -// #else
4354 -// #...
4355 -// #endif // !UNICODE
4356 -
4357 -extern(Windows) export BOOL ReadEventLogA(
4358 - HANDLE hEventLog,
4359 - DWORD dwReadFlags,
4360 - DWORD dwRecordOffset,
4361 - LPVOID lpBuffer,
4362 - DWORD nNumberOfBytesToRead,
4363 - DWORD *pnBytesRead,
4364 - DWORD *pnMinNumberOfBytesNeeded);
4365 -extern(Windows) export BOOL ReadEventLogW(
4366 - HANDLE hEventLog,
4367 - DWORD dwReadFlags,
4368 - DWORD dwRecordOffset,
4369 - LPVOID lpBuffer,
4370 - DWORD nNumberOfBytesToRead,
4371 - DWORD *pnBytesRead,
4372 - DWORD *pnMinNumberOfBytesNeeded);
4373 -// #ifdef UNICODE
4374 -alias ReadEventLogW ReadEventLog;
4375 -// #else
4376 -// #...
4377 -// #endif // !UNICODE
4378 -
4379 -extern(Windows) export BOOL ReportEventA(
4380 - HANDLE hEventLog,
4381 - WORD wType,
4382 - WORD wCategory,
4383 - DWORD dwEventID,
4384 - PSID lpUserSid,
4385 - WORD wNumStrings,
4386 - DWORD dwDataSize,
4387 - LPCSTR *lpStrings,
4388 - LPVOID lpRawData);
4389 -extern(Windows) export BOOL ReportEventW(
4390 - HANDLE hEventLog,
4391 - WORD wType,
4392 - WORD wCategory,
4393 - DWORD dwEventID,
4394 - PSID lpUserSid,
4395 - WORD wNumStrings,
4396 - DWORD dwDataSize,
4397 - LPCWSTR *lpStrings,
4398 - LPVOID lpRawData);
4399 -// #ifdef UNICODE
4400 -alias ReportEventW ReportEvent;
4401 -// #else
4402 -// #...
4403 -// #endif // !UNICODE
4404 -
4405 -enum : uint { EVENTLOG_FULL_INFO = 0 }
4406 -
4407 -struct _EVENTLOG_FULL_INFORMATION {
4408 - DWORD dwFull;
4409 -}
4410 -alias _EVENTLOG_FULL_INFORMATION EVENTLOG_FULL_INFORMATION;
4411 -alias _EVENTLOG_FULL_INFORMATION* LPEVENTLOG_FULL_INFORMATION;
4412 -
4413 -extern(Windows) export BOOL GetEventLogInformation(
4414 - HANDLE hEventLog,
4415 - DWORD dwInfoLevel,
4416 - LPVOID lpBuffer,
4417 - DWORD cbBufSize,
4418 - LPDWORD pcbBytesNeeded);
4419 -
4420 -extern(Windows) export BOOL DuplicateToken(
4421 - HANDLE ExistingTokenHandle,
4422 - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
4423 - PHANDLE DuplicateTokenHandle);
4424 -
4425 -extern(Windows) export BOOL GetKernelObjectSecurity(
4426 - HANDLE Handle,
4427 - SECURITY_INFORMATION RequestedInformation,
4428 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
4429 - DWORD nLength,
4430 - LPDWORD lpnLengthNeeded);
4431 -
4432 -extern(Windows) export BOOL ImpersonateNamedPipeClient(
4433 - HANDLE hNamedPipe);
4434 -
4435 -extern(Windows) export BOOL ImpersonateSelf(
4436 - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel);
4437 -
4438 -extern(Windows) export BOOL RevertToSelf();
4439 -
4440 -extern(Windows) export BOOL SetThreadToken(
4441 - PHANDLE Thread,
4442 - HANDLE Token);
4443 -
4444 -extern(Windows) export BOOL AccessCheck(
4445 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
4446 - HANDLE ClientToken,
4447 - DWORD DesiredAccess,
4448 - PGENERIC_MAPPING GenericMapping,
4449 - PPRIVILEGE_SET PrivilegeSet,
4450 - LPDWORD PrivilegeSetLength,
4451 - LPDWORD GrantedAccess,
4452 - LPBOOL AccessStatus);
4453 -
4454 -// #if(_WIN32_WINNT >= 0x0500)
4455 -extern(Windows) export BOOL AccessCheckByType(
4456 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
4457 - PSID PrincipalSelfSid,
4458 - HANDLE ClientToken,
4459 - DWORD DesiredAccess,
4460 - POBJECT_TYPE_LIST ObjectTypeList,
4461 - DWORD ObjectTypeListLength,
4462 - PGENERIC_MAPPING GenericMapping,
4463 - PPRIVILEGE_SET PrivilegeSet,
4464 - LPDWORD PrivilegeSetLength,
4465 - LPDWORD GrantedAccess,
4466 - LPBOOL AccessStatus);
4467 -
4468 -extern(Windows) export BOOL AccessCheckByTypeResultList(
4469 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
4470 - PSID PrincipalSelfSid,
4471 - HANDLE ClientToken,
4472 - DWORD DesiredAccess,
4473 - POBJECT_TYPE_LIST ObjectTypeList,
4474 - DWORD ObjectTypeListLength,
4475 - PGENERIC_MAPPING GenericMapping,
4476 - PPRIVILEGE_SET PrivilegeSet,
4477 - LPDWORD PrivilegeSetLength,
4478 - LPDWORD GrantedAccessList,
4479 - LPDWORD AccessStatusList);
4480 -// #endif /* _WIN32_WINNT >= 0x0500 */
4481 -
4482 -extern(Windows) export BOOL OpenProcessToken(
4483 - HANDLE ProcessHandle,
4484 - DWORD DesiredAccess,
4485 - PHANDLE TokenHandle);
4486 -
4487 -extern(Windows) export BOOL OpenThreadToken(
4488 - HANDLE ThreadHandle,
4489 - DWORD DesiredAccess,
4490 - BOOL OpenAsSelf,
4491 - PHANDLE TokenHandle);
4492 -
4493 -extern(Windows) export BOOL GetTokenInformation(
4494 - HANDLE TokenHandle,
4495 - TOKEN_INFORMATION_CLASS TokenInformationClass,
4496 - LPVOID TokenInformation,
4497 - DWORD TokenInformationLength,
4498 - PDWORD ReturnLength);
4499 -
4500 -extern(Windows) export BOOL SetTokenInformation(
4501 - HANDLE TokenHandle,
4502 - TOKEN_INFORMATION_CLASS TokenInformationClass,
4503 - LPVOID TokenInformation,
4504 - DWORD TokenInformationLength);
4505 -
4506 -extern(Windows) export BOOL AdjustTokenPrivileges(
4507 - HANDLE TokenHandle,
4508 - BOOL DisableAllPrivileges,
4509 - PTOKEN_PRIVILEGES NewState,
4510 - DWORD BufferLength,
4511 - PTOKEN_PRIVILEGES PreviousState,
4512 - PDWORD ReturnLength);
4513 -
4514 -extern(Windows) export BOOL AdjustTokenGroups(
4515 - HANDLE TokenHandle,
4516 - BOOL ResetToDefault,
4517 - PTOKEN_GROUPS NewState,
4518 - DWORD BufferLength,
4519 - PTOKEN_GROUPS PreviousState,
4520 - PDWORD ReturnLength);
4521 -
4522 -extern(Windows) export BOOL PrivilegeCheck(
4523 - HANDLE ClientToken,
4524 - PPRIVILEGE_SET RequiredPrivileges,
4525 - LPBOOL pfResult);
4526 -
4527 -extern(Windows) export BOOL AccessCheckAndAuditAlarmA(
4528 - LPCSTR SubsystemName,
4529 - LPVOID HandleId,
4530 - LPSTR ObjectTypeName,
4531 - LPSTR ObjectName,
4532 - PSECURITY_DESCRIPTOR SecurityDescriptor,
4533 - DWORD DesiredAccess,
4534 - PGENERIC_MAPPING GenericMapping,
4535 - BOOL ObjectCreation,
4536 - LPDWORD GrantedAccess,
4537 - LPBOOL AccessStatus,
4538 - LPBOOL pfGenerateOnClose);
4539 -extern(Windows) export BOOL AccessCheckAndAuditAlarmW(
4540 - LPCWSTR SubsystemName,
4541 - LPVOID HandleId,
4542 - LPWSTR ObjectTypeName,
4543 - LPWSTR ObjectName,
4544 - PSECURITY_DESCRIPTOR SecurityDescriptor,
4545 - DWORD DesiredAccess,
4546 - PGENERIC_MAPPING GenericMapping,
4547 - BOOL ObjectCreation,
4548 - LPDWORD GrantedAccess,
4549 - LPBOOL AccessStatus,
4550 - LPBOOL pfGenerateOnClose);
4551 -// #ifdef UNICODE
4552 -alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm;
4553 -// #else
4554 -// #...
4555 -// #endif // !UNICODE
4556 -
4557 -// #if(_WIN32_WINNT >= 0x0500)
4558 -
4559 -extern(Windows) export BOOL AccessCheckByTypeAndAuditAlarmA(
4560 - LPCSTR SubsystemName,
4561 - LPVOID HandleId,
4562 - LPCSTR ObjectTypeName,
4563 - LPCSTR ObjectName,
4564 - PSECURITY_DESCRIPTOR SecurityDescriptor,
4565 - PSID PrincipalSelfSid,
4566 - DWORD DesiredAccess,
4567 - AUDIT_EVENT_TYPE AuditType,
4568 - DWORD Flags,
4569 - POBJECT_TYPE_LIST ObjectTypeList,
4570 - DWORD ObjectTypeListLength,
4571 - PGENERIC_MAPPING GenericMapping,
4572 - BOOL ObjectCreation,
4573 - LPDWORD GrantedAccess,
4574 - LPBOOL AccessStatus,
4575 - LPBOOL pfGenerateOnClose);
4576 -extern(Windows) export BOOL AccessCheckByTypeAndAuditAlarmW(
4577 - LPCWSTR SubsystemName,
4578 - LPVOID HandleId,
4579 - LPCWSTR ObjectTypeName,
4580 - LPCWSTR ObjectName,
4581 - PSECURITY_DESCRIPTOR SecurityDescriptor,
4582 - PSID PrincipalSelfSid,
4583 - DWORD DesiredAccess,
4584 - AUDIT_EVENT_TYPE AuditType,
4585 - DWORD Flags,
4586 - POBJECT_TYPE_LIST ObjectTypeList,
4587 - DWORD ObjectTypeListLength,
4588 - PGENERIC_MAPPING GenericMapping,
4589 - BOOL ObjectCreation,
4590 - LPDWORD GrantedAccess,
4591 - LPBOOL AccessStatus,
4592 - LPBOOL pfGenerateOnClose);
4593 -// #ifdef UNICODE
4594 -alias AccessCheckByTypeAndAuditAlarmW AccessCheckByTypeAndAuditAlarm;
4595 -// #else
4596 -// #...
4597 -// #endif // !UNICODE
4598 -
4599 -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmA(
4600 - LPCSTR SubsystemName,
4601 - LPVOID HandleId,
4602 - LPCSTR ObjectTypeName,
4603 - LPCSTR ObjectName,
4604 - PSECURITY_DESCRIPTOR SecurityDescriptor,
4605 - PSID PrincipalSelfSid,
4606 - DWORD DesiredAccess,
4607 - AUDIT_EVENT_TYPE AuditType,
4608 - DWORD Flags,
4609 - POBJECT_TYPE_LIST ObjectTypeList,
4610 - DWORD ObjectTypeListLength,
4611 - PGENERIC_MAPPING GenericMapping,
4612 - BOOL ObjectCreation,
4613 - LPDWORD GrantedAccess,
4614 - LPDWORD AccessStatusList,
4615 - LPBOOL pfGenerateOnClose);
4616 -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmW(
4617 - LPCWSTR SubsystemName,
4618 - LPVOID HandleId,
4619 - LPCWSTR ObjectTypeName,
4620 - LPCWSTR ObjectName,
4621 - PSECURITY_DESCRIPTOR SecurityDescriptor,
4622 - PSID PrincipalSelfSid,
4623 - DWORD DesiredAccess,
4624 - AUDIT_EVENT_TYPE AuditType,
4625 - DWORD Flags,
4626 - POBJECT_TYPE_LIST ObjectTypeList,
4627 - DWORD ObjectTypeListLength,
4628 - PGENERIC_MAPPING GenericMapping,
4629 - BOOL ObjectCreation,
4630 - LPDWORD GrantedAccess,
4631 - LPDWORD AccessStatusList,
4632 - LPBOOL pfGenerateOnClose);
4633 -// #ifdef UNICODE
4634 -alias AccessCheckByTypeResultListAndAuditAlarmW AccessCheckByTypeResultListAndAuditAlarm;
4635 -// #else
4636 -// #...
4637 -// #endif // !UNICODE
4638 -
4639 -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmByHandleA(
4640 - LPCSTR SubsystemName,
4641 - LPVOID HandleId,
4642 - HANDLE ClientToken,
4643 - LPCSTR ObjectTypeName,
4644 - LPCSTR ObjectName,
4645 - PSECURITY_DESCRIPTOR SecurityDescriptor,
4646 - PSID PrincipalSelfSid,
4647 - DWORD DesiredAccess,
4648 - AUDIT_EVENT_TYPE AuditType,
4649 - DWORD Flags,
4650 - POBJECT_TYPE_LIST ObjectTypeList,
4651 - DWORD ObjectTypeListLength,
4652 - PGENERIC_MAPPING GenericMapping,
4653 - BOOL ObjectCreation,
4654 - LPDWORD GrantedAccess,
4655 - LPDWORD AccessStatusList,
4656 - LPBOOL pfGenerateOnClose);
4657 -extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmByHandleW(
4658 - LPCWSTR SubsystemName,
4659 - LPVOID HandleId,
4660 - HANDLE ClientToken,
4661 - LPCWSTR ObjectTypeName,
4662 - LPCWSTR ObjectName,
4663 - PSECURITY_DESCRIPTOR SecurityDescriptor,
4664 - PSID PrincipalSelfSid,
4665 - DWORD DesiredAccess,
4666 - AUDIT_EVENT_TYPE AuditType,
4667 - DWORD Flags,
4668 - POBJECT_TYPE_LIST ObjectTypeList,
4669 - DWORD ObjectTypeListLength,
4670 - PGENERIC_MAPPING GenericMapping,
4671 - BOOL ObjectCreation,
4672 - LPDWORD GrantedAccess,
4673 - LPDWORD AccessStatusList,
4674 - LPBOOL pfGenerateOnClose);
4675 -// #ifdef UNICODE
4676 -alias AccessCheckByTypeResultListAndAuditAlarmByHandleW AccessCheckByTypeResultListAndAuditAlarmByHandle;
4677 -// #else
4678 -// #...
4679 -// #endif // !UNICODE
4680 -
4681 -// #endif //(_WIN32_WINNT >= 0x0500)
4682 -
4683 -extern(Windows) export BOOL ObjectOpenAuditAlarmA(
4684 - LPCSTR SubsystemName,
4685 - LPVOID HandleId,
4686 - LPSTR ObjectTypeName,
4687 - LPSTR ObjectName,
4688 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
4689 - HANDLE ClientToken,
4690 - DWORD DesiredAccess,
4691 - DWORD GrantedAccess,
4692 - PPRIVILEGE_SET Privileges,
4693 - BOOL ObjectCreation,
4694 - BOOL AccessGranted,
4695 - LPBOOL GenerateOnClose);
4696 -extern(Windows) export BOOL ObjectOpenAuditAlarmW(
4697 - LPCWSTR SubsystemName,
4698 - LPVOID HandleId,
4699 - LPWSTR ObjectTypeName,
4700 - LPWSTR ObjectName,
4701 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
4702 - HANDLE ClientToken,
4703 - DWORD DesiredAccess,
4704 - DWORD GrantedAccess,
4705 - PPRIVILEGE_SET Privileges,
4706 - BOOL ObjectCreation,
4707 - BOOL AccessGranted,
4708 - LPBOOL GenerateOnClose);
4709 -// #ifdef UNICODE
4710 -alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm;
4711 -// #else
4712 -// #...
4713 -// #endif // !UNICODE
4714 -
4715 -extern(Windows) export BOOL ObjectPrivilegeAuditAlarmA(
4716 - LPCSTR SubsystemName,
4717 - LPVOID HandleId,
4718 - HANDLE ClientToken,
4719 - DWORD DesiredAccess,
4720 - PPRIVILEGE_SET Privileges,
4721 - BOOL AccessGranted);
4722 -extern(Windows) export BOOL ObjectPrivilegeAuditAlarmW(
4723 - LPCWSTR SubsystemName,
4724 - LPVOID HandleId,
4725 - HANDLE ClientToken,
4726 - DWORD DesiredAccess,
4727 - PPRIVILEGE_SET Privileges,
4728 - BOOL AccessGranted);
4729 -// #ifdef UNICODE
4730 -alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm;
4731 -// #else
4732 -// #...
4733 -// #endif // !UNICODE
4734 -
4735 -extern(Windows) export BOOL ObjectCloseAuditAlarmA(
4736 - LPCSTR SubsystemName,
4737 - LPVOID HandleId,
4738 - BOOL GenerateOnClose);
4739 -extern(Windows) export BOOL ObjectCloseAuditAlarmW(
4740 - LPCWSTR SubsystemName,
4741 - LPVOID HandleId,
4742 - BOOL GenerateOnClose);
4743 -// #ifdef UNICODE
4744 -alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm;
4745 -// #else
4746 -// #...
4747 -// #endif // !UNICODE
4748 -
4749 -extern(Windows) export BOOL ObjectDeleteAuditAlarmA(
4750 - LPCSTR SubsystemName,
4751 - LPVOID HandleId,
4752 - BOOL GenerateOnClose);
4753 -extern(Windows) export BOOL ObjectDeleteAuditAlarmW(
4754 - LPCWSTR SubsystemName,
4755 - LPVOID HandleId,
4756 - BOOL GenerateOnClose);
4757 -// #ifdef UNICODE
4758 -alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm;
4759 -// #else
4760 -// #...
4761 -// #endif // !UNICODE
4762 -
4763 -extern(Windows) export BOOL PrivilegedServiceAuditAlarmA(
4764 - LPCSTR SubsystemName,
4765 - LPCSTR ServiceName,
4766 - HANDLE ClientToken,
4767 - PPRIVILEGE_SET Privileges,
4768 - BOOL AccessGranted);
4769 -extern(Windows) export BOOL PrivilegedServiceAuditAlarmW(
4770 - LPCWSTR SubsystemName,
4771 - LPCWSTR ServiceName,
4772 - HANDLE ClientToken,
4773 - PPRIVILEGE_SET Privileges,
4774 - BOOL AccessGranted);
4775 -// #ifdef UNICODE
4776 -alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm;
4777 -// #else
4778 -// #...
4779 -// #endif // !UNICODE
4780 -
4781 -// #if(_WIN32_WINNT >= 0x0501)
4782 -
4783 -enum _0 {
4784 -
4785 - WinNullSid = 0,
4786 - WinWorldSid = 1,
4787 - WinLocalSid = 2,
4788 - WinCreatorOwnerSid = 3,
4789 - WinCreatorGroupSid = 4,
4790 - WinCreatorOwnerServerSid = 5,
4791 - WinCreatorGroupServerSid = 6,
4792 - WinNtAuthoritySid = 7,
4793 - WinDialupSid = 8,
4794 - WinNetworkSid = 9,
4795 - WinBatchSid = 10,
4796 - WinInteractiveSid = 11,
4797 - WinServiceSid = 12,
4798 - WinAnonymousSid = 13,
4799 - WinProxySid = 14,
4800 - WinEnterpriseControllersSid = 15,
4801 - WinSelfSid = 16,
4802 - WinAuthenticatedUserSid = 17,
4803 - WinRestrictedCodeSid = 18,
4804 - WinTerminalServerSid = 19,
4805 - WinRemoteLogonIdSid = 20,
4806 - WinLogonIdsSid = 21,
4807 - WinLocalSystemSid = 22,
4808 - WinLocalServiceSid = 23,
4809 - WinNetworkServiceSid = 24,
4810 - WinBuiltinDomainSid = 25,
4811 - WinBuiltinAdministratorsSid = 26,
4812 - WinBuiltinUsersSid = 27,
4813 - WinBuiltinGuestsSid = 28,
4814 - WinBuiltinPowerUsersSid = 29,
4815 - WinBuiltinAccountOperatorsSid = 30,
4816 - WinBuiltinSystemOperatorsSid = 31,
4817 - WinBuiltinPrintOperatorsSid = 32,
4818 - WinBuiltinBackupOperatorsSid = 33,
4819 - WinBuiltinReplicatorSid = 34,
4820 - WinBuiltinPreWindows2000CompatibleAccessSid = 35,
4821 - WinBuiltinRemoteDesktopUsersSid = 36,
4822 - WinBuiltinNetworkConfigurationOperatorsSid = 37,
4823 - WinAccountAdministratorSid = 38,
4824 - WinAccountGuestSid = 39,
4825 - WinAccountKrbtgtSid = 40,
4826 - WinAccountDomainAdminsSid = 41,
4827 - WinAccountDomainUsersSid = 42,
4828 - WinAccountDomainGuestsSid = 43,
4829 - WinAccountComputersSid = 44,
4830 - WinAccountControllersSid = 45,
4831 - WinAccountCertAdminsSid = 46,
4832 - WinAccountSchemaAdminsSid = 47,
4833 - WinAccountEnterpriseAdminsSid = 48,
4834 - WinAccountPolicyAdminsSid = 49,
4835 - WinAccountRasAndIasServersSid = 50,
4836 -
4837 -}
4838 -alias _0 WELL_KNOWN_SID_TYPE;
4839 -
4840 -extern(Windows) export BOOL IsWellKnownSid(
4841 - PSID pSid,
4842 - WELL_KNOWN_SID_TYPE WellKnownSidType);
4843 -
4844 -extern(Windows) export BOOL CreateWellKnownSid(
4845 - WELL_KNOWN_SID_TYPE WellKnownSidType,
4846 - PSID DomainSid ,
4847 - PSID pSid,
4848 - DWORD *cbSid);
4849 -
4850 -extern(Windows) export BOOL EqualDomainSid(
4851 - PSID pSid1,
4852 - PSID pSid2,
4853 - BOOL *pfEqual);
4854 -
4855 -extern(Windows) export BOOL GetWindowsAccountDomainSid(
4856 - PSID pSid,
4857 - PSID ppDomainSid ,
4858 - DWORD *cbSid);
4859 -
4860 -// #endif //(_WIN32_WINNT >= 0x0501)
4861 -
4862 -extern(Windows) export BOOL IsValidSid(
4863 - PSID pSid);
4864 -
4865 -extern(Windows) export BOOL EqualSid(
4866 - PSID pSid1,
4867 - PSID pSid2);
4868 -
4869 -extern(Windows) export BOOL EqualPrefixSid(
4870 - PSID pSid1,
4871 - PSID pSid2);
4872 -
4873 -extern(Windows) export DWORD GetSidLengthRequired(
4874 - UCHAR nSubAuthorityCount);
4875 -
4876 -extern(Windows) export BOOL AllocateAndInitializeSid(
4877 - PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
4878 - BYTE nSubAuthorityCount,
4879 - DWORD nSubAuthority0,
4880 - DWORD nSubAuthority1,
4881 - DWORD nSubAuthority2,
4882 - DWORD nSubAuthority3,
4883 - DWORD nSubAuthority4,
4884 - DWORD nSubAuthority5,
4885 - DWORD nSubAuthority6,
4886 - DWORD nSubAuthority7,
4887 - PSID *pSid);
4888 -
4889 -extern(Windows) export PVOID FreeSid(
4890 - PSID pSid);
4891 -
4892 -extern(Windows) export BOOL InitializeSid(
4893 - PSID Sid,
4894 - PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
4895 - BYTE nSubAuthorityCount);
4896 -
4897 -extern(Windows) export PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(
4898 - PSID pSid);
4899 -
4900 -extern(Windows) export PDWORD GetSidSubAuthority(
4901 - PSID pSid,
4902 - DWORD nSubAuthority);
4903 -
4904 -extern(Windows) export PUCHAR GetSidSubAuthorityCount(
4905 - PSID pSid);
4906 -
4907 -extern(Windows) export DWORD GetLengthSid(
4908 - PSID pSid);
4909 -
4910 -extern(Windows) export BOOL CopySid(
4911 - DWORD nDestinationSidLength,
4912 - PSID pDestinationSid,
4913 - PSID pSourceSid);
4914 -
4915 -extern(Windows) export BOOL AreAllAccessesGranted(
4916 - DWORD GrantedAccess,
4917 - DWORD DesiredAccess);
4918 -
4919 -extern(Windows) export BOOL AreAnyAccessesGranted(
4920 - DWORD GrantedAccess,
4921 - DWORD DesiredAccess);
4922 -
4923 -extern(Windows) export VOID MapGenericMask(
4924 - PDWORD AccessMask,
4925 - PGENERIC_MAPPING GenericMapping);
4926 -
4927 -extern(Windows) export BOOL IsValidAcl(
4928 - PACL pAcl);
4929 -
4930 -extern(Windows) export BOOL InitializeAcl(
4931 - PACL pAcl,
4932 - DWORD nAclLength,
4933 - DWORD dwAclRevision);
4934 -
4935 -extern(Windows) export BOOL GetAclInformation(
4936 - PACL pAcl,
4937 - LPVOID pAclInformation,
4938 - DWORD nAclInformationLength,
4939 - ACL_INFORMATION_CLASS dwAclInformationClass);
4940 -
4941 -extern(Windows) export BOOL SetAclInformation(
4942 - PACL pAcl,
4943 - LPVOID pAclInformation,
4944 - DWORD nAclInformationLength,
4945 - ACL_INFORMATION_CLASS dwAclInformationClass);
4946 -
4947 -extern(Windows) export BOOL AddAce(
4948 - PACL pAcl,
4949 - DWORD dwAceRevision,
4950 - DWORD dwStartingAceIndex,
4951 - LPVOID pAceList,
4952 - DWORD nAceListLength);
4953 -
4954 -extern(Windows) export BOOL DeleteAce(
4955 - PACL pAcl,
4956 - DWORD dwAceIndex);
4957 -
4958 -extern(Windows) export BOOL GetAce(
4959 - PACL pAcl,
4960 - DWORD dwAceIndex,
4961 - LPVOID *pAce);
4962 -
4963 -extern(Windows) export BOOL AddAccessAllowedAce(
4964 - PACL pAcl,
4965 - DWORD dwAceRevision,
4966 - DWORD AccessMask,
4967 - PSID pSid);
4968 -
4969 -// #if(_WIN32_WINNT >= 0x0500)
4970 -extern(Windows) export BOOL AddAccessAllowedAceEx(
4971 - PACL pAcl,
4972 - DWORD dwAceRevision,
4973 - DWORD AceFlags,
4974 - DWORD AccessMask,
4975 - PSID pSid);
4976 -// #endif /* _WIN32_WINNT >= 0x0500 */
4977 -
4978 -extern(Windows) export BOOL AddAccessDeniedAce(
4979 - PACL pAcl,
4980 - DWORD dwAceRevision,
4981 - DWORD AccessMask,
4982 - PSID pSid);
4983 -
4984 -// #if(_WIN32_WINNT >= 0x0500)
4985 -extern(Windows) export BOOL AddAccessDeniedAceEx(
4986 - PACL pAcl,
4987 - DWORD dwAceRevision,
4988 - DWORD AceFlags,
4989 - DWORD AccessMask,
4990 - PSID pSid);
4991 -// #endif /* _WIN32_WINNT >= 0x0500 */
4992 -
4993 -extern(Windows) export BOOL AddAuditAccessAce(
4994 - PACL pAcl,
4995 - DWORD dwAceRevision,
4996 - DWORD dwAccessMask,
4997 - PSID pSid,
4998 - BOOL bAuditSuccess,
4999 - BOOL bAuditFailure);
5000 -
5001 -// #if(_WIN32_WINNT >= 0x0500)
5002 -extern(Windows) export BOOL AddAuditAccessAceEx(
5003 - PACL pAcl,
5004 - DWORD dwAceRevision,
5005 - DWORD AceFlags,
5006 - DWORD dwAccessMask,
5007 - PSID pSid,
5008 - BOOL bAuditSuccess,
5009 - BOOL bAuditFailure);
5010 -
5011 -extern(Windows) export BOOL AddAccessAllowedObjectAce(
5012 - PACL pAcl,
5013 - DWORD dwAceRevision,
5014 - DWORD AceFlags,
5015 - DWORD AccessMask,
5016 - GUID *ObjectTypeGuid,
5017 - GUID *InheritedObjectTypeGuid,
5018 - PSID pSid);
5019 -
5020 -extern(Windows) export BOOL AddAccessDeniedObjectAce(
5021 - PACL pAcl,
5022 - DWORD dwAceRevision,
5023 - DWORD AceFlags,
5024 - DWORD AccessMask,
5025 - GUID *ObjectTypeGuid,
5026 - GUID *InheritedObjectTypeGuid,
5027 - PSID pSid);
5028 -
5029 -extern(Windows) export BOOL AddAuditAccessObjectAce(
5030 - PACL pAcl,
5031 - DWORD dwAceRevision,
5032 - DWORD AceFlags,
5033 - DWORD AccessMask,
5034 - GUID *ObjectTypeGuid,
5035 - GUID *InheritedObjectTypeGuid,
5036 - PSID pSid,
5037 - BOOL bAuditSuccess,
5038 - BOOL bAuditFailure);
5039 -// #endif /* _WIN32_WINNT >= 0x0500 */
5040 -
5041 -extern(Windows) export BOOL FindFirstFreeAce(
5042 - PACL pAcl,
5043 - LPVOID *pAce);
5044 -
5045 -extern(Windows) export BOOL InitializeSecurityDescriptor(
5046 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5047 - DWORD dwRevision);
5048 -
5049 -extern(Windows) export BOOL IsValidSecurityDescriptor(
5050 - PSECURITY_DESCRIPTOR pSecurityDescriptor);
5051 -
5052 -extern(Windows) export DWORD GetSecurityDescriptorLength(
5053 - PSECURITY_DESCRIPTOR pSecurityDescriptor);
5054 -
5055 -extern(Windows) export BOOL GetSecurityDescriptorControl(
5056 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5057 - PSECURITY_DESCRIPTOR_CONTROL pControl,
5058 - LPDWORD lpdwRevision);
5059 -
5060 -// #if(_WIN32_WINNT >= 0x0500)
5061 -extern(Windows) export BOOL SetSecurityDescriptorControl(
5062 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5063 - SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
5064 - SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet);
5065 -// #endif /* _WIN32_WINNT >= 0x0500 */
5066 -
5067 -extern(Windows) export BOOL SetSecurityDescriptorDacl(
5068 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5069 - BOOL bDaclPresent,
5070 - PACL pDacl,
5071 - BOOL bDaclDefaulted);
5072 -
5073 -extern(Windows) export BOOL GetSecurityDescriptorDacl(
5074 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5075 - LPBOOL lpbDaclPresent,
5076 - PACL *pDacl,
5077 - LPBOOL lpbDaclDefaulted);
5078 -
5079 -extern(Windows) export BOOL SetSecurityDescriptorSacl(
5080 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5081 - BOOL bSaclPresent,
5082 - PACL pSacl,
5083 - BOOL bSaclDefaulted);
5084 -
5085 -extern(Windows) export BOOL GetSecurityDescriptorSacl(
5086 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5087 - LPBOOL lpbSaclPresent,
5088 - PACL *pSacl,
5089 - LPBOOL lpbSaclDefaulted);
5090 -
5091 -extern(Windows) export BOOL SetSecurityDescriptorOwner(
5092 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5093 - PSID pOwner,
5094 - BOOL bOwnerDefaulted);
5095 -
5096 -extern(Windows) export BOOL GetSecurityDescriptorOwner(
5097 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5098 - PSID *pOwner,
5099 - LPBOOL lpbOwnerDefaulted);
5100 -
5101 -extern(Windows) export BOOL SetSecurityDescriptorGroup(
5102 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5103 - PSID pGroup,
5104 - BOOL bGroupDefaulted);
5105 -
5106 -extern(Windows) export BOOL GetSecurityDescriptorGroup(
5107 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5108 - PSID *pGroup,
5109 - LPBOOL lpbGroupDefaulted);
5110 -
5111 -extern(Windows) export DWORD SetSecurityDescriptorRMControl(
5112 - PSECURITY_DESCRIPTOR SecurityDescriptor,
5113 - PUCHAR RMControl );
5114 -
5115 -extern(Windows) export DWORD GetSecurityDescriptorRMControl(
5116 - PSECURITY_DESCRIPTOR SecurityDescriptor,
5117 - PUCHAR RMControl);
5118 -
5119 -extern(Windows) export BOOL CreatePrivateObjectSecurity(
5120 - PSECURITY_DESCRIPTOR ParentDescriptor,
5121 - PSECURITY_DESCRIPTOR CreatorDescriptor,
5122 - PSECURITY_DESCRIPTOR * NewDescriptor,
5123 - BOOL IsDirectoryObject,
5124 - HANDLE Token,
5125 - PGENERIC_MAPPING GenericMapping);
5126 -
5127 -// #if(_WIN32_WINNT >= 0x0500)
5128 -extern(Windows) export BOOL ConvertToAutoInheritPrivateObjectSecurity(
5129 - PSECURITY_DESCRIPTOR ParentDescriptor,
5130 - PSECURITY_DESCRIPTOR CurrentSecurityDescriptor,
5131 - PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
5132 - GUID *ObjectType,
5133 - BOOLEAN IsDirectoryObject,
5134 - PGENERIC_MAPPING GenericMapping);
5135 -
5136 -extern(Windows) export BOOL CreatePrivateObjectSecurityEx(
5137 - PSECURITY_DESCRIPTOR ParentDescriptor,
5138 - PSECURITY_DESCRIPTOR CreatorDescriptor,
5139 - PSECURITY_DESCRIPTOR * NewDescriptor,
5140 - GUID *ObjectType ,
5141 - BOOL IsContainerObject,
5142 - ULONG AutoInheritFlags,
5143 - HANDLE Token,
5144 - PGENERIC_MAPPING GenericMapping);
5145 -
5146 -extern(Windows) export BOOL CreatePrivateObjectSecurityWithMultipleInheritance(
5147 - PSECURITY_DESCRIPTOR ParentDescriptor,
5148 - PSECURITY_DESCRIPTOR CreatorDescriptor,
5149 - PSECURITY_DESCRIPTOR * NewDescriptor,
5150 - GUID **ObjectTypes ,
5151 - ULONG GuidCount,
5152 - BOOL IsContainerObject,
5153 - ULONG AutoInheritFlags,
5154 - HANDLE Token,
5155 - PGENERIC_MAPPING GenericMapping);
5156 -// #endif /* _WIN32_WINNT >= 0x0500 */
5157 -
5158 -extern(Windows) export BOOL SetPrivateObjectSecurity(
5159 - SECURITY_INFORMATION SecurityInformation,
5160 - PSECURITY_DESCRIPTOR ModificationDescriptor,
5161 - PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
5162 - PGENERIC_MAPPING GenericMapping,
5163 - HANDLE Token);
5164 -
5165 -// #if(_WIN32_WINNT >= 0x0500)
5166 -extern(Windows) export BOOL SetPrivateObjectSecurityEx(
5167 - SECURITY_INFORMATION SecurityInformation,
5168 - PSECURITY_DESCRIPTOR ModificationDescriptor,
5169 - PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
5170 - ULONG AutoInheritFlags,
5171 - PGENERIC_MAPPING GenericMapping,
5172 - HANDLE Token );
5173 -// #endif /* _WIN32_WINNT >= 0x0500 */
5174 -
5175 -extern(Windows) export BOOL GetPrivateObjectSecurity(
5176 - PSECURITY_DESCRIPTOR ObjectDescriptor,
5177 - SECURITY_INFORMATION SecurityInformation,
5178 - PSECURITY_DESCRIPTOR ResultantDescriptor,
5179 - DWORD DescriptorLength,
5180 - PDWORD ReturnLength);
5181 -
5182 -extern(Windows) export BOOL DestroyPrivateObjectSecurity(
5183 - PSECURITY_DESCRIPTOR * ObjectDescriptor);
5184 -
5185 -extern(Windows) export BOOL MakeSelfRelativeSD(
5186 - PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
5187 - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
5188 - LPDWORD lpdwBufferLength);
5189 -
5190 -extern(Windows) export BOOL MakeAbsoluteSD(
5191 - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
5192 - PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
5193 - LPDWORD lpdwAbsoluteSecurityDescriptorSize,
5194 - PACL pDacl,
5195 - LPDWORD lpdwDaclSize,
5196 - PACL pSacl,
5197 - LPDWORD lpdwSaclSize,
5198 - PSID pOwner,
5199 - LPDWORD lpdwOwnerSize,
5200 - PSID pPrimaryGroup,
5201 - LPDWORD lpdwPrimaryGroupSize);
5202 -
5203 -extern(Windows) export BOOL MakeAbsoluteSD2(
5204 - PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
5205 - LPDWORD lpdwBufferSize);
5206 -
5207 -extern(Windows) export BOOL SetFileSecurityA(
5208 - LPCSTR lpFileName,
5209 - SECURITY_INFORMATION SecurityInformation,
5210 - PSECURITY_DESCRIPTOR pSecurityDescriptor);
5211 -extern(Windows) export BOOL SetFileSecurityW(
5212 - LPCWSTR lpFileName,
5213 - SECURITY_INFORMATION SecurityInformation,
5214 - PSECURITY_DESCRIPTOR pSecurityDescriptor);
5215 -// #ifdef UNICODE
5216 -alias SetFileSecurityW SetFileSecurity;
5217 -// #else
5218 -// #...
5219 -// #endif // !UNICODE
5220 -
5221 -extern(Windows) export BOOL GetFileSecurityA(
5222 - LPCSTR lpFileName,
5223 - SECURITY_INFORMATION RequestedInformation,
5224 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5225 - DWORD nLength,
5226 - LPDWORD lpnLengthNeeded);
5227 -extern(Windows) export BOOL GetFileSecurityW(
5228 - LPCWSTR lpFileName,
5229 - SECURITY_INFORMATION RequestedInformation,
5230 - PSECURITY_DESCRIPTOR pSecurityDescriptor,
5231 - DWORD nLength,
5232 - LPDWORD lpnLengthNeeded);
5233 -// #ifdef UNICODE
5234 -alias GetFileSecurityW GetFileSecurity;
5235 -// #else
5236 -// #...
5237 -// #endif // !UNICODE
5238 -
5239 -extern(Windows) export BOOL SetKernelObjectSecurity(
5240 - HANDLE Handle,
5241 - SECURITY_INFORMATION SecurityInformation,
5242 - PSECURITY_DESCRIPTOR SecurityDescriptor);
5243 -
5244 -extern(Windows) export HANDLE FindFirstChangeNotificationA(
5245 - LPCSTR lpPathName,
5246 - BOOL bWatchSubtree,
5247 - DWORD dwNotifyFilter);
5248 -extern(Windows) export HANDLE FindFirstChangeNotificationW(
5249 - LPCWSTR lpPathName,
5250 - BOOL bWatchSubtree,
5251 - DWORD dwNotifyFilter);
5252 -// #ifdef UNICODE
5253 -alias FindFirstChangeNotificationW FindFirstChangeNotification;
5254 -// #else
5255 -// #...
5256 -// #endif // !UNICODE
5257 -
5258 -extern(Windows) export BOOL FindNextChangeNotification(
5259 - HANDLE hChangeHandle);
5260 -
5261 -extern(Windows) export BOOL FindCloseChangeNotification(
5262 - HANDLE hChangeHandle);
5263 -
5264 -// #if(_WIN32_WINNT >= 0x0400)
5265 -extern(Windows) export BOOL ReadDirectoryChangesW(
5266 - HANDLE hDirectory,
5267 - LPVOID lpBuffer,
5268 - DWORD nBufferLength,
5269 - BOOL bWatchSubtree,
5270 - DWORD dwNotifyFilter,
5271 - LPDWORD lpBytesReturned,
5272 - LPOVERLAPPED lpOverlapped,
5273 - LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
5274 -// #endif /* _WIN32_WINNT >= 0x0400 */
5275 -
5276 -extern(Windows) export BOOL VirtualLock(
5277 - LPVOID lpAddress,
5278 - SIZE_T dwSize);
5279 -
5280 -extern(Windows) export BOOL VirtualUnlock(
5281 - LPVOID lpAddress,
5282 - SIZE_T dwSize);
5283 -
5284 -extern(Windows) export LPVOID MapViewOfFileEx(
5285 - HANDLE hFileMappingObject,
5286 - DWORD dwDesiredAccess,
5287 - DWORD dwFileOffsetHigh,
5288 - DWORD dwFileOffsetLow,
5289 - SIZE_T dwNumberOfBytesToMap,
5290 - LPVOID lpBaseAddress);
5291 -
5292 -extern(Windows) export BOOL SetPriorityClass(
5293 - HANDLE hProcess,
5294 - DWORD dwPriorityClass);
5295 -
5296 -extern(Windows) export DWORD GetPriorityClass(
5297 - HANDLE hProcess);
5298 -
5299 -extern(Windows) export BOOL IsBadReadPtr(
5300 - VOID *lp,
5301 - UINT_PTR ucb);
5302 -
5303 -extern(Windows) export BOOL IsBadWritePtr(
5304 - LPVOID lp,
5305 - UINT_PTR ucb);
5306 -
5307 -extern(Windows) export BOOL IsBadHugeReadPtr(
5308 - VOID *lp,
5309 - UINT_PTR ucb);
5310 -
5311 -extern(Windows) export BOOL IsBadHugeWritePtr(
5312 - LPVOID lp,
5313 - UINT_PTR ucb);
5314 -
5315 -extern(Windows) export BOOL IsBadCodePtr(
5316 - FARPROC lpfn);
5317 -
5318 -extern(Windows) export BOOL IsBadStringPtrA(
5319 - LPCSTR lpsz,
5320 - UINT_PTR ucchMax);
5321 -extern(Windows) export BOOL IsBadStringPtrW(
5322 - LPCWSTR lpsz,
5323 - UINT_PTR ucchMax);
5324 -// #ifdef UNICODE
5325 -alias IsBadStringPtrW IsBadStringPtr;
5326 -// #else
5327 -// #...
5328 -// #endif // !UNICODE
5329 -
5330 -extern(Windows) export BOOL LookupAccountSidA(
5331 - LPCSTR lpSystemName,
5332 - PSID Sid,
5333 - LPSTR Name,
5334 - LPDWORD cbName,
5335 - LPSTR ReferencedDomainName,
5336 - LPDWORD cbReferencedDomainName,
5337 - PSID_NAME_USE peUse);
5338 -extern(Windows) export BOOL LookupAccountSidW(
5339 - LPCWSTR lpSystemName,
5340 - PSID Sid,
5341 - LPWSTR Name,
5342 - LPDWORD cbName,
5343 - LPWSTR ReferencedDomainName,
5344 - LPDWORD cbReferencedDomainName,
5345 - PSID_NAME_USE peUse);
5346 -// #ifdef UNICODE
5347 -alias LookupAccountSidW LookupAccountSid;
5348 -// #else
5349 -// #...
5350 -// #endif // !UNICODE
5351 -
5352 -extern(Windows) export BOOL LookupAccountNameA(
5353 - LPCSTR lpSystemName,
5354 - LPCSTR lpAccountName,
5355 - PSID Sid,
5356 - LPDWORD cbSid,
5357 - LPSTR ReferencedDomainName,
5358 - LPDWORD cbReferencedDomainName,
5359 - PSID_NAME_USE peUse);
5360 -extern(Windows) export BOOL LookupAccountNameW(
5361 - LPCWSTR lpSystemName,
5362 - LPCWSTR lpAccountName,
5363 - PSID Sid,
5364 - LPDWORD cbSid,
5365 - LPWSTR ReferencedDomainName,
5366 - LPDWORD cbReferencedDomainName,
5367 - PSID_NAME_USE peUse);
5368 -// #ifdef UNICODE
5369 -alias LookupAccountNameW LookupAccountName;
5370 -// #else
5371 -// #...
5372 -// #endif // !UNICODE
5373 -
5374 -extern(Windows) export BOOL LookupPrivilegeValueA(
5375 - LPCSTR lpSystemName,
5376 - LPCSTR lpName,
5377 - PLUID lpLuid);
5378 -extern(Windows) export BOOL LookupPrivilegeValueW(
5379 - LPCWSTR lpSystemName,
5380 - LPCWSTR lpName,
5381 - PLUID lpLuid);
5382 -// #ifdef UNICODE
5383 -alias LookupPrivilegeValueW LookupPrivilegeValue;
5384 -// #else
5385 -// #...
5386 -// #endif // !UNICODE
5387 -
5388 -extern(Windows) export BOOL LookupPrivilegeNameA(
5389 - LPCSTR lpSystemName,
5390 - PLUID lpLuid,
5391 - LPSTR lpName,
5392 - LPDWORD cbName);
5393 -extern(Windows) export BOOL LookupPrivilegeNameW(
5394 - LPCWSTR lpSystemName,
5395 - PLUID lpLuid,
5396 - LPWSTR lpName,
5397 - LPDWORD cbName);
5398 -// #ifdef UNICODE
5399 -alias LookupPrivilegeNameW LookupPrivilegeName;
5400 -// #else
5401 -// #...
5402 -// #endif // !UNICODE
5403 -
5404 -extern(Windows) export BOOL LookupPrivilegeDisplayNameA(
5405 - LPCSTR lpSystemName,
5406 - LPCSTR lpName,
5407 - LPSTR lpDisplayName,
5408 - LPDWORD cbDisplayName,
5409 - LPDWORD lpLanguageId);
5410 -extern(Windows) export BOOL LookupPrivilegeDisplayNameW(
5411 - LPCWSTR lpSystemName,
5412 - LPCWSTR lpName,
5413 - LPWSTR lpDisplayName,
5414 - LPDWORD cbDisplayName,
5415 - LPDWORD lpLanguageId);
5416 -// #ifdef UNICODE
5417 -alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName;
5418 -// #else
5419 -// #...
5420 -// #endif // !UNICODE
5421 -
5422 -extern(Windows) export BOOL AllocateLocallyUniqueId(
5423 - PLUID Luid);
5424 -
5425 -extern(Windows) export BOOL BuildCommDCBA(
5426 - LPCSTR lpDef,
5427 - LPDCB lpDCB);
5428 -extern(Windows) export BOOL BuildCommDCBW(
5429 - LPCWSTR lpDef,
5430 - LPDCB lpDCB);
5431 -// #ifdef UNICODE
5432 -alias BuildCommDCBW BuildCommDCB;
5433 -// #else
5434 -// #...
5435 -// #endif // !UNICODE
5436 -
5437 -extern(Windows) export BOOL BuildCommDCBAndTimeoutsA(
5438 - LPCSTR lpDef,
5439 - LPDCB lpDCB,
5440 - LPCOMMTIMEOUTS lpCommTimeouts);
5441 -extern(Windows) export BOOL BuildCommDCBAndTimeoutsW(
5442 - LPCWSTR lpDef,
5443 - LPDCB lpDCB,
5444 - LPCOMMTIMEOUTS lpCommTimeouts);
5445 -// #ifdef UNICODE
5446 -alias BuildCommDCBAndTimeoutsW BuildCommDCBAndTimeouts;
5447 -// #else
5448 -// #...
5449 -// #endif // !UNICODE
5450 -
5451 -extern(Windows) export BOOL CommConfigDialogA(
5452 - LPCSTR lpszName,
5453 - HWND hWnd,
5454 - LPCOMMCONFIG lpCC);
5455 -extern(Windows) export BOOL CommConfigDialogW(
5456 - LPCWSTR lpszName,
5457 - HWND hWnd,
5458 - LPCOMMCONFIG lpCC);
5459 -// #ifdef UNICODE
5460 -alias CommConfigDialogW CommConfigDialog;
5461 -// #else
5462 -// #...
5463 -// #endif // !UNICODE
5464 -
5465 -extern(Windows) export BOOL GetDefaultCommConfigA(
5466 - LPCSTR lpszName,
5467 - LPCOMMCONFIG lpCC,
5468 - LPDWORD lpdwSize);
5469 -extern(Windows) export BOOL GetDefaultCommConfigW(
5470 - LPCWSTR lpszName,
5471 - LPCOMMCONFIG lpCC,
5472 - LPDWORD lpdwSize);
5473 -// #ifdef UNICODE
5474 -alias GetDefaultCommConfigW GetDefaultCommConfig;
5475 -// #else
5476 -// #...
5477 -// #endif // !UNICODE
5478 -
5479 -extern(Windows) export BOOL SetDefaultCommConfigA(
5480 - LPCSTR lpszName,
5481 - LPCOMMCONFIG lpCC,
5482 - DWORD dwSize);
5483 -extern(Windows) export BOOL SetDefaultCommConfigW(
5484 - LPCWSTR lpszName,
5485 - LPCOMMCONFIG lpCC,
5486 - DWORD dwSize);
5487 -// #ifdef UNICODE
5488 -alias SetDefaultCommConfigW SetDefaultCommConfig;
5489 -// #else
5490 -// #...
5491 -// #endif // !UNICODE
5492 -
5493 -// #ifndef _MAC
5494 -enum : uint { MAX_COMPUTERNAME_LENGTH = 15 }
5495 -// #else
5496 -// #...
5497 -// #endif
5498 -
5499 -extern(Windows) export BOOL GetComputerNameA(
5500 - LPSTR lpBuffer,
5501 - LPDWORD nSize);
5502 -extern(Windows) export BOOL GetComputerNameW(
5503 - LPWSTR lpBuffer,
5504 - LPDWORD nSize);
5505 -// #ifdef UNICODE
5506 -alias GetComputerNameW GetComputerName;
5507 -// #else
5508 -// #...
5509 -// #endif // !UNICODE
5510 -
5511 -extern(Windows) export BOOL SetComputerNameA(
5512 - LPCSTR lpComputerName);
5513 -extern(Windows) export BOOL SetComputerNameW(
5514 - LPCWSTR lpComputerName);
5515 -// #ifdef UNICODE
5516 -alias SetComputerNameW SetComputerName;
5517 -// #else
5518 -// #...
5519 -// #endif // !UNICODE
5520 -
5521 -// #if (_WIN32_WINNT >= 0x0500)
5522 -
5523 -alias int _COMPUTER_NAME_FORMAT;
5524 -enum {
5525 - ComputerNameNetBIOS,
5526 - ComputerNameDnsHostname,
5527 - ComputerNameDnsDomain,
5528 - ComputerNameDnsFullyQualified,
5529 - ComputerNamePhysicalNetBIOS,
5530 - ComputerNamePhysicalDnsHostname,
5531 - ComputerNamePhysicalDnsDomain,
5532 - ComputerNamePhysicalDnsFullyQualified,
5533 - ComputerNameMax,
5534 -}
5535 -alias _COMPUTER_NAME_FORMAT COMPUTER_NAME_FORMAT;
5536 -
5537 -extern(Windows) export BOOL GetComputerNameExA(
5538 - COMPUTER_NAME_FORMAT NameType,
5539 - LPSTR lpBuffer,
5540 - LPDWORD nSize);
5541 -extern(Windows) export BOOL GetComputerNameExW(
5542 - COMPUTER_NAME_FORMAT NameType,
5543 - LPWSTR lpBuffer,
5544 - LPDWORD nSize);
5545 -// #ifdef UNICODE
5546 -alias GetComputerNameExW GetComputerNameEx;
5547 -// #else
5548 -// #...
5549 -// #endif // !UNICODE
5550 -
5551 -extern(Windows) export BOOL SetComputerNameExA(
5552 - COMPUTER_NAME_FORMAT NameType,
5553 - LPCSTR lpBuffer);
5554 -extern(Windows) export BOOL SetComputerNameExW(
5555 - COMPUTER_NAME_FORMAT NameType,
5556 - LPCWSTR lpBuffer);
5557 -// #ifdef UNICODE
5558 -alias SetComputerNameExW SetComputerNameEx;
5559 -// #else
5560 -// #...
5561 -// #endif // !UNICODE
5562 -
5563 -extern(Windows) export DWORD AddLocalAlternateComputerNameA(
5564 - LPCSTR lpDnsFQHostname,
5565 - ULONG ulFlags);
5566 -extern(Windows) export DWORD AddLocalAlternateComputerNameW(
5567 - LPCWSTR lpDnsFQHostname,
5568 - ULONG ulFlags);
5569 -// #ifdef UNICODE
5570 -alias AddLocalAlternateComputerNameW AddLocalAlternateComputerName;
5571 -// #else
5572 -// #...
5573 -// #endif // !UNICODE
5574 -
5575 -extern(Windows) export DWORD RemoveLocalAlternateComputerNameA(
5576 - LPCSTR lpAltDnsFQHostname,
5577 - ULONG ulFlags);
5578 -extern(Windows) export DWORD RemoveLocalAlternateComputerNameW(
5579 - LPCWSTR lpAltDnsFQHostname,
5580 - ULONG ulFlags);
5581 -// #ifdef UNICODE
5582 -alias RemoveLocalAlternateComputerNameW RemoveLocalAlternateComputerName;
5583 -// #else
5584 -// #...
5585 -// #endif // !UNICODE
5586 -
5587 -extern(Windows) export DWORD SetLocalPrimaryComputerNameA(
5588 - LPCSTR lpAltDnsFQHostname,
5589 - ULONG ulFlags);
5590 -extern(Windows) export DWORD SetLocalPrimaryComputerNameW(
5591 - LPCWSTR lpAltDnsFQHostname,
5592 - ULONG ulFlags);
5593 -// #ifdef UNICODE
5594 -alias SetLocalPrimaryComputerNameW SetLocalPrimaryComputerName;
5595 -// #else
5596 -// #...
5597 -// #endif // !UNICODE
5598 -
5599 -alias int _COMPUTER_NAME_TYPE;
5600 -enum {
5601 - PrimaryComputerName,
5602 - AlternateComputerNames,
5603 - AllComputerNames,
5604 - ComputerNameTypeMax,
5605 -}
5606 -alias _COMPUTER_NAME_TYPE COMPUTER_NAME_TYPE;
5607 -
5608 -extern(Windows) export DWORD EnumerateLocalComputerNamesA(
5609 - COMPUTER_NAME_TYPE NameType,
5610 - ULONG ulFlags,
5611 - LPSTR lpDnsFQHostname,
5612 - LPDWORD nSize);
5613 -extern(Windows) export DWORD EnumerateLocalComputerNamesW(
5614 - COMPUTER_NAME_TYPE NameType,
5615 - ULONG ulFlags,
5616 - LPWSTR lpDnsFQHostname,
5617 - LPDWORD nSize);
5618 -// #ifdef UNICODE
5619 -alias EnumerateLocalComputerNamesW EnumerateLocalComputerNames;
5620 -// #else
5621 -// #...
5622 -// #endif // !UNICODE
5623 -
5624 -extern(Windows) export BOOL DnsHostnameToComputerNameA(
5625 - LPCSTR Hostname,
5626 - LPSTR ComputerName,
5627 - LPDWORD nSize);
5628 -extern(Windows) export BOOL DnsHostnameToComputerNameW(
5629 - LPCWSTR Hostname,
5630 - LPWSTR ComputerName,
5631 - LPDWORD nSize);
5632 -// #ifdef UNICODE
5633 -alias DnsHostnameToComputerNameW DnsHostnameToComputerName;
5634 -// #else
5635 -// #...
5636 -// #endif // !UNICODE
5637 -
5638 -// #endif // _WIN32_WINNT
5639 -
5640 -extern(Windows) export BOOL GetUserNameA(
5641 - LPSTR lpBuffer,
5642 - LPDWORD nSize);
5643 -extern(Windows) export BOOL GetUserNameW(
5644 - LPWSTR lpBuffer,
5645 - LPDWORD nSize);
5646 -// #ifdef UNICODE
5647 -alias GetUserNameW GetUserName;
5648 -// #else
5649 -// #...
5650 -// #endif // !UNICODE
5651 -
5652 -enum : uint { LOGON32_LOGON_INTERACTIVE = 2 }
5653 -enum : uint { LOGON32_LOGON_NETWORK = 3 }
5654 -enum : uint { LOGON32_LOGON_BATCH = 4 }
5655 -enum : uint { LOGON32_LOGON_SERVICE = 5 }
5656 -enum : uint { LOGON32_LOGON_UNLOCK = 7 }
5657 -// #if(_WIN32_WINNT >= 0x0500)
5658 -enum : uint { LOGON32_LOGON_NETWORK_CLEARTEXT = 8 }
5659 -enum : uint { LOGON32_LOGON_NEW_CREDENTIALS = 9 }
5660 -// #endif // (_WIN32_WINNT >= 0x0500)
5661 -
5662 -enum : uint { LOGON32_PROVIDER_DEFAULT = 0 }
5663 -enum : uint { LOGON32_PROVIDER_WINNT35 = 1 }
5664 -// #if(_WIN32_WINNT >= 0x0400)
5665 -enum : uint { LOGON32_PROVIDER_WINNT40 = 2 }
5666 -// #endif /* _WIN32_WINNT >= 0x0400 */
5667 -// #if(_WIN32_WINNT >= 0x0500)
5668 -enum : uint { LOGON32_PROVIDER_WINNT50 = 3 }
5669 -// #endif // (_WIN32_WINNT >= 0x0500)
5670 -
5671 -extern(Windows) export BOOL LogonUserA(
5672 - LPSTR lpszUsername,
5673 - LPSTR lpszDomain,
5674 - LPSTR lpszPassword,
5675 - DWORD dwLogonType,
5676 - DWORD dwLogonProvider,
5677 - PHANDLE phToken);
5678 -extern(Windows) export BOOL LogonUserW(
5679 - LPWSTR lpszUsername,
5680 - LPWSTR lpszDomain,
5681 - LPWSTR lpszPassword,
5682 - DWORD dwLogonType,
5683 - DWORD dwLogonProvider,
5684 - PHANDLE phToken);
5685 -// #ifdef UNICODE
5686 -alias LogonUserW LogonUser;
5687 -// #else
5688 -// #...
5689 -// #endif // !UNICODE
5690 -
5691 -extern(Windows) export BOOL LogonUserExA(
5692 - LPSTR lpszUsername,
5693 - LPSTR lpszDomain,
5694 - LPSTR lpszPassword,
5695 - DWORD dwLogonType,
5696 - DWORD dwLogonProvider,
5697 - PHANDLE phToken ,
5698 - PSID *ppLogonSid ,
5699 - PVOID *ppProfileBuffer ,
5700 - LPDWORD pdwProfileLength ,
5701 - PQUOTA_LIMITS pQuotaLimits );
5702 -extern(Windows) export BOOL LogonUserExW(
5703 - LPWSTR lpszUsername,
5704 - LPWSTR lpszDomain,
5705 - LPWSTR lpszPassword,
5706 - DWORD dwLogonType,
5707 - DWORD dwLogonProvider,
5708 - PHANDLE phToken ,
5709 - PSID *ppLogonSid ,
5710 - PVOID *ppProfileBuffer ,
5711 - LPDWORD pdwProfileLength ,
5712 - PQUOTA_LIMITS pQuotaLimits );
5713 -// #ifdef UNICODE
5714 -alias LogonUserExW LogonUserEx;
5715 -// #else
5716 -// #...
5717 -// #endif // !UNICODE
5718 -
5719 -extern(Windows) export BOOL ImpersonateLoggedOnUser(
5720 - HANDLE hToken);
5721 -
5722 -extern(Windows) export BOOL CreateProcessAsUserA(
5723 - HANDLE hToken,
5724 - LPCSTR lpApplicationName,
5725 - LPSTR lpCommandLine,
5726 - LPSECURITY_ATTRIBUTES lpProcessAttributes,
5727 - LPSECURITY_ATTRIBUTES lpThreadAttributes,
5728 - BOOL bInheritHandles,
5729 - DWORD dwCreationFlags,
5730 - LPVOID lpEnvironment,
5731 - LPCSTR lpCurrentDirectory,
5732 - LPSTARTUPINFOA lpStartupInfo,
5733 - LPPROCESS_INFORMATION lpProcessInformation);
5734 -extern(Windows) export BOOL CreateProcessAsUserW(
5735 - HANDLE hToken,
5736 - LPCWSTR lpApplicationName,
5737 - LPWSTR lpCommandLine,
5738 - LPSECURITY_ATTRIBUTES lpProcessAttributes,
5739 - LPSECURITY_ATTRIBUTES lpThreadAttributes,
5740 - BOOL bInheritHandles,
5741 - DWORD dwCreationFlags,
5742 - LPVOID lpEnvironment,
5743 - LPCWSTR lpCurrentDirectory,
5744 - LPSTARTUPINFOW lpStartupInfo,
5745 - LPPROCESS_INFORMATION lpProcessInformation);
5746 -// #ifdef UNICODE
5747 -alias CreateProcessAsUserW CreateProcessAsUser;
5748 -// #else
5749 -// #...
5750 -// #endif // !UNICODE
5751 -
5752 -// #if(_WIN32_WINNT >= 0x0500)
5753 -
5754 -enum : uint { LOGON_WITH_PROFILE = 0x00000001 }
5755 -enum : uint { LOGON_NETCREDENTIALS_ONLY = 0x00000002 }
5756 -
5757 -extern(Windows) export BOOL CreateProcessWithLogonW(
5758 - LPCWSTR lpUsername,
5759 - LPCWSTR lpDomain,
5760 - LPCWSTR lpPassword,
5761 - DWORD dwLogonFlags,
5762 - LPCWSTR lpApplicationName,
5763 - LPWSTR lpCommandLine,
5764 - DWORD dwCreationFlags,
5765 - LPVOID lpEnvironment,
5766 - LPCWSTR lpCurrentDirectory,
5767 - LPSTARTUPINFOW lpStartupInfo,
5768 - LPPROCESS_INFORMATION lpProcessInformation);
5769 -
5770 -// #endif // (_WIN32_WINNT >= 0x0500)
5771 -
5772 -extern(Windows) export BOOL ImpersonateAnonymousToken(
5773 - HANDLE ThreadHandle);
5774 -
5775 -extern(Windows) export BOOL DuplicateTokenEx(
5776 - HANDLE hExistingToken,
5777 - DWORD dwDesiredAccess,
5778 - LPSECURITY_ATTRIBUTES lpTokenAttributes,
5779 - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
5780 - TOKEN_TYPE TokenType,
5781 - PHANDLE phNewToken);
5782 -
5783 -extern(Windows) export BOOL CreateRestrictedToken(
5784 - HANDLE ExistingTokenHandle,
5785 - DWORD Flags,
5786 - DWORD DisableSidCount,
5787 - PSID_AND_ATTRIBUTES SidsToDisable ,
5788 - DWORD DeletePrivilegeCount,
5789 - PLUID_AND_ATTRIBUTES PrivilegesToDelete ,
5790 - DWORD RestrictedSidCount,
5791 - PSID_AND_ATTRIBUTES SidsToRestrict ,
5792 - PHANDLE NewTokenHandle);
5793 -
5794 -extern(Windows) export BOOL IsTokenRestricted(
5795 - HANDLE TokenHandle);
5796 -
5797 -extern(Windows) export BOOL IsTokenUntrusted(
5798 - HANDLE TokenHandle);
5799 -
5800 -extern(Windows) export BOOL CheckTokenMembership(
5801 - HANDLE TokenHandle ,
5802 - PSID SidToCheck,
5803 - PBOOL IsMember);
5804 -
5805 -// #if (_WIN32_WINNT >= 0x0500)
5806 -
5807 -alias WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
5808 -
5809 -extern(Windows) export BOOL RegisterWaitForSingleObject(
5810 - PHANDLE phNewWaitObject,
5811 - HANDLE hObject,
5812 - WAITORTIMERCALLBACK Callback,
5813 - PVOID Context,
5814 - ULONG dwMilliseconds,
5815 - ULONG dwFlags);
5816 -
5817 -extern(Windows) export HANDLE RegisterWaitForSingleObjectEx(
5818 - HANDLE hObject,
5819 - WAITORTIMERCALLBACK Callback,
5820 - PVOID Context,
5821 - ULONG dwMilliseconds,
5822 - ULONG dwFlags);
5823 -
5824 -extern(Windows) export BOOL UnregisterWait(
5825 - HANDLE WaitHandle);
5826 -
5827 -extern(Windows) export BOOL UnregisterWaitEx(
5828 - HANDLE WaitHandle,
5829 - HANDLE CompletionEvent);
5830 -
5831 -extern(Windows) export BOOL QueueUserWorkItem(
5832 - LPTHREAD_START_ROUTINE Function,
5833 - PVOID Context,
5834 - ULONG Flags);
5835 -
5836 -extern(Windows) export BOOL BindIoCompletionCallback(
5837 - HANDLE FileHandle,
5838 - LPOVERLAPPED_COMPLETION_ROUTINE Function,
5839 - ULONG Flags);
5840 -
5841 -extern(Windows) export HANDLE CreateTimerQueue();
5842 -
5843 -extern(Windows) export BOOL CreateTimerQueueTimer(
5844 - PHANDLE phNewTimer,
5845 - HANDLE TimerQueue,
5846 - WAITORTIMERCALLBACK Callback,
5847 - PVOID Parameter,
5848 - DWORD DueTime,
5849 - DWORD Period,
5850 - ULONG Flags);
5851 -
5852 -extern(Windows) export BOOL ChangeTimerQueueTimer(
5853 - HANDLE TimerQueue,
5854 - HANDLE Timer,
5855 - ULONG DueTime,
5856 - ULONG Period);
5857 -
5858 -extern(Windows) export BOOL DeleteTimerQueueTimer(
5859 - HANDLE TimerQueue,
5860 - HANDLE Timer,
5861 - HANDLE CompletionEvent);
5862 -
5863 -extern(Windows) export BOOL DeleteTimerQueueEx(
5864 - HANDLE TimerQueue,
5865 - HANDLE CompletionEvent);
5866 -
5867 -extern(Windows) export HANDLE SetTimerQueueTimer(
5868 - HANDLE TimerQueue,
5869 - WAITORTIMERCALLBACK Callback,
5870 - PVOID Parameter,
5871 - DWORD DueTime,
5872 - DWORD Period,
5873 - BOOL PreferIo);
5874 -
5875 -extern(Windows) export BOOL CancelTimerQueueTimer(
5876 - HANDLE TimerQueue,
5877 - HANDLE Timer);
5878 -
5879 -extern(Windows) export BOOL DeleteTimerQueue(
5880 - HANDLE TimerQueue);
5881 -
5882 -// #endif // _WIN32_WINNT
5883 -
5884 -// #if(_WIN32_WINNT >= 0x0400)
5885 -
5886 -enum : uint { HW_PROFILE_GUIDLEN = 39 }
5887 -enum : uint { MAX_PROFILE_LEN = 80 }
5888 -
5889 -enum : uint { DOCKINFO_UNDOCKED = 0x1 }
5890 -enum : uint { DOCKINFO_DOCKED = 0x2 }
5891 -enum : uint { DOCKINFO_USER_SUPPLIED = 0x4 }
5892 -enum : uint { DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED }
5893 -enum : uint { DOCKINFO_USER_DOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED }
5894 -
5895 -struct tagHW_PROFILE_INFOA {
5896 - DWORD dwDockInfo;
5897 - CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
5898 - CHAR szHwProfileName[MAX_PROFILE_LEN];
5899 -}
5900 -alias tagHW_PROFILE_INFOA HW_PROFILE_INFOA;
5901 -alias tagHW_PROFILE_INFOA* LPHW_PROFILE_INFOA;
5902 -
5903 -struct tagHW_PROFILE_INFOW {
5904 - DWORD dwDockInfo;
5905 - WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
5906 - WCHAR szHwProfileName[MAX_PROFILE_LEN];
5907 -}
5908 -alias tagHW_PROFILE_INFOW HW_PROFILE_INFOW;
5909 -alias tagHW_PROFILE_INFOW* LPHW_PROFILE_INFOW;
5910 -
5911 -// #ifdef UNICODE
5912 -alias HW_PROFILE_INFOW HW_PROFILE_INFO;
5913 -alias LPHW_PROFILE_INFOW LPHW_PROFILE_INFO;
5914 -// #else
5915 -// ...
5916 -// #endif // UNICODE
5917 -
5918 -extern(Windows) export BOOL GetCurrentHwProfileA(
5919 - LPHW_PROFILE_INFOA lpHwProfileInfo);
5920 -extern(Windows) export BOOL GetCurrentHwProfileW(
5921 - LPHW_PROFILE_INFOW lpHwProfileInfo);
5922 -// #ifdef UNICODE
5923 -alias GetCurrentHwProfileW GetCurrentHwProfile;
5924 -// #else
5925 -// #...
5926 -// #endif // !UNICODE
5927 -// #endif /* _WIN32_WINNT >= 0x0400 */
5928 -
5929 -extern(Windows) export BOOL QueryPerformanceCounter(
5930 - LARGE_INTEGER *lpPerformanceCount);
5931 -
5932 -extern(Windows) export BOOL QueryPerformanceFrequency(
5933 - LARGE_INTEGER *lpFrequency);
5934 -
5935 -extern(Windows) export BOOL GetVersionExA(
5936 - LPOSVERSIONINFOA lpVersionInformation);
5937 -extern(Windows) export BOOL GetVersionExW(
5938 - LPOSVERSIONINFOW lpVersionInformation);
5939 -// #ifdef UNICODE
5940 -alias GetVersionExW GetVersionEx;
5941 -// #else
5942 -// #...
5943 -// #endif // !UNICODE
5944 -
5945 -extern(Windows) export BOOL VerifyVersionInfoA(
5946 - LPOSVERSIONINFOEXA lpVersionInformation,
5947 - DWORD dwTypeMask,
5948 - DWORDLONG dwlConditionMask);
5949 -extern(Windows) export BOOL VerifyVersionInfoW(
5950 - LPOSVERSIONINFOEXW lpVersionInformation,
5951 - DWORD dwTypeMask,
5952 - DWORDLONG dwlConditionMask);
5953 -// #ifdef UNICODE
5954 -alias VerifyVersionInfoW VerifyVersionInfo;
5955 -// #else
5956 -// #...
5957 -// #endif // !UNICODE
5958 -
5959 -import win32.winerror;
5960 -
5961 -enum : uint { TC_NORMAL = 0 }
5962 -enum : uint { TC_HARDERR = 1 }
5963 -enum : uint { TC_GP_TRAP = 2 }
5964 -enum : uint { TC_SIGNAL = 3 }
5965 -
5966 -// #if(WINVER >= 0x0400)
5967 -
5968 -enum : uint { AC_LINE_OFFLINE = 0x00 }
5969 -enum : uint { AC_LINE_ONLINE = 0x01 }
5970 -enum : uint { AC_LINE_BACKUP_POWER = 0x02 }
5971 -enum : uint { AC_LINE_UNKNOWN = 0xFF }
5972 -
5973 -enum : uint { BATTERY_FLAG_HIGH = 0x01 }
5974 -enum : uint { BATTERY_FLAG_LOW = 0x02 }
5975 -enum : uint { BATTERY_FLAG_CRITICAL = 0x04 }
5976 -enum : uint { BATTERY_FLAG_CHARGING = 0x08 }
5977 -enum : uint { BATTERY_FLAG_NO_BATTERY = 0x80 }
5978 -enum : uint { BATTERY_FLAG_UNKNOWN = 0xFF }
5979 -
5980 -enum : uint { BATTERY_PERCENTAGE_UNKNOWN = 0xFF }
5981 -
5982 -enum : uint { BATTERY_LIFE_UNKNOWN = 0xFFFFFFFF }
5983 -
5984 -struct _SYSTEM_POWER_STATUS {
5985 - BYTE ACLineStatus;
5986 - BYTE BatteryFlag;
5987 - BYTE BatteryLifePercent;
5988 - BYTE Reserved1;
5989 - DWORD BatteryLifeTime;
5990 - DWORD BatteryFullLifeTime;
5991 -}
5992 -alias _SYSTEM_POWER_STATUS SYSTEM_POWER_STATUS;
5993 -alias _SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS;
5994 -
5995 -extern(Windows) export BOOL GetSystemPowerStatus(
5996 - LPSYSTEM_POWER_STATUS lpSystemPowerStatus);
5997 -
5998 -extern(Windows) export BOOL SetSystemPowerState(
5999 - BOOL fSuspend,
6000 - BOOL fForce);
6001 -
6002 -// #endif /* WINVER >= 0x0400 */
6003 -
6004 -// #if (_WIN32_WINNT >= 0x0500)
6005 -
6006 -extern(Windows) export BOOL AllocateUserPhysicalPages(
6007 - HANDLE hProcess,
6008 - PULONG_PTR NumberOfPages,
6009 - PULONG_PTR PageArray);
6010 -
6011 -extern(Windows) export BOOL FreeUserPhysicalPages(
6012 - HANDLE hProcess,
6013 - PULONG_PTR NumberOfPages,
6014 - PULONG_PTR PageArray);
6015 -
6016 -extern(Windows) export BOOL MapUserPhysicalPages(
6017 - PVOID VirtualAddress,
6018 - ULONG_PTR NumberOfPages,
6019 - PULONG_PTR PageArray );
6020 -
6021 -extern(Windows) export BOOL MapUserPhysicalPagesScatter(
6022 - PVOID *VirtualAddresses,
6023 - ULONG_PTR NumberOfPages,
6024 - PULONG_PTR PageArray );
6025 -
6026 -extern(Windows) export HANDLE CreateJobObjectA(
6027 - LPSECURITY_ATTRIBUTES lpJobAttributes,
6028 - LPCSTR lpName);
6029 -extern(Windows) export HANDLE CreateJobObjectW(
6030 - LPSECURITY_ATTRIBUTES lpJobAttributes,
6031 - LPCWSTR lpName);
6032 -// #ifdef UNICODE
6033 -alias CreateJobObjectW CreateJobObject;
6034 -// #else
6035 -// #...
6036 -// #endif // !UNICODE
6037 -
6038 -extern(Windows) export HANDLE OpenJobObjectA(
6039 - DWORD dwDesiredAccess,
6040 - BOOL bInheritHandle,
6041 - LPCSTR lpName);
6042 -extern(Windows) export HANDLE OpenJobObjectW(
6043 - DWORD dwDesiredAccess,
6044 - BOOL bInheritHandle,
6045 - LPCWSTR lpName);
6046 -// #ifdef UNICODE
6047 -alias OpenJobObjectW OpenJobObject;
6048 -// #else
6049 -// #...
6050 -// #endif // !UNICODE
6051 -
6052 -extern(Windows) export BOOL AssignProcessToJobObject(
6053 - HANDLE hJob,
6054 - HANDLE hProcess);
6055 -
6056 -extern(Windows) export BOOL TerminateJobObject(
6057 - HANDLE hJob,
6058 - UINT uExitCode);
6059 -
6060 -extern(Windows) export BOOL QueryInformationJobObject(
6061 - HANDLE hJob,
6062 - JOBOBJECTINFOCLASS JobObjectInformationClass,
6063 - LPVOID lpJobObjectInformation,
6064 - DWORD cbJobObjectInformationLength,
6065 - LPDWORD lpReturnLength);
6066 -
6067 -extern(Windows) export BOOL SetInformationJobObject(
6068 - HANDLE hJob,
6069 - JOBOBJECTINFOCLASS JobObjectInformationClass,
6070 - LPVOID lpJobObjectInformation,
6071 - DWORD cbJobObjectInformationLength);
6072 -
6073 -extern(Windows) export BOOL IsProcessInJob(
6074 - HANDLE ProcessHandle,
6075 - HANDLE JobHandle,
6076 - PBOOL Result);
6077 -
6078 -extern(Windows) export BOOL CreateJobSet(
6079 - ULONG NumJob,
6080 - PJOB_SET_ARRAY UserJobSet,
6081 - ULONG Flags);
6082 -
6083 -extern(Windows) export PVOID AddVectoredExceptionHandler(
6084 - ULONG FirstHandler,
6085 - PVECTORED_EXCEPTION_HANDLER VectoredHandler);
6086 -
6087 -extern(Windows) export ULONG RemoveVectoredExceptionHandler(
6088 - PVOID VectoredHandlerHandle);
6089 -
6090 -extern(Windows) export HANDLE FindFirstVolumeA(
6091 - LPSTR lpszVolumeName,
6092 - DWORD cchBufferLength);
6093 -extern(Windows) export HANDLE FindFirstVolumeW(
6094 - LPWSTR lpszVolumeName,
6095 - DWORD cchBufferLength);
6096 -// #ifdef UNICODE
6097 -alias FindFirstVolumeW FindFirstVolume;
6098 -// #else
6099 -// #...
6100 -// #endif // !UNICODE
6101 -
6102 -extern(Windows) export BOOL FindNextVolumeA(
6103 - HANDLE hFindVolume,
6104 - LPSTR lpszVolumeName,
6105 - DWORD cchBufferLength);
6106 -extern(Windows) export BOOL FindNextVolumeW(
6107 - HANDLE hFindVolume,
6108 - LPWSTR lpszVolumeName,
6109 - DWORD cchBufferLength);
6110 -// #ifdef UNICODE
6111 -alias FindNextVolumeW FindNextVolume;
6112 -// #else
6113 -// #...
6114 -// #endif // !UNICODE
6115 -
6116 -extern(Windows) export BOOL FindVolumeClose(
6117 - HANDLE hFindVolume);
6118 -
6119 -extern(Windows) export HANDLE FindFirstVolumeMountPointA(
6120 - LPCSTR lpszRootPathName,
6121 - LPSTR lpszVolumeMountPoint,
6122 - DWORD cchBufferLength);
6123 -extern(Windows) export HANDLE FindFirstVolumeMountPointW(
6124 - LPCWSTR lpszRootPathName,
6125 - LPWSTR lpszVolumeMountPoint,
6126 - DWORD cchBufferLength);
6127 -// #ifdef UNICODE
6128 -alias FindFirstVolumeMountPointW FindFirstVolumeMountPoint;
6129 -// #else
6130 -// #...
6131 -// #endif // !UNICODE
6132 -
6133 -extern(Windows) export BOOL FindNextVolumeMountPointA(
6134 - HANDLE hFindVolumeMountPoint,
6135 - LPSTR lpszVolumeMountPoint,
6136 - DWORD cchBufferLength);
6137 -extern(Windows) export BOOL FindNextVolumeMountPointW(
6138 - HANDLE hFindVolumeMountPoint,
6139 - LPWSTR lpszVolumeMountPoint,
6140 - DWORD cchBufferLength);
6141 -// #ifdef UNICODE
6142 -alias FindNextVolumeMountPointW FindNextVolumeMountPoint;
6143 -// #else
6144 -// #...
6145 -// #endif // !UNICODE
6146 -
6147 -extern(Windows) export BOOL FindVolumeMountPointClose(
6148 - HANDLE hFindVolumeMountPoint);
6149 -
6150 -extern(Windows) export BOOL SetVolumeMountPointA(
6151 - LPCSTR lpszVolumeMountPoint,
6152 - LPCSTR lpszVolumeName);
6153 -extern(Windows) export BOOL SetVolumeMountPointW(
6154 - LPCWSTR lpszVolumeMountPoint,
6155 - LPCWSTR lpszVolumeName);
6156 -// #ifdef UNICODE
6157 -alias SetVolumeMountPointW SetVolumeMountPoint;
6158 -// #else
6159 -// #...
6160 -// #endif // !UNICODE
6161 -
6162 -extern(Windows) export BOOL DeleteVolumeMountPointA(
6163 - LPCSTR lpszVolumeMountPoint);
6164 -extern(Windows) export BOOL DeleteVolumeMountPointW(
6165 - LPCWSTR lpszVolumeMountPoint);
6166 -// #ifdef UNICODE
6167 -alias DeleteVolumeMountPointW DeleteVolumeMountPoint;
6168 -// #else
6169 -// #...
6170 -// #endif // !UNICODE
6171 -
6172 -extern(Windows) export BOOL GetVolumeNameForVolumeMountPointA(
6173 - LPCSTR lpszVolumeMountPoint,
6174 - LPSTR lpszVolumeName,
6175 - DWORD cchBufferLength);
6176 -extern(Windows) export BOOL GetVolumeNameForVolumeMountPointW(
6177 - LPCWSTR lpszVolumeMountPoint,
6178 - LPWSTR lpszVolumeName,
6179 - DWORD cchBufferLength);
6180 -// #ifdef UNICODE
6181 -alias GetVolumeNameForVolumeMountPointW GetVolumeNameForVolumeMountPoint;
6182 -// #else
6183 -// #...
6184 -// #endif // !UNICODE
6185 -
6186 -extern(Windows) export BOOL GetVolumePathNameA(
6187 - LPCSTR lpszFileName,
6188 - LPSTR lpszVolumePathName,
6189 - DWORD cchBufferLength);
6190 -extern(Windows) export BOOL GetVolumePathNameW(
6191 - LPCWSTR lpszFileName,
6192 - LPWSTR lpszVolumePathName,
6193 - DWORD cchBufferLength);
6194 -// #ifdef UNICODE
6195 -alias GetVolumePathNameW GetVolumePathName;
6196 -// #else
6197 -// #...
6198 -// #endif // !UNICODE
6199 -
6200 -extern(Windows) export BOOL GetVolumePathNamesForVolumeNameA(
6201 - LPCSTR lpszVolumeName,
6202 - LPSTR lpszVolumePathNames,
6203 - DWORD cchBufferLength,
6204 - PDWORD lpcchReturnLength);
6205 -extern(Windows) export BOOL GetVolumePathNamesForVolumeNameW(
6206 - LPCWSTR lpszVolumeName,
6207 - LPWSTR lpszVolumePathNames,
6208 - DWORD cchBufferLength,
6209 - PDWORD lpcchReturnLength);
6210 -// #ifdef UNICODE
6211 -alias GetVolumePathNamesForVolumeNameW GetVolumePathNamesForVolumeName;
6212 -// #else
6213 -// #...
6214 -// #endif // !UNICODE
6215 -
6216 -// #endif
6217 -
6218 -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED
6219 -
6220 -enum : uint { ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x00000001 }
6221 -enum : uint { ACTCTX_FLAG_LANGID_VALID = 0x00000002 }
6222 -enum : uint { ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x00000004 }
6223 -enum : uint { ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x00000008 }
6224 -enum : uint { ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x00000010 }
6225 -enum : uint { ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x00000020 }
6226 -enum : uint { ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF = 0x00000040 }
6227 -enum : uint { ACTCTX_FLAG_HMODULE_VALID = 0x00000080 }
6228 -
6229 -struct tagACTCTXA {
6230 - ULONG cbSize;
6231 - DWORD dwFlags;
6232 - LPCSTR lpSource;
6233 - USHORT wProcessorArchitecture;
6234 - LANGID wLangId;
6235 - LPCSTR lpAssemblyDirectory;
6236 - LPCSTR lpResourceName;
6237 - LPCSTR lpApplicationName;
6238 - HMODULE hModule;
6239 -}
6240 -alias tagACTCTXA ACTCTXA;
6241 -alias tagACTCTXA* PACTCTXA;
6242 -
6243 -struct tagACTCTXW {
6244 - ULONG cbSize;
6245 - DWORD dwFlags;
6246 - LPCWSTR lpSource;
6247 - USHORT wProcessorArchitecture;
6248 - LANGID wLangId;
6249 - LPCWSTR lpAssemblyDirectory;
6250 - LPCWSTR lpResourceName;
6251 - LPCWSTR lpApplicationName;
6252 - HMODULE hModule;
6253 -}
6254 -alias tagACTCTXW ACTCTXW;
6255 -alias tagACTCTXW* PACTCTXW;
6256 -
6257 -// #ifdef UNICODE
6258 -// skip typedef ACTCTXW ACTCTX;
6259 -alias PACTCTXW PACTCTX;
6260 -// #else
6261 -// ...
6262 -// #endif // UNICODE
6263 -
6264 -alias ACTCTXA* PCACTCTXA;
6265 -alias ACTCTXW* PCACTCTXW;
6266 -// #ifdef UNICODE
6267 -// skip typedef ACTCTXW ACTCTX;
6268 -alias PCACTCTXW PCACTCTX;
6269 -// #else
6270 -// ...
6271 -// #endif // UNICODE
6272 -
6273 -// #endif
6274 -
6275 -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)
6276 -
6277 -extern(Windows) export HANDLE CreateActCtxA(
6278 - PCACTCTXA pActCtx);
6279 -extern(Windows) export HANDLE CreateActCtxW(
6280 - PCACTCTXW pActCtx);
6281 -// #ifdef UNICODE
6282 -alias CreateActCtxW CreateActCtx;
6283 -// #else
6284 -// #...
6285 -// #endif // !UNICODE
6286 -
6287 -extern(Windows) export VOID AddRefActCtx(
6288 - HANDLE hActCtx);
6289 -
6290 -extern(Windows) export VOID ReleaseActCtx(
6291 - HANDLE hActCtx);
6292 -
6293 -extern(Windows) export BOOL ZombifyActCtx(
6294 - HANDLE hActCtx);
6295 -
6296 -extern(Windows) export BOOL ActivateActCtx(
6297 - HANDLE hActCtx,
6298 - ULONG_PTR *lpCookie);
6299 -
6300 -enum : uint { DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 0x00000001 }
6301 -
6302 -extern(Windows) export BOOL DeactivateActCtx(
6303 - DWORD dwFlags,
6304 - ULONG_PTR ulCookie);
6305 -
6306 -extern(Windows) export BOOL GetCurrentActCtx(
6307 - HANDLE *lphActCtx);
6308 -
6309 -// #endif
6310 -
6311 -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED
6312 -
6313 -struct tagACTCTX_SECTION_KEYED_DATA {
6314 - ULONG cbSize;
6315 - ULONG ulDataFormatVersion;
6316 - PVOID lpData;
6317 - ULONG ulLength;
6318 - PVOID lpSectionGlobalData;
6319 - ULONG ulSectionGlobalDataLength;
6320 - PVOID lpSectionBase;
6321 - ULONG ulSectionTotalLength;
6322 - HANDLE hActCtx;
6323 - ULONG ulAssemblyRosterIndex;
6324 -}
6325 -alias tagACTCTX_SECTION_KEYED_DATA ACTCTX_SECTION_KEYED_DATA;
6326 -alias tagACTCTX_SECTION_KEYED_DATA* PACTCTX_SECTION_KEYED_DATA;
6327 -
6328 -enum : uint { FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 0x00000001 }
6329 -
6330 -// #endif
6331 -
6332 -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)
6333 -
6334 -extern(Windows) export BOOL FindActCtxSectionStringA(
6335 - DWORD dwFlags,
6336 - GUID *lpExtensionGuid,
6337 - ULONG ulSectionId,
6338 - LPCSTR lpStringToFind,
6339 - PACTCTX_SECTION_KEYED_DATA ReturnedData);
6340 -extern(Windows) export BOOL FindActCtxSectionStringW(
6341 - DWORD dwFlags,
6342 - GUID *lpExtensionGuid,
6343 - ULONG ulSectionId,
6344 - LPCWSTR lpStringToFind,
6345 - PACTCTX_SECTION_KEYED_DATA ReturnedData);
6346 -// #ifdef UNICODE
6347 -alias FindActCtxSectionStringW FindActCtxSectionString;
6348 -// #else
6349 -// #...
6350 -// #endif // !UNICODE
6351 -
6352 -extern(Windows) export BOOL FindActCtxSectionGuid(
6353 - DWORD dwFlags,
6354 - GUID *lpExtensionGuid,
6355 - ULONG ulSectionId,
6356 - GUID *lpGuidToFind,
6357 - PACTCTX_SECTION_KEYED_DATA ReturnedData);
6358 -
6359 -// #endif
6360 -
6361 -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED
6362 -
6363 -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
6364 -// #if !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED)
6365 -
6366 -// ...
6367 -
6368 -// ...
6369 -
6370 -// #...
6371 -
6372 -// #endif // !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED)
6373 -// #endif
6374 -
6375 -enum : uint { QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x00000004 }
6376 -enum : uint { QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x00000008 }
6377 -enum : uint { QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x00000010 }
6378 -enum : uint { QUERY_ACTCTX_FLAG_NO_ADDREF = 0x80000000 }
6379 -
6380 -// #endif
6381 -
6382 -// #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)
6383 -
6384 -extern(Windows) export BOOL QueryActCtxW(
6385 - DWORD dwFlags,
6386 - HANDLE hActCtx,
6387 - PVOID pvSubInstance,
6388 - ULONG ulInfoClass,
6389 - PVOID pvBuffer,
6390 - SIZE_T cbBuffer ,
6391 - SIZE_T *pcbWrittenOrRequired );
6392 -
6393 -extern(Windows) alias BOOL function( DWORD dwFlags, HANDLE hActCtx, PVOID pvSubInstance, ULONG ulInfoClass, PVOID pvBuffer, SIZE_T cbBuffer , SIZE_T *pcbWrittenOrRequired ) PQUERYACTCTXW_FUNC;
6394 -
6395 -// #endif // (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100)
6396 -
6397 -extern(Windows) export BOOL ProcessIdToSessionId(
6398 - DWORD dwProcessId,
6399 - DWORD *pSessionId);
6400 -
6401 -// #if _WIN32_WINNT >= 0x0501
6402 -
6403 -extern(Windows) export DWORD WTSGetActiveConsoleSessionId();
6404 -
6405 -extern(Windows) export BOOL IsWow64Process(
6406 - HANDLE hProcess,
6407 - PBOOL Wow64Process);
6408 -
6409 -// #endif // (_WIN32_WINNT >= 0x0501)
6410 -
6411 -extern(Windows) export BOOL GetNumaHighestNodeNumber(
6412 - PULONG HighestNodeNumber);
6413 -
6414 -extern(Windows) export BOOL GetNumaProcessorNode(
6415 - UCHAR Processor,
6416 - PUCHAR NodeNumber);
6417 -
6418 -extern(Windows) export BOOL GetNumaNodeProcessorMask(
6419 - UCHAR Node,
6420 - PULONGLONG ProcessorMask);
6421 -
6422 -extern(Windows) export BOOL GetNumaProcessorMap(
6423 - PSYSTEM_NUMA_INFORMATION Map,
6424 - ULONG Length,
6425 - PULONG ReturnedLength);
6426 -
6427 -extern(Windows) export BOOL GetNumaAvailableMemory(
6428 - PSYSTEM_NUMA_INFORMATION Memory,
6429 - ULONG Length,
6430 - PULONG ReturnedLength);
6431 -
6432 -extern(Windows) export BOOL GetNumaAvailableMemoryNode(
6433 - UCHAR Node,
6434 - PULONGLONG AvailableBytes);
6435 -
6436 -extern(Windows) export ULONGLONG NumaVirtualQueryNode(
6437 - ULONG NumberOfRanges,
6438 - PULONG_PTR RangeList,
6439 - PULONG_PTR VirtualPageAndNode,
6440 - SIZE_T MaximumOutputLength);
6441 -
6442 -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
6443 -// #if ISOLATION_AWARE_ENABLED
6444 -// #...
6445 -// #endif /* ISOLATION_AWARE_ENABLED */
6446 -// #endif /* RC */
6447 -
6448 -// #ifdef __cplusplus
6449 -// }
6450 -// #endif
6451 -
6452 -// #endif // _WINBASE_
6453 -
2817 + static if (_WIN32_WINNT >= 0x501) {
2818 + alias ACTCTX* PACTCTX, PCACTCTX;
2819 + }
2820 +}