|
|
1.1 root 1: /*++ BUILD Version: 0001 // Increment this if a change has global effects
2:
3: Copyright (c) 1990 Microsoft Corporation
4:
5: Module Name:
6:
7: winbase.h
8:
9: Abstract:
10:
11: This module defines the 32-Bit Windows Base APIs
12:
13: Created:
14:
15: 18-Sep-1990
16:
17: Revision History:
18:
19: --*/
20:
21: #ifndef _WINBASE_
22: #define _WINBASE_
23:
24: /*
25: * Compatability macros
26: */
27:
28: #define DefineHandleTable(w) ((w),TRUE)
29: #define LimitEmsPages(dw)
30: #define SetSwapAreaSize(w) (w)
31: #define LockSegment(w) GlobalFix((HANDLE)(w))
32: #define UnlockSegment(w) GlobalUnfix((HANDLE)(w))
33: #define GetCurrentTime() GetTickCount()
34:
35: #define Yield()
36:
37: #define INVALID_HANDLE_VALUE (HANDLE)-1
38: #define FILE_BEGIN 0
39: #define FILE_CURRENT 1
40: #define FILE_END 2
41:
42: #define WAIT_OBJECT_0 ((STATUS_WAIT_0 ) + 0 )
43:
44: #define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0 ) + 0 )
45: #define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0 ) + 0 )
46:
47: #define WAIT_TIMEOUT STATUS_TIMEOUT
48: #define WAIT_IO_COMPLETION STATUS_USER_APC
49: #define STILL_ACTIVE STATUS_PENDING
50: #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
51: #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
52: #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
53: #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
54: #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
55: #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
56: #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
57: #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
58: #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
59: #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
60: #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
61: #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
62: #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
63: #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
64: #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
65: #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
66:
67: //
68: // File creation flags must start at the high end since they
69: // are combined with the attributes
70: //
71:
72: #define FILE_FLAG_WRITE_THROUGH 0x80000000
73: #define FILE_FLAG_OVERLAPPED 0x40000000
74: #define FILE_FLAG_NO_BUFFERING 0x20000000
75: #define FILE_FLAG_RANDOM_ACCESS 0x10000000
76: #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000
77: #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
78: #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000
79:
80: #define CREATE_NEW 1
81: #define CREATE_ALWAYS 2
82: #define OPEN_EXISTING 3
83: #define OPEN_ALWAYS 4
84: #define TRUNCATE_EXISTING 5
85:
86: //
87: // Define the NamedPipe definitions
88: //
89:
90:
91: //
92: // Define the dwOpenMode values for CreateNamedPipe
93: //
94:
95: #define PIPE_ACCESS_INBOUND 0x00000001
96: #define PIPE_ACCESS_OUTBOUND 0x00000002
97: #define PIPE_ACCESS_DUPLEX 0x00000003
98:
99: //
100: // Define the Named Pipe End flags for GetNamedPipeInfo
101: //
102:
103: #define PIPE_CLIENT_END 0x00000000
104: #define PIPE_SERVER_END 0x00000001
105:
106: //
107: // Define the dwPipeMode values for CreateNamedPipe
108: //
109:
110: #define PIPE_WAIT 0x00000000
111: #define PIPE_NOWAIT 0x00000001
112: #define PIPE_READMODE_BYTE 0x00000000
113: #define PIPE_READMODE_MESSAGE 0x00000002
114: #define PIPE_TYPE_BYTE 0x00000000
115: #define PIPE_TYPE_MESSAGE 0x00000004
116:
117: //
118: // Define the well known values for CreateNamedPipe nMaxInstances
119: //
120:
121: #define PIPE_UNLIMITED_INSTANCES 255
122:
123: //
124: // Define the Security Quality of Service bits to be passed
125: // into CreateFile
126: //
127:
128: #define SECURITY_ANONYMOUS ( SecurityAnonymous << 16 )
129: #define SECURITY_IDENTIFICATION ( SecurityIdentification << 16 )
130: #define SECURITY_IMPERSONATION ( SecurityImpersonation << 16 )
131: #define SECURITY_DELEGATION ( SecurityDelegation << 16 )
132:
133: #define SECURITY_CONTEXT_TRACKING 0x00040000
134: #define SECURITY_EFFECTIVE_ONLY 0x00080000
135:
136: #define SECURITY_SQOS_PRESENT 0x00100000
137: #define SECURITY_VALID_SQOS_FLAGS 0x001F0000
138:
139:
140: //
141: // Special values for mailslot information.
142: //
143:
144: //
145: // Special value for NextMessageSize to indicate that there is no next
146: // message.
147: //
148:
149: #define MAILSLOT_NO_MESSAGE ((ULONG)-1)
150:
151: //
152: // Special value for read timeout to indicate that mailslot reads should
153: // never timeout.
154: //
155:
156: #define MAILSLOT_WAIT_FOREVER ((ULONG)-1)
157:
158: //
159: // File structures
160: //
161:
162: typedef struct _OVERLAPPED {
163: DWORD Internal;
164: DWORD InternalHigh;
165: DWORD Offset;
166: DWORD OffsetHigh;
167: HANDLE hEvent;
168: } OVERLAPPED, *LPOVERLAPPED;
169:
170: typedef struct _SECURITY_ATTRIBUTES {
171: DWORD nLength;
172: LPVOID lpSecurityDescriptor;
173: BOOL bInheritHandle;
174: } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
175:
176: typedef struct _PROCESS_INFORMATION {
177: HANDLE hProcess;
178: HANDLE hThread;
179: DWORD dwProcessId;
180: DWORD dwThreadId;
181: } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
182:
183: //
184: // File System time stamps are represented with the following structure:
185: //
186:
187: typedef struct _FILETIME {
188: DWORD dwLowDateTime;
189: DWORD dwHighDateTime;
190: } FILETIME, *PFILETIME, *LPFILETIME;
191:
192: //
193: // System time is represented with the following structure:
194: //
195:
196: typedef struct _SYSTEMTIME {
197: WORD wYear;
198: WORD wMonth;
199: WORD wDayOfWeek;
200: WORD wDay;
201: WORD wHour;
202: WORD wMinute;
203: WORD wSecond;
204: WORD wMilliseconds;
205: } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
206:
207: typedef DWORD (*PTHREAD_START_ROUTINE)(
208: LPVOID lpThreadParameter
209: );
210: typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
211:
212: typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
213: typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
214: typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
215:
216: #ifdef i386
217: typedef PLDT_ENTRY LPLDT_ENTRY;
218: #else
219: typedef LPVOID LPLDT_ENTRY;
220: #endif
221:
222: #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
223: #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS
224:
225: //
226: // Serial provider type.
227: //
228:
229: #define SP_SERIALCOMM ((DWORD)0x00000001)
230:
231: //
232: // Provider SubTypes
233: //
234:
235: #define PST_UNSPECIFIED ((DWORD)0x00000000)
236: #define PST_RS232 ((DWORD)0x00000001)
237: #define PST_PARALLELPORT ((DWORD)0x00000002)
238: #define PST_RS422 ((DWORD)0x00000003)
239: #define PST_RS423 ((DWORD)0x00000004)
240: #define PST_RS449 ((DWORD)0x00000005)
241: #define PST_FAX ((DWORD)0x00000021)
242: #define PST_SCANNER ((DWORD)0x00000022)
243: #define PST_NETWORK_BRIDGE ((DWORD)0x00000100)
244: #define PST_LAT ((DWORD)0x00000101)
245: #define PST_TCPIP_TELNET ((DWORD)0x00000102)
246: #define PST_X25 ((DWORD)0x00000103)
247:
248:
249: //
250: // Provider capabilities flags.
251: //
252:
253: #define PCF_DTRDSR ((DWORD)0x0001)
254: #define PCF_RTSCTS ((DWORD)0x0002)
255: #define PCF_RLSD ((DWORD)0x0004)
256: #define PCF_PARITY_CHECK ((DWORD)0x0008)
257: #define PCF_XONXOFF ((DWORD)0x0010)
258: #define PCF_SETXCHAR ((DWORD)0x0020)
259: #define PCF_TOTALTIMEOUTS ((DWORD)0x0040)
260: #define PCF_INTTIMEOUTS ((DWORD)0x0080)
261: #define PCF_SPECIALCHARS ((DWORD)0x0100)
262: #define PCF_16BITMODE ((DWORD)0x0200)
263:
264: //
265: // Comm provider settable parameters.
266: //
267:
268: #define SP_PARITY ((DWORD)0x0001)
269: #define SP_BAUD ((DWORD)0x0002)
270: #define SP_DATABITS ((DWORD)0x0004)
271: #define SP_STOPBITS ((DWORD)0x0008)
272: #define SP_HANDSHAKING ((DWORD)0x0010)
273: #define SP_PARITY_CHECK ((DWORD)0x0020)
274: #define SP_RLSD ((DWORD)0x0040)
275:
276: //
277: // Settable baud rates in the provider.
278: //
279:
280: #define BAUD_075 ((DWORD)0x00000001)
281: #define BAUD_110 ((DWORD)0x00000002)
282: #define BAUD_134_5 ((DWORD)0x00000004)
283: #define BAUD_150 ((DWORD)0x00000008)
284: #define BAUD_300 ((DWORD)0x00000010)
285: #define BAUD_600 ((DWORD)0x00000020)
286: #define BAUD_1200 ((DWORD)0x00000040)
287: #define BAUD_1800 ((DWORD)0x00000080)
288: #define BAUD_2400 ((DWORD)0x00000100)
289: #define BAUD_4800 ((DWORD)0x00000200)
290: #define BAUD_7200 ((DWORD)0x00000400)
291: #define BAUD_9600 ((DWORD)0x00000800)
292: #define BAUD_14400 ((DWORD)0x00001000)
293: #define BAUD_19200 ((DWORD)0x00002000)
294: #define BAUD_38400 ((DWORD)0x00004000)
295: #define BAUD_56K ((DWORD)0x00008000)
296: #define BAUD_128K ((DWORD)0x00010000)
297: #define BAUD_USER ((DWORD)0x10000000)
298:
299: //
300: // Settable Data Bits
301: //
302:
303: #define DATABITS_5 ((WORD)0x0001)
304: #define DATABITS_6 ((WORD)0x0002)
305: #define DATABITS_7 ((WORD)0x0004)
306: #define DATABITS_8 ((WORD)0x0008)
307: #define DATABITS_16 ((WORD)0x0010)
308: #define DATABITS_16X ((WORD)0x0020)
309:
310: //
311: // Settable Stop and Parity bits.
312: //
313:
314: #define STOPBITS_10 ((WORD)0x0001)
315: #define STOPBITS_15 ((WORD)0x0002)
316: #define STOPBITS_20 ((WORD)0x0004)
317: #define PARITY_NONE ((WORD)0x0100)
318: #define PARITY_ODD ((WORD)0x0200)
319: #define PARITY_EVEN ((WORD)0x0400)
320: #define PARITY_MARK ((WORD)0x0800)
321: #define PARITY_SPACE ((WORD)0x1000)
322:
323: typedef struct _COMMPROP {
324: WORD wPacketLength;
325: WORD wPacketVersion;
326: DWORD dwServiceMask;
327: DWORD dwReserved1;
328: DWORD dwMaxTxQueue;
329: DWORD dwMaxRxQueue;
330: DWORD dwMaxBaud;
331: DWORD dwProvSubType;
332: DWORD dwProvCapabilities;
333: DWORD dwSettableParams;
334: DWORD dwSettableBaud;
335: WORD wSettableData;
336: WORD wSettableStopParity;
337: DWORD dwCurrentTxQueue;
338: DWORD dwCurrentRxQueue;
339: DWORD dwProvSpec1;
340: DWORD dwProvSpec2;
341: WCHAR wcProvChar[1];
342: } COMMPROP,*LPCOMMPROP;
343:
344: typedef struct _COMSTAT {
345: DWORD fCtsHold : 1;
346: DWORD fDsrHold : 1;
347: DWORD fRlsdHold : 1;
348: DWORD fXoffHold : 1;
349: DWORD fXoffSent : 1;
350: DWORD fEof : 1;
351: DWORD fTxim : 1;
352: DWORD fReserved : 17;
353: DWORD cbInQue;
354: DWORD cbOutQue;
355: } COMSTAT, *LPCOMSTAT;
356:
357: //
358: // DTR Control Flow Values.
359: //
360: #define DTR_CONTROL_DISABLE 0x00
361: #define DTR_CONTROL_ENABLE 0x01
362: #define DTR_CONTROL_HANDSHAKE 0x02
363:
364: //
365: // RTS Control Flow Values
366: //
367: #define RTS_CONTROL_DISABLE 0x00
368: #define RTS_CONTROL_ENABLE 0x01
369: #define RTS_CONTROL_HANDSHAKE 0x02
370: #define RTS_CONTROL_TOGGLE 0x03
371:
372: typedef struct _DCB {
373: DWORD DCBlength; /* sizeof(DCB) */
374: DWORD BaudRate; /* Baudrate at which running */
375: DWORD fBinary: 1; /* Binary Mode (skip EOF check) */
376: DWORD fParity: 1; /* Enable parity checking */
377: DWORD fOutxCtsFlow:1; /* CTS handshaking on output */
378: DWORD fOutxDsrFlow:1; /* DSR handshaking on output */
379: DWORD fDtrControl:2; /* DTR Flow control */
380: DWORD fDsrSensitivity:1; /* DSR Sensitivity */
381: DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */
382: DWORD fOutX: 1; /* Enable output X-ON/X-OFF */
383: DWORD fInX: 1; /* Enable input X-ON/X-OFF */
384: DWORD fErrorChar: 1; /* Enable Err Replacement */
385: DWORD fNull: 1; /* Enable Null stripping */
386: DWORD fRtsControl:2; /* Rts Flow control */
387: DWORD fAbortOnError:1; /* Abort all reads and writes on Error */
388: DWORD fDummy2:1; /* Reserved */
389: WORD wReserved; /* Not currently used */
390: WORD XonLim; /* Transmit X-ON threshold */
391: WORD XoffLim; /* Transmit X-OFF threshold */
392: BYTE ByteSize; /* Number of bits/byte, 4-8 */
393: BYTE Parity; /* 0-4=None,Odd,Even,Mark,Space */
394: BYTE StopBits; /* 0,1,2 = 1, 1.5, 2 */
395: char XonChar; /* Tx and Rx X-ON character */
396: char XoffChar; /* Tx and Rx X-OFF character */
397: char ErrorChar; /* Error replacement char */
398: char EofChar; /* End of Input character */
399: char EvtChar; /* Recieved Event character */
400: } DCB, *LPDCB;
401:
402: typedef struct _COMMTIMEOUTS {
403: DWORD ReadIntervalTimeout; /* Maximum time between read chars. */
404: DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */
405: DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */
406: DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */
407: DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */
408: } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
409:
410: typedef struct _SYSTEM_INFO {
411: DWORD dwOemId;
412: DWORD dwPageSize;
413: LPVOID lpMinimumApplicationAddress;
414: LPVOID lpMaximumApplicationAddress;
415: DWORD dwActiveProcessorMask;
416: DWORD dwNumberOfProcessors;
417: DWORD dwProcessorType;
418: DWORD dwProcessorRevision;
419: DWORD dwProcessorOptions;
420: } SYSTEM_INFO, *LPSYSTEM_INFO;
421:
422: #define FreeModule(hLibModule) FreeLibrary((hLibModule))
423: #define MakeProcInstance(lpProc,hInstance) (lpProc)
424: #define FreeProcInstance(lpProc)
425:
426: /* Global Memory Flags */
427: #define GMEM_FIXED 0x0000
428: #define GMEM_MOVEABLE 0x0002
429: #define GMEM_NOCOMPACT 0x0010
430: #define GMEM_NODISCARD 0x0020
431: #define GMEM_ZEROINIT 0x0040
432: #define GMEM_MODIFY 0x0080
433: #define GMEM_DISCARDABLE 0x0100
434: #define GMEM_NOT_BANKED 0x1000
435: #define GMEM_SHARE 0x2000
436: #define GMEM_DDESHARE 0x2000
437: #define GMEM_NOTIFY 0x4000
438: #define GMEM_LOWER GMEM_NOT_BANKED
439: #define GMEM_VALID_FLAGS 0x7F72
440: #define GMEM_INVALID_HANDLE 0x8000
441:
442: #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
443: #define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
444:
445: #define GlobalLRUNewest( h ) (HANDLE)(h)
446: #define GlobalLRUOldest( h ) (HANDLE)(h)
447: #define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE )
448:
449: /* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */
450: #define GMEM_DISCARDED 0x4000
451: #define GMEM_LOCKCOUNT 0x00FF
452:
453: typedef struct _MEMORYSTATUS {
454: DWORD dwLength;
455: DWORD dwMemoryLoad;
456: DWORD dwTotalPhys;
457: DWORD dwAvailPhys;
458: DWORD dwTotalPageFile;
459: DWORD dwAvailPageFile;
460: DWORD dwTotalVirtual;
461: DWORD dwAvailVirtual;
462: } MEMORYSTATUS, *LPMEMORYSTATUS;
463:
464: /* Local Memory Flags */
465: #define LMEM_FIXED 0x0000
466: #define LMEM_MOVEABLE 0x0002
467: #define LMEM_NOCOMPACT 0x0010
468: #define LMEM_NODISCARD 0x0020
469: #define LMEM_ZEROINIT 0x0040
470: #define LMEM_MODIFY 0x0080
471: #define LMEM_DISCARDABLE 0x0F00
472: #define LMEM_VALID_FLAGS 0x0F72
473: #define LMEM_INVALID_HANDLE 0x8000
474:
475: #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
476: #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
477:
478: #define NONZEROLHND (LMEM_MOVEABLE)
479: #define NONZEROLPTR (LMEM_FIXED)
480:
481: #define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE )
482:
483: /* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */
484: #define LMEM_DISCARDED 0x4000
485: #define LMEM_LOCKCOUNT 0x00FF
486:
487: //
488: // dwCreationFlag values
489: //
490:
491: #define DEBUG_PROCESS 0x00000001
492: #define DEBUG_ONLY_THIS_PROCESS 0x00000002
493:
494: #define CREATE_SUSPENDED 0x00000004
495:
496: #define DETACHED_PROCESS 0x00000008
497:
498: #define CREATE_NEW_CONSOLE 0x00000010
499:
500: #define NORMAL_PRIORITY_CLASS 0x00000020
501: #define IDLE_PRIORITY_CLASS 0x00000040
502: #define HIGH_PRIORITY_CLASS 0x00000080
503:
504: #define CREATE_NO_WINDOW 0x08000000
505:
506: #define PROFILE_USER 0x10000000
507: #define PROFILE_KERNEL 0x20000000
508: #define PROFILE_SERVER 0x40000000
509:
510: #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
511: #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1)
512: #define THREAD_PRIORITY_NORMAL 0
513: #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX
514: #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1)
515: #define THREAD_PRIORITY_ERROR_RETURN (MAXLONG)
516:
517: //
518: // Debug APIs
519: //
520: #define EXCEPTION_DEBUG_EVENT 1
521: #define CREATE_THREAD_DEBUG_EVENT 2
522: #define CREATE_PROCESS_DEBUG_EVENT 3
523: #define EXIT_THREAD_DEBUG_EVENT 4
524: #define EXIT_PROCESS_DEBUG_EVENT 5
525: #define LOAD_DLL_DEBUG_EVENT 6
526: #define UNLOAD_DLL_DEBUG_EVENT 7
527: #define OUTPUT_DEBUG_STRING_EVENT 8
528: #define RIP_EVENT 9
529:
530: typedef struct _EXCEPTION_DEBUG_INFO {
531: EXCEPTION_RECORD ExceptionRecord;
532: DWORD dwFirstChance;
533: } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
534:
535: typedef struct _CREATE_THREAD_DEBUG_INFO {
536: HANDLE hThread;
537: LPTHREAD_START_ROUTINE lpStartAddress;
538: } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
539:
540: typedef struct _CREATE_PROCESS_DEBUG_INFO {
541: HANDLE hFile;
542: HANDLE hProcess;
543: HANDLE hThread;
544: LPVOID lpBaseOfImage;
545: DWORD dwDebugInfoFileOffset;
546: DWORD nDebugInfoSize;
547: LPTHREAD_START_ROUTINE lpStartAddress;
548: } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
549:
550: typedef struct _EXIT_THREAD_DEBUG_INFO {
551: DWORD dwExitCode;
552: } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
553:
554: typedef struct _EXIT_PROCESS_DEBUG_INFO {
555: DWORD dwExitCode;
556: } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
557:
558: typedef struct _LOAD_DLL_DEBUG_INFO {
559: HANDLE hFile;
560: LPVOID lpBaseOfDll;
561: DWORD dwDebugInfoFileOffset;
562: DWORD nDebugInfoSize;
563: } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
564:
565: typedef struct _UNLOAD_DLL_DEBUG_INFO {
566: LPVOID lpBaseOfDll;
567: } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
568:
569: typedef struct _OUTPUT_DEBUG_STRING_INFO {
570: LPSTR lpDebugStringData;
571: WORD fUnicode;
572: WORD nDebugStringLength;
573: } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
574:
575: typedef struct _RIP_INFO {
576: DWORD dwError;
577: DWORD dwType;
578: } RIP_INFO, *LPRIP_INFO;
579:
580:
581: typedef struct _DEBUG_EVENT {
582: DWORD dwDebugEventCode;
583: DWORD dwProcessId;
584: DWORD dwThreadId;
585: union {
586: EXCEPTION_DEBUG_INFO Exception;
587: CREATE_THREAD_DEBUG_INFO CreateThread;
588: CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
589: EXIT_THREAD_DEBUG_INFO ExitThread;
590: EXIT_THREAD_DEBUG_INFO ExitProcess;
591: LOAD_DLL_DEBUG_INFO LoadDll;
592: UNLOAD_DLL_DEBUG_INFO UnloadDll;
593: OUTPUT_DEBUG_STRING_INFO DebugString;
594: RIP_INFO RipInfo;
595: } u;
596: } DEBUG_EVENT, *LPDEBUG_EVENT;
597:
598: typedef PCONTEXT LPCONTEXT;
599: typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
600: typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
601:
602: #define DRIVE_REMOVABLE 2
603: #define DRIVE_FIXED 3
604: #define DRIVE_REMOTE 4
605: #define DRIVE_CDROM 5
606: #define DRIVE_RAMDISK 6
607:
608:
609: #define GetFreeSpace(w) (0x100000L)
610:
611:
612: #define FILE_TYPE_UNKNOWN 0x0000
613: #define FILE_TYPE_DISK 0x0001
614: #define FILE_TYPE_CHAR 0x0002
615: #define FILE_TYPE_PIPE 0x0003
616: #define FILE_TYPE_REMOTE 0x8000
617:
618:
619: #define STD_INPUT_HANDLE (DWORD)-10
620: #define STD_OUTPUT_HANDLE (DWORD)-11
621: #define STD_ERROR_HANDLE (DWORD)-12
622:
623: #define NOPARITY 0
624: #define ODDPARITY 1
625: #define EVENPARITY 2
626: #define MARKPARITY 3
627: #define SPACEPARITY 4
628:
629: #define ONESTOPBIT 0
630: #define ONE5STOPBITS 1
631: #define TWOSTOPBITS 2
632:
633: #define IGNORE 0 // Ignore signal
634: #define INFINITE 0xFFFFFFFF // Infinite timeout
635:
636: //
637: // Basud rates at which the communication device operates
638: //
639:
640: #define CBR_110 110
641: #define CBR_300 300
642: #define CBR_600 600
643: #define CBR_1200 1200
644: #define CBR_2400 2400
645: #define CBR_4800 4800
646: #define CBR_9600 9600
647: #define CBR_14400 14400
648: #define CBR_19200 19200
649: #define CBR_38400 38400
650: #define CBR_56000 56000
651: #define CBR_128000 128000
652: #define CBR_256000 256000
653:
654: //
655: // Error Flags
656: //
657:
658: #define CE_RXOVER 0x0001 // Receive Queue overflow
659: #define CE_OVERRUN 0x0002 // Receive Overrun Error
660: #define CE_RXPARITY 0x0004 // Receive Parity Error
661: #define CE_FRAME 0x0008 // Receive Framing error
662: #define CE_BREAK 0x0010 // Break Detected
663: #define CE_TXFULL 0x0100 // TX Queue is full
664: #define CE_PTO 0x0200 // LPTx Timeout
665: #define CE_IOE 0x0400 // LPTx I/O Error
666: #define CE_DNS 0x0800 // LPTx Device not selected
667: #define CE_OOP 0x1000 // LPTx Out-Of-Paper
668: #define CE_MODE 0x8000 // Requested mode unsupported
669:
670: #define IE_BADID (-1) // Invalid or unsupported id
671: #define IE_OPEN (-2) // Device Already Open
672: #define IE_NOPEN (-3) // Device Not Open
673: #define IE_MEMORY (-4) // Unable to allocate queues
674: #define IE_DEFAULT (-5) // Error in default parameters
675: #define IE_HARDWARE (-10) // Hardware Not Present
676: #define IE_BYTESIZE (-11) // Illegal Byte Size
677: #define IE_BAUDRATE (-12) // Unsupported BaudRate
678:
679: //
680: // Events
681: //
682:
683: #define EV_RXCHAR 0x0001 // Any Character received
684: #define EV_RXFLAG 0x0002 // Received certain character
685: #define EV_TXEMPTY 0x0004 // Transmitt Queue Empty
686: #define EV_CTS 0x0008 // CTS changed state
687: #define EV_DSR 0x0010 // DSR changed state
688: #define EV_RLSD 0x0020 // RLSD changed state
689: #define EV_BREAK 0x0040 // BREAK received
690: #define EV_ERR 0x0080 // Line status error occurred
691: #define EV_RING 0x0100 // Ring signal detected
692: #define EV_PERR 0x0200 // Printer error occured
693: #define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full
694: #define EV_EVENT1 0x0800 // Provider specific event 1
695: #define EV_EVENT2 0x1000 // Provider specific event 2
696:
697: //
698: // Escape Functions
699: //
700:
701: #define SETXOFF 1 // Simulate XOFF received
702: #define SETXON 2 // Simulate XON received
703: #define SETRTS 3 // Set RTS high
704: #define CLRRTS 4 // Set RTS low
705: #define SETDTR 5 // Set DTR high
706: #define CLRDTR 6 // Set DTR low
707: #define RESETDEV 7 // Reset device if possible
708: #define SETBREAK 8 // Set the device break line.
709: #define CLRBREAK 9 // Clear the device break line.
710:
711: //
712: // PURGE function flags.
713: //
714: #define PURGE_TXABORT 0x0001 // Kill the pending/current writes to the comm port.
715: #define PURGE_RXABORT 0x0002 // Kill the pending/current reads to the comm port.
716: #define PURGE_TXCLEAR 0x0004 // Kill the transmit queue if there.
717: #define PURGE_RXCLEAR 0x0008 // Kill the typeahead buffer if there.
718:
719: #define LPTx 0x80 // Set if ID is for LPT device
720:
721: //
722: // Modem Status Flags
723: //
724: #define MS_CTS_ON ((DWORD)0x0010)
725: #define MS_DSR_ON ((DWORD)0x0020)
726: #define MS_RING_ON ((DWORD)0x0040)
727: #define MS_RLSD_ON ((DWORD)0x0080)
728:
729: //
730: // WaitSoundState() Constants
731: //
732:
733: #define S_QUEUEEMPTY 0
734: #define S_THRESHOLD 1
735: #define S_ALLTHRESHOLD 2
736:
737: //
738: // Accent Modes
739: //
740:
741: #define S_NORMAL 0
742: #define S_LEGATO 1
743: #define S_STACCATO 2
744:
745: //
746: // SetSoundNoise() Sources
747: //
748:
749: #define S_PERIOD512 0 // Freq = N/512 high pitch, less coarse hiss
750: #define S_PERIOD1024 1 // Freq = N/1024
751: #define S_PERIOD2048 2 // Freq = N/2048 low pitch, more coarse hiss
752: #define S_PERIODVOICE 3 // Source is frequency from voice channel (3)
753: #define S_WHITE512 4 // Freq = N/512 high pitch, less coarse hiss
754: #define S_WHITE1024 5 // Freq = N/1024
755: #define S_WHITE2048 6 // Freq = N/2048 low pitch, more coarse hiss
756: #define S_WHITEVOICE 7 // Source is frequency from voice channel (3)
757:
758: #define S_SERDVNA (-1) // Device not available
759: #define S_SEROFM (-2) // Out of memory
760: #define S_SERMACT (-3) // Music active
761: #define S_SERQFUL (-4) // Queue full
762: #define S_SERBDNT (-5) // Invalid note
763: #define S_SERDLN (-6) // Invalid note length
764: #define S_SERDCC (-7) // Invalid note count
765: #define S_SERDTP (-8) // Invalid tempo
766: #define S_SERDVL (-9) // Invalid volume
767: #define S_SERDMD (-10) // Invalid mode
768: #define S_SERDSH (-11) // Invalid shape
769: #define S_SERDPT (-12) // Invalid pitch
770: #define S_SERDFQ (-13) // Invalid frequency
771: #define S_SERDDR (-14) // Invalid duration
772: #define S_SERDSR (-15) // Invalid source
773: #define S_SERDST (-16) // Invalid state
774:
775: #define NMPWAIT_WAIT_FOREVER 0xffffffff
776: #define NMPWAIT_NOWAIT 0x00000001
777: #define NMPWAIT_USE_DEFAULT_WAIT 0x00000000
778:
779: #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
780: #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
781: #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
782:
783: #define FILE_MAP_WRITE SECTION_MAP_WRITE
784: #define FILE_MAP_READ SECTION_MAP_READ
785: #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
786:
787: #define OF_READ 0x00000000
788: #define OF_WRITE 0x00000001
789: #define OF_READWRITE 0x00000002
790: #define OF_SHARE_COMPAT 0x00000000
791: #define OF_SHARE_EXCLUSIVE 0x00000010
792: #define OF_SHARE_DENY_WRITE 0x00000020
793: #define OF_SHARE_DENY_READ 0x00000030
794: #define OF_SHARE_DENY_NONE 0x00000040
795: #define OF_PARSE 0x00000100
796: #define OF_DELETE 0x00000200
797: #define OF_VERIFY 0x00000400
798: #define OF_CANCEL 0x00000800
799: #define OF_CREATE 0x00001000
800: #define OF_PROMPT 0x00002000
801: #define OF_EXIST 0x00004000
802: #define OF_REOPEN 0x00008000
803:
804: #define OFS_MAXPATHNAME 128
805: typedef struct _OFSTRUCT {
806: BYTE cBytes;
807: BYTE fFixedDisk;
808: WORD nErrCode;
809: WORD Reserved1;
810: WORD Reserved2;
811: BYTE szPathName[OFS_MAXPATHNAME];
812: } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT;
813:
814: LONG
815: WINAPI
816: InterlockedIncrement(
817: LPLONG lpAddend
818: );
819:
820: LONG
821: WINAPI
822: InterlockedDecrement(
823: LPLONG lpAddend
824: );
825:
826: BOOL
827: WINAPI
828: FreeResource(
829: HGLOBAL hResData
830: );
831:
832: LPVOID
833: WINAPI
834: LockResource(
835: HGLOBAL hResData
836: );
837:
838: #define UnlockResource(hResData) ((hResData), 0)
839: #define MAXINTATOM 0xC000
840: #define MAKEINTATOM(i) (LPTSTR)((DWORD)((WORD)(i)))
841: #define INVALID_ATOM ((ATOM)0)
842:
843: int
844: WINAPI
845: WinMain(
846: HINSTANCE hInstance,
847: HINSTANCE hPrevInstance,
848: LPSTR lpCmdLine,
849: int nShowCmd
850: );
851:
852: BOOL
853: WINAPI
854: FreeLibrary(
855: HINSTANCE hLibModule
856: );
857:
858: FARPROC
859: WINAPI
860: GetProcAddress(
861: HINSTANCE hModule,
862: LPCSTR lpProcName
863: );
864:
865: DWORD
866: WINAPI
867: GetVersion( VOID );
868:
869: HGLOBAL
870: WINAPI
871: GlobalAlloc(
872: UINT uFlags,
873: DWORD dwBytes
874: );
875:
876: HGLOBAL
877: WINAPI
878: GlobalReAlloc(
879: HGLOBAL hMem,
880: DWORD dwBytes,
881: UINT uFlags
882: );
883:
884: DWORD
885: WINAPI
886: GlobalSize(
887: HGLOBAL hMem
888: );
889:
890: UINT
891: WINAPI
892: GlobalFlags(
893: HGLOBAL hMem
894: );
895:
896:
897: LPVOID
898: WINAPI
899: GlobalLock(
900: HGLOBAL hMem
901: );
902:
903: //!!!MWH My version win31 = DWORD WINAPI GlobalHandle(UINT)
904: HGLOBAL
905: WINAPI
906: GlobalHandle(
907: LPVOID pMem
908: );
909:
910:
911: BOOL
912: WINAPI
913: GlobalUnlock(
914: HGLOBAL hMem
915: );
916:
917:
918: HGLOBAL
919: WINAPI
920: GlobalFree(
921: HGLOBAL hMem
922: );
923:
924: UINT
925: WINAPI
926: GlobalCompact(
927: DWORD dwMinFree
928: );
929:
930: VOID
931: WINAPI
932: GlobalFix(
933: HGLOBAL hMem
934: );
935:
936: VOID
937: WINAPI
938: GlobalUnfix(
939: HGLOBAL hMem
940: );
941:
942: LPVOID
943: WINAPI
944: GlobalWire(
945: HGLOBAL hMem
946: );
947:
948: BOOL
949: WINAPI
950: GlobalUnWire(
951: HGLOBAL hMem
952: );
953:
954: VOID
955: WINAPI
956: GlobalMemoryStatus(
957: LPMEMORYSTATUS lpBuffer
958: );
959:
960: HLOCAL
961: WINAPI
962: LocalAlloc(
963: UINT uFlags,
964: UINT uBytes
965: );
966:
967: HLOCAL
968: WINAPI
969: LocalReAlloc(
970: HLOCAL hMem,
971: UINT uBytes,
972: UINT uFlags
973: );
974:
975: LPVOID
976: WINAPI
977: LocalLock(
978: HLOCAL hMem
979: );
980:
981: HLOCAL
982: WINAPI
983: LocalHandle(
984: LPVOID pMem
985: );
986:
987: BOOL
988: WINAPI
989: LocalUnlock(
990: HLOCAL hMem
991: );
992:
993: UINT
994: WINAPI
995: LocalSize(
996: HLOCAL hMem
997: );
998:
999: UINT
1000: WINAPI
1001: LocalFlags(
1002: HLOCAL hMem
1003: );
1004:
1005: HLOCAL
1006: WINAPI
1007: LocalFree(
1008: HLOCAL hMem
1009: );
1010:
1011: UINT
1012: WINAPI
1013: LocalShrink(
1014: HLOCAL hMem,
1015: UINT cbNewSize
1016: );
1017:
1018: UINT
1019: WINAPI
1020: LocalCompact(
1021: UINT uMinFree
1022: );
1023:
1024: BOOL
1025: WINAPI
1026: FlushInstructionCache(
1027: HANDLE hProcess,
1028: LPVOID lpBaseAddress,
1029: DWORD dwSize
1030: );
1031:
1032: LPVOID
1033: WINAPI
1034: VirtualAlloc(
1035: LPVOID lpAddress,
1036: DWORD dwSize,
1037: DWORD flAllocationType,
1038: DWORD flProtect
1039: );
1040:
1041: BOOL
1042: WINAPI
1043: VirtualFree(
1044: LPVOID lpAddress,
1045: DWORD dwSize,
1046: DWORD dwFreeType
1047: );
1048:
1049: BOOL
1050: WINAPI
1051: VirtualProtect(
1052: LPVOID lpAddress,
1053: DWORD dwSize,
1054: DWORD flNewProtect,
1055: PDWORD lpflOldProtect
1056: );
1057:
1058: DWORD
1059: WINAPI
1060: VirtualQuery(
1061: LPVOID lpAddress,
1062: PMEMORY_BASIC_INFORMATION lpBuffer,
1063: DWORD dwLength
1064: );
1065:
1066: BOOL
1067: WINAPI
1068: VirtualProtectEx(
1069: HANDLE hProcess,
1070: LPVOID lpAddress,
1071: DWORD dwSize,
1072: DWORD flNewProtect,
1073: PDWORD lpflOldProtect
1074: );
1075:
1076: DWORD
1077: WINAPI
1078: VirtualQueryEx(
1079: HANDLE hProcess,
1080: LPVOID lpAddress,
1081: PMEMORY_BASIC_INFORMATION lpBuffer,
1082: DWORD dwLength
1083: );
1084:
1085: HANDLE
1086: WINAPI
1087: HeapCreate(
1088: DWORD flOptions,
1089: DWORD dwInitialSize,
1090: DWORD dwMaximumSize
1091: );
1092:
1093: BOOL
1094: WINAPI
1095: HeapDestroy(
1096: HANDLE hHeap
1097: );
1098:
1099: LPSTR
1100: WINAPI
1101: HeapAlloc(
1102: HANDLE hHeap,
1103: DWORD dwBytes
1104: );
1105:
1106: BOOL
1107: WINAPI
1108: HeapFree(
1109: HANDLE hHeap,
1110: LPSTR lpMem
1111: );
1112:
1113: DWORD
1114: WINAPI
1115: HeapSize(
1116: HANDLE hHeap,
1117: LPSTR lpMem
1118: );
1119:
1120:
1121: HANDLE
1122: WINAPI
1123: OpenProcess(
1124: DWORD dwDesiredAccess,
1125: BOOL bInheritHandle,
1126: DWORD dwProcessId
1127: );
1128:
1129: HANDLE
1130: WINAPI
1131: GetCurrentProcess(
1132: VOID
1133: );
1134:
1135: DWORD
1136: WINAPI
1137: GetCurrentProcessId(
1138: VOID
1139: );
1140:
1141: VOID
1142: WINAPI
1143: ExitProcess(
1144: UINT uExitCode
1145: );
1146:
1147: BOOL
1148: WINAPI
1149: TerminateProcess(
1150: HANDLE hProcess,
1151: UINT uExitCode
1152: );
1153:
1154: BOOL
1155: WINAPI
1156: GetExitCodeProcess(
1157: HANDLE hProcess,
1158: LPDWORD lpExitCode
1159: );
1160:
1161:
1162: VOID
1163: WINAPI
1164: FatalExit(
1165: int ExitCode
1166: );
1167:
1168: LPVOID
1169: WINAPI
1170: GetEnvironmentStrings(
1171: VOID
1172: );
1173:
1174: VOID
1175: WINAPI
1176: RaiseException(
1177: DWORD dwExceptionCode,
1178: DWORD dwExceptionFlags,
1179: DWORD nNumberOfArguments,
1180: LPDWORD lpArguments
1181: );
1182:
1183: EXCEPTION_DISPOSITION
1184: WINAPI
1185: UnhandledExceptionFilter(
1186: struct _EXCEPTION_POINTERS *ExceptionInfo
1187: );
1188:
1189: HANDLE
1190: WINAPI
1191: CreateThread(
1192: LPSECURITY_ATTRIBUTES lpThreadAttributes,
1193: DWORD dwStackSize,
1194: LPTHREAD_START_ROUTINE lpStartAddress,
1195: LPVOID lpParameter,
1196: DWORD dwCreationFlags,
1197: LPDWORD lpThreadId
1198: );
1199:
1200: HANDLE
1201: WINAPI
1202: CreateRemoteThread(
1203: HANDLE hProcess,
1204: LPSECURITY_ATTRIBUTES lpThreadAttributes,
1205: DWORD dwStackSize,
1206: LPTHREAD_START_ROUTINE lpStartAddress,
1207: LPVOID lpParameter,
1208: DWORD dwCreationFlags,
1209: LPDWORD lpThreadId
1210: );
1211:
1212: HANDLE
1213: WINAPI
1214: GetCurrentThread(
1215: VOID
1216: );
1217:
1218: DWORD
1219: WINAPI
1220: GetCurrentThreadId(
1221: VOID
1222: );
1223:
1224: BOOL
1225: WINAPI
1226: SetThreadPriority(
1227: HANDLE hThread,
1228: int nPriority
1229: );
1230:
1231: int
1232: WINAPI
1233: GetThreadPriority(
1234: HANDLE hThread
1235: );
1236:
1237: VOID
1238: WINAPI
1239: ExitThread(
1240: DWORD dwExitCode
1241: );
1242:
1243: BOOL
1244: WINAPI
1245: TerminateThread(
1246: HANDLE hThread,
1247: DWORD dwExitCode
1248: );
1249:
1250: BOOL
1251: WINAPI
1252: GetExitCodeThread(
1253: HANDLE hThread,
1254: LPDWORD lpExitCode
1255: );
1256:
1257: BOOL
1258: WINAPI
1259: GetThreadSelectorEntry(
1260: HANDLE hThread,
1261: DWORD dwSelector,
1262: LPLDT_ENTRY lpSelectorEntry
1263: );
1264:
1265: DWORD
1266: WINAPI
1267: GetLastError(
1268: VOID
1269: );
1270:
1271: VOID
1272: WINAPI
1273: SetLastError(
1274: DWORD dwErrCode
1275: );
1276:
1277: //
1278: // SetLastErrorEx() types.
1279: //
1280: #define SLE_ERROR 0x00000001
1281: #define SLE_MINORERROR 0x00000002
1282: #define SLE_WARNING 0x00000003
1283:
1284: VOID
1285: SetLastErrorEx(
1286: DWORD dwErrCode,
1287: DWORD dwType
1288: );
1289:
1290: BOOL
1291: WINAPI
1292: GetOverlappedResult(
1293: HANDLE hFile,
1294: LPOVERLAPPED lpOverlapped,
1295: LPDWORD lpNumberOfBytesTransferred,
1296: BOOL bWait
1297: );
1298:
1299: #define SEM_FAILCRITICALERRORS 0x0001
1300: #define SEM_NOGPFAULTERRORBOX 0x0002
1301: #define SEM_NOOPENFILEERRORBOX 0x8000
1302:
1303: VOID
1304: WINAPI
1305: SetDebugErrorLevel(
1306: DWORD dwLevel
1307: );
1308:
1309: UINT
1310: WINAPI
1311: SetErrorMode(
1312: UINT uMode
1313: );
1314:
1315:
1316: BOOL
1317: WINAPI
1318: ReadProcessMemory(
1319: HANDLE hProcess,
1320: LPVOID lpBaseAddress,
1321: LPVOID lpBuffer,
1322: DWORD nSize,
1323: LPDWORD lpNumberOfBytesRead
1324: );
1325:
1326: BOOL
1327: WINAPI
1328: WriteProcessMemory(
1329: HANDLE hProcess,
1330: LPVOID lpBaseAddress,
1331: LPVOID lpBuffer,
1332: DWORD nSize,
1333: LPDWORD lpNumberOfBytesWritten
1334: );
1335:
1336: BOOL
1337: WINAPI
1338: GetThreadContext(
1339: HANDLE hThread,
1340: LPCONTEXT lpContext
1341: );
1342:
1343: BOOL
1344: WINAPI
1345: SetThreadContext(
1346: HANDLE hThread,
1347: LPCONTEXT lpContext
1348: );
1349:
1350: DWORD
1351: WINAPI
1352: SuspendThread(
1353: HANDLE hThread
1354: );
1355:
1356: DWORD
1357: WINAPI
1358: ResumeThread(
1359: HANDLE hThread
1360: );
1361:
1362: VOID
1363: WINAPI
1364: DebugBreak(
1365: VOID
1366: );
1367:
1368: BOOL
1369: WINAPI
1370: WaitForDebugEvent(
1371: LPDEBUG_EVENT lpDebugEvent,
1372: DWORD dwMilliseconds
1373: );
1374:
1375: BOOL
1376: WINAPI
1377: ContinueDebugEvent(
1378: DWORD dwProcessId,
1379: DWORD dwThreadId,
1380: DWORD dwContinueStatus
1381: );
1382:
1383: BOOL
1384: WINAPI
1385: DebugActiveProcess(
1386: DWORD dwProcessId
1387: );
1388:
1389: HANDLE
1390: WINAPI
1391: DebugSnapShotProcessHeaps(
1392: DWORD dwProcessId
1393: );
1394:
1395: typedef struct _DEBUG_HEAP_BACKTRACE {
1396: DWORD Depth;
1397: DWORD ReturnAddresses[ 1 ];
1398: } DEBUG_HEAP_BACKTRACE, *PDEBUG_HEAP_BACKTRACE;
1399:
1400: typedef struct _DEBUG_HEAP_ALLOCATOR {
1401: DWORD TotalBytesAllocated;
1402: DWORD OffsetToBackTrace;
1403: } DEBUG_HEAP_ALLOCATOR, *PDEBUG_HEAP_ALLOCATOR;
1404:
1405: typedef struct _DEBUG_HEAP_ENTRY {
1406: DWORD Address;
1407: USHORT Size;
1408: USHORT Allocator;
1409: } DEBUG_HEAP_ENTRY, *PDEBUG_HEAP_ENTRY;
1410:
1411: #define DEBUG_HEAP_ENTRY_FREE (USHORT)-1
1412:
1413: typedef struct _DEBUG_HEAP_INFO {
1414: USHORT Creator;
1415: USHORT HeaderSizeLog2;
1416: USHORT ReservedPages;
1417: USHORT CommittedPages;
1418: USHORT AllocatorReservedPages;
1419: USHORT AllocatorCommittedPages;
1420: DWORD NumberOfEntries;
1421: DEBUG_HEAP_ENTRY Entries[ 1 ];
1422: } DEBUG_HEAP_INFO, *PDEBUG_HEAP_INFO;
1423:
1424: typedef struct _DEBUG_HEAP_DUMP {
1425: DWORD OffsetToAllocatorTable;
1426: DWORD NumberOfHeaps;
1427: DEBUG_HEAP_INFO HeapInfo[ 1 ];
1428: } DEBUG_HEAP_DUMP, *PDEBUG_HEAP_DUMP;
1429:
1430: VOID
1431: WINAPI
1432: InitializeCriticalSection(
1433: LPCRITICAL_SECTION lpCriticalSection
1434: );
1435:
1436: VOID
1437: WINAPI
1438: EnterCriticalSection(
1439: LPCRITICAL_SECTION lpCriticalSection
1440: );
1441:
1442: VOID
1443: WINAPI
1444: LeaveCriticalSection(
1445: LPCRITICAL_SECTION lpCriticalSection
1446: );
1447:
1448: VOID
1449: WINAPI
1450: DeleteCriticalSection(
1451: LPCRITICAL_SECTION lpCriticalSection
1452: );
1453:
1454: BOOL
1455: WINAPI
1456: SetEvent(
1457: HANDLE hEvent
1458: );
1459:
1460: BOOL
1461: WINAPI
1462: ResetEvent(
1463: HANDLE hEvent
1464: );
1465:
1466: BOOL
1467: WINAPI
1468: PulseEvent(
1469: HANDLE hEvent
1470: );
1471:
1472: BOOL
1473: WINAPI
1474: ReleaseSemaphore(
1475: HANDLE hSemaphore,
1476: LONG lReleaseCount,
1477: LPLONG lpPreviousCount
1478: );
1479:
1480: BOOL
1481: WINAPI
1482: ReleaseMutex(
1483: HANDLE hMutex
1484: );
1485:
1486: DWORD
1487: WINAPI
1488: WaitForSingleObject(
1489: HANDLE hHandle,
1490: DWORD dwMilliseconds
1491: );
1492:
1493: DWORD
1494: WINAPI
1495: WaitForMultipleObjects(
1496: DWORD nCount,
1497: LPHANDLE lpHandles,
1498: BOOL bWaitAll,
1499: DWORD dwMilliseconds
1500: );
1501:
1502: VOID
1503: WINAPI
1504: Sleep(
1505: DWORD dwMilliseconds
1506: );
1507:
1508: HRSRC
1509: WINAPI
1510: LoadResource(
1511: HINSTANCE hModule,
1512: HRSRC hResInfo
1513: );
1514:
1515: DWORD
1516: WINAPI
1517: SizeofResource(
1518: HINSTANCE hModule,
1519: HRSRC hResInfo
1520: );
1521:
1522: ATOM
1523: WINAPI
1524: GlobalDeleteAtom(
1525: ATOM nAtom
1526: );
1527:
1528: BOOL
1529: WINAPI
1530: InitAtomTable(
1531: DWORD nSize
1532: );
1533:
1534: ATOM
1535: WINAPI
1536: DeleteAtom(
1537: ATOM nAtom
1538: );
1539:
1540: UINT
1541: WINAPI
1542: SetHandleCount(
1543: UINT uNumber
1544: );
1545:
1546: DWORD
1547: WINAPI
1548: GetLogicalDrives(
1549: VOID
1550: );
1551:
1552: BOOL
1553: WINAPI
1554: LockFile(
1555: HANDLE hFile,
1556: DWORD dwFileOffsetLow,
1557: DWORD dwFileOffsetHigh,
1558: DWORD nNumberOfBytesToLockLow,
1559: DWORD nNumberOfBytesToLockHigh
1560: );
1561:
1562: BOOL
1563: WINAPI
1564: UnlockFile(
1565: HANDLE hFile,
1566: DWORD dwFileOffsetLow,
1567: DWORD dwFileOffsetHigh,
1568: DWORD nNumberOfBytesToUnlockLow,
1569: DWORD nNumberOfBytesToUnlockHigh
1570: );
1571:
1572: typedef struct _BY_HANDLE_FILE_INFORMATION {
1573: DWORD dwFileAttributes;
1574: FILETIME ftCreationTime;
1575: FILETIME ftLastAccessTime;
1576: FILETIME ftLastWriteTime;
1577: DWORD dwVolumeSerialNumber;
1578: DWORD nFileSizeHigh;
1579: DWORD nFileSizeLow;
1580: DWORD nNumberOfLinks;
1581: DWORD nFileIndexHigh;
1582: DWORD nFileIndexLow;
1583: } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
1584:
1585: BOOL
1586: WINAPI
1587: GetFileInformationByHandle(
1588: HANDLE hFile,
1589: LPBY_HANDLE_FILE_INFORMATION lpFileInformation
1590: );
1591:
1592: DWORD
1593: WINAPI
1594: GetFileType(
1595: HANDLE hFile
1596: );
1597:
1598: DWORD
1599: WINAPI
1600: GetFileSize(
1601: HANDLE hFile,
1602: LPDWORD lpFileSizeHigh
1603: );
1604:
1605: HANDLE
1606: WINAPI
1607: GetStdHandle(
1608: DWORD nStdHandle
1609: );
1610:
1611: BOOL
1612: WINAPI
1613: SetStdHandle(
1614: DWORD nStdHandle,
1615: HANDLE hHandle
1616: );
1617:
1618: BOOL
1619: WINAPI
1620: WriteFile(
1621: HANDLE hFile,
1622: CONST VOID *lpBuffer,
1623: DWORD nNumberOfBytesToWrite,
1624: LPDWORD lpNumberOfBytesWritten,
1625: LPOVERLAPPED lpOverlapped
1626: );
1627:
1628: BOOL
1629: WINAPI
1630: ReadFile(
1631: HANDLE hFile,
1632: LPVOID lpBuffer,
1633: DWORD nNumberOfBytesToRead,
1634: LPDWORD lpNumberOfBytesRead,
1635: LPOVERLAPPED lpOverlapped
1636: );
1637:
1638: BOOL
1639: WINAPI
1640: FlushFileBuffers(
1641: HANDLE hFile
1642: );
1643:
1644: BOOL
1645: WINAPI
1646: DeviceIoControl(
1647: HANDLE hDevice,
1648: DWORD dwIoControlCode,
1649: LPVOID lpInBuffer,
1650: DWORD nInBufferSize,
1651: LPVOID lpOutBuffer,
1652: DWORD nOutBufferSize,
1653: LPDWORD lpBytesReturned,
1654: LPOVERLAPPED lpOverlapped
1655: );
1656:
1657: BOOL
1658: WINAPI
1659: SetEndOfFile(
1660: HANDLE hFile
1661: );
1662:
1663: DWORD
1664: WINAPI
1665: SetFilePointer(
1666: HANDLE hFile,
1667: LONG lDistanceToMove,
1668: PLONG lpDistanceToMoveHigh,
1669: DWORD dwMoveMethod
1670: );
1671:
1672: BOOL
1673: WINAPI
1674: FindClose(
1675: HANDLE hFindFile
1676: );
1677:
1678: BOOL
1679: WINAPI
1680: GetFileTime(
1681: HANDLE hFile,
1682: LPFILETIME lpCreationTime,
1683: LPFILETIME lpLastAccessTime,
1684: LPFILETIME lpLastWriteTime
1685: );
1686:
1687: BOOL
1688: WINAPI
1689: SetFileTime(
1690: HANDLE hFile,
1691: LPFILETIME lpCreationTime,
1692: LPFILETIME lpLastAccessTime,
1693: LPFILETIME lpLastWriteTime
1694: );
1695:
1696: BOOL
1697: WINAPI
1698: CloseHandle(
1699: HANDLE hObject
1700: );
1701:
1702: BOOL
1703: WINAPI
1704: DuplicateHandle(
1705: HANDLE hSourceProcessHandle,
1706: HANDLE hSourceHandle,
1707: HANDLE hTargetProcessHandle,
1708: LPHANDLE lpTargetHandle,
1709: DWORD dwDesiredAccess,
1710: BOOL bInheritHandle,
1711: DWORD dwOptions
1712: );
1713:
1714: DWORD
1715: WINAPI
1716: LoadModule(
1717: LPCSTR lpModuleName,
1718: LPVOID lpParameterBlock
1719: );
1720:
1721: UINT
1722: WINAPI
1723: WinExec(
1724: LPCSTR lpCmdLine,
1725: UINT uCmdShow
1726: );
1727:
1728: BOOL
1729: WINAPI
1730: BuildCommDCB(
1731: LPSTR lpDef,
1732: LPDCB lpDCB
1733: );
1734:
1735: BOOL
1736: WINAPI
1737: ClearCommBreak(
1738: HANDLE hFile
1739: );
1740:
1741: BOOL
1742: WINAPI
1743: ClearCommError(
1744: HANDLE hFile,
1745: LPDWORD lpErrors,
1746: LPCOMSTAT lpStat
1747: );
1748:
1749: BOOL
1750: WINAPI
1751: SetupComm(
1752: HANDLE hFile,
1753: DWORD dwInQueue,
1754: DWORD dwOutQueue
1755: );
1756:
1757: BOOL
1758: WINAPI
1759: EscapeCommFunction(
1760: HANDLE hFile,
1761: DWORD dwFunc
1762: );
1763:
1764: BOOL
1765: WINAPI
1766: GetCommMask(
1767: HANDLE hFile,
1768: LPDWORD lpEvtMask
1769: );
1770:
1771: BOOL
1772: WINAPI
1773: GetCommProperties(
1774: HANDLE hFile,
1775: LPCOMMPROP lpCommProp
1776: );
1777:
1778: BOOL
1779: WINAPI
1780: GetCommModemStatus(
1781: HANDLE hFile,
1782: LPDWORD lpModemStat
1783: );
1784:
1785: BOOL
1786: WINAPI
1787: GetCommState(
1788: HANDLE hFile,
1789: LPDCB lpDCB
1790: );
1791:
1792: BOOL
1793: WINAPI
1794: GetCommTimeouts(
1795: HANDLE hFile,
1796: LPCOMMTIMEOUTS lpCommTimeouts
1797: );
1798:
1799: BOOL
1800: WINAPI
1801: PurgeComm(
1802: HANDLE hFile,
1803: DWORD dwFlags
1804: );
1805:
1806: BOOL
1807: WINAPI
1808: SetCommBreak(
1809: HANDLE hFile
1810: );
1811:
1812: BOOL
1813: WINAPI
1814: SetCommMask(
1815: HANDLE hFile,
1816: DWORD dwEvtMask
1817: );
1818:
1819: BOOL
1820: WINAPI
1821: SetCommState(
1822: HANDLE hFile,
1823: LPDCB lpDCB
1824: );
1825:
1826: BOOL
1827: WINAPI
1828: SetCommTimeouts(
1829: HANDLE hFile,
1830: LPCOMMTIMEOUTS lpCommTimeouts
1831: );
1832:
1833: BOOL
1834: WINAPI
1835: TransmitCommChar(
1836: HANDLE hFile,
1837: char cChar
1838: );
1839:
1840: BOOL
1841: WINAPI
1842: WaitCommEvent(
1843: HANDLE hFile,
1844: LPDWORD lpEvtMask,
1845: LPOVERLAPPED lpOverlapped
1846: );
1847:
1848:
1849: DWORD
1850: WINAPI
1851: SetTapePosition(
1852: HANDLE hDevice,
1853: DWORD dwPositionMethod,
1854: DWORD dwPartition,
1855: DWORD dwOffset,
1856: LPDWORD lpdwOffsetHigh,
1857: LPOVERLAPPED lpOverlapped
1858: );
1859:
1860: DWORD
1861: WINAPI
1862: GetTapePosition(
1863: HANDLE hDevice,
1864: DWORD dwPartition,
1865: LPDWORD lpdwOffsetHigh,
1866: LPOVERLAPPED lpOverlapped
1867: );
1868:
1869: DWORD
1870: WINAPI
1871: PrepareTape(
1872: HANDLE hDevice,
1873: DWORD dwTapeOperation,
1874: LPOVERLAPPED lpOverlapped
1875: );
1876:
1877: DWORD
1878: WINAPI
1879: EraseTape(
1880: HANDLE hDevice,
1881: DWORD dwPartition,
1882: DWORD dwEraseType,
1883: LPOVERLAPPED lpOverlapped
1884: );
1885:
1886: DWORD
1887: CreateTapePartition(
1888: HANDLE hDevice,
1889: DWORD dwSize,
1890: LPVOID lpPartitionParameters,
1891: LPOVERLAPPED lpOverlapped
1892: );
1893:
1894: DWORD
1895: WINAPI
1896: WriteTapemark(
1897: HANDLE hDevice,
1898: DWORD dwTapemarkType,
1899: DWORD dwTapemarkCount,
1900: LPOVERLAPPED lpOverlapped
1901: );
1902:
1903: DWORD
1904: WINAPI
1905: GetTapeStatus(
1906: HANDLE hDevice,
1907: LPVOID lpTapeStatus,
1908: LPOVERLAPPED lpOverlapped
1909: );
1910:
1911: DWORD
1912: WINAPI
1913: GetTapeParameters(
1914: HANDLE hDevice,
1915: DWORD dwOperation,
1916: LPVOID lpTapeInformation,
1917: LPOVERLAPPED lpOverlapped
1918: );
1919:
1920: #define GET_TAPE_MEDIA_INFORMATION 0
1921: #define GET_TAPE_DRIVE_INFORMATION 1
1922:
1923: DWORD
1924: WINAPI
1925: SetTapeParameters(
1926: HANDLE hDevice,
1927: DWORD dwOperation,
1928: LPVOID lpTapeInformation,
1929: LPOVERLAPPED lpOverlapped
1930: );
1931:
1932: #define SET_TAPE_MEDIA_INFORMATION 0
1933: #define SET_TAPE_DRIVE_INFORMATION 1
1934:
1935: BOOL
1936: WINAPI
1937: Beep(
1938: DWORD dwFreq,
1939: DWORD dwDuration
1940: );
1941:
1942: VOID
1943: WINAPI
1944: OpenSound(
1945: VOID
1946: );
1947:
1948: VOID
1949: WINAPI
1950: CloseSound(
1951: VOID
1952: );
1953:
1954: VOID
1955: WINAPI
1956: StartSound(
1957: VOID
1958: );
1959:
1960: VOID
1961: WINAPI
1962: StopSound(
1963: VOID
1964: );
1965:
1966: DWORD
1967: WINAPI
1968: WaitSoundState(
1969: DWORD nState
1970: );
1971:
1972: DWORD
1973: WINAPI
1974: SyncAllVoices(
1975: VOID
1976: );
1977:
1978: DWORD
1979: WINAPI
1980: CountVoiceNotes(
1981: DWORD nVoice
1982: );
1983:
1984: LPDWORD
1985: WINAPI
1986: GetThresholdEvent(
1987: VOID
1988: );
1989:
1990: DWORD
1991: WINAPI
1992: GetThresholdStatus(
1993: VOID
1994: );
1995:
1996: DWORD
1997: WINAPI
1998: SetSoundNoise(
1999: DWORD nSource,
2000: DWORD nDuration
2001: );
2002:
2003: DWORD
2004: WINAPI
2005: SetVoiceAccent(
2006: DWORD nVoice,
2007: DWORD nTempo,
2008: DWORD nVolume,
2009: DWORD nMode,
2010: DWORD nPitch
2011: );
2012:
2013: DWORD
2014: WINAPI
2015: SetVoiceEnvelope(
2016: DWORD nVoice,
2017: DWORD nShape,
2018: DWORD nRepeat
2019: );
2020:
2021: DWORD
2022: WINAPI
2023: SetVoiceNote(
2024: DWORD nVoice,
2025: DWORD nValue,
2026: DWORD nLength,
2027: DWORD nCdots
2028: );
2029:
2030: DWORD
2031: WINAPI
2032: SetVoiceQueueSize(
2033: DWORD nVoice,
2034: DWORD nBytes
2035: );
2036:
2037: DWORD
2038: WINAPI
2039: SetVoiceSound(
2040: DWORD nVoice,
2041: DWORD Frequency,
2042: DWORD nDuration
2043: );
2044:
2045: DWORD
2046: WINAPI
2047: SetVoiceThreshold(
2048: DWORD nVoice,
2049: DWORD nNotes
2050: );
2051:
2052: int
2053: WINAPI
2054: MulDiv(
2055: int nNumber,
2056: int nNumerator,
2057: int nDenominator
2058: );
2059:
2060: VOID
2061: WINAPI
2062: GetSystemTime(
2063: LPSYSTEMTIME lpSystemTime
2064: );
2065:
2066: BOOL
2067: WINAPI
2068: SetSystemTime(
2069: LPSYSTEMTIME lpSystemTime
2070: );
2071:
2072: VOID
2073: WINAPI
2074: GetSystemInfo(
2075: LPSYSTEM_INFO lpSystemInfo
2076: );
2077:
2078:
2079: //
2080: // Routines to convert back and forth between system time and file time
2081: //
2082:
2083: BOOL
2084: WINAPI
2085: SystemTimeToFileTime(
2086: LPSYSTEMTIME lpSystemTime,
2087: LPFILETIME lpFileTime
2088: );
2089:
2090: BOOL
2091: WINAPI
2092: FileTimeToSystemTime(
2093: LPFILETIME lpFileTime,
2094: LPSYSTEMTIME lpSystemTime
2095: );
2096:
2097: LONG
2098: WINAPI
2099: CompareFileTime(
2100: LPFILETIME lpFileTime1,
2101: LPFILETIME lpFileTime2
2102: );
2103:
2104: BOOL
2105: WINAPI
2106: FileTimeToDosDateTime(
2107: LPFILETIME lpFileTime,
2108: LPWORD lpFatDate,
2109: LPWORD lpFatTime
2110: );
2111:
2112: BOOL
2113: WINAPI
2114: DosDateTimeToFileTime(
2115: WORD wFatDate,
2116: WORD wFatTime,
2117: LPFILETIME lpFileTime
2118: );
2119:
2120: DWORD
2121: WINAPI
2122: GetTickCount(
2123: VOID
2124: );
2125:
2126: DWORD
2127: WINAPI
2128: FormatMessage(
2129: DWORD dwFlags,
2130: LPVOID lpSource,
2131: DWORD dwMessageId,
2132: DWORD dwLanguageId,
2133: LPSTR lpBuffer,
2134: DWORD nSize,
2135: LPVOID lpArguments
2136: );
2137:
2138: #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100
2139: #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200
2140: #define FORMAT_MESSAGE_FROM_STRING 0x00000400
2141: #define FORMAT_MESSAGE_FROM_HMODULE 0x00000800
2142: #define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
2143: #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF
2144:
2145:
2146: BOOL
2147: WINAPI
2148: CreatePipe(
2149: PHANDLE hReadPipe,
2150: PHANDLE hWritePipe,
2151: LPSECURITY_ATTRIBUTES lpPipeAttributes,
2152: DWORD nSize
2153: );
2154:
2155: BOOL
2156: WINAPI
2157: ConnectNamedPipe(
2158: HANDLE hNamedPipe,
2159: LPOVERLAPPED lpOverlapped
2160: );
2161:
2162: BOOL
2163: WINAPI
2164: DisconnectNamedPipe(
2165: HANDLE hNamedPipe
2166: );
2167:
2168: BOOL
2169: WINAPI
2170: SetNamedPipeHandleState(
2171: HANDLE hNamedPipe,
2172: LPDWORD lpMode,
2173: LPDWORD lpMaxCollectionCount,
2174: LPDWORD lpCollectDataTimeout
2175: );
2176:
2177: BOOL
2178: WINAPI
2179: GetNamedPipeInfo(
2180: HANDLE hNamedPipe,
2181: LPDWORD lpFlags,
2182: LPDWORD lpOutBufferSize,
2183: LPDWORD lpInBufferSize,
2184: LPDWORD lpMaxInstances
2185: );
2186:
2187: BOOL
2188: WINAPI
2189: PeekNamedPipe(
2190: HANDLE hNamedPipe,
2191: LPVOID lpBuffer,
2192: DWORD nBufferSize,
2193: LPDWORD lpBytesRead,
2194: LPDWORD lpTotalBytesAvail,
2195: LPDWORD lpBytesLeftThisMessage
2196: );
2197:
2198: BOOL
2199: WINAPI
2200: TransactNamedPipe(
2201: HANDLE hNamedPipe,
2202: LPVOID lpInBuffer,
2203: DWORD nInBufferSize,
2204: LPVOID lpOutBuffer,
2205: DWORD nOutBufferSize,
2206: LPDWORD lpBytesRead,
2207: LPOVERLAPPED lpOverlapped
2208: );
2209:
2210: HANDLE
2211: WINAPI
2212: CreateMailslotA(
2213: LPSTR lpName,
2214: DWORD nMaxMessageSize,
2215: DWORD lReadTimeout,
2216: LPSECURITY_ATTRIBUTES lpSecurityAttributes
2217: );
2218: HANDLE
2219: WINAPI
2220: CreateMailslotW(
2221: LPWSTR lpName,
2222: DWORD nMaxMessageSize,
2223: DWORD lReadTimeout,
2224: LPSECURITY_ATTRIBUTES lpSecurityAttributes
2225: );
2226: #ifdef UNICODE
2227: #define CreateMailslot CreateMailslotW
2228: #else
2229: #define CreateMailslot CreateMailslotA
2230: #endif // !UNICODE
2231:
2232: BOOL
2233: WINAPI
2234: GetMailslotInfo(
2235: HANDLE hMailslot,
2236: LPDWORD lpMaxMessageSize,
2237: LPDWORD lpNextSize,
2238: LPDWORD lpMessageCount,
2239: LPDWORD lpReadTimeout
2240: );
2241:
2242: BOOL
2243: WINAPI
2244: SetMailslotInfo(
2245: HANDLE hMailslot,
2246: DWORD lReadTimeout
2247: );
2248:
2249: LPVOID
2250: WINAPI
2251: MapViewOfFile(
2252: HANDLE hFileMappingObject,
2253: DWORD dwDesiredAccess,
2254: DWORD dwFileOffsetHigh,
2255: DWORD dwFileOffsetLow,
2256: DWORD dwNumberOfBytesToMap
2257: );
2258:
2259: BOOL
2260: WINAPI
2261: FlushViewOfFile(
2262: LPVOID lpBaseAddress,
2263: DWORD dwNumberOfBytesToFlush
2264: );
2265:
2266: BOOL
2267: WINAPI
2268: UnmapViewOfFile(
2269: LPVOID lpBaseAddress
2270: );
2271:
2272: //
2273: // _l Compat Functions
2274: //
2275:
2276: int
2277: WINAPI
2278: lstrcmpA(
2279: LPCSTR lpString1,
2280: LPCSTR lpString2
2281: );
2282: int
2283: WINAPI
2284: lstrcmpW(
2285: LPCWSTR lpString1,
2286: LPCWSTR lpString2
2287: );
2288: #ifdef UNICODE
2289: #define lstrcmp lstrcmpW
2290: #else
2291: #define lstrcmp lstrcmpA
2292: #endif // !UNICODE
2293:
2294: int
2295: WINAPI
2296: lstrcmpiA(
2297: LPCSTR lpString1,
2298: LPCSTR lpString2
2299: );
2300: int
2301: WINAPI
2302: lstrcmpiW(
2303: LPCWSTR lpString1,
2304: LPCWSTR lpString2
2305: );
2306: #ifdef UNICODE
2307: #define lstrcmpi lstrcmpiW
2308: #else
2309: #define lstrcmpi lstrcmpiA
2310: #endif // !UNICODE
2311:
2312: LPSTR
2313: WINAPI
2314: lstrcpyA(
2315: LPSTR lpString1,
2316: LPCSTR lpString2
2317: );
2318: LPWSTR
2319: WINAPI
2320: lstrcpyW(
2321: LPWSTR lpString1,
2322: LPCWSTR lpString2
2323: );
2324: #ifdef UNICODE
2325: #define lstrcpy lstrcpyW
2326: #else
2327: #define lstrcpy lstrcpyA
2328: #endif // !UNICODE
2329:
2330: LPSTR
2331: WINAPI
2332: lstrcatA(
2333: LPSTR lpString1,
2334: LPCSTR lpString2
2335: );
2336: LPWSTR
2337: WINAPI
2338: lstrcatW(
2339: LPWSTR lpString1,
2340: LPCWSTR lpString2
2341: );
2342: #ifdef UNICODE
2343: #define lstrcat lstrcatW
2344: #else
2345: #define lstrcat lstrcatA
2346: #endif // !UNICODE
2347:
2348: int
2349: WINAPI
2350: lstrlenA(
2351: LPCSTR lpString
2352: );
2353: int
2354: WINAPI
2355: lstrlenW(
2356: LPCWSTR lpString
2357: );
2358: #ifdef UNICODE
2359: #define lstrlen lstrlenW
2360: #else
2361: #define lstrlen lstrlenA
2362: #endif // !UNICODE
2363:
2364: HFILE
2365: WINAPI
2366: OpenFile(
2367: LPCSTR lpFileName,
2368: LPOFSTRUCT lpReOpenBuff,
2369: UINT uStyle
2370: );
2371:
2372: HFILE
2373: WINAPI
2374: _lopen(
2375: LPCSTR lpPathName,
2376: int iReadWrite
2377: );
2378:
2379: HFILE
2380: WINAPI
2381: _lcreat(
2382: LPCSTR lpPathName,
2383: int iAttribute
2384: );
2385:
2386: UINT
2387: WINAPI
2388: _lread(
2389: HFILE hFile,
2390: LPVOID lpBuffer,
2391: UINT uBytes
2392: );
2393:
2394: UINT
2395: WINAPI
2396: _lwrite(
2397: HFILE hFile,
2398: LPCSTR lpBuffer,
2399: UINT uBytes
2400: );
2401:
2402: HFILE
2403: WINAPI
2404: _lclose(
2405: HFILE hFile
2406: );
2407:
2408: LONG
2409: WINAPI
2410: _llseek(
2411: HFILE hFile,
2412: LONG lOffset,
2413: int iOrigin
2414: );
2415:
2416: DWORD
2417: WINAPI
2418: TlsAlloc(
2419: VOID
2420: );
2421:
2422: LPVOID
2423: WINAPI
2424: TlsGetValue(
2425: DWORD dwTlsIndex
2426: );
2427:
2428: BOOL
2429: WINAPI
2430: TlsSetValue(
2431: DWORD dwTlsIndex,
2432: LPVOID lpTlsValue
2433: );
2434:
2435: BOOL
2436: WINAPI
2437: TlsFree(
2438: DWORD dwTlsIndex
2439: );
2440:
2441: typedef
2442: VOID
2443: (*LPOVERLAPPED_COMPLETION_ROUTINE)(
2444: DWORD dwErrorCode,
2445: DWORD dwNumberOfBytesTransfered,
2446: LPOVERLAPPED lpOverlapped
2447: );
2448:
2449: DWORD
2450: WINAPI
2451: SleepEx(
2452: DWORD dwMilliseconds,
2453: BOOL bAlertable
2454: );
2455:
2456: DWORD
2457: WINAPI
2458: WaitForSingleObjectEx(
2459: HANDLE hHandle,
2460: DWORD dwMilliseconds,
2461: BOOL bAlertable
2462: );
2463:
2464: DWORD
2465: WINAPI
2466: WaitForMultipleObjectsEx(
2467: DWORD nCount,
2468: LPHANDLE lpHandles,
2469: BOOL bWaitAll,
2470: DWORD dwMilliseconds,
2471: BOOL bAlertable
2472: );
2473:
2474: BOOL
2475: WINAPI
2476: ReadFileEx(
2477: HANDLE hFile,
2478: LPVOID lpBuffer,
2479: DWORD nNumberOfBytesToRead,
2480: LPOVERLAPPED lpOverlapped,
2481: LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
2482: );
2483:
2484: BOOL
2485: WINAPI
2486: WriteFileEx(
2487: HANDLE hFile,
2488: LPVOID lpBuffer,
2489: DWORD nNumberOfBytesToWrite,
2490: LPOVERLAPPED lpOverlapped,
2491: LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
2492: );
2493:
2494: BOOL
2495: WINAPI
2496: BackupRead(
2497: HANDLE hFile,
2498: LPBYTE lpBuffer,
2499: DWORD nNumberOfBytesToRead,
2500: LPDWORD lpNumberOfBytesRead,
2501: BOOL fAbort ,
2502: LPVOID *lpContext
2503: );
2504:
2505: BOOL
2506: WINAPI
2507: BackupWrite(
2508: HANDLE hFile,
2509: LPBYTE lpBuffer,
2510: DWORD nNumberOfBytesToWrite,
2511: LPDWORD lpNumberOfBytesWritten,
2512: BOOL fAbort ,
2513: LPVOID *lpContext
2514: );
2515:
2516: //
2517: // Dual Mode API below this line. Dual Mode Structures also included.
2518: //
2519:
2520: #define STARTF_USESHOWWINDOW 0x00000001
2521: #define STARTF_USESIZE 0x00000002
2522: #define STARTF_USEPOSITION 0x00000004
2523: #define STARTF_USECOUNTCHARS 0x00000008
2524: #define STARTF_USEFILLATTRIBUTE 0x00000010
2525: #define STARTF_RUNFULLSCREEN 0x00000020 // ignored for non-x86 platforms
2526: #define STARTF_FORCEONFEEDBACK 0x00000040
2527: #define STARTF_FORCEOFFFEEDBACK 0x00000080
2528:
2529: typedef struct _STARTUPINFOA {
2530: DWORD cb;
2531: LPSTR lpReserved;
2532: LPSTR lpDesktop;
2533: LPSTR lpTitle;
2534: DWORD dwX;
2535: DWORD dwY;
2536: DWORD dwXSize;
2537: DWORD dwYSize;
2538: DWORD dwXCountChars;
2539: DWORD dwYCountChars;
2540: DWORD dwFillAttribute;
2541: DWORD dwFlags;
2542: WORD wShowWindow;
2543: WORD cbReserved2;
2544: LPBYTE lpReserved2;
2545: } STARTUPINFOA, *LPSTARTUPINFOA;
2546: typedef struct _STARTUPINFOW {
2547: DWORD cb;
2548: LPWSTR lpReserved;
2549: LPWSTR lpDesktop;
2550: LPWSTR lpTitle;
2551: DWORD dwX;
2552: DWORD dwY;
2553: DWORD dwXSize;
2554: DWORD dwYSize;
2555: DWORD dwXCountChars;
2556: DWORD dwYCountChars;
2557: DWORD dwFillAttribute;
2558: DWORD dwFlags;
2559: WORD wShowWindow;
2560: WORD cbReserved2;
2561: LPBYTE lpReserved2;
2562: } STARTUPINFOW, *LPSTARTUPINFOW;
2563: #ifdef UNICODE
2564: #define STARTUPINFO STARTUPINFOW
2565: #define LPSTARTUPINFO LPSTARTUPINFOW
2566: #else
2567: #define STARTUPINFO STARTUPINFOA
2568: #define LPSTARTUPINFO LPSTARTUPINFOA
2569: #endif // UNICODE
2570:
2571: typedef struct _WIN32_FIND_DATAA {
2572: DWORD dwFileAttributes;
2573: FILETIME ftCreationTime;
2574: FILETIME ftLastAccessTime;
2575: FILETIME ftLastWriteTime;
2576: DWORD nFileSizeHigh;
2577: DWORD nFileSizeLow;
2578: DWORD dwReserved0;
2579: DWORD dwReserved1;
2580: CHAR cFileName[ MAX_PATH ];
2581: CHAR cAlternateFileName[ 14 ];
2582: } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
2583: typedef struct _WIN32_FIND_DATAW {
2584: DWORD dwFileAttributes;
2585: FILETIME ftCreationTime;
2586: FILETIME ftLastAccessTime;
2587: FILETIME ftLastWriteTime;
2588: DWORD nFileSizeHigh;
2589: DWORD nFileSizeLow;
2590: DWORD dwReserved0;
2591: DWORD dwReserved1;
2592: WCHAR cFileName[ MAX_PATH ];
2593: WCHAR cAlternateFileName[ 14 ];
2594: } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
2595: #ifdef UNICODE
2596: #define WIN32_FIND_DATA WIN32_FIND_DATAW
2597: #define PWIN32_FIND_DATA PWIN32_FIND_DATAW
2598: #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAW
2599: #else
2600: #define WIN32_FIND_DATA WIN32_FIND_DATAA
2601: #define PWIN32_FIND_DATA PWIN32_FIND_DATAA
2602: #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAA
2603: #endif // UNICODE
2604:
2605:
2606:
2607: HANDLE
2608: WINAPI
2609: CreateMutexA(
2610: LPSECURITY_ATTRIBUTES lpMutexAttributes,
2611: BOOL bInitialOwner,
2612: LPSTR lpName
2613: );
2614: HANDLE
2615: WINAPI
2616: CreateMutexW(
2617: LPSECURITY_ATTRIBUTES lpMutexAttributes,
2618: BOOL bInitialOwner,
2619: LPWSTR lpName
2620: );
2621: #ifdef UNICODE
2622: #define CreateMutex CreateMutexW
2623: #else
2624: #define CreateMutex CreateMutexA
2625: #endif // !UNICODE
2626:
2627: HANDLE
2628: WINAPI
2629: OpenMutexA(
2630: DWORD dwDesiredAccess,
2631: BOOL bInheritHandle,
2632: LPSTR lpName
2633: );
2634: HANDLE
2635: WINAPI
2636: OpenMutexW(
2637: DWORD dwDesiredAccess,
2638: BOOL bInheritHandle,
2639: LPWSTR lpName
2640: );
2641: #ifdef UNICODE
2642: #define OpenMutex OpenMutexW
2643: #else
2644: #define OpenMutex OpenMutexA
2645: #endif // !UNICODE
2646:
2647: HANDLE
2648: WINAPI
2649: CreateEventA(
2650: LPSECURITY_ATTRIBUTES lpEventAttributes,
2651: BOOL bManualReset,
2652: BOOL bInitialState,
2653: LPSTR lpName
2654: );
2655: HANDLE
2656: WINAPI
2657: CreateEventW(
2658: LPSECURITY_ATTRIBUTES lpEventAttributes,
2659: BOOL bManualReset,
2660: BOOL bInitialState,
2661: LPWSTR lpName
2662: );
2663: #ifdef UNICODE
2664: #define CreateEvent CreateEventW
2665: #else
2666: #define CreateEvent CreateEventA
2667: #endif // !UNICODE
2668:
2669: HANDLE
2670: WINAPI
2671: OpenEventA(
2672: DWORD dwDesiredAccess,
2673: BOOL bInheritHandle,
2674: LPSTR lpName
2675: );
2676: HANDLE
2677: WINAPI
2678: OpenEventW(
2679: DWORD dwDesiredAccess,
2680: BOOL bInheritHandle,
2681: LPWSTR lpName
2682: );
2683: #ifdef UNICODE
2684: #define OpenEvent OpenEventW
2685: #else
2686: #define OpenEvent OpenEventA
2687: #endif // !UNICODE
2688:
2689: HANDLE
2690: WINAPI
2691: CreateSemaphoreA(
2692: LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
2693: LONG lInitialCount,
2694: LONG lMaximumCount,
2695: LPSTR lpName
2696: );
2697: HANDLE
2698: WINAPI
2699: CreateSemaphoreW(
2700: LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
2701: LONG lInitialCount,
2702: LONG lMaximumCount,
2703: LPWSTR lpName
2704: );
2705: #ifdef UNICODE
2706: #define CreateSemaphore CreateSemaphoreW
2707: #else
2708: #define CreateSemaphore CreateSemaphoreA
2709: #endif // !UNICODE
2710:
2711: HANDLE
2712: WINAPI
2713: OpenSemaphoreA(
2714: DWORD dwDesiredAccess,
2715: BOOL bInheritHandle,
2716: LPSTR lpName
2717: );
2718: HANDLE
2719: WINAPI
2720: OpenSemaphoreW(
2721: DWORD dwDesiredAccess,
2722: BOOL bInheritHandle,
2723: LPWSTR lpName
2724: );
2725: #ifdef UNICODE
2726: #define OpenSemaphore OpenSemaphoreW
2727: #else
2728: #define OpenSemaphore OpenSemaphoreA
2729: #endif // !UNICODE
2730:
2731: HANDLE
2732: WINAPI
2733: CreateFileMappingA(
2734: HANDLE hFile,
2735: LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
2736: DWORD flProtect,
2737: DWORD dwMaximumSizeHigh,
2738: DWORD dwMaximumSizeLow,
2739: LPSTR lpName
2740: );
2741: HANDLE
2742: WINAPI
2743: CreateFileMappingW(
2744: HANDLE hFile,
2745: LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
2746: DWORD flProtect,
2747: DWORD dwMaximumSizeHigh,
2748: DWORD dwMaximumSizeLow,
2749: LPWSTR lpName
2750: );
2751: #ifdef UNICODE
2752: #define CreateFileMapping CreateFileMappingW
2753: #else
2754: #define CreateFileMapping CreateFileMappingA
2755: #endif // !UNICODE
2756:
2757: HANDLE
2758: WINAPI
2759: OpenFileMappingA(
2760: DWORD dwDesiredAccess,
2761: BOOL bInheritHandle,
2762: LPSTR lpName
2763: );
2764: HANDLE
2765: WINAPI
2766: OpenFileMappingW(
2767: DWORD dwDesiredAccess,
2768: BOOL bInheritHandle,
2769: LPWSTR lpName
2770: );
2771: #ifdef UNICODE
2772: #define OpenFileMapping OpenFileMappingW
2773: #else
2774: #define OpenFileMapping OpenFileMappingA
2775: #endif // !UNICODE
2776:
2777: DWORD
2778: WINAPI
2779: GetLogicalDriveStringsA(
2780: DWORD nBufferLength,
2781: LPSTR lpBuffer
2782: );
2783: DWORD
2784: WINAPI
2785: GetLogicalDriveStringsW(
2786: DWORD nBufferLength,
2787: LPWSTR lpBuffer
2788: );
2789: #ifdef UNICODE
2790: #define GetLogicalDriveStrings GetLogicalDriveStringsW
2791: #else
2792: #define GetLogicalDriveStrings GetLogicalDriveStringsA
2793: #endif // !UNICODE
2794:
2795: HINSTANCE
2796: WINAPI
2797: LoadLibraryA(
2798: LPCSTR lpLibFileName
2799: );
2800: HINSTANCE
2801: WINAPI
2802: LoadLibraryW(
2803: LPCWSTR lpLibFileName
2804: );
2805: #ifdef UNICODE
2806: #define LoadLibrary LoadLibraryW
2807: #else
2808: #define LoadLibrary LoadLibraryA
2809: #endif // !UNICODE
2810:
2811: DWORD
2812: WINAPI
2813: GetModuleFileNameA(
2814: HINSTANCE hModule,
2815: LPSTR lpFilename,
2816: DWORD nSize
2817: );
2818: DWORD
2819: WINAPI
2820: GetModuleFileNameW(
2821: HINSTANCE hModule,
2822: LPWSTR lpFilename,
2823: DWORD nSize
2824: );
2825: #ifdef UNICODE
2826: #define GetModuleFileName GetModuleFileNameW
2827: #else
2828: #define GetModuleFileName GetModuleFileNameA
2829: #endif // !UNICODE
2830:
2831: HMODULE
2832: WINAPI
2833: GetModuleHandleA(
2834: LPCSTR lpModuleName
2835: );
2836: HMODULE
2837: WINAPI
2838: GetModuleHandleW(
2839: LPCWSTR lpModuleName
2840: );
2841: #ifdef UNICODE
2842: #define GetModuleHandle GetModuleHandleW
2843: #else
2844: #define GetModuleHandle GetModuleHandleA
2845: #endif // !UNICODE
2846:
2847: BOOL
2848: WINAPI
2849: CreateProcessA(
2850: LPCSTR lpApplicationName,
2851: LPCSTR lpCommandLine,
2852: LPSECURITY_ATTRIBUTES lpProcessAttributes,
2853: LPSECURITY_ATTRIBUTES lpThreadAttributes,
2854: BOOL bInheritHandles,
2855: DWORD dwCreationFlags,
2856: LPVOID lpEnvironment,
2857: LPSTR lpCurrentDirectory,
2858: LPSTARTUPINFOA lpStartupInfo,
2859: LPPROCESS_INFORMATION lpProcessInformation
2860: );
2861: BOOL
2862: WINAPI
2863: CreateProcessW(
2864: LPCWSTR lpApplicationName,
2865: LPCWSTR lpCommandLine,
2866: LPSECURITY_ATTRIBUTES lpProcessAttributes,
2867: LPSECURITY_ATTRIBUTES lpThreadAttributes,
2868: BOOL bInheritHandles,
2869: DWORD dwCreationFlags,
2870: LPVOID lpEnvironment,
2871: LPWSTR lpCurrentDirectory,
2872: LPSTARTUPINFOW lpStartupInfo,
2873: LPPROCESS_INFORMATION lpProcessInformation
2874: );
2875: #ifdef UNICODE
2876: #define CreateProcess CreateProcessW
2877: #else
2878: #define CreateProcess CreateProcessA
2879: #endif // !UNICODE
2880:
2881: VOID
2882: WINAPI
2883: FatalAppExitA(
2884: UINT uAction,
2885: LPCSTR lpMessageText
2886: );
2887: VOID
2888: WINAPI
2889: FatalAppExitW(
2890: UINT uAction,
2891: LPCWSTR lpMessageText
2892: );
2893: #ifdef UNICODE
2894: #define FatalAppExit FatalAppExitW
2895: #else
2896: #define FatalAppExit FatalAppExitA
2897: #endif // !UNICODE
2898:
2899: VOID
2900: WINAPI
2901: GetStartupInfoA(
2902: LPSTARTUPINFOA lpStartupInfo
2903: );
2904: VOID
2905: WINAPI
2906: GetStartupInfoW(
2907: LPSTARTUPINFOW lpStartupInfo
2908: );
2909: #ifdef UNICODE
2910: #define GetStartupInfo GetStartupInfoW
2911: #else
2912: #define GetStartupInfo GetStartupInfoA
2913: #endif // !UNICODE
2914:
2915: LPSTR
2916: WINAPI
2917: GetCommandLineA(
2918: VOID
2919: );
2920: LPWSTR
2921: WINAPI
2922: GetCommandLineW(
2923: VOID
2924: );
2925: #ifdef UNICODE
2926: #define GetCommandLine GetCommandLineW
2927: #else
2928: #define GetCommandLine GetCommandLineA
2929: #endif // !UNICODE
2930:
2931: DWORD
2932: WINAPI
2933: GetEnvironmentVariableA(
2934: LPSTR lpName,
2935: LPSTR lpBuffer,
2936: DWORD nSize
2937: );
2938: DWORD
2939: WINAPI
2940: GetEnvironmentVariableW(
2941: LPWSTR lpName,
2942: LPWSTR lpBuffer,
2943: DWORD nSize
2944: );
2945: #ifdef UNICODE
2946: #define GetEnvironmentVariable GetEnvironmentVariableW
2947: #else
2948: #define GetEnvironmentVariable GetEnvironmentVariableA
2949: #endif // !UNICODE
2950:
2951: BOOL
2952: WINAPI
2953: SetEnvironmentVariableA(
2954: LPSTR lpName,
2955: LPSTR lpValue
2956: );
2957: BOOL
2958: WINAPI
2959: SetEnvironmentVariableW(
2960: LPWSTR lpName,
2961: LPWSTR lpValue
2962: );
2963: #ifdef UNICODE
2964: #define SetEnvironmentVariable SetEnvironmentVariableW
2965: #else
2966: #define SetEnvironmentVariable SetEnvironmentVariableA
2967: #endif // !UNICODE
2968:
2969: DWORD
2970: WINAPI
2971: ExpandEnvironmentStringsA(
2972: LPCSTR lpSrc,
2973: LPSTR lpDst,
2974: DWORD nSize
2975: );
2976: DWORD
2977: WINAPI
2978: ExpandEnvironmentStringsW(
2979: LPCWSTR lpSrc,
2980: LPWSTR lpDst,
2981: DWORD nSize
2982: );
2983: #ifdef UNICODE
2984: #define ExpandEnvironmentStrings ExpandEnvironmentStringsW
2985: #else
2986: #define ExpandEnvironmentStrings ExpandEnvironmentStringsA
2987: #endif // !UNICODE
2988:
2989: VOID
2990: WINAPI
2991: OutputDebugStringA(
2992: LPCSTR lpOutputString
2993: );
2994: VOID
2995: WINAPI
2996: OutputDebugStringW(
2997: LPCWSTR lpOutputString
2998: );
2999: #ifdef UNICODE
3000: #define OutputDebugString OutputDebugStringW
3001: #else
3002: #define OutputDebugString OutputDebugStringA
3003: #endif // !UNICODE
3004:
3005: HRSRC
3006: WINAPI
3007: FindResourceA(
3008: HINSTANCE hModule,
3009: LPCSTR lpName,
3010: LPCSTR lpType
3011: );
3012: HRSRC
3013: WINAPI
3014: FindResourceW(
3015: HINSTANCE hModule,
3016: LPCWSTR lpName,
3017: LPCWSTR lpType
3018: );
3019: #ifdef UNICODE
3020: #define FindResource FindResourceW
3021: #else
3022: #define FindResource FindResourceA
3023: #endif // !UNICODE
3024:
3025: HRSRC
3026: WINAPI
3027: FindResourceExA(
3028: HINSTANCE hModule,
3029: LPCSTR lpType,
3030: LPCSTR lpName,
3031: WORD wLanguage
3032: );
3033: HRSRC
3034: WINAPI
3035: FindResourceExW(
3036: HINSTANCE hModule,
3037: LPCWSTR lpType,
3038: LPCWSTR lpName,
3039: WORD wLanguage
3040: );
3041: #ifdef UNICODE
3042: #define FindResourceEx FindResourceExW
3043: #else
3044: #define FindResourceEx FindResourceExA
3045: #endif // !UNICODE
3046:
3047: #ifdef STRICT
3048: typedef BOOL (CALLBACK* ENUMRESTYPEPROC)(HANDLE hModule, LPTSTR lpType,
3049: LONG lParam);
3050: typedef BOOL (CALLBACK* ENUMRESNAMEPROC)(HANDLE hModule, LPCTSTR lpType,
3051: LPTSTR lpName, LONG lParam);
3052: typedef BOOL (CALLBACK* ENUMRESLANGPROC)(HANDLE hModule, LPCTSTR lpType,
3053: LPCTSTR lpName, WORD wLanguage, LONG lParam);
3054: #else
3055: typedef FARPROC ENUMRESTYPEPROC;
3056: typedef FARPROC ENUMRESNAMEPROC;
3057: typedef FARPROC ENUMRESLANGPROC;
3058: #endif
3059:
3060: BOOL
3061: WINAPI
3062: EnumResourceTypesA(
3063: HANDLE hModule,
3064: ENUMRESTYPEPROC lpEnumFunc,
3065: LONG lParam
3066: );
3067: BOOL
3068: WINAPI
3069: EnumResourceTypesW(
3070: HANDLE hModule,
3071: ENUMRESTYPEPROC lpEnumFunc,
3072: LONG lParam
3073: );
3074: #ifdef UNICODE
3075: #define EnumResourceTypes EnumResourceTypesW
3076: #else
3077: #define EnumResourceTypes EnumResourceTypesA
3078: #endif // !UNICODE
3079:
3080:
3081: BOOL
3082: WINAPI
3083: EnumResourceNamesA(
3084: HANDLE hModule,
3085: LPCSTR lpType,
3086: ENUMRESNAMEPROC lpEnumFunc,
3087: LONG lParam
3088: );
3089: BOOL
3090: WINAPI
3091: EnumResourceNamesW(
3092: HANDLE hModule,
3093: LPCWSTR lpType,
3094: ENUMRESNAMEPROC lpEnumFunc,
3095: LONG lParam
3096: );
3097: #ifdef UNICODE
3098: #define EnumResourceNames EnumResourceNamesW
3099: #else
3100: #define EnumResourceNames EnumResourceNamesA
3101: #endif // !UNICODE
3102:
3103: BOOL
3104: WINAPI
3105: EnumResourceLanguagesA(
3106: HANDLE hModule,
3107: LPCSTR lpType,
3108: LPCSTR lpName,
3109: ENUMRESLANGPROC lpEnumFunc,
3110: LONG lParam
3111: );
3112: BOOL
3113: WINAPI
3114: EnumResourceLanguagesW(
3115: HANDLE hModule,
3116: LPCWSTR lpType,
3117: LPCWSTR lpName,
3118: ENUMRESLANGPROC lpEnumFunc,
3119: LONG lParam
3120: );
3121: #ifdef UNICODE
3122: #define EnumResourceLanguages EnumResourceLanguagesW
3123: #else
3124: #define EnumResourceLanguages EnumResourceLanguagesA
3125: #endif // !UNICODE
3126:
3127: HANDLE
3128: WINAPI
3129: BeginUpdateResourceA(
3130: LPSTR pFileName
3131: );
3132: HANDLE
3133: WINAPI
3134: BeginUpdateResourceW(
3135: LPWSTR pFileName
3136: );
3137: #ifdef UNICODE
3138: #define BeginUpdateResource BeginUpdateResourceW
3139: #else
3140: #define BeginUpdateResource BeginUpdateResourceA
3141: #endif // !UNICODE
3142:
3143: BOOL
3144: WINAPI
3145: UpdateResourceA(
3146: HANDLE hUpdate,
3147: LPSTR lpType,
3148: LPSTR lpName,
3149: WORD wLanguage,
3150: LPVOID lpData,
3151: DWORD cbData
3152: );
3153: BOOL
3154: WINAPI
3155: UpdateResourceW(
3156: HANDLE hUpdate,
3157: LPWSTR lpType,
3158: LPWSTR lpName,
3159: WORD wLanguage,
3160: LPVOID lpData,
3161: DWORD cbData
3162: );
3163: #ifdef UNICODE
3164: #define UpdateResource UpdateResourceW
3165: #else
3166: #define UpdateResource UpdateResourceA
3167: #endif // !UNICODE
3168:
3169: BOOL
3170: WINAPI
3171: EndUpdateResourceA(
3172: HANDLE hUpdate,
3173: BOOL fDiscard
3174: );
3175: BOOL
3176: WINAPI
3177: EndUpdateResourceW(
3178: HANDLE hUpdate,
3179: BOOL fDiscard
3180: );
3181: #ifdef UNICODE
3182: #define EndUpdateResource EndUpdateResourceW
3183: #else
3184: #define EndUpdateResource EndUpdateResourceA
3185: #endif // !UNICODE
3186:
3187: ATOM
3188: WINAPI
3189: GlobalAddAtomA(
3190: LPCSTR lpString
3191: );
3192: ATOM
3193: WINAPI
3194: GlobalAddAtomW(
3195: LPCWSTR lpString
3196: );
3197: #ifdef UNICODE
3198: #define GlobalAddAtom GlobalAddAtomW
3199: #else
3200: #define GlobalAddAtom GlobalAddAtomA
3201: #endif // !UNICODE
3202:
3203: ATOM
3204: WINAPI
3205: GlobalFindAtomA(
3206: LPCSTR lpString
3207: );
3208: ATOM
3209: WINAPI
3210: GlobalFindAtomW(
3211: LPCWSTR lpString
3212: );
3213: #ifdef UNICODE
3214: #define GlobalFindAtom GlobalFindAtomW
3215: #else
3216: #define GlobalFindAtom GlobalFindAtomA
3217: #endif // !UNICODE
3218:
3219: UINT
3220: WINAPI
3221: GlobalGetAtomNameA(
3222: ATOM nAtom,
3223: LPSTR lpBuffer,
3224: int nSize
3225: );
3226: UINT
3227: WINAPI
3228: GlobalGetAtomNameW(
3229: ATOM nAtom,
3230: LPWSTR lpBuffer,
3231: int nSize
3232: );
3233: #ifdef UNICODE
3234: #define GlobalGetAtomName GlobalGetAtomNameW
3235: #else
3236: #define GlobalGetAtomName GlobalGetAtomNameA
3237: #endif // !UNICODE
3238:
3239: ATOM
3240: WINAPI
3241: AddAtomA(
3242: LPCSTR lpString
3243: );
3244: ATOM
3245: WINAPI
3246: AddAtomW(
3247: LPCWSTR lpString
3248: );
3249: #ifdef UNICODE
3250: #define AddAtom AddAtomW
3251: #else
3252: #define AddAtom AddAtomA
3253: #endif // !UNICODE
3254:
3255: ATOM
3256: WINAPI
3257: FindAtomA(
3258: LPCSTR lpString
3259: );
3260: ATOM
3261: WINAPI
3262: FindAtomW(
3263: LPCWSTR lpString
3264: );
3265: #ifdef UNICODE
3266: #define FindAtom FindAtomW
3267: #else
3268: #define FindAtom FindAtomA
3269: #endif // !UNICODE
3270:
3271: UINT
3272: WINAPI
3273: GetAtomNameA(
3274: ATOM nAtom,
3275: LPSTR lpBuffer,
3276: int nSize
3277: );
3278: UINT
3279: WINAPI
3280: GetAtomNameW(
3281: ATOM nAtom,
3282: LPWSTR lpBuffer,
3283: int nSize
3284: );
3285: #ifdef UNICODE
3286: #define GetAtomName GetAtomNameW
3287: #else
3288: #define GetAtomName GetAtomNameA
3289: #endif // !UNICODE
3290:
3291: UINT
3292: WINAPI
3293: GetProfileIntA(
3294: LPCSTR lpAppName,
3295: LPCSTR lpKeyName,
3296: DWORD nDefault
3297: );
3298: UINT
3299: WINAPI
3300: GetProfileIntW(
3301: LPCWSTR lpAppName,
3302: LPCWSTR lpKeyName,
3303: DWORD nDefault
3304: );
3305: #ifdef UNICODE
3306: #define GetProfileInt GetProfileIntW
3307: #else
3308: #define GetProfileInt GetProfileIntA
3309: #endif // !UNICODE
3310:
3311: DWORD
3312: WINAPI
3313: GetProfileStringA(
3314: LPCSTR lpAppName,
3315: LPCSTR lpKeyName,
3316: LPCSTR lpDefault,
3317: LPSTR lpReturnedString,
3318: DWORD nSize
3319: );
3320: DWORD
3321: WINAPI
3322: GetProfileStringW(
3323: LPCWSTR lpAppName,
3324: LPCWSTR lpKeyName,
3325: LPCWSTR lpDefault,
3326: LPWSTR lpReturnedString,
3327: DWORD nSize
3328: );
3329: #ifdef UNICODE
3330: #define GetProfileString GetProfileStringW
3331: #else
3332: #define GetProfileString GetProfileStringA
3333: #endif // !UNICODE
3334:
3335: BOOL
3336: WINAPI
3337: WriteProfileStringA(
3338: LPCSTR lpAppName,
3339: LPCSTR lpKeyName,
3340: LPCSTR lpString
3341: );
3342: BOOL
3343: WINAPI
3344: WriteProfileStringW(
3345: LPCWSTR lpAppName,
3346: LPCWSTR lpKeyName,
3347: LPCWSTR lpString
3348: );
3349: #ifdef UNICODE
3350: #define WriteProfileString WriteProfileStringW
3351: #else
3352: #define WriteProfileString WriteProfileStringA
3353: #endif // !UNICODE
3354:
3355: DWORD
3356: WINAPI
3357: GetProfileSectionA(
3358: LPCSTR lpAppName,
3359: LPSTR lpReturnedString,
3360: DWORD nSize
3361: );
3362: DWORD
3363: WINAPI
3364: GetProfileSectionW(
3365: LPCWSTR lpAppName,
3366: LPWSTR lpReturnedString,
3367: DWORD nSize
3368: );
3369: #ifdef UNICODE
3370: #define GetProfileSection GetProfileSectionW
3371: #else
3372: #define GetProfileSection GetProfileSectionA
3373: #endif // !UNICODE
3374:
3375: BOOL
3376: WINAPI
3377: WriteProfileSectionA(
3378: LPCSTR lpAppName,
3379: LPCSTR lpString
3380: );
3381: BOOL
3382: WINAPI
3383: WriteProfileSectionW(
3384: LPCWSTR lpAppName,
3385: LPCWSTR lpString
3386: );
3387: #ifdef UNICODE
3388: #define WriteProfileSection WriteProfileSectionW
3389: #else
3390: #define WriteProfileSection WriteProfileSectionA
3391: #endif // !UNICODE
3392:
3393: UINT
3394: WINAPI
3395: GetPrivateProfileIntA(
3396: LPCSTR lpAppName,
3397: LPCSTR lpKeyName,
3398: DWORD nDefault,
3399: LPCSTR lpFileName
3400: );
3401: UINT
3402: WINAPI
3403: GetPrivateProfileIntW(
3404: LPCWSTR lpAppName,
3405: LPCWSTR lpKeyName,
3406: DWORD nDefault,
3407: LPCWSTR lpFileName
3408: );
3409: #ifdef UNICODE
3410: #define GetPrivateProfileInt GetPrivateProfileIntW
3411: #else
3412: #define GetPrivateProfileInt GetPrivateProfileIntA
3413: #endif // !UNICODE
3414:
3415: DWORD
3416: WINAPI
3417: GetPrivateProfileStringA(
3418: LPCSTR lpAppName,
3419: LPCSTR lpKeyName,
3420: LPCSTR lpDefault,
3421: LPSTR lpReturnedString,
3422: DWORD nSize,
3423: LPCSTR lpFileName
3424: );
3425: DWORD
3426: WINAPI
3427: GetPrivateProfileStringW(
3428: LPCWSTR lpAppName,
3429: LPCWSTR lpKeyName,
3430: LPCWSTR lpDefault,
3431: LPWSTR lpReturnedString,
3432: DWORD nSize,
3433: LPCWSTR lpFileName
3434: );
3435: #ifdef UNICODE
3436: #define GetPrivateProfileString GetPrivateProfileStringW
3437: #else
3438: #define GetPrivateProfileString GetPrivateProfileStringA
3439: #endif // !UNICODE
3440:
3441: BOOL
3442: WINAPI
3443: WritePrivateProfileStringA(
3444: LPCSTR lpAppName,
3445: LPCSTR lpKeyName,
3446: LPCSTR lpString,
3447: LPCSTR lpFileName
3448: );
3449: BOOL
3450: WINAPI
3451: WritePrivateProfileStringW(
3452: LPCWSTR lpAppName,
3453: LPCWSTR lpKeyName,
3454: LPCWSTR lpString,
3455: LPCWSTR lpFileName
3456: );
3457: #ifdef UNICODE
3458: #define WritePrivateProfileString WritePrivateProfileStringW
3459: #else
3460: #define WritePrivateProfileString WritePrivateProfileStringA
3461: #endif // !UNICODE
3462:
3463: DWORD
3464: WINAPI
3465: GetPrivateProfileSectionA(
3466: LPCSTR lpAppName,
3467: LPSTR lpReturnedString,
3468: DWORD nSize,
3469: LPCSTR lpFileName
3470: );
3471: DWORD
3472: WINAPI
3473: GetPrivateProfileSectionW(
3474: LPCWSTR lpAppName,
3475: LPWSTR lpReturnedString,
3476: DWORD nSize,
3477: LPCWSTR lpFileName
3478: );
3479: #ifdef UNICODE
3480: #define GetPrivateProfileSection GetPrivateProfileSectionW
3481: #else
3482: #define GetPrivateProfileSection GetPrivateProfileSectionA
3483: #endif // !UNICODE
3484:
3485: BOOL
3486: WINAPI
3487: WritePrivateProfileSectionA(
3488: LPCSTR lpAppName,
3489: LPCSTR lpString,
3490: LPCSTR lpFileName
3491: );
3492: BOOL
3493: WINAPI
3494: WritePrivateProfileSectionW(
3495: LPCWSTR lpAppName,
3496: LPCWSTR lpString,
3497: LPCWSTR lpFileName
3498: );
3499: #ifdef UNICODE
3500: #define WritePrivateProfileSection WritePrivateProfileSectionW
3501: #else
3502: #define WritePrivateProfileSection WritePrivateProfileSectionA
3503: #endif // !UNICODE
3504:
3505: UINT
3506: WINAPI
3507: GetDriveTypeA(
3508: LPSTR lpRootPathName
3509: );
3510: UINT
3511: WINAPI
3512: GetDriveTypeW(
3513: LPWSTR lpRootPathName
3514: );
3515: #ifdef UNICODE
3516: #define GetDriveType GetDriveTypeW
3517: #else
3518: #define GetDriveType GetDriveTypeA
3519: #endif // !UNICODE
3520:
3521: UINT
3522: WINAPI
3523: GetSystemDirectoryA(
3524: LPSTR lpBuffer,
3525: UINT uSize
3526: );
3527: UINT
3528: WINAPI
3529: GetSystemDirectoryW(
3530: LPWSTR lpBuffer,
3531: UINT uSize
3532: );
3533: #ifdef UNICODE
3534: #define GetSystemDirectory GetSystemDirectoryW
3535: #else
3536: #define GetSystemDirectory GetSystemDirectoryA
3537: #endif // !UNICODE
3538:
3539: DWORD
3540: WINAPI
3541: GetTempPathA(
3542: DWORD nBufferLength,
3543: LPSTR lpBuffer
3544: );
3545: DWORD
3546: WINAPI
3547: GetTempPathW(
3548: DWORD nBufferLength,
3549: LPWSTR lpBuffer
3550: );
3551: #ifdef UNICODE
3552: #define GetTempPath GetTempPathW
3553: #else
3554: #define GetTempPath GetTempPathA
3555: #endif // !UNICODE
3556:
3557: UINT
3558: WINAPI
3559: GetTempFileNameA(
3560: LPCSTR lpPathName,
3561: LPCSTR lpPrefixString,
3562: UINT uUnique,
3563: LPSTR lpTempFileName
3564: );
3565: UINT
3566: WINAPI
3567: GetTempFileNameW(
3568: LPCWSTR lpPathName,
3569: LPCWSTR lpPrefixString,
3570: UINT uUnique,
3571: LPWSTR lpTempFileName
3572: );
3573: #ifdef UNICODE
3574: #define GetTempFileName GetTempFileNameW
3575: #else
3576: #define GetTempFileName GetTempFileNameA
3577: #endif // !UNICODE
3578:
3579: UINT
3580: WINAPI
3581: GetWindowsDirectoryA(
3582: LPSTR lpBuffer,
3583: UINT uSize
3584: );
3585: UINT
3586: WINAPI
3587: GetWindowsDirectoryW(
3588: LPWSTR lpBuffer,
3589: UINT uSize
3590: );
3591: #ifdef UNICODE
3592: #define GetWindowsDirectory GetWindowsDirectoryW
3593: #else
3594: #define GetWindowsDirectory GetWindowsDirectoryA
3595: #endif // !UNICODE
3596:
3597: BOOL
3598: WINAPI
3599: SetCurrentDirectoryA(
3600: LPSTR lpPathName
3601: );
3602: BOOL
3603: WINAPI
3604: SetCurrentDirectoryW(
3605: LPWSTR lpPathName
3606: );
3607: #ifdef UNICODE
3608: #define SetCurrentDirectory SetCurrentDirectoryW
3609: #else
3610: #define SetCurrentDirectory SetCurrentDirectoryA
3611: #endif // !UNICODE
3612:
3613: DWORD
3614: WINAPI
3615: GetCurrentDirectoryA(
3616: DWORD nBufferLength,
3617: LPSTR lpBuffer
3618: );
3619: DWORD
3620: WINAPI
3621: GetCurrentDirectoryW(
3622: DWORD nBufferLength,
3623: LPWSTR lpBuffer
3624: );
3625: #ifdef UNICODE
3626: #define GetCurrentDirectory GetCurrentDirectoryW
3627: #else
3628: #define GetCurrentDirectory GetCurrentDirectoryA
3629: #endif // !UNICODE
3630:
3631: BOOL
3632: WINAPI
3633: GetDiskFreeSpaceA(
3634: LPSTR lpRootPathName,
3635: LPDWORD lpSectorsPerCluster,
3636: LPDWORD lpBytesPerSector,
3637: LPDWORD lpNumberOfFreeClusters,
3638: LPDWORD lpTotalNumberOfClusters
3639: );
3640: BOOL
3641: WINAPI
3642: GetDiskFreeSpaceW(
3643: LPWSTR lpRootPathName,
3644: LPDWORD lpSectorsPerCluster,
3645: LPDWORD lpBytesPerSector,
3646: LPDWORD lpNumberOfFreeClusters,
3647: LPDWORD lpTotalNumberOfClusters
3648: );
3649: #ifdef UNICODE
3650: #define GetDiskFreeSpace GetDiskFreeSpaceW
3651: #else
3652: #define GetDiskFreeSpace GetDiskFreeSpaceA
3653: #endif // !UNICODE
3654:
3655: BOOL
3656: WINAPI
3657: CreateDirectoryA(
3658: LPSTR lpPathName,
3659: LPSECURITY_ATTRIBUTES lpSecurityAttributes
3660: );
3661: BOOL
3662: WINAPI
3663: CreateDirectoryW(
3664: LPWSTR lpPathName,
3665: LPSECURITY_ATTRIBUTES lpSecurityAttributes
3666: );
3667: #ifdef UNICODE
3668: #define CreateDirectory CreateDirectoryW
3669: #else
3670: #define CreateDirectory CreateDirectoryA
3671: #endif // !UNICODE
3672:
3673: BOOL
3674: WINAPI
3675: RemoveDirectoryA(
3676: LPSTR lpPathName
3677: );
3678: BOOL
3679: WINAPI
3680: RemoveDirectoryW(
3681: LPWSTR lpPathName
3682: );
3683: #ifdef UNICODE
3684: #define RemoveDirectory RemoveDirectoryW
3685: #else
3686: #define RemoveDirectory RemoveDirectoryA
3687: #endif // !UNICODE
3688:
3689: DWORD
3690: WINAPI
3691: GetFullPathNameA(
3692: LPCSTR lpFileName,
3693: DWORD nBufferLength,
3694: LPSTR lpBuffer,
3695: LPSTR *lpFilePart
3696: );
3697: DWORD
3698: WINAPI
3699: GetFullPathNameW(
3700: LPCWSTR lpFileName,
3701: DWORD nBufferLength,
3702: LPWSTR lpBuffer,
3703: LPWSTR *lpFilePart
3704: );
3705: #ifdef UNICODE
3706: #define GetFullPathName GetFullPathNameW
3707: #else
3708: #define GetFullPathName GetFullPathNameA
3709: #endif // !UNICODE
3710:
3711: #define EXPAND_LOCAL_DRIVES
3712:
3713:
3714: HANDLE
3715: WINAPI
3716: CreateFileA(
3717: LPCSTR lpFileName,
3718: DWORD dwDesiredAccess,
3719: DWORD dwShareMode,
3720: LPSECURITY_ATTRIBUTES lpSecurityAttributes,
3721: DWORD dwCreationDisposition,
3722: DWORD dwFlagsAndAttributes,
3723: HANDLE hTemplateFile
3724: );
3725: HANDLE
3726: WINAPI
3727: CreateFileW(
3728: LPCWSTR lpFileName,
3729: DWORD dwDesiredAccess,
3730: DWORD dwShareMode,
3731: LPSECURITY_ATTRIBUTES lpSecurityAttributes,
3732: DWORD dwCreationDisposition,
3733: DWORD dwFlagsAndAttributes,
3734: HANDLE hTemplateFile
3735: );
3736: #ifdef UNICODE
3737: #define CreateFile CreateFileW
3738: #else
3739: #define CreateFile CreateFileA
3740: #endif // !UNICODE
3741:
3742: BOOL
3743: WINAPI
3744: SetFileAttributesA(
3745: LPSTR lpFileName,
3746: DWORD dwFileAttributes
3747: );
3748: BOOL
3749: WINAPI
3750: SetFileAttributesW(
3751: LPWSTR lpFileName,
3752: DWORD dwFileAttributes
3753: );
3754: #ifdef UNICODE
3755: #define SetFileAttributes SetFileAttributesW
3756: #else
3757: #define SetFileAttributes SetFileAttributesA
3758: #endif // !UNICODE
3759:
3760: DWORD
3761: WINAPI
3762: GetFileAttributesA(
3763: LPSTR lpFileName
3764: );
3765: DWORD
3766: WINAPI
3767: GetFileAttributesW(
3768: LPWSTR lpFileName
3769: );
3770: #ifdef UNICODE
3771: #define GetFileAttributes GetFileAttributesW
3772: #else
3773: #define GetFileAttributes GetFileAttributesA
3774: #endif // !UNICODE
3775:
3776: BOOL
3777: WINAPI
3778: DeleteFileA(
3779: LPSTR lpFileName
3780: );
3781: BOOL
3782: WINAPI
3783: DeleteFileW(
3784: LPWSTR lpFileName
3785: );
3786: #ifdef UNICODE
3787: #define DeleteFile DeleteFileW
3788: #else
3789: #define DeleteFile DeleteFileA
3790: #endif // !UNICODE
3791:
3792: HANDLE
3793: WINAPI
3794: FindFirstFileA(
3795: LPSTR lpFileName,
3796: LPWIN32_FIND_DATAA lpFindFileData
3797: );
3798: HANDLE
3799: WINAPI
3800: FindFirstFileW(
3801: LPWSTR lpFileName,
3802: LPWIN32_FIND_DATAW lpFindFileData
3803: );
3804: #ifdef UNICODE
3805: #define FindFirstFile FindFirstFileW
3806: #else
3807: #define FindFirstFile FindFirstFileA
3808: #endif // !UNICODE
3809:
3810: BOOL
3811: WINAPI
3812: FindNextFileA(
3813: HANDLE hFindFile,
3814: LPWIN32_FIND_DATAA lpFindFileData
3815: );
3816: BOOL
3817: WINAPI
3818: FindNextFileW(
3819: HANDLE hFindFile,
3820: LPWIN32_FIND_DATAW lpFindFileData
3821: );
3822: #ifdef UNICODE
3823: #define FindNextFile FindNextFileW
3824: #else
3825: #define FindNextFile FindNextFileA
3826: #endif // !UNICODE
3827:
3828: DWORD
3829: WINAPI
3830: SearchPathA(
3831: LPCSTR lpPath,
3832: LPCSTR lpFileName,
3833: LPCSTR lpExtension,
3834: DWORD nBufferLength,
3835: LPSTR lpBuffer,
3836: LPSTR *lpFilePart
3837: );
3838: DWORD
3839: WINAPI
3840: SearchPathW(
3841: LPCWSTR lpPath,
3842: LPCWSTR lpFileName,
3843: LPCWSTR lpExtension,
3844: DWORD nBufferLength,
3845: LPWSTR lpBuffer,
3846: LPWSTR *lpFilePart
3847: );
3848: #ifdef UNICODE
3849: #define SearchPath SearchPathW
3850: #else
3851: #define SearchPath SearchPathA
3852: #endif // !UNICODE
3853:
3854: BOOL
3855: WINAPI
3856: CopyFileA(
3857: LPSTR lpExistingFileName,
3858: LPSTR lpNewFileName,
3859: BOOL bFailIfExists
3860: );
3861: BOOL
3862: WINAPI
3863: CopyFileW(
3864: LPWSTR lpExistingFileName,
3865: LPWSTR lpNewFileName,
3866: BOOL bFailIfExists
3867: );
3868: #ifdef UNICODE
3869: #define CopyFile CopyFileW
3870: #else
3871: #define CopyFile CopyFileA
3872: #endif // !UNICODE
3873:
3874: BOOL
3875: WINAPI
3876: MoveFileA(
3877: LPSTR lpExistingFileName,
3878: LPSTR lpNewFileName
3879: );
3880: BOOL
3881: WINAPI
3882: MoveFileW(
3883: LPWSTR lpExistingFileName,
3884: LPWSTR lpNewFileName
3885: );
3886: #ifdef UNICODE
3887: #define MoveFile MoveFileW
3888: #else
3889: #define MoveFile MoveFileA
3890: #endif // !UNICODE
3891:
3892: HANDLE
3893: WINAPI
3894: CreateNamedPipeA(
3895: LPSTR lpName,
3896: DWORD dwOpenMode,
3897: DWORD dwPipeMode,
3898: DWORD nMaxInstances,
3899: DWORD nOutBufferSize,
3900: DWORD nInBufferSize,
3901: DWORD nDefaultTimeOut,
3902: LPSECURITY_ATTRIBUTES lpSecurityAttributes
3903: );
3904: HANDLE
3905: WINAPI
3906: CreateNamedPipeW(
3907: LPWSTR lpName,
3908: DWORD dwOpenMode,
3909: DWORD dwPipeMode,
3910: DWORD nMaxInstances,
3911: DWORD nOutBufferSize,
3912: DWORD nInBufferSize,
3913: DWORD nDefaultTimeOut,
3914: LPSECURITY_ATTRIBUTES lpSecurityAttributes
3915: );
3916: #ifdef UNICODE
3917: #define CreateNamedPipe CreateNamedPipeW
3918: #else
3919: #define CreateNamedPipe CreateNamedPipeA
3920: #endif // !UNICODE
3921:
3922: BOOL
3923: WINAPI
3924: GetNamedPipeHandleStateA(
3925: HANDLE hNamedPipe,
3926: LPDWORD lpState,
3927: LPDWORD lpCurInstances,
3928: LPDWORD lpMaxCollectionCount,
3929: LPDWORD lpCollectDataTimeout,
3930: LPSTR lpUserName,
3931: DWORD nMaxUserNameSize
3932: );
3933: BOOL
3934: WINAPI
3935: GetNamedPipeHandleStateW(
3936: HANDLE hNamedPipe,
3937: LPDWORD lpState,
3938: LPDWORD lpCurInstances,
3939: LPDWORD lpMaxCollectionCount,
3940: LPDWORD lpCollectDataTimeout,
3941: LPWSTR lpUserName,
3942: DWORD nMaxUserNameSize
3943: );
3944: #ifdef UNICODE
3945: #define GetNamedPipeHandleState GetNamedPipeHandleStateW
3946: #else
3947: #define GetNamedPipeHandleState GetNamedPipeHandleStateA
3948: #endif // !UNICODE
3949:
3950: BOOL
3951: WINAPI
3952: CallNamedPipeA(
3953: LPSTR lpNamedPipeName,
3954: LPVOID lpInBuffer,
3955: DWORD nInBufferSize,
3956: LPVOID lpOutBuffer,
3957: DWORD nOutBufferSize,
3958: LPDWORD lpBytesRead,
3959: DWORD nTimeOut
3960: );
3961: BOOL
3962: WINAPI
3963: CallNamedPipeW(
3964: LPWSTR lpNamedPipeName,
3965: LPVOID lpInBuffer,
3966: DWORD nInBufferSize,
3967: LPVOID lpOutBuffer,
3968: DWORD nOutBufferSize,
3969: LPDWORD lpBytesRead,
3970: DWORD nTimeOut
3971: );
3972: #ifdef UNICODE
3973: #define CallNamedPipe CallNamedPipeW
3974: #else
3975: #define CallNamedPipe CallNamedPipeA
3976: #endif // !UNICODE
3977:
3978: BOOL
3979: WINAPI
3980: WaitNamedPipeA(
3981: LPSTR lpNamedPipeName,
3982: DWORD nTimeOut
3983: );
3984: BOOL
3985: WINAPI
3986: WaitNamedPipeW(
3987: LPWSTR lpNamedPipeName,
3988: DWORD nTimeOut
3989: );
3990: #ifdef UNICODE
3991: #define WaitNamedPipe WaitNamedPipeW
3992: #else
3993: #define WaitNamedPipe WaitNamedPipeA
3994: #endif // !UNICODE
3995:
3996: BOOL
3997: WINAPI
3998: GetVolumeInformationA(
3999: LPSTR lpRootPathName,
4000: LPSTR lpVolumeNameBuffer,
4001: DWORD nVolumeNameSize,
4002: LPDWORD lpVolumeSerialNumber,
4003: LPDWORD lpMaximumComponentLength,
4004: LPDWORD lpFileSystemFlags,
4005: LPSTR lpFileSystemNameBuffer,
4006: DWORD nFileSystemNameSize
4007: );
4008: BOOL
4009: WINAPI
4010: GetVolumeInformationW(
4011: LPWSTR lpRootPathName,
4012: LPWSTR lpVolumeNameBuffer,
4013: DWORD nVolumeNameSize,
4014: LPDWORD lpVolumeSerialNumber,
4015: LPDWORD lpMaximumComponentLength,
4016: LPDWORD lpFileSystemFlags,
4017: LPWSTR lpFileSystemNameBuffer,
4018: DWORD nFileSystemNameSize
4019: );
4020: #ifdef UNICODE
4021: #define GetVolumeInformation GetVolumeInformationW
4022: #else
4023: #define GetVolumeInformation GetVolumeInformationA
4024: #endif // !UNICODE
4025:
4026: //
4027: // Event logging APIs
4028: //
4029:
4030: BOOL
4031: WINAPI
4032: ClearEventLogA (
4033: HANDLE hEventLog,
4034: LPSTR lpBackupFileName
4035: );
4036: BOOL
4037: WINAPI
4038: ClearEventLogW (
4039: HANDLE hEventLog,
4040: LPWSTR lpBackupFileName
4041: );
4042: #ifdef UNICODE
4043: #define ClearEventLog ClearEventLogW
4044: #else
4045: #define ClearEventLog ClearEventLogA
4046: #endif // !UNICODE
4047:
4048: BOOL
4049: WINAPI
4050: BackupEventLogA (
4051: HANDLE hEventLog,
4052: LPSTR lpBackupFileName
4053: );
4054: BOOL
4055: WINAPI
4056: BackupEventLogW (
4057: HANDLE hEventLog,
4058: LPWSTR lpBackupFileName
4059: );
4060: #ifdef UNICODE
4061: #define BackupEventLog BackupEventLogW
4062: #else
4063: #define BackupEventLog BackupEventLogA
4064: #endif // !UNICODE
4065:
4066: BOOL
4067: WINAPI
4068: CloseEventLog (
4069: HANDLE hEventLog
4070: );
4071:
4072: BOOL
4073: WINAPI
4074: DeregisterEventSource (
4075: HANDLE hEventLog
4076: );
4077:
4078:
4079: BOOL
4080: WINAPI
4081: GetNumberOfEventLogRecords (
4082: HANDLE hEventLog,
4083: PDWORD NumberOfRecords
4084: );
4085:
4086: BOOL
4087: WINAPI
4088: GetOldestEventLogRecord (
4089: HANDLE hEventLog,
4090: PDWORD OldestRecord
4091: );
4092:
4093: HANDLE
4094: WINAPI
4095: OpenEventLogA (
4096: LPSTR lpUNCServerName,
4097: LPSTR lpSourceName
4098: );
4099: HANDLE
4100: WINAPI
4101: OpenEventLogW (
4102: LPWSTR lpUNCServerName,
4103: LPWSTR lpSourceName
4104: );
4105: #ifdef UNICODE
4106: #define OpenEventLog OpenEventLogW
4107: #else
4108: #define OpenEventLog OpenEventLogA
4109: #endif // !UNICODE
4110:
4111: HANDLE
4112: WINAPI
4113: RegisterEventSourceA (
4114: LPSTR lpUNCServerName,
4115: LPSTR lpSourceName
4116: );
4117: HANDLE
4118: WINAPI
4119: RegisterEventSourceW (
4120: LPWSTR lpUNCServerName,
4121: LPWSTR lpSourceName
4122: );
4123: #ifdef UNICODE
4124: #define RegisterEventSource RegisterEventSourceW
4125: #else
4126: #define RegisterEventSource RegisterEventSourceA
4127: #endif // !UNICODE
4128:
4129: HANDLE
4130: WINAPI
4131: OpenBackupEventLogA (
4132: LPSTR lpUNCServerName,
4133: LPSTR lpFileName
4134: );
4135: HANDLE
4136: WINAPI
4137: OpenBackupEventLogW (
4138: LPWSTR lpUNCServerName,
4139: LPWSTR lpFileName
4140: );
4141: #ifdef UNICODE
4142: #define OpenBackupEventLog OpenBackupEventLogW
4143: #else
4144: #define OpenBackupEventLog OpenBackupEventLogA
4145: #endif // !UNICODE
4146:
4147: BOOL
4148: WINAPI
4149: ReadEventLogA (
4150: HANDLE hEventLog,
4151: DWORD dwReadFlags,
4152: DWORD dwRecordOffset,
4153: LPVOID lpBuffer,
4154: DWORD nNumberOfBytesToRead,
4155: DWORD *pnBytesRead,
4156: DWORD *pnMinNumberOfBytesNeeded
4157: );
4158: BOOL
4159: WINAPI
4160: ReadEventLogW (
4161: HANDLE hEventLog,
4162: DWORD dwReadFlags,
4163: DWORD dwRecordOffset,
4164: LPVOID lpBuffer,
4165: DWORD nNumberOfBytesToRead,
4166: DWORD *pnBytesRead,
4167: DWORD *pnMinNumberOfBytesNeeded
4168: );
4169: #ifdef UNICODE
4170: #define ReadEventLog ReadEventLogW
4171: #else
4172: #define ReadEventLog ReadEventLogA
4173: #endif // !UNICODE
4174:
4175: BOOL
4176: WINAPI
4177: ReportEventA (
4178: HANDLE hEventLog,
4179: WORD wType,
4180: WORD wCategory,
4181: DWORD dwEventID,
4182: PSID lpUserSid,
4183: WORD wNumStrings,
4184: DWORD dwDataSize,
4185: LPSTR *lpStrings,
4186: LPVOID lpRawData
4187: );
4188: BOOL
4189: WINAPI
4190: ReportEventW (
4191: HANDLE hEventLog,
4192: WORD wType,
4193: WORD wCategory,
4194: DWORD dwEventID,
4195: PSID lpUserSid,
4196: WORD wNumStrings,
4197: DWORD dwDataSize,
4198: LPWSTR *lpStrings,
4199: LPVOID lpRawData
4200: );
4201: #ifdef UNICODE
4202: #define ReportEvent ReportEventW
4203: #else
4204: #define ReportEvent ReportEventA
4205: #endif // !UNICODE
4206:
4207: //
4208: //
4209: // Security APIs
4210: //
4211:
4212:
4213: BOOL
4214: WINAPI
4215: DuplicateToken(
4216: HANDLE ExistingTokenHandle,
4217: SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
4218: PHANDLE DuplicateTokenHandle
4219: );
4220:
4221: BOOL
4222: WINAPI
4223: GetKernelObjectSecurity (
4224: HANDLE Handle,
4225: SECURITY_INFORMATION RequestedInformation,
4226: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4227: DWORD nLength,
4228: LPDWORD lpnLengthNeeded
4229: );
4230:
4231: BOOL
4232: WINAPI
4233: ImpersonateNamedPipeClient(
4234: HANDLE hNamedPipe
4235: );
4236:
4237: BOOL
4238: WINAPI
4239: ImpersonateSelf(
4240: SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
4241: );
4242:
4243:
4244: BOOL
4245: WINAPI
4246: RevertToSelf (
4247: VOID
4248: );
4249:
4250:
4251: BOOL
4252: WINAPI
4253: AccessCheck (
4254: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4255: HANDLE ClientToken,
4256: DWORD DesiredAccess,
4257: PGENERIC_MAPPING GenericMapping,
4258: PPRIVILEGE_SET PrivilegeSet,
4259: LPDWORD PrivilegeSetLength,
4260: LPDWORD GrantedAccess,
4261: LPBOOL AccessStatus
4262: );
4263:
4264:
4265: BOOL
4266: WINAPI
4267: OpenProcessToken (
4268: HANDLE ProcessHandle,
4269: DWORD DesiredAccess,
4270: PHANDLE TokenHandle
4271: );
4272:
4273:
4274: BOOL
4275: WINAPI
4276: OpenThreadToken (
4277: HANDLE ThreadHandle,
4278: DWORD DesiredAccess,
4279: BOOL OpenAsSelf,
4280: PHANDLE TokenHandle
4281: );
4282:
4283:
4284: BOOL
4285: WINAPI
4286: GetTokenInformation (
4287: HANDLE TokenHandle,
4288: TOKEN_INFORMATION_CLASS TokenInformationClass,
4289: LPVOID TokenInformation,
4290: DWORD TokenInformationLength,
4291: PDWORD ReturnLength
4292: );
4293:
4294:
4295: BOOL
4296: WINAPI
4297: SetTokenInformation (
4298: HANDLE TokenHandle,
4299: TOKEN_INFORMATION_CLASS TokenInformationClass,
4300: LPVOID TokenInformation,
4301: DWORD TokenInformationLength
4302: );
4303:
4304:
4305: BOOL
4306: WINAPI
4307: AdjustTokenPrivileges (
4308: HANDLE TokenHandle,
4309: BOOL DisableAllPrivileges,
4310: PTOKEN_PRIVILEGES NewState,
4311: DWORD BufferLength,
4312: PTOKEN_PRIVILEGES PreviousState,
4313: PDWORD ReturnLength
4314: );
4315:
4316:
4317: BOOL
4318: WINAPI
4319: AdjustTokenGroups (
4320: HANDLE TokenHandle,
4321: BOOL ResetToDefault,
4322: PTOKEN_GROUPS NewState,
4323: DWORD BufferLength,
4324: PTOKEN_GROUPS PreviousState,
4325: PDWORD ReturnLength
4326: );
4327:
4328:
4329: BOOL
4330: WINAPI
4331: PrivilegeCheck (
4332: HANDLE ClientToken,
4333: PPRIVILEGE_SET RequiredPrivileges,
4334: LPBOOL pfResult
4335: );
4336:
4337:
4338: BOOL
4339: WINAPI
4340: AccessCheckAndAuditAlarmA (
4341: LPSTR SubsystemName,
4342: LPVOID HandleId,
4343: LPSTR ObjectTypeName,
4344: LPSTR ObjectName,
4345: PSECURITY_DESCRIPTOR SecurityDescriptor,
4346: DWORD DesiredAccess,
4347: PGENERIC_MAPPING GenericMapping,
4348: BOOL ObjectCreation,
4349: LPDWORD GrantedAccess,
4350: LPBOOL AccessStatus,
4351: LPBOOL pfGenerateOnClose
4352: );
4353: BOOL
4354: WINAPI
4355: AccessCheckAndAuditAlarmW (
4356: LPWSTR SubsystemName,
4357: LPVOID HandleId,
4358: LPWSTR ObjectTypeName,
4359: LPWSTR ObjectName,
4360: PSECURITY_DESCRIPTOR SecurityDescriptor,
4361: DWORD DesiredAccess,
4362: PGENERIC_MAPPING GenericMapping,
4363: BOOL ObjectCreation,
4364: LPDWORD GrantedAccess,
4365: LPBOOL AccessStatus,
4366: LPBOOL pfGenerateOnClose
4367: );
4368: #ifdef UNICODE
4369: #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
4370: #else
4371: #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
4372: #endif // !UNICODE
4373:
4374:
4375: BOOL
4376: WINAPI
4377: ObjectOpenAuditAlarmA (
4378: LPSTR SubsystemName,
4379: LPVOID HandleId,
4380: LPSTR ObjectTypeName,
4381: LPSTR ObjectName,
4382: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4383: HANDLE ClientToken,
4384: DWORD DesiredAccess,
4385: DWORD GrantedAccess,
4386: PPRIVILEGE_SET Privileges,
4387: BOOL ObjectCreation,
4388: BOOL AccessGranted,
4389: LPBOOL GenerateOnClose
4390: );
4391: BOOL
4392: WINAPI
4393: ObjectOpenAuditAlarmW (
4394: LPWSTR SubsystemName,
4395: LPVOID HandleId,
4396: LPWSTR ObjectTypeName,
4397: LPWSTR ObjectName,
4398: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4399: HANDLE ClientToken,
4400: DWORD DesiredAccess,
4401: DWORD GrantedAccess,
4402: PPRIVILEGE_SET Privileges,
4403: BOOL ObjectCreation,
4404: BOOL AccessGranted,
4405: LPBOOL GenerateOnClose
4406: );
4407: #ifdef UNICODE
4408: #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
4409: #else
4410: #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
4411: #endif // !UNICODE
4412:
4413:
4414: BOOL
4415: WINAPI
4416: ObjectPrivilegeAuditAlarmA (
4417: LPSTR SubsystemName,
4418: LPVOID HandleId,
4419: HANDLE ClientToken,
4420: DWORD DesiredAccess,
4421: PPRIVILEGE_SET Privileges,
4422: BOOL AccessGranted
4423: );
4424: BOOL
4425: WINAPI
4426: ObjectPrivilegeAuditAlarmW (
4427: LPWSTR SubsystemName,
4428: LPVOID HandleId,
4429: HANDLE ClientToken,
4430: DWORD DesiredAccess,
4431: PPRIVILEGE_SET Privileges,
4432: BOOL AccessGranted
4433: );
4434: #ifdef UNICODE
4435: #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
4436: #else
4437: #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
4438: #endif // !UNICODE
4439:
4440:
4441: BOOL
4442: WINAPI
4443: ObjectCloseAuditAlarmA (
4444: LPSTR SubsystemName,
4445: LPVOID HandleId,
4446: BOOL GenerateOnClose
4447: );
4448: BOOL
4449: WINAPI
4450: ObjectCloseAuditAlarmW (
4451: LPWSTR SubsystemName,
4452: LPVOID HandleId,
4453: BOOL GenerateOnClose
4454: );
4455: #ifdef UNICODE
4456: #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
4457: #else
4458: #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
4459: #endif // !UNICODE
4460:
4461:
4462: BOOL
4463: WINAPI
4464: PrivilegedServiceAuditAlarmA (
4465: LPSTR SubsystemName,
4466: LPSTR ServiceName,
4467: HANDLE ClientToken,
4468: PPRIVILEGE_SET Privileges,
4469: BOOL AccessGranted
4470: );
4471: BOOL
4472: WINAPI
4473: PrivilegedServiceAuditAlarmW (
4474: LPWSTR SubsystemName,
4475: LPWSTR ServiceName,
4476: HANDLE ClientToken,
4477: PPRIVILEGE_SET Privileges,
4478: BOOL AccessGranted
4479: );
4480: #ifdef UNICODE
4481: #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
4482: #else
4483: #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
4484: #endif // !UNICODE
4485:
4486:
4487: BOOL
4488: WINAPI
4489: IsValidSid (
4490: PSID pSid
4491: );
4492:
4493:
4494: BOOL
4495: WINAPI
4496: EqualSid (
4497: PSID pSid1,
4498: PSID pSid2
4499: );
4500:
4501:
4502: BOOL
4503: WINAPI
4504: EqualPrefixSid (
4505: PSID pSid1,
4506: PSID pSid2
4507: );
4508:
4509:
4510: DWORD
4511: WINAPI
4512: GetSidLengthRequired (
4513: UCHAR nSubAuthorityCount
4514: );
4515:
4516:
4517: BOOL
4518: WINAPI
4519: AllocateAndInitializeSid (
4520: PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
4521: BYTE nSubAuthorityCount,
4522: DWORD nSubAuthority0,
4523: DWORD nSubAuthority1,
4524: DWORD nSubAuthority2,
4525: DWORD nSubAuthority3,
4526: DWORD nSubAuthority4,
4527: DWORD nSubAuthority5,
4528: DWORD nSubAuthority6,
4529: DWORD nSubAuthority7,
4530: PSID *pSid
4531: );
4532:
4533: PVOID
4534: WINAPI
4535: FreeSid(
4536: PSID pSid
4537: );
4538:
4539: BOOL
4540: WINAPI
4541: InitializeSid (
4542: PSID Sid,
4543: PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
4544: BYTE nSubAuthorityCount
4545: );
4546:
4547:
4548: PSID_IDENTIFIER_AUTHORITY
4549: WINAPI
4550: GetSidIdentifierAuthority (
4551: PSID pSid
4552: );
4553:
4554:
4555: PDWORD
4556: WINAPI
4557: GetSidSubAuthority (
4558: PSID pSid,
4559: DWORD nSubAuthority
4560: );
4561:
4562:
4563: PUCHAR
4564: WINAPI
4565: GetSidSubAuthorityCount (
4566: PSID pSid
4567: );
4568:
4569:
4570: DWORD
4571: WINAPI
4572: GetLengthSid (
4573: PSID pSid
4574: );
4575:
4576:
4577: BOOL
4578: WINAPI
4579: CopySid (
4580: DWORD nDestinationSidLength,
4581: PSID pDestinationSid,
4582: PSID pSourceSid
4583: );
4584:
4585:
4586: BOOL
4587: WINAPI
4588: AreAllAccessesGranted (
4589: DWORD GrantedAccess,
4590: DWORD DesiredAccess
4591: );
4592:
4593:
4594: BOOL
4595: WINAPI
4596: AreAnyAccessesGranted (
4597: DWORD GrantedAccess,
4598: DWORD DesiredAccess
4599: );
4600:
4601:
4602: VOID
4603: WINAPI
4604: MapGenericMask (
4605: PDWORD AccessMask,
4606: PGENERIC_MAPPING GenericMapping
4607: );
4608:
4609:
4610: BOOL
4611: WINAPI
4612: IsValidAcl (
4613: PACL pAcl
4614: );
4615:
4616:
4617: BOOL
4618: WINAPI
4619: InitializeAcl (
4620: PACL pAcl,
4621: DWORD nAclLength,
4622: DWORD dwAclRevision
4623: );
4624:
4625:
4626: BOOL
4627: WINAPI
4628: GetAclInformation (
4629: PACL pAcl,
4630: LPVOID pAclInformation,
4631: DWORD nAclInformationLength,
4632: ACL_INFORMATION_CLASS dwAclInformationClass
4633: );
4634:
4635:
4636: BOOL
4637: WINAPI
4638: SetAclInformation (
4639: PACL pAcl,
4640: LPVOID pAclInformation,
4641: DWORD nAclInformationLength,
4642: ACL_INFORMATION_CLASS dwAclInformationClass
4643: );
4644:
4645:
4646: BOOL
4647: WINAPI
4648: AddAce (
4649: PACL pAcl,
4650: DWORD dwAceRevision,
4651: DWORD dwStartingAceIndex,
4652: LPVOID pAceList,
4653: DWORD nAceListLength
4654: );
4655:
4656:
4657: BOOL
4658: WINAPI
4659: DeleteAce (
4660: PACL pAcl,
4661: DWORD dwAceIndex
4662: );
4663:
4664:
4665: BOOL
4666: WINAPI
4667: GetAce (
4668: PACL pAcl,
4669: DWORD dwAceIndex,
4670: LPVOID *pAce
4671: );
4672:
4673:
4674: BOOL
4675: WINAPI
4676: AddAccessAllowedAce (
4677: PACL pAcl,
4678: DWORD dwAceRevision,
4679: DWORD AccessMask,
4680: PSID pSid
4681: );
4682:
4683:
4684: BOOL
4685: WINAPI
4686: AddAccessDeniedAce (
4687: PACL pAcl,
4688: DWORD dwAceRevision,
4689: DWORD AccessMask,
4690: PSID pSid
4691: );
4692:
4693:
4694: BOOL
4695: WINAPI
4696: AddAuditAccessAce(
4697: PACL pAcl,
4698: DWORD dwAceRevision,
4699: DWORD dwAccessMask,
4700: PSID pSid,
4701: BOOL bAuditSuccess,
4702: BOOL bAuditFailure
4703: );
4704:
4705:
4706: BOOL
4707: WINAPI
4708: FindFirstFreeAce (
4709: PACL pAcl,
4710: LPVOID *pAce
4711: );
4712:
4713:
4714: BOOL
4715: WINAPI
4716: InitializeSecurityDescriptor (
4717: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4718: DWORD dwRevision
4719: );
4720:
4721:
4722: BOOL
4723: WINAPI
4724: IsValidSecurityDescriptor (
4725: PSECURITY_DESCRIPTOR pSecurityDescriptor
4726: );
4727:
4728:
4729: DWORD
4730: WINAPI
4731: GetSecurityDescriptorLength (
4732: PSECURITY_DESCRIPTOR pSecurityDescriptor
4733: );
4734:
4735:
4736: BOOL
4737: WINAPI
4738: GetSecurityDescriptorControl (
4739: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4740: PSECURITY_DESCRIPTOR_CONTROL pControl,
4741: LPDWORD lpdwRevision
4742: );
4743:
4744:
4745: BOOL
4746: WINAPI
4747: SetSecurityDescriptorDacl (
4748: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4749: BOOL bDaclPresent,
4750: PACL pDacl,
4751: BOOL bDaclDefaulted
4752: );
4753:
4754:
4755: BOOL
4756: WINAPI
4757: GetSecurityDescriptorDacl (
4758: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4759: LPBOOL lpbDaclPresent,
4760: PACL *pDacl,
4761: LPBOOL lpbDaclDefaulted
4762: );
4763:
4764:
4765: BOOL
4766: WINAPI
4767: SetSecurityDescriptorSacl (
4768: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4769: BOOL bSaclPresent,
4770: PACL pSacl,
4771: BOOL bSaclDefaulted
4772: );
4773:
4774:
4775: BOOL
4776: WINAPI
4777: GetSecurityDescriptorSacl (
4778: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4779: LPBOOL lpbSaclPresent,
4780: PACL *pSacl,
4781: LPBOOL lpbSaclDefaulted
4782: );
4783:
4784:
4785: BOOL
4786: WINAPI
4787: SetSecurityDescriptorOwner (
4788: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4789: PSID pOwner,
4790: BOOL bOwnerDefaulted
4791: );
4792:
4793:
4794: BOOL
4795: WINAPI
4796: GetSecurityDescriptorOwner (
4797: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4798: PSID *pOwner,
4799: LPBOOL lpbOwnerDefaulted
4800: );
4801:
4802:
4803: BOOL
4804: WINAPI
4805: SetSecurityDescriptorGroup (
4806: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4807: PSID pGroup,
4808: BOOL bGroupDefaulted
4809: );
4810:
4811:
4812: BOOL
4813: WINAPI
4814: GetSecurityDescriptorGroup (
4815: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4816: PSID *pGroup,
4817: LPBOOL lpbGroupDefaulted
4818: );
4819:
4820:
4821: BOOL
4822: WINAPI
4823: CreatePrivateObjectSecurity (
4824: PSECURITY_DESCRIPTOR ParentDescriptor,
4825: PSECURITY_DESCRIPTOR CreatorDescriptor,
4826: PSECURITY_DESCRIPTOR * NewDescriptor,
4827: BOOL IsDirectoryObject,
4828: HANDLE Token,
4829: PGENERIC_MAPPING GenericMapping
4830: );
4831:
4832:
4833: BOOL
4834: WINAPI
4835: SetPrivateObjectSecurity (
4836: SECURITY_INFORMATION SecurityInformation,
4837: PSECURITY_DESCRIPTOR ModificationDescriptor,
4838: PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
4839: PGENERIC_MAPPING GenericMapping,
4840: HANDLE Token
4841: );
4842:
4843:
4844: BOOL
4845: WINAPI
4846: GetPrivateObjectSecurity (
4847: PSECURITY_DESCRIPTOR ObjectDescriptor,
4848: SECURITY_INFORMATION SecurityInformation,
4849: PSECURITY_DESCRIPTOR ResultantDescriptor,
4850: DWORD DescriptorLength,
4851: PDWORD ReturnLength
4852: );
4853:
4854:
4855: BOOL
4856: WINAPI
4857: DestroyPrivateObjectSecurity (
4858: PSECURITY_DESCRIPTOR * ObjectDescriptor
4859: );
4860:
4861:
4862: BOOL
4863: WINAPI
4864: MakeSelfRelativeSD (
4865: PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
4866: PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
4867: LPDWORD lpdwBufferLength
4868: );
4869:
4870:
4871: BOOL
4872: WINAPI
4873: MakeAbsoluteSD (
4874: PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
4875: PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
4876: LPDWORD lpdwAbsoluteSecurityDescriptorSize,
4877: PACL pDacl,
4878: LPDWORD lpdwDaclSize,
4879: PACL pSacl,
4880: LPDWORD lpdwSaclSize,
4881: PSID pOwner,
4882: LPDWORD lpdwOwnerSize,
4883: PSID pPrimaryGroup,
4884: LPDWORD lpdwPrimaryGroupSize
4885: );
4886:
4887:
4888: BOOL
4889: WINAPI
4890: SetFileSecurityA (
4891: LPSTR lpFileName,
4892: SECURITY_INFORMATION SecurityInformation,
4893: PSECURITY_DESCRIPTOR pSecurityDescriptor
4894: );
4895: BOOL
4896: WINAPI
4897: SetFileSecurityW (
4898: LPWSTR lpFileName,
4899: SECURITY_INFORMATION SecurityInformation,
4900: PSECURITY_DESCRIPTOR pSecurityDescriptor
4901: );
4902: #ifdef UNICODE
4903: #define SetFileSecurity SetFileSecurityW
4904: #else
4905: #define SetFileSecurity SetFileSecurityA
4906: #endif // !UNICODE
4907:
4908:
4909: BOOL
4910: WINAPI
4911: GetFileSecurityA (
4912: LPSTR lpFileName,
4913: SECURITY_INFORMATION RequestedInformation,
4914: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4915: DWORD nLength,
4916: LPDWORD lpnLengthNeeded
4917: );
4918: BOOL
4919: WINAPI
4920: GetFileSecurityW (
4921: LPWSTR lpFileName,
4922: SECURITY_INFORMATION RequestedInformation,
4923: PSECURITY_DESCRIPTOR pSecurityDescriptor,
4924: DWORD nLength,
4925: LPDWORD lpnLengthNeeded
4926: );
4927: #ifdef UNICODE
4928: #define GetFileSecurity GetFileSecurityW
4929: #else
4930: #define GetFileSecurity GetFileSecurityA
4931: #endif // !UNICODE
4932:
4933:
4934: BOOL
4935: WINAPI
4936: SetKernelObjectSecurity (
4937: HANDLE Handle,
4938: SECURITY_INFORMATION SecurityInformation,
4939: PSECURITY_DESCRIPTOR SecurityDescriptor
4940: );
4941:
4942:
4943:
4944: HANDLE
4945: WINAPI
4946: FindFirstChangeNotificationA(
4947: LPSTR lpPathName,
4948: BOOL bWatchSubtree,
4949: DWORD dwNotifyFilter
4950: );
4951: HANDLE
4952: WINAPI
4953: FindFirstChangeNotificationW(
4954: LPWSTR lpPathName,
4955: BOOL bWatchSubtree,
4956: DWORD dwNotifyFilter
4957: );
4958: #ifdef UNICODE
4959: #define FindFirstChangeNotification FindFirstChangeNotificationW
4960: #else
4961: #define FindFirstChangeNotification FindFirstChangeNotificationA
4962: #endif // !UNICODE
4963: BOOL
4964: WINAPI
4965: FindNextChangeNotification(
4966: HANDLE hChangeHandle
4967: );
4968:
4969: BOOL
4970: WINAPI
4971: FindCloseChangeNotification(
4972: HANDLE hChangeHandle
4973: );
4974:
4975: BOOL
4976: WINAPI
4977: VirtualLock(
4978: LPVOID lpAddress,
4979: DWORD dwSize
4980: );
4981:
4982: BOOL
4983: WINAPI
4984: VirtualUnlock(
4985: LPVOID lpAddress,
4986: DWORD dwSize
4987: );
4988:
4989: LPVOID
4990: WINAPI
4991: MapViewOfFileEx(
4992: HANDLE hFileMappingObject,
4993: DWORD dwDesiredAccess,
4994: DWORD dwFileOffsetHigh,
4995: DWORD dwFileOffsetLow,
4996: DWORD dwNumberOfBytesToMap,
4997: LPVOID lpBaseAddress
4998: );
4999:
5000: BOOL
5001: WINAPI
5002: SetPriorityClass(
5003: HANDLE hProcess,
5004: DWORD dwPriorityClass
5005: );
5006:
5007: DWORD
5008: WINAPI
5009: GetPriorityClass(
5010: HANDLE hProcess
5011: );
5012:
5013: BOOL
5014: WINAPI
5015: IsBadReadPtr(
5016: CONST VOID *lp,
5017: UINT ucb
5018: );
5019:
5020: BOOL
5021: WINAPI
5022: IsBadWritePtr(
5023: LPVOID lp,
5024: UINT ucb
5025: );
5026:
5027: BOOL
5028: WINAPI
5029: IsBadHugeReadPtr(
5030: CONST VOID *lp,
5031: UINT ucb
5032: );
5033:
5034: BOOL
5035: WINAPI
5036: IsBadHugeWritePtr(
5037: LPVOID lp,
5038: UINT ucb
5039: );
5040:
5041: BOOL
5042: WINAPI
5043: IsBadCodePtr(
5044: FARPROC lpfn
5045: );
5046:
5047: BOOL
5048: WINAPI
5049: IsBadStringPtrA(
5050: LPCSTR lpsz,
5051: UINT ucchMax
5052: );
5053: BOOL
5054: WINAPI
5055: IsBadStringPtrW(
5056: LPCWSTR lpsz,
5057: UINT ucchMax
5058: );
5059: #ifdef UNICODE
5060: #define IsBadStringPtr IsBadStringPtrW
5061: #else
5062: #define IsBadStringPtr IsBadStringPtrA
5063: #endif // !UNICODE
5064:
5065: BOOL
5066: WINAPI
5067: LookupAccountSidA(
5068: LPSTR lpSystemName,
5069: PSID Sid,
5070: LPSTR Name,
5071: LPDWORD cbName,
5072: LPSTR ReferencedDomainName,
5073: LPDWORD cbReferencedDomainName,
5074: PSID_NAME_USE peUse
5075: );
5076: BOOL
5077: WINAPI
5078: LookupAccountSidW(
5079: LPWSTR lpSystemName,
5080: PSID Sid,
5081: LPWSTR Name,
5082: LPDWORD cbName,
5083: LPWSTR ReferencedDomainName,
5084: LPDWORD cbReferencedDomainName,
5085: PSID_NAME_USE peUse
5086: );
5087: #ifdef UNICODE
5088: #define LookupAccountSid LookupAccountSidW
5089: #else
5090: #define LookupAccountSid LookupAccountSidA
5091: #endif // !UNICODE
5092:
5093: BOOL
5094: WINAPI
5095: LookupAccountNameA(
5096: LPSTR lpSystemName,
5097: LPSTR lpAccountName,
5098: PSID Sid,
5099: LPDWORD cbSid,
5100: LPSTR ReferencedDomainName,
5101: LPDWORD cbReferencedDomainName,
5102: PSID_NAME_USE peUse
5103: );
5104: BOOL
5105: WINAPI
5106: LookupAccountNameW(
5107: LPWSTR lpSystemName,
5108: LPWSTR lpAccountName,
5109: PSID Sid,
5110: LPDWORD cbSid,
5111: LPWSTR ReferencedDomainName,
5112: LPDWORD cbReferencedDomainName,
5113: PSID_NAME_USE peUse
5114: );
5115: #ifdef UNICODE
5116: #define LookupAccountName LookupAccountNameW
5117: #else
5118: #define LookupAccountName LookupAccountNameA
5119: #endif // !UNICODE
5120:
5121: BOOL
5122: WINAPI
5123: LookupPrivilegeValueA(
5124: LPSTR lpSystemName,
5125: LPSTR lpName,
5126: PLUID lpLuid
5127: );
5128: BOOL
5129: WINAPI
5130: LookupPrivilegeValueW(
5131: LPWSTR lpSystemName,
5132: LPWSTR lpName,
5133: PLUID lpLuid
5134: );
5135: #ifdef UNICODE
5136: #define LookupPrivilegeValue LookupPrivilegeValueW
5137: #else
5138: #define LookupPrivilegeValue LookupPrivilegeValueA
5139: #endif // !UNICODE
5140:
5141: BOOL
5142: WINAPI
5143: LookupPrivilegeNameA(
5144: LPSTR lpSystemName,
5145: PLUID lpLuid,
5146: LPSTR lpName,
5147: LPDWORD cbName
5148: );
5149: BOOL
5150: WINAPI
5151: LookupPrivilegeNameW(
5152: LPWSTR lpSystemName,
5153: PLUID lpLuid,
5154: LPWSTR lpName,
5155: LPDWORD cbName
5156: );
5157: #ifdef UNICODE
5158: #define LookupPrivilegeName LookupPrivilegeNameW
5159: #else
5160: #define LookupPrivilegeName LookupPrivilegeNameA
5161: #endif // !UNICODE
5162:
5163: BOOL
5164: WINAPI
5165: LookupPrivilegeDisplayNameA(
5166: LPSTR lpSystemName,
5167: LPSTR lpName,
5168: LPSTR lpDisplayName,
5169: LPDWORD cbDisplayName,
5170: LPDWORD lpLanguageId
5171: );
5172: BOOL
5173: WINAPI
5174: LookupPrivilegeDisplayNameW(
5175: LPWSTR lpSystemName,
5176: LPWSTR lpName,
5177: LPWSTR lpDisplayName,
5178: LPDWORD cbDisplayName,
5179: LPDWORD lpLanguageId
5180: );
5181: #ifdef UNICODE
5182: #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
5183: #else
5184: #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
5185: #endif // !UNICODE
5186:
5187: BOOL
5188: WINAPI
5189: AllocateLocallyUniqueId(
5190: PLUID Luid
5191: );
5192:
5193: BOOL
5194: WINAPI
5195: BuildCommDCBA(
5196: LPSTR lpDef,
5197: LPDCB lpDCB
5198: );
5199: BOOL
5200: WINAPI
5201: BuildCommDCBW(
5202: LPWSTR lpDef,
5203: LPDCB lpDCB
5204: );
5205: #ifdef UNICODE
5206: #define BuildCommDCB BuildCommDCBW
5207: #else
5208: #define BuildCommDCB BuildCommDCBA
5209: #endif // !UNICODE
5210:
5211: #define MAX_COMPUTERNAME_LENGTH 80
5212:
5213: BOOL
5214: WINAPI
5215: GetComputerNameA (
5216: LPSTR lpBuffer,
5217: LPDWORD nSize
5218: );
5219: BOOL
5220: WINAPI
5221: GetComputerNameW (
5222: LPWSTR lpBuffer,
5223: LPDWORD nSize
5224: );
5225: #ifdef UNICODE
5226: #define GetComputerName GetComputerNameW
5227: #else
5228: #define GetComputerName GetComputerNameA
5229: #endif // !UNICODE
5230:
5231: BOOL
5232: WINAPI
5233: SetComputerNameA (
5234: LPSTR lpComputerName
5235: );
5236: BOOL
5237: WINAPI
5238: SetComputerNameW (
5239: LPWSTR lpComputerName
5240: );
5241: #ifdef UNICODE
5242: #define SetComputerName SetComputerNameW
5243: #else
5244: #define SetComputerName SetComputerNameA
5245: #endif // !UNICODE
5246:
5247: BOOL
5248: WINAPI
5249: GetUserNameA (
5250: LPSTR lpBuffer,
5251: LPDWORD nSize
5252: );
5253: BOOL
5254: WINAPI
5255: GetUserNameW (
5256: LPWSTR lpBuffer,
5257: LPDWORD nSize
5258: );
5259: #ifdef UNICODE
5260: #define GetUserName GetUserNameW
5261: #else
5262: #define GetUserName GetUserNameA
5263: #endif // !UNICODE
5264:
5265: //
5266: // Performance counter API's
5267: //
5268:
5269: BOOL
5270: WINAPI
5271: QueryPerformanceCounter(
5272: LARGE_INTEGER *lpPerformanceCount
5273: );
5274:
5275: BOOL
5276: WINAPI
5277: QueryPerformanceFrequency(
5278: LARGE_INTEGER *lpFrequency
5279: );
5280:
5281:
5282:
5283: // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base
5284: // API functions.
5285: //
5286:
5287: #include <winerror.h>
5288:
5289: /* Abnormal termination codes */
5290:
5291: #define TC_NORMAL 0
5292: #define TC_HARDERR 1
5293: #define TC_GP_TRAP 2
5294: #define TC_SIGNAL 3
5295:
5296: #endif // _WINBASE_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.