source: trunk/include/win/winbase.h@ 22020

Last change on this file since 22020 was 22020, checked in by dmik, 13 years ago

Disable debug fields of RTL_CRITICAL_SECTION_DEBUG.

Odin uses the DebugInfo ptr in CRITICAL_SECTION for its own purposes
which are incompatible with NT. For this reason any NT-style usage must
be disabled.

This in particular fixes debug assertions and crashes in CRYPT32.DLL (due to
misinterpretation of the structure fields) which happened e.g. during playback of
some Flash content.

File size: 115.6 KB
Line 
1#ifndef __WINE_WINBASE_H
2#define __WINE_WINBASE_H
3
4#include "winnt.h"
5
6#include "pshpack1.h"
7
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13typedef struct tagCOORD {
14 INT16 x;
15 INT16 y;
16} COORD, *LPCOORD;
17
18
19 /* Windows Exit Procedure flag values */
20#define WEP_FREE_DLL 0
21#define WEP_SYSTEM_EXIT 1
22
23typedef DWORD (* CALLBACK LPTHREAD_START_ROUTINE)(LPVOID);
24
25/* This is also defined in winnt.h */
26/* typedef struct _EXCEPTION_RECORD {
27 DWORD ExceptionCode;
28 DWORD ExceptionFlags;
29 struct _EXCEPTION_RECORD *ExceptionRecord;
30 LPVOID ExceptionAddress;
31 DWORD NumberParameters;
32 DWORD ExceptionInformation[15];
33} EXCEPTION_RECORD; */
34
35typedef struct _EXCEPTION_DEBUG_INFO {
36/* EXCEPTION_RECORD ExceptionRecord; */
37 DWORD dwFirstChange;
38} EXCEPTION_DEBUG_INFO;
39
40typedef struct _CREATE_THREAD_DEBUG_INFO {
41 HANDLE hThread;
42 LPVOID lpThreadLocalBase;
43 LPTHREAD_START_ROUTINE lpStartAddress;
44} CREATE_THREAD_DEBUG_INFO;
45
46typedef struct _CREATE_PROCESS_DEBUG_INFO {
47 HANDLE hFile;
48 HANDLE hProcess;
49 HANDLE hThread;
50 LPVOID lpBaseOfImage;
51 DWORD dwDebugInfoFileOffset;
52 DWORD nDebugInfoSize;
53 LPVOID lpThreadLocalBase;
54 LPTHREAD_START_ROUTINE lpStartAddress;
55 LPVOID lpImageName;
56 WORD fUnicode;
57} CREATE_PROCESS_DEBUG_INFO;
58
59typedef struct _EXIT_THREAD_DEBUG_INFO {
60 DWORD dwExitCode;
61} EXIT_THREAD_DEBUG_INFO;
62
63typedef struct _EXIT_PROCESS_DEBUG_INFO {
64 DWORD dwExitCode;
65} EXIT_PROCESS_DEBUG_INFO;
66
67typedef struct _LOAD_DLL_DEBUG_INFO {
68 HANDLE hFile;
69 LPVOID lpBaseOfDll;
70 DWORD dwDebugInfoFileOffset;
71 DWORD nDebugInfoSize;
72 LPVOID lpImageName;
73 WORD fUnicode;
74} LOAD_DLL_DEBUG_INFO;
75
76typedef struct _UNLOAD_DLL_DEBUG_INFO {
77 LPVOID lpBaseOfDll;
78} UNLOAD_DLL_DEBUG_INFO;
79
80typedef struct _OUTPUT_DEBUG_STRING_INFO {
81 LPSTR lpDebugStringData;
82 WORD fUnicode;
83 WORD nDebugStringLength;
84} OUTPUT_DEBUG_STRING_INFO;
85
86typedef struct _RIP_INFO {
87 DWORD dwError;
88 DWORD dwType;
89} RIP_INFO;
90
91typedef struct _DEBUG_EVENT {
92 DWORD dwDebugEventCode;
93 DWORD dwProcessId;
94 DWORD dwThreadId;
95 union {
96 EXCEPTION_DEBUG_INFO Exception;
97 CREATE_THREAD_DEBUG_INFO CreateThread;
98 CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
99 EXIT_THREAD_DEBUG_INFO ExitThread;
100 EXIT_PROCESS_DEBUG_INFO ExitProcess;
101 LOAD_DLL_DEBUG_INFO LoadDll;
102 UNLOAD_DLL_DEBUG_INFO UnloadDll;
103 OUTPUT_DEBUG_STRING_INFO DebugString;
104 RIP_INFO RipInfo;
105 } u;
106} DEBUG_EVENT, *LPDEBUG_EVENT;
107
108#define EXCEPTION_DEBUG_EVENT 1
109#define CREATE_THREAD_DEBUG_EVENT 2
110#define CREATE_PROCESS_DEBUG_EVENT 3
111#define EXIT_THREAD_DEBUG_EVENT 4
112#define EXIT_PROCESS_DEBUG_EVENT 5
113#define LOAD_DLL_DEBUG_EVENT 6
114#define UNLOAD_DLL_DEBUG_EVENT 7
115#define OUTPUT_DEBUG_STRING_EVENT 8
116#define RIP_EVENT 9
117
118#define OFS_MAXPATHNAME 128
119typedef struct
120{
121 BYTE cBytes;
122 BYTE fFixedDisk;
123 WORD nErrCode;
124 BYTE reserved[4];
125 BYTE szPathName[OFS_MAXPATHNAME];
126} OFSTRUCT, *LPOFSTRUCT;
127
128#define OF_READ 0x0000
129#define OF_WRITE 0x0001
130#define OF_READWRITE 0x0002
131#define OF_SHARE_COMPAT 0x0000
132#define OF_SHARE_EXCLUSIVE 0x0010
133#define OF_SHARE_DENY_WRITE 0x0020
134#define OF_SHARE_DENY_READ 0x0030
135#define OF_SHARE_DENY_NONE 0x0040
136#define OF_PARSE 0x0100
137#define OF_DELETE 0x0200
138#define OF_VERIFY 0x0400 /* Used with OF_REOPEN */
139#define OF_SEARCH 0x0400 /* Used without OF_REOPEN */
140#define OF_CANCEL 0x0800
141#define OF_CREATE 0x1000
142#define OF_PROMPT 0x2000
143#define OF_EXIST 0x4000
144#define OF_REOPEN 0x8000
145
146/* SetErrorMode values */
147#define SEM_FAILCRITICALERRORS 0x0001
148#define SEM_NOGPFAULTERRORBOX 0x0002
149#define SEM_NOALIGNMENTFAULTEXCEPT 0x0004
150#define SEM_NOOPENFILEERRORBOX 0x8000
151
152/* CopyFileEx flags */
153#define COPY_FILE_FAIL_IF_EXISTS 0x00000001
154#define COPY_FILE_RESTARTABLE 0x00000002
155#define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
156
157/* GetTempFileName() Flags */
158#define TF_FORCEDRIVE 0x80
159
160
161#define DRIVE_UNKNOWN 0
162#define DRIVE_NO_ROOT_DIR 1
163#define DRIVE_CANNOTDETERMINE 0
164#define DRIVE_DOESNOTEXIST 1
165#define DRIVE_REMOVABLE 2
166#define DRIVE_FIXED 3
167#define DRIVE_REMOTE 4
168/* Win32 additions */
169#define DRIVE_CDROM 5
170#define DRIVE_RAMDISK 6
171
172#define MAX_COMPUTERNAME_LENGTH 15
173
174/* The security attributes structure */
175typedef struct
176{
177 DWORD nLength;
178 LPVOID lpSecurityDescriptor;
179 BOOL bInheritHandle;
180} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
181
182#ifndef _FILETIME_
183#define _FILETIME_
184/* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
185typedef struct
186{
187 DWORD dwLowDateTime;
188 DWORD dwHighDateTime;
189} FILETIME, *LPFILETIME, *PFILETIME;
190#endif /* _FILETIME_ */
191
192/* Find* structures */
193typedef struct
194{
195 DWORD dwFileAttributes;
196 FILETIME ftCreationTime;
197 FILETIME ftLastAccessTime;
198 FILETIME ftLastWriteTime;
199 DWORD nFileSizeHigh;
200 DWORD nFileSizeLow;
201 DWORD dwReserved0;
202 DWORD dwReserved1;
203 CHAR cFileName[260];
204 CHAR cAlternateFileName[14];
205} WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
206
207typedef struct
208{
209 DWORD dwFileAttributes;
210 FILETIME ftCreationTime;
211 FILETIME ftLastAccessTime;
212 FILETIME ftLastWriteTime;
213 DWORD nFileSizeHigh;
214 DWORD nFileSizeLow;
215 DWORD dwReserved0;
216 DWORD dwReserved1;
217 WCHAR cFileName[260];
218 WCHAR cAlternateFileName[14];
219} WIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
220
221DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA)
222DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA)
223
224typedef enum _FINDEX_INFO_LEVELS
225{
226 FindExInfoStandard,
227 FindExInfoMaxInfoLevel
228} FINDEX_INFO_LEVELS;
229
230typedef enum _FINDEX_SEARCH_OPS
231{
232 FindExSearchNameMatch,
233 FindExSearchLimitToDirectories,
234 FindExSearchLimitToDevices,
235 FindExSearchMaxSearchOp
236} FINDEX_SEARCH_OPS;
237
238typedef struct
239{
240 LPVOID lpData;
241 DWORD cbData;
242 BYTE cbOverhead;
243 BYTE iRegionIndex;
244 WORD wFlags;
245 union {
246 struct {
247 HANDLE hMem;
248 DWORD dwReserved[3];
249 } Block;
250 struct {
251 DWORD dwCommittedSize;
252 DWORD dwUnCommittedSize;
253 LPVOID lpFirstBlock;
254 LPVOID lpLastBlock;
255 } Region;
256 } DUMMYUNIONNAME;
257} PROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY;
258
259#define PROCESS_HEAP_REGION 0x0001
260#define PROCESS_HEAP_UNCOMMITTED_RANGE 0x0002
261#define PROCESS_HEAP_ENTRY_BUSY 0x0004
262#define PROCESS_HEAP_ENTRY_MOVEABLE 0x0010
263#define PROCESS_HEAP_ENTRY_DDESHARE 0x0020
264
265#define INVALID_HANDLE_VALUE16 ((HANDLE16) -1)
266#define INVALID_HANDLE_VALUE ((HANDLE) -1)
267#define INVALID_FILE_SIZE ((DWORD)0xFFFFFFFF)
268#define INVALID_SET_FILE_POINTER ((DWORD)-1)
269#define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
270
271/* comm */
272
273/*
274 Serial provider type
275 */
276#define SP_SERIALCOMM ((DWORD)0x00000001)
277/*
278 Provider SubTypes
279 */
280#define PST_UNSPECIFIED ((DWORD)0x00000000)
281#define PST_RS232 ((DWORD)0x00000001)
282#define PST_PARALLELPORT ((DWORD)0x00000002)
283#define PST_RS422 ((DWORD)0x00000003)
284#define PST_RS423 ((DWORD)0x00000004)
285#define PST_RS449 ((DWORD)0x00000005)
286#define PST_MODEM ((DWORD)0x00000006)
287#define PST_FAX ((DWORD)0x00000021)
288#define PST_SCANNER ((DWORD)0x00000022)
289#define PST_NETWORK_BRIDGE ((DWORD)0x00000100)
290#define PST_LAT ((DWORD)0x00000101)
291#define PST_TCPIP_TELNET ((DWORD)0x00000102)
292#define PST_X25 ((DWORD)0x00000103)
293/*
294 Provider Caps
295 */
296#define PCF_DTRDSR ((DWORD)0x00000001)
297#define PCF_RTSCTS ((DWORD)0x00000002)
298#define PCF_RLSD ((DWORD)0x00000004)
299#define PCF_PARITY_CHECK ((DWORD)0x00000008)
300#define PCF_XONXOFF ((DWORD)0x00000010)
301#define PCF_SETXCHAR ((DWORD)0x00000020)
302#define PCF_TOTALTIMEOUTS ((DWORD)0x00000040)
303#define PCF_INITTIMEOUTS ((DWORD)0x00000080)
304#define PCF_SPECIALCHARS ((DWORD)0x00000100)
305#define PCF_16BITMODE ((DWORD)0x00000200)
306
307/*
308 Provider setable parameters
309 */
310#define SP_PARITY ((DWORD)0x00000001)
311#define SP_BAUD ((DWORD)0x00000002)
312#define SP_DATABITS ((DWORD)0x00000004)
313#define SP_STOPBIT ((DWORD)0x00000008)
314#define SP_HANDSHAKEING ((DWORD)0x00000010)
315#define SP_PARITY_CHECK ((DWORD)0x00000020)
316#define SP_RLSD ((DWORD)0x00000040)
317/*
318 Settable baudrates in the provider
319*/
320#define BAUD_075 ((DWORD)0x00000001)
321#define BAUD_110 ((DWORD)0x00000002)
322#define BAUD_134_5 ((DWORD)0x00000004)
323#define BAUD_150 ((DWORD)0x00000008)
324#define BAUD_300 ((DWORD)0x00000010)
325#define BAUD_600 ((DWORD)0x00000020)
326#define BAUD_1200 ((DWORD)0x00000040)
327#define BAUD_1800 ((DWORD)0x00000080)
328#define BAUD_2400 ((DWORD)0x00000100)
329#define BAUD_4800 ((DWORD)0x00000200)
330#define BAUD_7200 ((DWORD)0x00000400)
331#define BAUD_9600 ((DWORD)0x00000800)
332#define BAUD_14400 ((DWORD)0x00001000)
333#define BAUD_19200 ((DWORD)0x00002000)
334#define BAUD_38400 ((DWORD)0x00004000)
335#define BAUD_56K ((DWORD)0x00008000)
336#define BAUD_128K ((DWORD)0x00010000)
337#define BAUD_115200 ((DWORD)0x00020000)
338#define BAUD_57600 ((DWORD)0x00040000)
339#define BAUD_USER ((DWORD)0x10000000)
340
341/*
342 Setable Databits
343 */
344#define DATABITS_5 ((DWORD)0x00000001)
345#define DATABITS_6 ((DWORD)0x00000002)
346#define DATABITS_7 ((DWORD)0x00000004)
347#define DATABITS_8 ((DWORD)0x00000008)
348#define DATABITS_16 ((DWORD)0x00000010)
349#define DATABITS_16X ((DWORD)0x00000020)
350
351/*
352 Setable Stop and Parity Bits
353 */
354
355#define STOPBITS_10 ((DWORD)0x00000001)
356#define STOPBITS_15 ((DWORD)0x00000002)
357#define STOPBITS_20 ((DWORD)0x00000004)
358#define PARITY_NONE ((DWORD)0x00000100)
359#define PARITY_ODD ((DWORD)0x00000200)
360#define PARITY_EVEN ((DWORD)0x00000400)
361#define PARITY_MARK ((DWORD)0x00000800)
362#define PARITY_SPACE ((DWORD)0x00001000)
363
364#define CBR_110 110
365#define CBR_300 300
366#define CBR_600 600
367#define CBR_1200 1200
368#define CBR_2400 2400
369#define CBR_4800 4800
370#define CBR_9600 9600
371#define CBR_14400 14400
372#define CBR_19200 19200
373#define CBR_38400 38400
374#define CBR_56000 56000
375#define CBR_57600 57600
376#define CBR_115200 115200
377#define CBR_128000 128000
378#define CBR_256000 256000
379
380#define NOPARITY 0
381#define ODDPARITY 1
382#define EVENPARITY 2
383#define MARKPARITY 3
384#define SPACEPARITY 4
385#define ONESTOPBIT 0
386#define ONE5STOPBITS 1
387#define TWOSTOPBITS 2
388
389#define IGNORE 0
390#define INFINITE16 0xFFFF
391#define INFINITE 0xFFFFFFFF
392
393#define CE_RXOVER 0x0001
394#define CE_OVERRUN 0x0002
395#define CE_RXPARITY 0x0004
396#define CE_FRAME 0x0008
397#define CE_BREAK 0x0010
398#define CE_CTSTO 0x0020
399#define CE_DSRTO 0x0040
400#define CE_RLSDTO 0x0080
401#define CE_TXFULL 0x0100
402#define CE_PTO 0x0200
403#define CE_IOE 0x0400
404#define CE_DNS 0x0800
405#define CE_OOP 0x1000
406#define CE_MODE 0x8000
407
408#define IE_BADID -1
409#define IE_OPEN -2
410#define IE_NOPEN -3
411#define IE_MEMORY -4
412#define IE_DEFAULT -5
413#define IE_HARDWARE -10
414#define IE_BYTESIZE -11
415#define IE_BAUDRATE -12
416
417#define EV_RXCHAR 0x0001
418#define EV_RXFLAG 0x0002
419#define EV_TXEMPTY 0x0004
420#define EV_CTS 0x0008
421#define EV_DSR 0x0010
422#define EV_RLSD 0x0020
423#define EV_BREAK 0x0040
424#define EV_ERR 0x0080
425#define EV_RING 0x0100
426#define EV_PERR 0x0200
427#define EV_CTSS 0x0400
428#define EV_DSRS 0x0800
429#define EV_RLSDS 0x1000
430#define EV_RINGTE 0x2000
431#define EV_RingTe EV_RINGTE
432
433#define SETXOFF 1
434#define SETXON 2
435#define SETRTS 3
436#define CLRRTS 4
437#define SETDTR 5
438#define CLRDTR 6
439#define RESETDEV 7
440#define SETBREAK 8
441#define CLRBREAK 9
442
443#define GETBASEIRQ 10
444
445/* Purge functions for Comm Port */
446#define PURGE_TXABORT 0x0001 /* Kill the pending/current writes to the
447 comm port */
448#define PURGE_RXABORT 0x0002 /*Kill the pending/current reads to
449 the comm port */
450#define PURGE_TXCLEAR 0x0004 /* Kill the transmit queue if there*/
451#define PURGE_RXCLEAR 0x0008 /* Kill the typeahead buffer if there*/
452
453
454/* Modem Status Flags */
455#define MS_CTS_ON ((DWORD)0x0010)
456#define MS_DSR_ON ((DWORD)0x0020)
457#define MS_RING_ON ((DWORD)0x0040)
458#define MS_RLSD_ON ((DWORD)0x0080)
459
460#define RTS_CONTROL_DISABLE 0
461#define RTS_CONTROL_ENABLE 1
462#define RTS_CONTROL_HANDSHAKE 2
463#define RTS_CONTROL_TOGGLE 3
464
465#define DTR_CONTROL_DISABLE 0
466#define DTR_CONTROL_ENABLE 1
467#define DTR_CONTROL_HANDSHAKE 2
468
469#define CSTF_CTSHOLD 0x01
470#define CSTF_DSRHOLD 0x02
471#define CSTF_RLSDHOLD 0x04
472#define CSTF_XOFFHOLD 0x08
473#define CSTF_XOFFSENT 0x10
474#define CSTF_EOF 0x20
475#define CSTF_TXIM 0x40
476
477#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))
478#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))
479#define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE)
480
481/* Predefined resource types */
482#define RT_CURSORA MAKEINTRESOURCEA(1)
483#define RT_CURSORW MAKEINTRESOURCEW(1)
484#define RT_CURSOR WINELIB_NAME_AW(RT_CURSOR)
485#define RT_BITMAPA MAKEINTRESOURCEA(2)
486#define RT_BITMAPW MAKEINTRESOURCEW(2)
487#define RT_BITMAP WINELIB_NAME_AW(RT_BITMAP)
488#define RT_ICONA MAKEINTRESOURCEA(3)
489#define RT_ICONW MAKEINTRESOURCEW(3)
490#define RT_ICON WINELIB_NAME_AW(RT_ICON)
491#define RT_MENUA MAKEINTRESOURCEA(4)
492#define RT_MENUW MAKEINTRESOURCEW(4)
493#define RT_MENU WINELIB_NAME_AW(RT_MENU)
494#define RT_DIALOGA MAKEINTRESOURCEA(5)
495#define RT_DIALOGW MAKEINTRESOURCEW(5)
496#define RT_DIALOG WINELIB_NAME_AW(RT_DIALOG)
497#define RT_STRINGA MAKEINTRESOURCEA(6)
498#define RT_STRINGW MAKEINTRESOURCEW(6)
499//#define RT_STRING WINELIB_NAME_AW(RT_STRING)
500#define RT_STRING MAKEINTRESOURCE(6)
501#define RT_FONTDIRA MAKEINTRESOURCEA(7)
502#define RT_FONTDIRW MAKEINTRESOURCEW(7)
503#define RT_FONTDIR WINELIB_NAME_AW(RT_FONTDIR)
504#define RT_FONTA MAKEINTRESOURCEA(8)
505#define RT_FONTW MAKEINTRESOURCEW(8)
506#define RT_FONT WINELIB_NAME_AW(RT_FONT)
507#define RT_ACCELERATORA MAKEINTRESOURCEA(9)
508#define RT_ACCELERATORW MAKEINTRESOURCEW(9)
509#define RT_ACCELERATOR WINELIB_NAME_AW(RT_ACCELERATOR)
510#define RT_RCDATAA MAKEINTRESOURCEA(10)
511#define RT_RCDATAW MAKEINTRESOURCEW(10)
512#define RT_RCDATA WINELIB_NAME_AW(RT_RCDATA)
513#define RT_MESSAGELISTA MAKEINTRESOURCEA(11)
514#define RT_MESSAGELISTW MAKEINTRESOURCEW(11)
515#define RT_MESSAGELIST WINELIB_NAME_AW(RT_MESSAGELIST)
516#define RT_GROUP_CURSORA MAKEINTRESOURCEA(12)
517#define RT_GROUP_CURSORW MAKEINTRESOURCEW(12)
518#define RT_GROUP_CURSOR WINELIB_NAME_AW(RT_GROUP_CURSOR)
519#define RT_GROUP_ICONA MAKEINTRESOURCEA(14)
520#define RT_GROUP_ICONW MAKEINTRESOURCEW(14)
521#define RT_GROUP_ICON WINELIB_NAME_AW(RT_GROUP_ICON)
522
523
524#define LMEM_FIXED 0
525#define LMEM_MOVEABLE 0x0002
526#define LMEM_NOCOMPACT 0x0010
527#define LMEM_NODISCARD 0x0020
528#define LMEM_ZEROINIT 0x0040
529#define LMEM_MODIFY 0x0080
530#define LMEM_DISCARDABLE 0x0F00
531#define LMEM_DISCARDED 0x4000
532#define LMEM_LOCKCOUNT 0x00FF
533#define LMEM_INVALID_HANDLE 0x8000
534
535#define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
536#define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
537
538#define NONZEROLHND (LMEM_MOVEABLE)
539#define NONZEROLPTR (LMEM_FIXED)
540
541#define GMEM_FIXED 0x0000
542#define GMEM_MOVEABLE 0x0002
543#define GMEM_NOCOMPACT 0x0010
544#define GMEM_NODISCARD 0x0020
545#define GMEM_ZEROINIT 0x0040
546#define GMEM_MODIFY 0x0080
547#define GMEM_DISCARDABLE 0x0100
548#define GMEM_NOT_BANKED 0x1000
549#define GMEM_SHARE 0x2000
550#define GMEM_DDESHARE 0x2000
551#define GMEM_NOTIFY 0x4000
552#define GMEM_LOWER GMEM_NOT_BANKED
553#define GMEM_DISCARDED 0x4000
554#define GMEM_LOCKCOUNT 0x00ff
555#define GMEM_INVALID_HANDLE 0x8000
556
557#define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
558#define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
559
560#define GlobalLRUNewest(h) ((HANDLE)(h))
561#define GlobalLRUOldest(h) ((HANDLE)(h))
562#define GlobalDiscard(h) (GlobalReAlloc((h),0,GMEM_MOVEABLE))
563
564#define INVALID_ATOM ((ATOM)0)
565#define MAXINTATOM 0xc000
566#define MAKEINTATOMA(atom) ((LPCSTR)((ULONG_PTR)((WORD)(atom))))
567#define MAKEINTATOMW(atom) ((LPCWSTR)((ULONG_PTR)((WORD)(atom))))
568#ifndef MAKEINTATOM //bird: it's in windef.h too for us.
569#define MAKEINTATOM WINELIB_NAME_AW(MAKEINTATOM)
570#endif
571
572typedef struct tagMEMORYSTATUS
573{
574 DWORD dwLength;
575 DWORD dwMemoryLoad;
576 DWORD dwTotalPhys;
577 DWORD dwAvailPhys;
578 DWORD dwTotalPageFile;
579 DWORD dwAvailPageFile;
580 DWORD dwTotalVirtual;
581 DWORD dwAvailVirtual;
582} MEMORYSTATUS, *LPMEMORYSTATUS;
583
584
585//
586// Define the NamedPipe definitions
587//
588
589
590//
591// Define the dwOpenMode values for CreateNamedPipe
592//
593
594#define PIPE_ACCESS_INBOUND 0x00000001
595#define PIPE_ACCESS_OUTBOUND 0x00000002
596#define PIPE_ACCESS_DUPLEX 0x00000003
597
598//
599// Define the Named Pipe End flags for GetNamedPipeInfo
600//
601
602#define PIPE_CLIENT_END 0x00000000
603#define PIPE_SERVER_END 0x00000001
604
605//
606// Define the dwPipeMode values for CreateNamedPipe
607//
608
609#define PIPE_WAIT 0x00000000
610#define PIPE_NOWAIT 0x00000001
611#define PIPE_READMODE_BYTE 0x00000000
612#define PIPE_READMODE_MESSAGE 0x00000002
613#define PIPE_TYPE_BYTE 0x00000000
614#define PIPE_TYPE_MESSAGE 0x00000004
615
616//
617// Define the well known values for CreateNamedPipe nMaxInstances
618//
619
620#define PIPE_UNLIMITED_INSTANCES 255
621
622#define NMPWAIT_WAIT_FOREVER 0xffffffff
623#define NMPWAIT_NOWAIT 0x00000001
624#define NMPWAIT_USE_DEFAULT_WAIT 0x00000000
625
626#ifndef NOLOGERROR
627
628/* LogParamError and LogError values */
629
630/* Error modifier bits */
631#define ERR_WARNING 0x8000
632#define ERR_PARAM 0x4000
633
634#define ERR_SIZE_MASK 0x3000
635#define ERR_BYTE 0x1000
636#define ERR_WORD 0x2000
637#define ERR_DWORD 0x3000
638
639/* LogParamError() values */
640
641/* Generic parameter values */
642#define ERR_BAD_VALUE 0x6001
643#define ERR_BAD_FLAGS 0x6002
644#define ERR_BAD_INDEX 0x6003
645#define ERR_BAD_DVALUE 0x7004
646#define ERR_BAD_DFLAGS 0x7005
647#define ERR_BAD_DINDEX 0x7006
648#define ERR_BAD_PTR 0x7007
649#define ERR_BAD_FUNC_PTR 0x7008
650#define ERR_BAD_SELECTOR 0x6009
651#define ERR_BAD_STRING_PTR 0x700a
652#define ERR_BAD_HANDLE 0x600b
653
654/* KERNEL parameter errors */
655#define ERR_BAD_HINSTANCE 0x6020
656#define ERR_BAD_HMODULE 0x6021
657#define ERR_BAD_GLOBAL_HANDLE 0x6022
658#define ERR_BAD_LOCAL_HANDLE 0x6023
659#define ERR_BAD_ATOM 0x6024
660#define ERR_BAD_HFILE 0x6025
661
662/* USER parameter errors */
663#define ERR_BAD_HWND 0x6040
664#define ERR_BAD_HMENU 0x6041
665#define ERR_BAD_HCURSOR 0x6042
666#define ERR_BAD_HICON 0x6043
667#define ERR_BAD_HDWP 0x6044
668#define ERR_BAD_CID 0x6045
669#define ERR_BAD_HDRVR 0x6046
670
671/* GDI parameter errors */
672#define ERR_BAD_COORDS 0x7060
673#define ERR_BAD_GDI_OBJECT 0x6061
674#define ERR_BAD_HDC 0x6062
675#define ERR_BAD_HPEN 0x6063
676#define ERR_BAD_HFONT 0x6064
677#define ERR_BAD_HBRUSH 0x6065
678#define ERR_BAD_HBITMAP 0x6066
679#define ERR_BAD_HRGN 0x6067
680#define ERR_BAD_HPALETTE 0x6068
681#define ERR_BAD_HMETAFILE 0x6069
682
683
684/* LogError() values */
685
686/* KERNEL errors */
687#define ERR_GALLOC 0x0001
688#define ERR_GREALLOC 0x0002
689#define ERR_GLOCK 0x0003
690#define ERR_LALLOC 0x0004
691#define ERR_LREALLOC 0x0005
692#define ERR_LLOCK 0x0006
693#define ERR_ALLOCRES 0x0007
694#define ERR_LOCKRES 0x0008
695#define ERR_LOADMODULE 0x0009
696
697/* USER errors */
698#define ERR_CREATEDLG 0x0040
699#define ERR_CREATEDLG2 0x0041
700#define ERR_REGISTERCLASS 0x0042
701#define ERR_DCBUSY 0x0043
702#define ERR_CREATEWND 0x0044
703#define ERR_STRUCEXTRA 0x0045
704#define ERR_LOADSTR 0x0046
705#define ERR_LOADMENU 0x0047
706#define ERR_NESTEDBEGINPAINT 0x0048
707#define ERR_BADINDEX 0x0049
708#define ERR_CREATEMENU 0x004a
709
710/* GDI errors */
711#define ERR_CREATEDC 0x0080
712#define ERR_CREATEMETA 0x0081
713#define ERR_DELOBJSELECTED 0x0082
714#define ERR_SELBITMAP 0x0083
715
716
717
718/* Debugging support (DEBUG SYSTEM ONLY) */
719typedef struct
720{
721 UINT16 flags;
722 DWORD dwOptions WINE_PACKED;
723 DWORD dwFilter WINE_PACKED;
724 CHAR achAllocModule[8] /* CHAR is always packed (avoid GCC warning) */;
725 DWORD dwAllocBreak WINE_PACKED;
726 DWORD dwAllocCount WINE_PACKED;
727} WINDEBUGINFO, *LPWINDEBUGINFO;
728
729/* WINDEBUGINFO flags values */
730#define WDI_OPTIONS 0x0001
731#define WDI_FILTER 0x0002
732#define WDI_ALLOCBREAK 0x0004
733
734/* dwOptions values */
735#define DBO_CHECKHEAP 0x0001
736#define DBO_BUFFERFILL 0x0004
737#define DBO_DISABLEGPTRAPPING 0x0010
738#define DBO_CHECKFREE 0x0020
739
740#define DBO_SILENT 0x8000
741
742#define DBO_TRACEBREAK 0x2000
743#define DBO_WARNINGBREAK 0x1000
744#define DBO_NOERRORBREAK 0x0800
745#define DBO_NOFATALBREAK 0x0400
746#define DBO_INT3BREAK 0x0100
747
748/* DebugOutput flags values */
749#define DBF_TRACE 0x0000
750#define DBF_WARNING 0x4000
751#define DBF_ERROR 0x8000
752#define DBF_FATAL 0xc000
753
754/* dwFilter values */
755#define DBF_KERNEL 0x1000
756#define DBF_KRN_MEMMAN 0x0001
757#define DBF_KRN_LOADMODULE 0x0002
758#define DBF_KRN_SEGMENTLOAD 0x0004
759#define DBF_USER 0x0800
760#define DBF_GDI 0x0400
761#define DBF_MMSYSTEM 0x0040
762#define DBF_PENWIN 0x0020
763#define DBF_APPLICATION 0x0008
764#define DBF_DRIVER 0x0010
765
766#endif /* NOLOGERROR */
767
768typedef struct {
769 WORD wYear;
770 WORD wMonth;
771 WORD wDayOfWeek;
772 WORD wDay;
773 WORD wHour;
774 WORD wMinute;
775 WORD wSecond;
776 WORD wMilliseconds;
777} SYSTEMTIME, *LPSYSTEMTIME;
778
779
780/* The 'overlapped' data structure used by async I/O functions.
781 */
782typedef struct {
783 DWORD Internal;
784 DWORD InternalHigh;
785 DWORD Offset;
786 DWORD OffsetHigh;
787 HANDLE hEvent;
788} OVERLAPPED, *LPOVERLAPPED;
789
790typedef VOID (* WINAPI LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD dwErrorCode,
791 DWORD dwNumberOfBytesTransfered,
792 LPOVERLAPPED lpOverlapped);
793
794// LockFileEx flags
795
796#define LOCKFILE_FAIL_IMMEDIATELY 0x00000001
797#define LOCKFILE_EXCLUSIVE_LOCK 0x00000002
798
799
800/* Process startup information.
801 */
802
803/* STARTUPINFO.dwFlags */
804#define STARTF_USESHOWWINDOW 0x00000001
805#define STARTF_USESIZE 0x00000002
806#define STARTF_USEPOSITION 0x00000004
807#define STARTF_USECOUNTCHARS 0x00000008
808#define STARTF_USEFILLATTRIBUTE 0x00000010
809#define STARTF_RUNFULLSCREEN 0x00000020
810#define STARTF_FORCEONFEEDBACK 0x00000040
811#define STARTF_FORCEOFFFEEDBACK 0x00000080
812#define STARTF_USESTDHANDLES 0x00000100
813#define STARTF_USEHOTKEY 0x00000200
814
815typedef struct {
816 DWORD cb; /* 00: size of struct */
817 LPSTR lpReserved; /* 04: */
818 LPSTR lpDesktop; /* 08: */
819 LPSTR lpTitle; /* 0c: */
820 DWORD dwX; /* 10: */
821 DWORD dwY; /* 14: */
822 DWORD dwXSize; /* 18: */
823 DWORD dwYSize; /* 1c: */
824 DWORD dwXCountChars; /* 20: */
825 DWORD dwYCountChars; /* 24: */
826 DWORD dwFillAttribute; /* 28: */
827 DWORD dwFlags; /* 2c: */
828 WORD wShowWindow; /* 30: */
829 WORD cbReserved2; /* 32: */
830 BYTE *lpReserved2; /* 34: */
831 HANDLE hStdInput; /* 38: */
832 HANDLE hStdOutput; /* 3c: */
833 HANDLE hStdError; /* 40: */
834} STARTUPINFOA, *LPSTARTUPINFOA;
835
836typedef struct {
837 DWORD cb;
838 LPWSTR lpReserved;
839 LPWSTR lpDesktop;
840 LPWSTR lpTitle;
841 DWORD dwX;
842 DWORD dwY;
843 DWORD dwXSize;
844 DWORD dwYSize;
845 DWORD dwXCountChars;
846 DWORD dwYCountChars;
847 DWORD dwFillAttribute;
848 DWORD dwFlags;
849 WORD wShowWindow;
850 WORD cbReserved2;
851 BYTE *lpReserved2;
852 HANDLE hStdInput;
853 HANDLE hStdOutput;
854 HANDLE hStdError;
855} STARTUPINFOW, *LPSTARTUPINFOW;
856
857DECL_WINELIB_TYPE_AW(STARTUPINFO)
858DECL_WINELIB_TYPE_AW(LPSTARTUPINFO)
859
860typedef struct {
861 HANDLE hProcess;
862 HANDLE hThread;
863 DWORD dwProcessId;
864 DWORD dwThreadId;
865} PROCESS_INFORMATION,*LPPROCESS_INFORMATION;
866
867typedef struct {
868 LONG Bias;
869 WCHAR StandardName[32];
870 SYSTEMTIME StandardDate;
871 LONG StandardBias;
872 WCHAR DaylightName[32];
873 SYSTEMTIME DaylightDate;
874 LONG DaylightBias;
875} TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
876
877#define TIME_ZONE_ID_UNKNOWN 0
878#define TIME_ZONE_ID_STANDARD 1
879#define TIME_ZONE_ID_DAYLIGHT 2
880
881#define TIME_ZONE_ID_INVALID ((DWORD)0xFFFFFFFF)
882
883/* CreateProcess: dwCreationFlag values
884 */
885#define DEBUG_PROCESS 0x00000001
886#define DEBUG_ONLY_THIS_PROCESS 0x00000002
887#define CREATE_SUSPENDED 0x00000004
888#define DETACHED_PROCESS 0x00000008
889#define CREATE_NEW_CONSOLE 0x00000010
890#define NORMAL_PRIORITY_CLASS 0x00000020
891#define IDLE_PRIORITY_CLASS 0x00000040
892#define HIGH_PRIORITY_CLASS 0x00000080
893#define REALTIME_PRIORITY_CLASS 0x00000100
894#define CREATE_NEW_PROCESS_GROUP 0x00000200
895#define CREATE_UNICODE_ENVIRONMENT 0x00000400
896#define CREATE_SEPARATE_WOW_VDM 0x00000800
897#define CREATE_SHARED_WOW_VDM 0x00001000
898#define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
899#define CREATE_DEFAULT_ERROR_MODE 0x04000000
900#define CREATE_NO_WINDOW 0x08000000
901#define PROFILE_USER 0x10000000
902#define PROFILE_KERNEL 0x20000000
903#define PROFILE_SERVER 0x40000000
904
905
906/* File object type definitions
907 */
908#define FILE_TYPE_UNKNOWN 0
909#define FILE_TYPE_DISK 1
910#define FILE_TYPE_CHAR 2
911#define FILE_TYPE_PIPE 3
912#define FILE_TYPE_REMOTE 32768
913
914/* File creation flags
915 */
916#define FILE_FLAG_WRITE_THROUGH 0x80000000UL
917#define FILE_FLAG_OVERLAPPED 0x40000000L
918#define FILE_FLAG_NO_BUFFERING 0x20000000L
919#define FILE_FLAG_RANDOM_ACCESS 0x10000000L
920#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000L
921#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000L
922#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L
923#define FILE_FLAG_POSIX_SEMANTICS 0x01000000L
924#define CREATE_NEW 1
925#define CREATE_ALWAYS 2
926#define OPEN_EXISTING 3
927#define OPEN_ALWAYS 4
928#define TRUNCATE_EXISTING 5
929
930/* Standard handle identifiers
931 */
932#define STD_INPUT_HANDLE ((DWORD) -10)
933#define STD_OUTPUT_HANDLE ((DWORD) -11)
934#define STD_ERROR_HANDLE ((DWORD) -12)
935
936typedef struct
937{
938 int dwFileAttributes;
939 FILETIME ftCreationTime;
940 FILETIME ftLastAccessTime;
941 FILETIME ftLastWriteTime;
942 int dwVolumeSerialNumber;
943 int nFileSizeHigh;
944 int nFileSizeLow;
945 int nNumberOfLinks;
946 int nFileIndexHigh;
947 int nFileIndexLow;
948} BY_HANDLE_FILE_INFORMATION ;
949
950
951/* Power Management functions */
952
953#define AC_LINE_OFFLINE 0x00
954#define AC_LINE_ONLINE 0x01
955#define AC_LINE_BACKUP_POWER 0x02
956#define AC_LINE_UNKNOWN 0xFF
957
958#define BATTERY_FLAG_HIGH 0x01
959#define BATTERY_FLAG_LOW 0x02
960#define BATTERY_FLAG_CRITICAL 0x04
961#define BATTERY_FLAG_CHARGING 0x08
962#define BATTERY_FLAG_NO_BATTERY 0x80
963#define BATTERY_FLAG_UNKNOWN 0xFF
964
965#define BATTERY_PERCENTAGE_UNKNOWN 0xFF
966
967#define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF
968
969typedef struct _SYSTEM_POWER_STATUS {
970 BYTE ACLineStatus;
971 BYTE BatteryFlag;
972 BYTE BatteryLifePercent;
973 BYTE Reserved1;
974 DWORD BatteryLifeTime;
975 DWORD BatteryFullLifeTime;
976} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
977
978
979typedef struct tagSYSTEM_INFO
980{
981 union {
982 DWORD dwOemId;
983 struct {
984 WORD wProcessorArchitecture;
985 WORD wReserved;
986 } x;
987 } u;
988 DWORD dwPageSize;
989 LPVOID lpMinimumApplicationAddress;
990 LPVOID lpMaximumApplicationAddress;
991 DWORD dwActiveProcessorMask;
992 DWORD dwNumberOfProcessors;
993 DWORD dwProcessorType;
994 DWORD dwAllocationGranularity;
995 WORD wProcessorLevel;
996 WORD wProcessorRevision;
997} SYSTEM_INFO, *LPSYSTEM_INFO;
998
999/* {G,S}etPriorityClass */
1000#define NORMAL_PRIORITY_CLASS 0x00000020
1001#define IDLE_PRIORITY_CLASS 0x00000040
1002#define HIGH_PRIORITY_CLASS 0x00000080
1003#define REALTIME_PRIORITY_CLASS 0x00000100
1004
1005typedef BOOL (* CALLBACK ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG);
1006typedef BOOL (* CALLBACK ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG);
1007typedef BOOL (* CALLBACK ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG);
1008typedef BOOL (* CALLBACK ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG);
1009typedef BOOL (* CALLBACK ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG);
1010typedef BOOL (* CALLBACK ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG);
1011
1012DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC)
1013DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC)
1014DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC)
1015
1016/* flags that can be passed to LoadLibraryEx */
1017#define DONT_RESOLVE_DLL_REFERENCES 0x00000001
1018#define LOAD_LIBRARY_AS_DATAFILE 0x00000002
1019#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008
1020
1021/* ifdef _x86_ ... */
1022typedef struct _LDT_ENTRY {
1023 WORD LimitLow;
1024 WORD BaseLow;
1025 union {
1026 struct {
1027 BYTE BaseMid;
1028 BYTE Flags1;/*Declare as bytes to avoid alignment problems */
1029 BYTE Flags2;
1030 BYTE BaseHi;
1031 } Bytes;
1032 struct {
1033 unsigned BaseMid : 8;
1034 unsigned Type : 5;
1035 unsigned Dpl : 2;
1036 unsigned Pres : 1;
1037 unsigned LimitHi : 4;
1038 unsigned Sys : 1;
1039 unsigned Reserved_0 : 1;
1040 unsigned Default_Big : 1;
1041 unsigned Granularity : 1;
1042 unsigned BaseHi : 8;
1043 } Bits;
1044 } HighWord;
1045} LDT_ENTRY, *LPLDT_ENTRY;
1046
1047
1048typedef enum _GET_FILEEX_INFO_LEVELS {
1049 GetFileExInfoStandard
1050} GET_FILEEX_INFO_LEVELS;
1051
1052typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
1053 DWORD dwFileAttributes;
1054 FILETIME ftCreationTime;
1055 FILETIME ftLastAccessTime;
1056 FILETIME ftLastWriteTime;
1057 DWORD nFileSizeHigh;
1058 DWORD nFileSizeLow;
1059} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
1060
1061typedef struct _DllVersionInfo {
1062 DWORD cbSize;
1063 DWORD dwMajorVersion;
1064 DWORD dwMinorVersion;
1065 DWORD dwBuildNumber;
1066 DWORD dwPlatformID;
1067} DLLVERSIONINFO;
1068
1069/*
1070 * This one seems to be a Win32 only definition. It also is defined with
1071 * WINAPI instead of CALLBACK in the windows headers.
1072 */
1073typedef DWORD (* WINAPI LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER,
1074 LARGE_INTEGER, DWORD, DWORD, HANDLE,
1075 HANDLE, LPVOID);
1076
1077
1078#define WAIT_FAILED 0xffffffff
1079#define WAIT_OBJECT_0 0
1080#define WAIT_ABANDONED STATUS_ABANDONED_WAIT_0
1081#define WAIT_ABANDONED_0 STATUS_ABANDONED_WAIT_0
1082#define WAIT_IO_COMPLETION STATUS_USER_APC
1083#define WAIT_TIMEOUT STATUS_TIMEOUT
1084
1085#define STILL_ACTIVE STATUS_PENDING
1086
1087#define PAGE_NOACCESS 0x01
1088#define PAGE_READONLY 0x02
1089#define PAGE_READWRITE 0x04
1090#define PAGE_WRITECOPY 0x08
1091#define PAGE_EXECUTE 0x10
1092#define PAGE_EXECUTE_READ 0x20
1093#define PAGE_EXECUTE_READWRITE 0x40
1094#define PAGE_EXECUTE_WRITECOPY 0x80
1095#define PAGE_GUARD 0x100
1096#define PAGE_NOCACHE 0x200
1097
1098#define MEM_COMMIT 0x00001000
1099#define MEM_RESERVE 0x00002000
1100#define MEM_DECOMMIT 0x00004000
1101#define MEM_RELEASE 0x00008000
1102#define MEM_FREE 0x00010000
1103#define MEM_PRIVATE 0x00020000
1104#define MEM_MAPPED 0x00040000
1105#define MEM_RESET 0x00080000
1106#define MEM_TOP_DOWN 0x00100000
1107
1108#define SEC_FILE 0x00800000
1109#define SEC_IMAGE 0x01000000
1110#define SEC_RESERVE 0x04000000
1111#define SEC_COMMIT 0x08000000
1112#define SEC_NOCACHE 0x10000000
1113
1114#define FILE_BEGIN 0
1115#define FILE_CURRENT 1
1116#define FILE_END 2
1117
1118#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
1119#define FILE_CASE_PRESERVED_NAMES 0x00000002
1120#define FILE_UNICODE_ON_DISK 0x00000004
1121#define FILE_PERSISTENT_ACLS 0x00000008
1122
1123#define FILE_MAP_COPY 0x00000001
1124#define FILE_MAP_WRITE 0x00000002
1125#define FILE_MAP_READ 0x00000004
1126#define FILE_MAP_ALL_ACCESS 0x000f001f
1127
1128#define MOVEFILE_REPLACE_EXISTING 0x00000001
1129#define MOVEFILE_COPY_ALLOWED 0x00000002
1130#define MOVEFILE_DELAY_UNTIL_REBOOT 0x00000004
1131
1132#define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
1133#define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
1134#define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
1135
1136
1137#define STATUS_SUCCESS 0x00000000
1138#define STATUS_WAIT_0 0x00000000
1139#define STATUS_ABANDONED_WAIT_0 0x00000080
1140#define STATUS_USER_APC 0x000000C0
1141#define STATUS_TIMEOUT 0x00000102
1142#define STATUS_PENDING 0x00000103
1143#define STATUS_GUARD_PAGE_VIOLATION 0x80000001
1144#define STATUS_DATATYPE_MISALIGNMENT 0x80000002
1145#define STATUS_BREAKPOINT 0x80000003
1146#define STATUS_SINGLE_STEP 0x80000004
1147#define STATUS_BUFFER_OVERFLOW 0x80000005
1148#define STATUS_ACCESS_VIOLATION 0xC0000005
1149#define STATUS_IN_PAGE_ERROR 0xC0000006
1150#define STATUS_INVALID_PARAMETER 0xC000000D
1151#define STATUS_NO_MEMORY 0xC0000017
1152#define STATUS_ILLEGAL_INSTRUCTION 0xC000001D
1153#define STATUS_BUFFER_TOO_SMALL 0xC0000023
1154#define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025
1155#define STATUS_INVALID_DISPOSITION 0xC0000026
1156#define STATUS_UNKNOWN_REVISION 0xC0000058
1157#define STATUS_INVALID_SECURITY_DESCR 0xC0000079
1158#define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C
1159#define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D
1160#define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E
1161#define STATUS_FLOAT_INEXACT_RESULT 0xC000008F
1162#define STATUS_FLOAT_INVALID_OPERATION 0xC0000090
1163#define STATUS_FLOAT_OVERFLOW 0xC0000091
1164#define STATUS_FLOAT_STACK_CHECK 0xC0000092
1165#define STATUS_FLOAT_UNDERFLOW 0xC0000093
1166#define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094
1167#define STATUS_INTEGER_OVERFLOW 0xC0000095
1168#define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096
1169#define STATUS_INVALID_PARAMETER_2 0xC00000F0
1170#define STATUS_STACK_OVERFLOW 0xC00000FD
1171#define STATUS_CONTROL_C_EXIT 0xC000013A
1172
1173#define DUPLICATE_CLOSE_SOURCE 0x00000001
1174#define DUPLICATE_SAME_ACCESS 0x00000002
1175
1176#define HANDLE_FLAG_INHERIT 0x00000001
1177#define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x00000002
1178
1179#define HINSTANCE_ERROR 32
1180
1181#define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
1182#define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1)
1183#define THREAD_PRIORITY_NORMAL 0
1184#define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX
1185#define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1)
1186#define THREAD_PRIORITY_ERROR_RETURN (0x7fffffff)
1187#define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT
1188#define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE
1189
1190#define TLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF)
1191
1192typedef struct
1193{
1194 int type;
1195} wine_exception;
1196
1197typedef struct
1198{
1199 int pad[39];
1200 int edi;
1201 int esi;
1202 int ebx;
1203 int edx;
1204 int ecx;
1205 int eax;
1206
1207 int ebp;
1208 int eip;
1209 int cs;
1210 int eflags;
1211 int esp;
1212 int ss;
1213} exception_info;
1214
1215/* Could this type be considered opaque? */
1216typedef struct {
1217 LPVOID DebugInfo;
1218 LONG LockCount;
1219 LONG RecursionCount;
1220 HANDLE OwningThread;
1221 HANDLE LockSemaphore;
1222 DWORD Reserved;
1223}CRITICAL_SECTION;
1224
1225#ifdef __WINE__
1226#ifdef __WIN32OS2__
1227#define CRITICAL_SECTION_INIT(name) { 0, -1, 0, 0, 0, 0 }
1228#else
1229#define CRITICAL_SECTION_INIT(name) { (void *)(__FILE__ ": " name), -1, 0, 0, 0, 0 }
1230#endif
1231#endif
1232
1233typedef struct {
1234 DWORD dwOSVersionInfoSize;
1235 DWORD dwMajorVersion;
1236 DWORD dwMinorVersion;
1237 DWORD dwBuildNumber;
1238 DWORD dwPlatformId;
1239 CHAR szCSDVersion[128];
1240} OSVERSIONINFOA;
1241
1242typedef struct {
1243 DWORD dwOSVersionInfoSize;
1244 DWORD dwMajorVersion;
1245 DWORD dwMinorVersion;
1246 DWORD dwBuildNumber;
1247 DWORD dwPlatformId;
1248 WCHAR szCSDVersion[128];
1249} OSVERSIONINFOW;
1250
1251DECL_WINELIB_TYPE_AW(OSVERSIONINFO)
1252
1253typedef struct _OSVERSIONINFOEXA {
1254 DWORD dwOSVersionInfoSize;
1255 DWORD dwMajorVersion;
1256 DWORD dwMinorVersion;
1257 DWORD dwBuildNumber;
1258 DWORD dwPlatformId;
1259 CHAR szCSDVersion[128];
1260 WORD wServicePackMajor;
1261 WORD wServicePackMinor;
1262 WORD wReserved[2];
1263} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
1264typedef struct _OSVERSIONINFOEXW {
1265 DWORD dwOSVersionInfoSize;
1266 DWORD dwMajorVersion;
1267 DWORD dwMinorVersion;
1268 DWORD dwBuildNumber;
1269 DWORD dwPlatformId;
1270 WCHAR szCSDVersion[128];
1271 WORD wServicePackMajor;
1272 WORD wServicePackMinor;
1273 WORD wReserved[2];
1274} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW;
1275
1276DECL_WINELIB_TYPE_AW(OSVERSIONINFOEX)
1277DECL_WINELIB_TYPE_AW(POSVERSIONINFOEX)
1278DECL_WINELIB_TYPE_AW(LPOSVERSIONINFOEX)
1279
1280#define VER_SET_CONDITION(_m_,_t_,_c_) ((_m_)=VerSetConditionMask((_m_),(_t_),(_c_)))
1281
1282#define VER_PLATFORM_WIN32s 0
1283#define VER_PLATFORM_WIN32_WINDOWS 1
1284#define VER_PLATFORM_WIN32_NT 2
1285
1286#define VER_MINORVERSION 0x00000001
1287#define VER_MAJORVERSION 0x00000002
1288#define VER_BUILDNUMBER 0x00000004
1289#define VER_PLATFORMID 0x00000008
1290#define VER_SERVICEPACKMINOR 0x00000010
1291#define VER_SERVICEPACKMAJOR 0x00000020
1292#define VER_SUITENAME 0x00000040
1293#define VER_PRODUCT_TYPE 0x00000080
1294
1295#define VER_NT_WORKSTATION 1
1296#define VER_NT_DOMAIN_CONTROLLER 2
1297#define VER_NT_SERVER 3
1298
1299#define VER_SUITE_SMALLBUSINESS 0x00000001
1300#define VER_SUITE_ENTERPRISE 0x00000002
1301#define VER_SUITE_BACKOFFICE 0x00000004
1302#define VER_SUITE_COMMUNICATIONS 0x00000008
1303#define VER_SUITE_TERMINAL 0x00000010
1304#define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020
1305#define VER_SUITE_EMBEDDEDNT 0x00000040
1306#define VER_SUITE_DATACENTER 0x00000080
1307#define VER_SUITE_SINGLEUSERTS 0x00000100
1308#define VER_SUITE_PERSONAL 0x00000200
1309
1310#define VER_EQUAL 1
1311#define VER_GREATER 2
1312#define VER_GREATER_EQUAL 3
1313#define VER_LESS 4
1314#define VER_LESS_EQUAL 5
1315#define VER_AND 6
1316#define VER_OR 7
1317
1318typedef struct _COMMPROP {
1319 WORD wPacketLength;
1320 WORD wPacketVersion;
1321 DWORD dwServiceMask;
1322 DWORD dwReserved1;
1323 DWORD dwMaxTxQueue;
1324 DWORD dwMaxRxQueue;
1325 DWORD dwMaxBaud;
1326 DWORD dwProvSubType;
1327 DWORD dwProvCapabilities;
1328 DWORD dwSettableParams;
1329 DWORD dwSettableBaud;
1330 WORD wSettableData;
1331 WORD wSettableStopParity;
1332 DWORD dwCurrentTxQueue;
1333 DWORD dwCurrentRxQueue;
1334 DWORD dwProvSpec1;
1335 DWORD dwProvSpec2;
1336 WCHAR wcProvChar[1];
1337} COMMPROP,*LPCOMMPROP;
1338
1339typedef struct tagCOMSTAT
1340{
1341 // DWORD status; // maybe make this a union ??
1342 unsigned fCtsHold:1;
1343 unsigned fDsrHold:1;
1344 unsigned fRlsdHold:1;
1345 unsigned fXoffHold:1;
1346 unsigned fXoffSend:1;
1347 unsigned fEof:1;
1348 unsigned fTxim:1;
1349 unsigned fReserved:25;
1350 DWORD cbInQue;
1351 DWORD cbOutQue;
1352} COMSTAT,*LPCOMSTAT;
1353
1354typedef struct tagDCB
1355{
1356 DWORD DCBlength;
1357 DWORD BaudRate;
1358 unsigned fBinary :1;
1359 unsigned fParity :1;
1360 unsigned fOutxCtsFlow :1;
1361 unsigned fOutxDsrFlow :1;
1362 unsigned fDtrControl :2;
1363 unsigned fDsrSensitivity :1;
1364 unsigned fTXContinueOnXoff :1;
1365 unsigned fOutX :1;
1366 unsigned fInX :1;
1367 unsigned fErrorChar :1;
1368 unsigned fNull :1;
1369 unsigned fRtsControl :2;
1370 unsigned fAbortOnError :1;
1371 unsigned fDummy2 :17;
1372 WORD wReserved;
1373 WORD XonLim;
1374 WORD XoffLim;
1375 BYTE ByteSize;
1376 BYTE Parity;
1377 BYTE StopBits;
1378 char XonChar;
1379 char XoffChar;
1380 char ErrorChar;
1381 char EofChar;
1382 char EvtChar;
1383} DCB, *LPDCB;
1384
1385
1386
1387typedef struct tagCOMMTIMEOUTS {
1388 DWORD ReadIntervalTimeout;
1389 DWORD ReadTotalTimeoutMultiplier;
1390 DWORD ReadTotalTimeoutConstant;
1391 DWORD WriteTotalTimeoutMultiplier;
1392 DWORD WriteTotalTimeoutConstant;
1393} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
1394
1395typedef struct _COMMCONFIG {
1396 DWORD dwSize;
1397 WORD wVersion;
1398 WORD wReserved;
1399 DCB dcb;
1400 DWORD dwProviderSubType;
1401 DWORD dwProviderOffset;
1402 DWORD dwProviderSize;
1403 WCHAR wcProviderData[1];
1404} COMMCONFIG,*LPCOMMCONFIG;
1405
1406typedef void (* CALLBACK PAPCFUNC)(ULONG_PTR);
1407typedef void (* CALLBACK PTIMERAPCROUTINE)(LPVOID,DWORD,DWORD);
1408
1409typedef enum _COMPUTER_NAME_FORMAT
1410{
1411 ComputerNameNetBIOS,
1412 ComputerNameDnsHostname,
1413 ComputerNameDnsDomain,
1414 ComputerNameDnsFullyQualified,
1415 ComputerNamePhysicalNetBIOS,
1416 ComputerNamePhysicalDnsHostname,
1417 ComputerNamePhysicalDnsDomain,
1418 ComputerNamePhysicalDnsFullyQualified,
1419 ComputerNameMax
1420} COMPUTER_NAME_FORMAT;
1421
1422#include "poppack.h"
1423
1424BOOL WINAPI BuildCommDCBA(LPCSTR,LPDCB);
1425BOOL WINAPI BuildCommDCBW(LPCWSTR,LPDCB);
1426#define BuildCommDCB WINELIB_NAME_AW(BuildCommDCB)
1427BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS);
1428BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS);
1429#define BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts)
1430BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1431BOOL WINAPI SetCommState(HANDLE,LPDCB);
1432BOOL WINAPI TransmitCommChar(HANDLE,CHAR);
1433
1434BOOL WINAPI GetCommConfig(HANDLE,LPCOMMCONFIG,LPDWORD);
1435BOOL WINAPI GetCommMask(HANDLE,LPDWORD);
1436BOOL WINAPI GetCommModemStatus(HANDLE,LPDWORD);
1437BOOL WINAPI GetCommProperties(HANDLE,LPCOMMPROP);
1438BOOL WINAPI GetCommState(HANDLE,LPDCB);
1439BOOL WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1440
1441
1442/*DWORD WINAPI GetVersion( void );*/
1443BOOL WINAPI GetVersionExA(OSVERSIONINFOA*);
1444BOOL WINAPI GetVersionExW(OSVERSIONINFOW*);
1445#define GetVersionEx WINELIB_NAME_AW(GetVersionEx)
1446
1447/*int WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);*/
1448
1449void WINAPI DeleteCriticalSection(CRITICAL_SECTION *lpCrit);
1450void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit);
1451void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
1452void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
1453void WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit);
1454HANDLE WINAPI OpenProcess(DWORD access, BOOL inherit, DWORD id);
1455BOOL WINAPI GetProcessWorkingSetSize(HANDLE,LPDWORD,LPDWORD);
1456BOOL WINAPI GetProcessShutdownParameters( LPDWORD lpdwLevel, LPDWORD lpdwFlags );
1457DWORD WINAPI GetProcessFlags( DWORD processid );
1458DWORD WINAPI GetProcessVersion(DWORD Processid);
1459DWORD WINAPI GetProcessHeaps(DWORD nrofheaps,HANDLE *heaps) ;
1460BOOL WINAPI GetProcessTimes(HANDLE hProcess,
1461 LPFILETIME lpCreationTime,
1462 LPFILETIME lpExitTime,
1463 LPFILETIME lpKernelTime,
1464 LPFILETIME lpUserTime);
1465DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR);
1466void WINAPI RaiseException(DWORD,DWORD,DWORD,const LPDWORD);
1467BOOL WINAPI SetProcessWorkingSetSize(HANDLE,DWORD,DWORD);
1468BOOL WINAPI SetProcessPriorityBoost(HANDLE hprocess,BOOL disableboost);
1469BOOL WINAPI SetProcessWorkingSetSize(HANDLE hProcess,DWORD minset,
1470 DWORD maxset);
1471BOOL WINAPI SetProcessShutdownParameters(DWORD level,DWORD flags);
1472BOOL WINAPI TerminateProcess(HANDLE,DWORD);
1473BOOL WINAPI TerminateThread(HANDLE,DWORD);
1474BOOL WINAPI GetExitCodeThread(HANDLE,LPDWORD);
1475
1476/* GetBinaryType return values.
1477 */
1478
1479#define SCS_32BIT_BINARY 0
1480#define SCS_DOS_BINARY 1
1481#define SCS_WOW_BINARY 2
1482#define SCS_PIF_BINARY 3
1483#define SCS_POSIX_BINARY 4
1484#define SCS_OS216_BINARY 5
1485
1486BOOL WINAPI GetBinaryTypeA( LPCSTR lpApplicationName, LPDWORD lpBinaryType );
1487BOOL WINAPI GetBinaryTypeW( LPCWSTR lpApplicationName, LPDWORD lpBinaryType );
1488#define GetBinaryType WINELIB_NAME_AW(GetBinaryType)
1489
1490BOOL16 WINAPI GetWinDebugInfo16(LPWINDEBUGINFO,UINT16);
1491BOOL16 WINAPI SetWinDebugInfo16(LPWINDEBUGINFO);
1492/* Declarations for functions that exist only in Win32 */
1493
1494BOOL WINAPI AttachThreadInput(DWORD,DWORD,BOOL);
1495//BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
1496BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,LPVOID,DWORD,LPVOID,LPDWORD);
1497BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
1498BOOL WINAPI AllocateLocallyUniqueId(PLUID);
1499BOOL WINAPI AllocConsole(void);
1500BOOL WINAPI AreFileApisANSI(void);
1501BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR);
1502BOOL WINAPI BackupEventLogW(HANDLE,LPCWSTR);
1503#define BackupEventLog WINELIB_NAME_AW(BackupEventLog)
1504BOOL WINAPI BackupRead(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*);
1505BOOL WINAPI BackupSeek(HANDLE,DWORD,DWORD,LPDWORD,LPDWORD,LPVOID*);
1506BOOL WINAPI BackupWrite(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*);
1507BOOL WINAPI Beep(DWORD,DWORD);
1508BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR);
1509BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR);
1510#define ClearEventLog WINELIB_NAME_AW(ClearEventLog)
1511BOOL WINAPI CloseEventLog(HANDLE);
1512BOOL WINAPI CloseHandle(HANDLE);
1513BOOL WINAPI CommConfigDialogA(LPCSTR,HANDLE,LPCOMMCONFIG);
1514BOOL WINAPI CommConfigDialogW(LPCWSTR,HANDLE,LPCOMMCONFIG);
1515#define CommConfigDialog WINELIB_NAME_AW(CommConfigDialog)
1516BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD);
1517HANDLE WINAPI ConvertToGlobalHandle(HANDLE hSrc);
1518BOOL WINAPI CopyFileA(LPCSTR,LPCSTR,BOOL);
1519BOOL WINAPI CopyFileW(LPCWSTR,LPCWSTR,BOOL);
1520#define CopyFile WINELIB_NAME_AW(CopyFile)
1521BOOL WINAPI CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1522BOOL WINAPI CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD);
1523#define CopyFileEx WINELIB_NAME_AW(CopyFileEx)
1524BOOL WINAPI CopySid(DWORD,PSID,PSID);
1525INT WINAPI CompareFileTime(LPFILETIME,LPFILETIME);
1526HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR);
1527HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR);
1528#define CreateEvent WINELIB_NAME_AW(CreateEvent)
1529HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
1530 DWORD,DWORD,HANDLE);
1531HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
1532 DWORD,DWORD,HANDLE);
1533#define CreateFile WINELIB_NAME_AW(CreateFile)
1534HANDLE WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,
1535 DWORD,DWORD,LPCSTR);
1536HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,
1537 DWORD,DWORD,LPCWSTR);
1538#define CreateFileMapping WINELIB_NAME_AW(CreateFileMapping)
1539HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1540HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1541#define CreateMutex WINELIB_NAME_AW(CreateMutex)
1542BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
1543BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,
1544 LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,
1545 LPSTARTUPINFOA,LPPROCESS_INFORMATION);
1546BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,
1547 LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,
1548 LPSTARTUPINFOW,LPPROCESS_INFORMATION);
1549#define CreateProcess WINELIB_NAME_AW(CreateProcess)
1550HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1551HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
1552HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
1553#define CreateSemaphore WINELIB_NAME_AW(CreateSemaphore)
1554DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
1555HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1556HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
1557HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
1558#define CreateWaitableTimer WINELIB_NAME_AW(CreateWaitableTimer)
1559BOOL WINAPI DebugActiveProcess(DWORD);
1560void WINAPI DebugBreak(void);
1561BOOL WINAPI DeregisterEventSource(HANDLE);
1562BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
1563BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
1564BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,HANDLE*,DWORD,BOOL,DWORD);
1565BOOL WINAPI EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,
1566 ENUMRESLANGPROCA,LONG);
1567BOOL WINAPI EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,
1568 ENUMRESLANGPROCW,LONG);
1569#define EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages)
1570BOOL WINAPI EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,
1571 LONG);
1572BOOL WINAPI EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,
1573 LONG);
1574#define EnumResourceNames WINELIB_NAME_AW(EnumResourceNames)
1575BOOL WINAPI EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG);
1576BOOL WINAPI EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG);
1577#define EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes)
1578BOOL WINAPI EqualSid(PSID, PSID);
1579BOOL WINAPI EqualPrefixSid(PSID,PSID);
1580DWORD WINAPI EraseTape(HANDLE,DWORD,BOOL);
1581VOID WINAPI ExitProcess(DWORD);
1582VOID WINAPI ExitThread(DWORD);
1583DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
1584DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
1585#define ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings)
1586BOOL WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD);
1587BOOL WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME);
1588BOOL WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME);
1589HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD);
1590HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD);
1591#define FindFirstChangeNotification WINELIB_NAME_AW(FindFirstChangeNotification)
1592BOOL WINAPI FindNextChangeNotification(HANDLE);
1593BOOL WINAPI FindCloseChangeNotification(HANDLE);
1594HRSRC WINAPI FindResourceExA(HMODULE,LPCSTR,LPCSTR,WORD);
1595HRSRC WINAPI FindResourceExW(HMODULE,LPCWSTR,LPCWSTR,WORD);
1596#define FindResourceEx WINELIB_NAME_AW(FindResourceEx)
1597BOOL WINAPI FlushConsoleInputBuffer(HANDLE);
1598BOOL WINAPI FlushFileBuffers(HANDLE);
1599BOOL WINAPI FlushViewOfFile(LPCVOID, DWORD);
1600DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,
1601 DWORD,LPDWORD);
1602DWORD WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,
1603 DWORD,LPDWORD);
1604#define FormatMessage WINELIB_NAME_AW(FormatMessage)
1605BOOL WINAPI FreeConsole(void);
1606BOOL WINAPI FreeEnvironmentStringsA(LPSTR);
1607BOOL WINAPI FreeEnvironmentStringsW(LPWSTR);
1608#define FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings)
1609PVOID WINAPI FreeSid(PSID);
1610VOID WINAPI FreeLibraryAndExitThread(HINSTANCE,DWORD);
1611UINT WINAPI GetACP(void);
1612LPCSTR WINAPI GetCommandLineA(void);
1613LPCWSTR WINAPI GetCommandLineW(void);
1614#define GetCommandLine WINELIB_NAME_AW(GetCommandLine)
1615DWORD WINAPI GetCompressedFileSizeA(LPCTSTR lpFileName, LPDWORD lpFileSizeHigh);
1616DWORD WINAPI GetCompressedFileSizeW(LPCWSTR lpFileName, LPDWORD lpFileSizeHigh);
1617#define GetCompressedFileSize WINELIB_NAME_AW(GetCompressedFileSize)
1618BOOL WINAPI GetComputerNameA(LPSTR,LPDWORD);
1619BOOL WINAPI GetComputerNameW(LPWSTR,LPDWORD);
1620#define GetComputerName WINELIB_NAME_AW(GetComputerName)
1621UINT WINAPI GetConsoleCP(void);
1622BOOL WINAPI GetConsoleMode(HANDLE,LPDWORD);
1623UINT WINAPI GetConsoleOutputCP(void);
1624DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD);
1625DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD);
1626#define GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
1627BOOL WINAPI GetCommMask(HANDLE, LPDWORD);
1628BOOL WINAPI GetCommModemStatus(HANDLE, LPDWORD);
1629HANDLE WINAPI GetCurrentProcess(void);
1630DWORD WINAPI GetCurrentProcessId(void);
1631HANDLE WINAPI GetCurrentThread(void);
1632DWORD WINAPI GetCurrentThreadId(void);
1633BOOL WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,LPDWORD);
1634BOOL WINAPI GetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,LPDWORD);
1635#define GetDefaultCommConfig WINELIB_NAME_AW(GetDefaultCommConfig)
1636LPSTR WINAPI GetEnvironmentStringsA(void);
1637LPWSTR WINAPI GetEnvironmentStringsW(void);
1638#define GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings)
1639DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
1640DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);
1641#define GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable)
1642BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
1643BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
1644#define GetFileAttributesEx WINELIB_NAME_AW(GetFileAttributesEx)
1645DWORD WINAPI GetFileInformationByHandle(HANDLE,BY_HANDLE_FILE_INFORMATION*);
1646BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
1647BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
1648#define GetFileSecurity WINELIB_NAME_AW(GetFileSecurity)
1649DWORD WINAPI GetFileSize(HANDLE,LPDWORD);
1650BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
1651DWORD WINAPI GetFileType(HANDLE);
1652DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
1653DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1654#define GetFullPathName WINELIB_NAME_AW(GetFullPathName)
1655BOOL WINAPI GetHandleInformation(HANDLE,LPDWORD);
1656DWORD WINAPI GetLargestConsoleWindowSize(HANDLE);
1657DWORD WINAPI GetLengthSid(PSID);
1658VOID WINAPI GetLocalTime(LPSYSTEMTIME);
1659DWORD WINAPI GetLogicalDrives(void);
1660DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
1661DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);
1662#define GetLongPathName WINELIB_NAME_AW(GetLongPathName)
1663BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,LPDWORD);
1664BOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD);
1665BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
1666UINT WINAPI GetOEMCP(void);
1667BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
1668DWORD WINAPI GetPriorityClass(HANDLE);
1669BOOL WINAPI GetProcessAffinityMask(HANDLE hProcess,
1670 LPDWORD lpProcessAffinityMask,
1671 LPDWORD lpSystemAffinityMask);
1672HANDLE WINAPI GetProcessHeap(void);
1673DWORD WINAPI GetProcessVersion(DWORD);
1674//BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
1675BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL *,LPBOOL);
1676BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID *,LPBOOL);
1677DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
1678BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID *,LPBOOL);
1679BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL *,LPBOOL);
1680PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
1681DWORD WINAPI GetSidLengthRequired(BYTE);
1682PDWORD WINAPI GetSidSubAuthority(PSID,DWORD);
1683PUCHAR WINAPI GetSidSubAuthorityCount(PSID);
1684DWORD WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD);
1685DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);
1686#define GetShortPathName WINELIB_NAME_AW(GetShortPathName)
1687HANDLE WINAPI GetStdHandle(DWORD);
1688BOOL WINAPI GetStringTypeExA(LCID,DWORD,LPCSTR,INT,LPWORD);
1689BOOL WINAPI GetStringTypeExW(LCID,DWORD,LPCWSTR,INT,LPWORD);
1690#define GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx)
1691VOID WINAPI GetSystemInfo(LPSYSTEM_INFO);
1692BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
1693VOID WINAPI GetSystemTime(LPSYSTEMTIME);
1694VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME);
1695DWORD WINAPI GetTapeParameters(HANDLE,DWORD,LPDWORD,LPVOID);
1696DWORD WINAPI GetTapePosition(HANDLE,DWORD,LPDWORD,LPDWORD,LPDWORD);
1697DWORD WINAPI GetTapeStatus(HANDLE);
1698DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
1699BOOL WINAPI GetThreadContext(HANDLE,CONTEXT *);
1700INT WINAPI GetThreadPriority(HANDLE);
1701BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY);
1702BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
1703BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD,LPDWORD);
1704BOOL WINAPI GetUserNameA(LPSTR,LPDWORD);
1705BOOL WINAPI GetUserNameW(LPWSTR,LPDWORD);
1706#define GetUserName WINELIB_NAME_AW(GetUserName)
1707VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
1708LPVOID WINAPI HeapAlloc(HANDLE,DWORD,DWORD);
1709DWORD WINAPI HeapCompact(HANDLE,DWORD);
1710HANDLE WINAPI HeapCreate(DWORD,DWORD,DWORD);
1711BOOL WINAPI HeapDestroy(HANDLE);
1712BOOL WINAPI HeapFree(HANDLE,DWORD,LPVOID);
1713BOOL WINAPI HeapLock(HANDLE);
1714LPVOID WINAPI HeapReAlloc(HANDLE,DWORD,LPVOID,DWORD);
1715DWORD WINAPI HeapSize(HANDLE,DWORD,LPVOID);
1716BOOL WINAPI HeapUnlock(HANDLE);
1717BOOL WINAPI HeapValidate(HANDLE,DWORD,LPCVOID);
1718BOOL WINAPI HeapWalk (HANDLE, LPVOID);
1719DWORD WINAPI InitializeAcl(PACL,DWORD,DWORD);
1720BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
1721BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
1722BOOL WINAPI IsTextUnicode(CONST LPVOID lpBuffer, int cb, LPINT lpi);
1723BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
1724BOOL WINAPI IsValidSid(PSID);
1725BOOL WINAPI ImpersonateLoggedOnUser(HANDLE);
1726BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
1727BOOL WINAPI IsProcessorFeaturePresent(DWORD);
1728LONG WINAPI InterlockedCompareExchange( PLONG dest, LONG xchg, LONG compare );
1729LONG WINAPI InterlockedDecrement(LPLONG);
1730LONG WINAPI InterlockedExchange(LPLONG,LONG);
1731LONG WINAPI InterlockedExchangeAdd( PLONG dest, LONG incr );
1732LONG WINAPI InterlockedIncrement(LPLONG);
1733
1734/* FIXME: should handle platforms where sizeof(void*) != sizeof(long) */
1735#define InterlockedCompareExchangePointer(dest, xchg, compare) \
1736 (PVOID)InterlockedCompareExchange( (PLONG)dest, (LONG)xchg, (LONG)compare )
1737
1738#define InterlockedExchangePointer(dest, val) \
1739 (PVOID)InterlockedExchange( (PLONG)dest, (LONG)val )
1740
1741BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE);
1742BOOL WINAPI IsProcessorFeaturePresent(DWORD);
1743BOOL WINAPI IsValidLocale(DWORD,DWORD);
1744BOOL WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
1745BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1746BOOL WINAPI LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);
1747BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,LPVOID);
1748BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,LPVOID);
1749#define LookupPrivilegeValue WINELIB_NAME_AW(LookupPrivilegeValue)
1750BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD);
1751HMODULE WINAPI MapHModuleSL(HMODULE16);
1752HMODULE16 WINAPI MapHModuleLS(HMODULE);
1753LPVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1754LPVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPVOID);
1755BOOL WINAPI MoveFileA(LPCSTR,LPCSTR);
1756BOOL WINAPI MoveFileW(LPCWSTR,LPCWSTR);
1757#define MoveFile WINELIB_NAME_AW(MoveFile)
1758BOOL WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD);
1759BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD);
1760#define MoveFileEx WINELIB_NAME_AW(MoveFileEx)
1761INT WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,INT,LPWSTR,INT);
1762BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE);
1763INT WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,INT,LPSTR,INT,LPCSTR,BOOL*);
1764HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR);
1765HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR);
1766#define OpenBackupEventLog WINELIB_NAME_AW(OpenBackupEventLog)
1767HANDLE WINAPI OpenEventA(DWORD,BOOL,LPCSTR);
1768HANDLE WINAPI OpenEventW(DWORD,BOOL,LPCWSTR);
1769#define OpenEvent WINELIB_NAME_AW(OpenEvent)
1770HANDLE WINAPI OpenEventLogA(LPCSTR,LPCSTR);
1771HANDLE WINAPI OpenEventLogW(LPCWSTR,LPCWSTR);
1772#define OpenEventLog WINELIB_NAME_AW(OpenEventLog)
1773HANDLE WINAPI OpenFileMappingA(DWORD,BOOL,LPCSTR);
1774HANDLE WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR);
1775#define OpenFileMapping WINELIB_NAME_AW(OpenFileMapping)
1776HANDLE WINAPI OpenMutexA(DWORD,BOOL,LPCSTR);
1777HANDLE WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR);
1778#define OpenMutex WINELIB_NAME_AW(OpenMutex)
1779HANDLE WINAPI OpenProcess(DWORD,BOOL,DWORD);
1780BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE);
1781HANDLE WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR);
1782HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR);
1783#define OpenSemaphore WINELIB_NAME_AW(OpenSemaphore)
1784BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE);
1785
1786BOOL WIN32API PostQueuedCompletionStatus(HANDLE CompletionPort,
1787 DWORD dwNumberOfBytesTransferred,
1788 DWORD dwCompletionKey,
1789 LPOVERLAPPED lpOverlapped);
1790
1791DWORD WINAPI PrepareTape(HANDLE,DWORD,BOOL);
1792BOOL WINAPI PulseEvent(HANDLE);
1793BOOL WINAPI PurgeComm(HANDLE,DWORD);
1794DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD);
1795DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);
1796#define QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
1797BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER);
1798BOOL WINAPI QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
1799
1800BOOL WINAPI ReadConsoleA(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID);
1801BOOL WINAPI ReadConsoleW(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID);
1802#define ReadConsole WINELIB_NAME_AW(ReadConsole)
1803BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,
1804 COORD,LPDWORD);
1805#define ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter)
1806BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
1807BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
1808#define ReadEventLog WINELIB_NAME_AW(ReadEventLog)
1809BOOL WINAPI ReadFile(HANDLE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
1810BOOL WINAPI ReadFileEx(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead,
1811 LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1812
1813HANDLE WINAPI RegisterEventSourceA(LPCSTR,LPCSTR);
1814HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR);
1815#define RegisterEventSource WINELIB_NAME_AW(RegisterEventSource)
1816DWORD WINAPI RegisterServiceProcess(DWORD dwProcessId, DWORD dwType);
1817BOOL WINAPI ReleaseMutex(HANDLE);
1818BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
1819BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR *,LPVOID);
1820BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR *,LPVOID);
1821#define ReportEvent WINELIB_NAME_AW(ReportEvent)
1822BOOL WINAPI ResetEvent(HANDLE);
1823DWORD WINAPI ResumeThread(HANDLE);
1824VOID WINAPI RtlFillMemory(LPVOID,UINT,UINT);
1825#define FillMemory RtlFillMemory
1826VOID WINAPI RtlMoveMemory(LPVOID,LPCVOID,UINT);
1827#define MoveMemory RtlMoveMemory
1828VOID WINAPI RtlZeroMemory(LPVOID,UINT);
1829#define ZeroMemory RtlZeroMemory
1830VOID WINAPI RtlCopyMemory(LPVOID,const VOID*, UINT);
1831#define CopyMemory RtlCopyMemory
1832BOOL WINAPI RevertToSelf(void);
1833DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
1834DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1835#define SearchPath WINELIB_NAME_AW(SearchPath)
1836BOOL WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD);
1837BOOL WINAPI SetCommBreak(HANDLE);
1838BOOL WINAPI SetCommMask(HANDLE,DWORD);
1839BOOL WINAPI SetCommState(HANDLE,LPDCB);
1840BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
1841BOOL WINAPI SetComputerNameA(LPCSTR);
1842BOOL WINAPI SetComputerNameW(LPCWSTR);
1843#define SetComputerName WINELIB_NAME_AW(SetComputerName)
1844BOOL WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD);
1845BOOL WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD);
1846#define SetDefaultCommConfig WINELIB_NAME_AW(SetDefaultCommConfig)
1847BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD);
1848BOOL WINAPI SetConsoleMode(HANDLE,DWORD);
1849BOOL WINAPI SetConsoleTitleA(LPCSTR);
1850BOOL WINAPI SetConsoleTitleW(LPCWSTR);
1851#define SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
1852BOOL WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD);
1853BOOL WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD);
1854#define SetDefaultCommConfig WINELIB_NAME_AW(SetDefaultCommConfig)
1855BOOL WINAPI SetEndOfFile(HANDLE);
1856BOOL WINAPI DeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode,
1857 LPVOID lpInBuffer, DWORD nInBufferSize,
1858 LPVOID lpOutBuffer, DWORD nOutBufferSize,
1859 LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);
1860
1861BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR);
1862BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
1863#define SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
1864BOOL WINAPI SetEvent(HANDLE);
1865VOID WINAPI SetFileApisToANSI(void);
1866VOID WINAPI SetFileApisToOEM(void);
1867DWORD WINAPI SetFilePointer(HANDLE,LONG,LPLONG,DWORD);
1868BOOL WINAPI SetFilePointerEx(HANDLE,LARGE_INTEGER,LARGE_INTEGER*,DWORD);
1869BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1870BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
1871#define SetFileSecurity WINELIB_NAME_AW(SetFileSecurity)
1872BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
1873BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD);
1874BOOL WINAPI SetLocalTime(const SYSTEMTIME*);
1875BOOL WINAPI SetPriorityClass(HANDLE,DWORD);
1876BOOL WINAPI SetProcessAffinityMask( HANDLE hProcess, DWORD affmask );
1877BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
1878BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL);
1879BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL);
1880BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL);
1881BOOL WINAPI SetStdHandle(DWORD,HANDLE);
1882BOOL WINAPI SetSystemPowerState(BOOL,BOOL);
1883BOOL WINAPI SetSystemTime(const SYSTEMTIME*);
1884DWORD WINAPI SetTapeParameters(HANDLE,DWORD,LPVOID);
1885BOOL WINAPI SetTapePosition(HANDLE,DWORD,DWORD,DWORD,DWORD,BOOL);
1886DWORD WINAPI SetThreadAffinityMask(HANDLE,DWORD);
1887BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT *);
1888DWORD WINAPI SetThreadExecutionState(EXECUTION_STATE);
1889BOOL WINAPI SetThreadPriority(HANDLE,INT);
1890BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
1891BOOL WINAPI SetThreadToken(PHANDLE,HANDLE);
1892BOOL WINAPI SetThreadLocale(LCID);
1893BOOL WINAPI SetThreadPriority(HANDLE,INT);
1894BOOL WINAPI SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION);
1895BOOL WINAPI SetupComm(HANDLE,DWORD,DWORD);
1896VOID WINAPI Sleep(DWORD);
1897DWORD WINAPI SleepEx(DWORD,BOOL);
1898DWORD WINAPI SuspendThread(HANDLE);
1899BOOL WINAPI SwitchToThread(void);
1900BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
1901DWORD WINAPI TlsAlloc(void);
1902BOOL WINAPI TlsFree(DWORD);
1903LPVOID WINAPI TlsGetValue(DWORD);
1904BOOL WINAPI TlsSetValue(DWORD,LPVOID);
1905BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
1906BOOL WINAPI UnmapViewOfFile(LPVOID);
1907BOOL WINAPI FlushInstructionCache(HANDLE,LPCVOID,DWORD);
1908LPVOID WINAPI VirtualAlloc(LPVOID,DWORD,DWORD,DWORD);
1909BOOL WINAPI VirtualFree(LPVOID,DWORD,DWORD);
1910BOOL WINAPI VirtualLock(LPVOID,DWORD);
1911BOOL WINAPI VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD);
1912BOOL WINAPI VirtualProtectEx(HANDLE,LPVOID,DWORD,DWORD,LPDWORD);
1913DWORD WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
1914DWORD WINAPI VirtualQueryEx(HANDLE,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
1915BOOL WINAPI VirtualUnlock(LPVOID,DWORD);
1916BOOL WINAPI WaitCommEvent(HANDLE,LPDWORD,LPOVERLAPPED);
1917BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
1918DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,BOOL,DWORD);
1919DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL);
1920DWORD WINAPI WaitForSingleObject(HANDLE,DWORD);
1921DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
1922BOOL WINAPI WriteConsoleA(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID);
1923BOOL WINAPI WriteConsoleW(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID);
1924#define WriteConsole WINELIB_NAME_AW(WriteConsole)
1925BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
1926BOOL WINAPI WriteFileEx(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite,
1927 LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1928DWORD WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL);
1929DWORD WINAPI GetLastError(void);
1930LANGID WINAPI GetSystemDefaultLangID(void);
1931LCID WINAPI GetSystemDefaultLCID(void);
1932LANGID WINAPI GetUserDefaultLangID(void);
1933LCID WINAPI GetUserDefaultLCID(void);
1934ATOM WINAPI AddAtomA(LPCSTR);
1935ATOM WINAPI AddAtomW(LPCWSTR);
1936#define AddAtom WINELIB_NAME_AW(AddAtom)
1937BOOL WINAPI CancelIo(HANDLE hFile);
1938BOOL WINAPI CancelWaitableTimer(HANDLE);
1939BOOL WINAPI CheckTokenMembership(HANDLE,PSID,PBOOL);
1940BOOL WINAPI ClearCommBreak(HANDLE);
1941BOOL WINAPI ClearCommError(HANDLE,LPDWORD,LPCOMSTAT);
1942BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR);
1943BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR);
1944#define ClearEventLog WINELIB_NAME_AW(ClearEventLog)
1945BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
1946BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);
1947#define CreateDirectory WINELIB_NAME_AW(CreateDirectory)
1948BOOL WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1949BOOL WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1950#define CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx)
1951HANDLE WINAPI CreateIoCompletionPort( HANDLE FileHandle,
1952 HANDLE ExistingCompletionPort,
1953 DWORD CompletionKey,
1954 DWORD NumberOfConcurrentThreads);
1955BOOL WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR);
1956BOOL WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR);
1957#define DefineDosDevice WINELIB_NAME_AW(DefineDosDevice)
1958
1959ATOM WINAPI DeleteAtom(ATOM);
1960BOOL WINAPI DeleteFileA(LPCSTR);
1961BOOL WINAPI DeleteFileW(LPCWSTR);
1962#define DeleteFile WINELIB_NAME_AW(DeleteFile)
1963void WINAPI FatalAppExitA(UINT,LPCSTR);
1964void WINAPI FatalAppExitW(UINT,LPCWSTR);
1965#define FatalAppExit WINELIB_NAME_AW(FatalAppExit)
1966VOID WIN32API FatalExit( UINT exitCode);
1967ATOM WINAPI FindAtomA(LPCSTR);
1968ATOM WINAPI FindAtomW(LPCWSTR);
1969#define FindAtom WINELIB_NAME_AW(FindAtom)
1970BOOL WINAPI FindClose(HANDLE);
1971HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
1972HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);
1973#define FindFirstFile WINELIB_NAME_AW(FindFirstFile)
1974HANDLE WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
1975HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
1976#define FindFirstFileEx WINELIB_NAME_AW(FindFirstFileEx)
1977HANDLE WINAPI FindFirstFileMultiA(LPCSTR,LPWIN32_FIND_DATAA,DWORD*); //Odin only
1978BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
1979BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);
1980#define FindNextFile WINELIB_NAME_AW(FindNextFile)
1981BOOL WINAPI FindNextFileMultiA(HANDLE,LPWIN32_FIND_DATAA,DWORD*); //Odin only
1982HRSRC WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR);
1983HRSRC WINAPI FindResourceW(HMODULE,LPCWSTR,LPCWSTR);
1984#define FindResource WINELIB_NAME_AW(FindResource)
1985
1986VOID WINAPI FreeLibrary16(HINSTANCE16);
1987BOOL WINAPI FreeLibrary(HMODULE);
1988#define FreeModule(handle) FreeLibrary(handle)
1989#define FreeProcInstance(proc) /*nothing*/
1990BOOL WINAPI FreeResource(HGLOBAL);
1991UINT WINAPI GetAtomNameA(ATOM,LPSTR,INT);
1992UINT WINAPI GetAtomNameW(ATOM,LPWSTR,INT);
1993#define GetAtomName WINELIB_NAME_AW(GetAtomName)
1994UINT WINAPI GetCurrentDirectoryA(UINT,LPSTR);
1995UINT WINAPI GetCurrentDirectoryW(UINT,LPWSTR);
1996#define GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory)
1997BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
1998BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
1999#define GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace)
2000BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
2001BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
2002#define GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx)
2003UINT WINAPI GetDriveTypeA(LPCSTR);
2004UINT WINAPI GetDriveTypeW(LPCWSTR);
2005#define GetDriveType WINELIB_NAME_AW(GetDriveType)
2006DWORD WINAPI GetFileAttributesA(LPCSTR);
2007DWORD WINAPI GetFileAttributesW(LPCWSTR);
2008#define GetFileAttributes WINELIB_NAME_AW(GetFileAttributes)
2009#define GetFreeSpace(w) (0x100000L)
2010UINT WINAPI GetLogicalDriveStringsA(UINT,LPSTR);
2011UINT WINAPI GetLogicalDriveStringsW(UINT,LPWSTR);
2012#define GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings)
2013INT WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,INT);
2014INT WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,INT);
2015#define GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo)
2016DWORD WINAPI GetModuleFileNameA(HMODULE,LPSTR,DWORD);
2017DWORD WINAPI GetModuleFileNameW(HMODULE,LPWSTR,DWORD);
2018#define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
2019HMODULE WINAPI GetModuleHandleA(LPCSTR);
2020HMODULE WINAPI GetModuleHandleW(LPCWSTR);
2021#define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
2022BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,LPDWORD,BOOL);
2023UINT WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR);
2024UINT WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR);
2025#define GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt)
2026INT WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR);
2027INT WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
2028#define GetPrivateProfileSection WINELIB_NAME_AW(GetPrivateProfileSection)
2029DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR);
2030DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR);
2031#define GetPrivateProfileSectionNames WINELIB_NAME_AW(GetPrivateProfileSectionNames)
2032INT WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT,LPCSTR);
2033INT WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT,LPCWSTR);
2034#define GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString)
2035BOOL WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
2036BOOL WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);
2037#define GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct)
2038FARPROC WINAPI GetProcAddress(HMODULE,LPCSTR);
2039UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT);
2040UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT);
2041#define GetProfileInt WINELIB_NAME_AW(GetProfileInt)
2042INT WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD);
2043INT WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD);
2044#define GetProfileSection WINELIB_NAME_AW(GetProfileSection)
2045INT WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT);
2046INT WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT);
2047#define GetProfileString WINELIB_NAME_AW(GetProfileString)
2048
2049BOOL WINAPI GetQueuedCompletionStatus(HANDLE CompletionPort,
2050 LPDWORD lpNumberOfBytesTransferred,
2051 LPDWORD lpCompletionKey,
2052 LPOVERLAPPED *lpOverlapped,
2053 DWORD dwMilliseconds);
2054VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA);
2055VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW);
2056#define GetStartupInfo WINELIB_NAME_AW(GetStartupInfo)
2057BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,INT,LPWORD);
2058BOOL WINAPI GetStringTypeW(DWORD,LPCWSTR,INT,LPWORD);
2059#define GetStringType WINELIB_NAME_AW(GetStringType)
2060UINT WINAPI GetSystemDirectoryA(LPSTR,UINT);
2061UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT);
2062#define GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
2063UINT WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR);
2064UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);
2065#define GetTempFileName WINELIB_NAME_AW(GetTempFileName)
2066UINT WINAPI GetTempPathA(UINT,LPSTR);
2067UINT WINAPI GetTempPathW(UINT,LPWSTR);
2068#define GetTempPath WINELIB_NAME_AW(GetTempPath)
2069LONG WINAPI GetVersion(void);
2070BOOL WINAPI GetExitCodeProcess(HANDLE,LPDWORD);
2071BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
2072BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
2073#define GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation)
2074UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT);
2075UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
2076#define GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory)
2077HGLOBAL16 WINAPI GlobalAlloc16(UINT16,DWORD);
2078HGLOBAL WINAPI GlobalAlloc(UINT,DWORD);
2079DWORD WINAPI GlobalCompact(DWORD);
2080UINT WINAPI GlobalFlags(HGLOBAL);
2081HGLOBAL16 WINAPI GlobalFree16(HGLOBAL16);
2082HGLOBAL WINAPI GlobalFree(HGLOBAL);
2083HGLOBAL WINAPI GlobalHandle(LPCVOID);
2084WORD WINAPI GlobalFix16(HGLOBAL16);
2085VOID WINAPI GlobalFix(HGLOBAL);
2086LPVOID WINAPI GlobalLock16(HGLOBAL16);
2087LPVOID WINAPI GlobalLock(HGLOBAL);
2088HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,DWORD,UINT);
2089DWORD WINAPI GlobalSize16(HGLOBAL16);
2090DWORD WINAPI GlobalSize(HGLOBAL);
2091VOID WINAPI GlobalUnfix16(HGLOBAL16);
2092VOID WINAPI GlobalUnfix(HGLOBAL);
2093BOOL16 WINAPI GlobalUnlock16(HGLOBAL16);
2094BOOL WINAPI GlobalUnlock(HGLOBAL);
2095BOOL16 WINAPI GlobalUnWire16(HGLOBAL16);
2096BOOL WINAPI GlobalUnWire(HGLOBAL);
2097SEGPTR WINAPI GlobalWire16(HGLOBAL16);
2098LPVOID WINAPI GlobalWire(HGLOBAL);
2099BOOL WINAPI InitAtomTable(DWORD);
2100BOOL WINAPI IsBadCodePtr(FARPROC);
2101BOOL WINAPI IsBadHugeReadPtr(LPCVOID,UINT);
2102BOOL WINAPI IsBadHugeWritePtr(LPVOID,UINT);
2103BOOL WINAPI IsBadReadPtr(LPCVOID,UINT);
2104BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT);
2105BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT);
2106#define IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr)
2107BOOL WINAPI IsBadWritePtr(LPVOID,UINT);
2108BOOL WINAPI IsDBCSLeadByte(BYTE);
2109BOOL WINAPI IsDebuggerPresent(void);
2110HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
2111HMODULE WINAPI LoadLibraryA(LPCSTR);
2112HMODULE WINAPI LoadLibraryW(LPCWSTR);
2113#define LoadLibrary WINELIB_NAME_AW(LoadLibrary)
2114HMODULE WINAPI LoadLibraryExA(LPCSTR,HFILE,DWORD);
2115HMODULE WINAPI LoadLibraryExW(LPCWSTR,HFILE,DWORD);
2116#define LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx)
2117HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
2118HINSTANCE WINAPI LoadModule(LPCSTR,LPVOID);
2119HGLOBAL WINAPI LoadResource(HMODULE,HRSRC);
2120HLOCAL WINAPI LocalAlloc(UINT,DWORD);
2121UINT WINAPI LocalCompact(UINT);
2122UINT WINAPI LocalFlags(HLOCAL);
2123HLOCAL WINAPI LocalFree(HLOCAL);
2124HLOCAL WINAPI LocalHandle(LPCVOID);
2125LPVOID WINAPI LocalLock(HLOCAL);
2126HLOCAL WINAPI LocalReAlloc(HLOCAL,DWORD,UINT);
2127UINT WINAPI LocalShrink(HGLOBAL,UINT);
2128UINT WINAPI LocalSize(HLOCAL);
2129BOOL WINAPI LocalUnlock(HLOCAL);
2130LPVOID WINAPI LockResource(HGLOBAL);
2131#define UnlockResource(hResData) ((hResData), 0)
2132
2133#define LockSegment(handle) GlobalFix((HANDLE)(handle))
2134#define MakeProcInstance(proc,inst) (proc)
2135HFILE16 WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
2136HFILE WINAPI OpenFile(LPCSTR,OFSTRUCT*,UINT);
2137VOID WINAPI OutputDebugStringA(LPCSTR);
2138VOID WINAPI OutputDebugStringW(LPCWSTR);
2139#define OutputDebugString WINELIB_NAME_AW(OutputDebugString)
2140BOOL WINAPI ReadProcessMemory(HANDLE, LPCVOID, LPVOID, DWORD, LPDWORD);
2141BOOL WINAPI RemoveDirectoryA(LPCSTR);
2142BOOL WINAPI RemoveDirectoryW(LPCWSTR);
2143#define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
2144BOOL WINAPI SetCurrentDirectoryA(LPCSTR);
2145BOOL WINAPI SetCurrentDirectoryW(LPCWSTR);
2146#define SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory)
2147UINT WINAPI SetErrorMode(UINT);
2148BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
2149BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD);
2150#define SetFileAttributes WINELIB_NAME_AW(SetFileAttributes)
2151UINT WINAPI SetHandleCount(UINT);
2152#define SetSwapAreaSize(w) (w)
2153BOOL WINAPI SetVolumeLabelA(LPCSTR,LPCSTR);
2154BOOL WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR);
2155#define SetVolumeLabel WINELIB_NAME_AW(SetVolumeLabel)
2156BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,BOOL);
2157DWORD WINAPI SizeofResource(HMODULE,HRSRC);
2158BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
2159#define UnlockSegment(handle) GlobalUnfix((HANDLE)(handle))
2160DWORD WINAPI VerLanguageNameA( UINT wLang, LPSTR szLang, UINT nSize );
2161DWORD WINAPI VerLanguageNameW( UINT wLang, LPWSTR szLang, UINT nSize );
2162#define VerLanguageName WINELIB_NAME_AW(VerLanguageName)
2163BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
2164BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);
2165#define WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
2166BOOL WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
2167BOOL WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
2168BOOL WINAPI WriteProcessMemory(HANDLE,LPCVOID,LPVOID,DWORD,LPDWORD);
2169#define WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString)
2170BOOL WINAPI WriteProfileSectionA(LPCSTR,LPCSTR);
2171BOOL WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR);
2172#define WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
2173BOOL WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
2174BOOL WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);
2175#define WritePrivateProfileStruct WINELIB_NAME_AW(WritePrivateProfileStruct)
2176BOOL WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR);
2177BOOL WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR);
2178#define WriteProfileString WINELIB_NAME_AW(WriteProfileString)
2179#define Yield32()
2180LPSTR WINAPI lstrcatA(LPSTR,LPCSTR);
2181LPWSTR WINAPI lstrcatW(LPWSTR,LPCWSTR);
2182#define lstrcat WINELIB_NAME_AW(lstrcat)
2183LPSTR WINAPI lstrcpyA(LPSTR,LPCSTR);
2184LPWSTR WINAPI lstrcpyW(LPWSTR,LPCWSTR);
2185#define lstrcpy WINELIB_NAME_AW(lstrcpy)
2186LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,INT);
2187LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,INT);
2188#define lstrcpyn WINELIB_NAME_AW(lstrcpyn)
2189INT WINAPI lstrlenA(LPCSTR);
2190INT WINAPI lstrlenW(LPCWSTR);
2191#define lstrlen WINELIB_NAME_AW(lstrlen)
2192HINSTANCE WINAPI WinExec(LPCSTR,UINT);
2193LONG WINAPI _hread(HFILE,LPVOID,LONG);
2194LONG WINAPI _hwrite(HFILE,LPCSTR,LONG);
2195HFILE WINAPI _lcreat(LPCSTR,INT);
2196HFILE WINAPI _lclose(HFILE);
2197LONG WINAPI _llseek(HFILE,LONG,INT);
2198HFILE WINAPI _lopen(LPCSTR,INT);
2199UINT WINAPI _lread(HFILE,LPVOID,UINT);
2200UINT WINAPI _lwrite(HFILE,LPCSTR,UINT);
2201SEGPTR WINAPI WIN16_GlobalLock16(HGLOBAL16);
2202INT WINAPI lstrcmpA(LPCSTR,LPCSTR);
2203INT WINAPI lstrcmpW(LPCWSTR,LPCWSTR);
2204#define lstrcmp WINELIB_NAME_AW(lstrcmp)
2205INT WINAPI lstrcmpiA(LPCSTR,LPCSTR);
2206INT WINAPI lstrcmpiW(LPCWSTR,LPCWSTR);
2207#define lstrcmpi WINELIB_NAME_AW(lstrcmpi)
2208int WINAPI lstrncmpiA(LPCSTR, LPCSTR, int);
2209int WINAPI lstrncmpiW(LPCWSTR, LPCWSTR, int);
2210#define lstrncmpi WINELIB_NAME_AW(lstrncmpi)
2211
2212VOID WINAPI SetLastError(DWORD);
2213
2214
2215BOOL WINAPI SetTokenInformation(HANDLE hToken,
2216 TOKEN_INFORMATION_CLASS tic,
2217 LPVOID lpvInformation,
2218 DWORD cbInformation);
2219
2220BOOL WINAPI GetUserNameA(LPSTR lpBuffer, LPDWORD lpcchBuffer);
2221BOOL WINAPI GetUserNameW(LPWSTR lpBuffer, LPDWORD lpccBuffer);
2222#define GetUserName WINELIB_NAME_AW(GetUserName)
2223
2224BOOL WINAPI AbortSystemShutdownA(LPTSTR lpMachineName);
2225BOOL WINAPI AbortSystemShutdownW(LPWSTR lpMachineName);
2226#define AbortSystemShutdown WINELIB_NAME_AW(AbortSystemShutdown)
2227BOOL WINAPI AccessCheckAndAuditAlarmA(LPCSTR SubsystemName,
2228 LPVOID HandleId,
2229 LPTSTR ObjectTypeName,
2230 LPTSTR ObjectName,
2231 PSECURITY_DESCRIPTOR SecurityDescriptor,
2232 DWORD DesiredAccess,
2233 PGENERIC_MAPPING GenericMapping,
2234 BOOL ObjectCreation,
2235 LPDWORD GrantedAccess,
2236 LPBOOL AccessStatus,
2237 LPBOOL pfGenerateOnClose);
2238BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR SubsystemName,
2239 LPVOID HandleId,
2240 LPWSTR ObjectTypeName,
2241 LPWSTR ObjectName,
2242 PSECURITY_DESCRIPTOR SecurityDescriptor,
2243 DWORD DesiredAccess,
2244 PGENERIC_MAPPING GenericMapping,
2245 BOOL ObjectCreation,
2246 LPDWORD GrantedAccess,
2247 LPBOOL AccessStatus,
2248 LPBOOL pfGenerateOnClose);
2249#define AccessCheckAndAuditAlarm WINELIB_NAME_AW(AccessCheckAndAuditAlarm)
2250BOOL WINAPI AddAccessAllowedAce(PACL pAcl,
2251 DWORD dwAceRevision,
2252 DWORD AccessMask,
2253 PSID pSid);
2254BOOL WINAPI AddAccessDeniedAce(PACL pAcl,
2255 DWORD dwAceRevision,
2256 DWORD AccessMask,
2257 PSID pSid);
2258BOOL WINAPI AddAce(PACL pAcl,
2259 DWORD dwAceRevision,
2260 DWORD dwStartingAceIndex,
2261 LPVOID pAceList,
2262 DWORD nAceListLength);
2263BOOL WINAPI AddAuditAccessAce(PACL pAcl,
2264 DWORD dwAceRevision,
2265 DWORD dwAccessMask,
2266 PSID pSid,
2267 BOOL bAuditSuccess,
2268 BOOL bAuditFailure);
2269BOOL WINAPI AdjustTokenGroups(HANDLE TokenHandle,
2270 BOOL ResetToDefault,
2271 PTOKEN_GROUPS NewState,
2272 DWORD BufferLength,
2273 PTOKEN_GROUPS PreviousState,
2274 LPDWORD ReturnLength);
2275BOOL WINAPI AllocateLocallyUniqueId(PLUID Luid);
2276BOOL WINAPI AreAllAccessesGranted(DWORD GrantedAccess,
2277 DWORD DesiredAccess);
2278BOOL WINAPI AreAnyAccessesGranted(DWORD GrantedAccess,
2279 DWORD DesiredAccess);
2280BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR ParentDescriptor,
2281 PSECURITY_DESCRIPTOR CreatorDescriptor,
2282 PSECURITY_DESCRIPTOR *NewDescriptor,
2283 BOOL IsDirectoryObject,
2284 HANDLE Token,
2285 PGENERIC_MAPPING GenericMapping);
2286BOOL WINAPI CreateProcessAsUserA(HANDLE hToken,
2287 LPCSTR lpApplicationName,
2288 LPTSTR lpCommandLine,
2289 LPSECURITY_ATTRIBUTES lpProcessAttributes,
2290 LPSECURITY_ATTRIBUTES lpThreadAttributes,
2291 BOOL bInheritHandles,
2292 DWORD dwCreationFlags,
2293 LPVOID lpEnvironment,
2294 LPCSTR lpCurrentDirectory,
2295 LPSTARTUPINFOA lpStartupInfo,
2296 LPPROCESS_INFORMATION lpProcessInformation);
2297BOOL WINAPI CreateProcessAsUserW(HANDLE hToken,
2298 LPCWSTR lpApplicationName,
2299 LPWSTR lpCommandLine,
2300 LPSECURITY_ATTRIBUTES lpProcessAttributes,
2301 LPSECURITY_ATTRIBUTES lpThreadAttributes,
2302 BOOL bInheritHandles,
2303 DWORD dwCreationFlags,
2304 LPVOID lpEnvironment,
2305 LPCWSTR lpCurrentDirectory,
2306 LPSTARTUPINFOA lpStartupInfo,
2307 LPPROCESS_INFORMATION lpProcessInformation);
2308#define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
2309BOOL WINAPI DeleteAce(PACL pAcl,
2310 DWORD dwAceIndex);
2311BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR *ObjectDescriptor);
2312BOOL WINAPI DuplicateToken(HANDLE ExistingTokenHandle,
2313 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
2314 PHANDLE DuplicateTokenHandle);
2315BOOL WINAPI FindFirstFreeAce(PACL pAcl,
2316 LPVOID *pAce);
2317BOOL WINAPI GetAce(PACL pAcl,
2318 DWORD dwAceIndex,
2319 LPVOID *pAce);
2320BOOL WINAPI GetAclInformation(PACL pAcl,
2321 LPVOID pAclInformation,
2322 DWORD nAclInformationLength,
2323 ACL_INFORMATION_CLASS dwAclInformationClass);
2324BOOL WINAPI GetKernelObjectSecurity(HANDLE Handle,
2325 SECURITY_INFORMATION RequestedInformation,
2326 PSECURITY_DESCRIPTOR pSecurityDescriptor,
2327 DWORD nLength,
2328 LPDWORD lpnLengthNeeded);
2329BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR ObjectDescriptor,
2330 SECURITY_INFORMATION SecurityInformation,
2331 PSECURITY_DESCRIPTOR ResultantDescriptor,
2332 DWORD DescriptorLength,
2333 LPDWORD ReturnLength);
2334BOOL WINAPI ImpersonateLoggedOnUser(HANDLE hToken);
2335BOOL WINAPI ImpersonateNamedPipeClient(HANDLE hNamedPipe);
2336BOOL WINAPI InitiateSystemShutdownA(LPTSTR lpMachineName,
2337 LPTSTR lpMessage,
2338 DWORD dwTimeout,
2339 BOOL bForceAppsClosed,
2340 BOOL bRebootAfterShutdown);
2341BOOL WINAPI InitiateSystemShutdownW(LPWSTR lpMachineName,
2342 LPWSTR lpMessage,
2343 DWORD dwTimeout,
2344 BOOL bForceAppsClosed,
2345 BOOL bRebootAfterShutdown);
2346#define InitiateSystemShutdown WINELIB_NAME_AW(InitiateSystemShutdown)
2347BOOL WINAPI IsValidAcl(PACL pAcl);
2348BOOL WINAPI LogonUserA(LPTSTR lpszUsername,
2349 LPTSTR lpszDomain,
2350 LPTSTR lpszPassword,
2351 DWORD dwLogonType,
2352 DWORD dwLogonProvider,
2353 PHANDLE phToken);
2354BOOL WINAPI LogonUserW(LPWSTR lpszUsername,
2355 LPWSTR lpszDomain,
2356 LPWSTR lpszPassword,
2357 DWORD dwLogonType,
2358 DWORD dwLogonProvider,
2359 PHANDLE phToken);
2360#define LogonUser WINELIB_NAME_AW(LogonUser)
2361BOOL WINAPI IsValidSid(PSID pSid);
2362BOOL WINAPI EqualSid(PSID pSid1,
2363 PSID pSid2);
2364BOOL WINAPI EqualPrefixSid(PSID pSid1,
2365 PSID pSid2);
2366DWORD WINAPI GetSidLengthRequired(BYTE nSubAuthorityCount);
2367BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
2368 BYTE nSubAuthorityCount,
2369 DWORD nSubAuthority0,
2370 DWORD nSubAuthority1,
2371 DWORD nSubAuthority2,
2372 DWORD nSubAuthority3,
2373 DWORD nSubAuthority4,
2374 DWORD nSubAuthority5,
2375 DWORD nSubAuthority6,
2376 DWORD nSubAuthority7,
2377 PSID* pSid);
2378VOID* WINAPI FreeSid(PSID pSid);
2379BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor,
2380 DWORD dwRevision);
2381BOOL WINAPI InitializeSid(PSID Sid,
2382 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
2383 BYTE nSubAuthorityCount);
2384DWORD* WINAPI GetSidSubAuthority(PSID pSid, DWORD nSubAuthority);
2385BYTE * WINAPI GetSidSubAuthorityCount(PSID pSid);
2386DWORD WINAPI GetLengthSid(PSID pSid);
2387BOOL WINAPI CopySid(DWORD nDestinationSidLength,
2388 PSID pDestinationSid,
2389 PSID pSourceSid);
2390BOOL WINAPI LookupAccountSidA(LPCSTR lpSystemName,
2391 PSID Sid,
2392 LPSTR Name,
2393 LPDWORD cchName,
2394 LPSTR ReferencedDomainName,
2395 LPDWORD cchReferencedDomainName,
2396 PSID_NAME_USE peUse);
2397BOOL WINAPI LookupAccountSidW(LPCWSTR lpSystemName,
2398 PSID Sid,
2399 LPWSTR Name,
2400 LPDWORD cchName,
2401 LPWSTR ReferencedDomainName,
2402 LPDWORD cchReferencedDomainName,
2403 PSID_NAME_USE peUse);
2404#define LookupAccountSid WINELIB_NAME_AW(LookupAccountSid)
2405PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID pSid);
2406BOOL WINAPI LookupAccountNameA(LPCSTR lpSystemName,
2407 LPCSTR lpAccountName,
2408 PSID Sid,
2409 LPDWORD cbSid,
2410 LPTSTR ReferencedDomainName,
2411 LPDWORD cbReferencedDomainName,
2412 PSID_NAME_USE peUse);
2413BOOL WINAPI LookupAccountNameW(LPCWSTR lpSystemName,
2414 LPCWSTR lpAccountName,
2415 PSID Sid,
2416 LPDWORD cbSid,
2417 LPWSTR ReferencedDomainName,
2418 LPDWORD cbReferencedDomainName,
2419 PSID_NAME_USE peUse);
2420#define LookupAccountName WINELIB_NAME_AW(LookupAccountName)
2421BOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR lpSystemName,
2422 LPCSTR lpName,
2423 LPTSTR lpDisplayName,
2424 LPDWORD cbDisplayName,
2425 LPDWORD lpLanguageId);
2426BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR lpSystemName,
2427 LPCWSTR lpName,
2428 LPWSTR lpDisplayName,
2429 LPDWORD cbDisplayName,
2430 LPDWORD lpLanguageId);
2431#define LookupPrivilegeDisplayName WINELIB_NAME_AW(LookupPrivilegeDisplayName)
2432BOOL WINAPI LookupPrivilegeNameA(LPCSTR lpSystemName,
2433 PLUID lpLuid,
2434 LPTSTR lpName,
2435 LPDWORD cbName);
2436BOOL WINAPI LookupPrivilegeNameW(LPCWSTR lpSystemName,
2437 PLUID lpLuid,
2438 LPWSTR lpName,
2439 LPDWORD cbName);
2440#define LookupPrivilegeName WINELIB_NAME_AW(LookupPrivilegeName)
2441BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
2442 PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
2443 LPDWORD lpdwAbsoluteSecurityDescriptorSize,
2444 PACL pDacl,
2445 LPDWORD lpdwDaclSize,
2446 PACL pSacl,
2447 LPDWORD lpdwSaclSize,
2448 PSID pOwner,
2449 LPDWORD lpdwOwnerSize,
2450 PSID pPrimaryGroup,
2451 LPDWORD lpdwPrimaryGroupSize);
2452VOID WINAPI MapGenericMask(LPDWORD AccessMask,
2453 PGENERIC_MAPPING GenericMapping);
2454BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR SubsystemName,
2455 LPVOID HandleId,
2456 BOOL GenerateOnClose);
2457BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR SubsystemName,
2458 LPVOID HandleId,
2459 BOOL GenerateOnClose);
2460#define ObjectCloseAuditAlarm WINELIB_NAME_AW(ObjectCloseAuditAlarm)
2461BOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR SubsystemName,
2462 LPVOID HandleId,
2463 LPTSTR ObjectTypeName,
2464 LPTSTR ObjectName,
2465 PSECURITY_DESCRIPTOR pSecurityDescriptor,
2466 HANDLE ClientToken,
2467 DWORD DesiredAccess,
2468 DWORD GrantedAccess,
2469 PPRIVILEGE_SET Privileges,
2470 BOOL ObjectCreation,
2471 BOOL AccessGranted,
2472 LPBOOL GenerateOnClose);
2473BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR SubsystemName,
2474 LPVOID HandleId,
2475 LPWSTR ObjectTypeName,
2476 LPWSTR ObjectName,
2477 PSECURITY_DESCRIPTOR pSecurityDescriptor,
2478 HANDLE ClientToken,
2479 DWORD DesiredAccess,
2480 DWORD GrantedAccess,
2481 PPRIVILEGE_SET Privileges,
2482 BOOL ObjectCreation,
2483 BOOL AccessGranted,
2484 LPBOOL GenerateOnClose);
2485#define ObjectOpenAuditAlarm WINELIB_NAME_AW(ObjectOpenAuditAlarm)
2486BOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR lpszSubsystem,
2487 LPVOID lpvHandleId,
2488 HANDLE hClientToken,
2489 DWORD dwDesiredAccess,
2490 PPRIVILEGE_SET pps,
2491 BOOL fAccessGranted);
2492BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR lpszSubsystem,
2493 LPVOID lpvHandleId,
2494 HANDLE hClientToken,
2495 DWORD dwDesiredAccess,
2496 PPRIVILEGE_SET pps,
2497 BOOL fAccessGranted);
2498#define ObjectPrivilegeAuditAlarm WINELIB_NAME_AW(ObjectPrivilegeAuditAlarm)
2499BOOL WINAPI PrivilegeCheck(HANDLE hClientToken,
2500 PPRIVILEGE_SET pps,
2501 LPBOOL lpfResult);
2502BOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR lpszSubsystem,
2503 LPCSTR lpszService,
2504 HANDLE hClientToken,
2505 PPRIVILEGE_SET pps,
2506 BOOL fAccessGranted);
2507BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR lpszSubsystem,
2508 LPCWSTR lpszService,
2509 HANDLE hClientToken,
2510 PPRIVILEGE_SET pps,
2511 BOOL fAccessGranted);
2512#define PrivilegedServiceAuditAlarm WINELIB_NAME_AW(PrivilegedServiceAuditAlarm)
2513BOOL WINAPI SetAclInformation(PACL pAcl,
2514 LPVOID lpvAclInfo,
2515 DWORD cbAclInfo,
2516 ACL_INFORMATION_CLASS aclic);
2517BOOL WINAPI SetKernelObjectSecurity(HANDLE hObject,
2518 SECURITY_INFORMATION si,
2519 PSECURITY_DESCRIPTOR psd);
2520BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION si,
2521 PSECURITY_DESCRIPTOR psdSource,
2522 PSECURITY_DESCRIPTOR *lppsdTarget,
2523 PGENERIC_MAPPING pgm,
2524 HANDLE hClientToken);
2525
2526
2527HANDLE WINAPI CreateNamedPipeA(LPCSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode,
2528 DWORD nMaxInstances, DWORD nOutBufferSize,
2529 DWORD nInBufferSize, DWORD nDefaultTimeOut,
2530 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2531HANDLE WINAPI CreateNamedPipeW(LPCWSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode,
2532 DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize,
2533 DWORD nDefaultTimeOut, LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2534#define CreateNamedPipe WINELIB_NAME_AW(CreateNamedPipe)
2535
2536BOOL WINAPI GetNamedPipeHandleStateA(HANDLE hNamedPipe, LPDWORD lpState,
2537 LPDWORD lpCurInstances, LPDWORD lpMaxCollectionCount,
2538 LPDWORD lpCollectDataTimeout, LPSTR lpUserName,
2539 DWORD nMaxUserNameSize);
2540BOOL WINAPI GetNamedPipeHandleStateW(HANDLE hNamedPipe,LPDWORD lpState, LPDWORD lpCurInstances,
2541 LPDWORD lpMaxCollectionCount, LPDWORD lpCollectDataTimeout,
2542 LPWSTR lpUserName, DWORD nMaxUserNameSize);
2543#define GetNamedPipeHandleState WINELIB_NAME_AW(GetNamedPipeHandleState)
2544
2545BOOL WINAPI CallNamedPipeA(LPCSTR lpNamedPipeName, LPVOID lpInBuffer, DWORD nInBufferSize,
2546 LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead,
2547 DWORD nTimeOut);
2548BOOL WINAPI CallNamedPipeW(LPCWSTR lpNamedPipeName, LPVOID lpInBuffer, DWORD nInBufferSize,
2549 LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead,
2550 DWORD nTimeOut);
2551#define CallNamedPipe WINELIB_NAME_AW(CallNamedPipe)
2552
2553
2554BOOL WINAPI WaitNamedPipeA(LPCSTR lpNamedPipeName, DWORD nTimeOut);
2555BOOL WINAPI WaitNamedPipeW(LPCWSTR lpNamedPipeName, DWORD nTimeOut);
2556
2557#define WaitNamedPipe WINELIB_NAME_AW(WaitNamedPipe)
2558
2559BOOL WINAPI CreatePipe(PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes,
2560 DWORD nSize);
2561BOOL WINAPI ConnectNamedPipe(HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped);
2562BOOL WINAPI DisconnectNamedPipe(HANDLE hNamedPipe);
2563BOOL WINAPI SetNamedPipeHandleState(HANDLE hNamedPipe, LPDWORD lpMode,
2564 LPDWORD lpMaxCollectionCount, LPDWORD lpCollectDataTimeout);
2565BOOL WINAPI GetNamedPipeInfo(HANDLE hNamedPipe, LPDWORD lpFlags, LPDWORD lpOutBufferSize,
2566 LPDWORD lpInBufferSize, LPDWORD lpMaxInstances);
2567BOOL WINAPI PeekNamedPipe(HANDLE hNamedPipe, LPVOID lpBuffer, DWORD nBufferSize,
2568 LPDWORD lpBytesRead, LPDWORD lpTotalBytesAvail,
2569 LPDWORD lpBytesLeftThisMessage);
2570BOOL WINAPI TransactNamedPipe(HANDLE hNamedPipe, LPVOID lpInBuffer, DWORD nInBufferSize,
2571 LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead,
2572 LPOVERLAPPED lpOverlapped);
2573
2574HANDLE WINAPI CreateMailslotA(LPCSTR lpName, DWORD nMaxMessageSize, DWORD lReadTimeout,
2575 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2576HANDLE WINAPI CreateMailslotW(LPCWSTR lpName, DWORD nMaxMessageSize, DWORD lReadTimeout,
2577 LPSECURITY_ATTRIBUTES lpSecurityAttributes);
2578#define CreateMailslot WINELIB_NAME_AW(WaitNamedPipe)
2579
2580BOOL WINAPI GetMailslotInfo(HANDLE hMailslot, LPDWORD lpMaxMessageSize,
2581 LPDWORD lpNextSize, LPDWORD lpMessageCount,
2582 LPDWORD lpReadTimeout);
2583
2584BOOL WINAPI SetMailslotInfo(HANDLE hMailslot, DWORD lReadTimeout);
2585
2586/* undocumented functions */
2587
2588typedef struct tagSYSLEVEL
2589{
2590 CRITICAL_SECTION crst;
2591 INT level;
2592} SYSLEVEL;
2593
2594/* [GS]etProcessDword offsets */
2595#define GPD_APP_COMPAT_FLAGS (-56)
2596#define GPD_LOAD_DONE_EVENT (-52)
2597#define GPD_HINSTANCE16 (-48)
2598#define GPD_WINDOWS_VERSION (-44)
2599#define GPD_THDB (-40)
2600#define GPD_PDB (-36)
2601#define GPD_STARTF_SHELLDATA (-32)
2602#define GPD_STARTF_HOTKEY (-28)
2603#define GPD_STARTF_SHOWWINDOW (-24)
2604#define GPD_STARTF_SIZE (-20)
2605#define GPD_STARTF_POSITION (-16)
2606#define GPD_STARTF_FLAGS (-12)
2607#define GPD_PARENT (- 8)
2608#define GPD_FLAGS (- 4)
2609#define GPD_USERDATA ( 0)
2610
2611void WINAPI DisposeLZ32Handle(HANDLE);
2612HANDLE WINAPI DosFileHandleToWin32Handle(HFILE);
2613DWORD WINAPI GetProcessDword(DWORD,INT);
2614VOID WINAPI GetpWin16Lock(SYSLEVEL**);
2615DWORD WINAPI MapLS(LPCVOID);
2616DWORD WINAPI MapProcessHandle(HANDLE);
2617LPVOID WINAPI MapSL(DWORD);
2618VOID WINAPI ReleaseThunkLock(DWORD*);
2619VOID WINAPI RestoreThunkLock(DWORD);
2620void WINAPI SetProcessDword(DWORD,INT,DWORD);
2621VOID WINAPI UnMapLS(DWORD);
2622HFILE WINAPI Win32HandleToDosFileHandle(HANDLE);
2623VOID WINAPI _CheckNotSysLevel(SYSLEVEL *lock);
2624DWORD WINAPI _ConfirmWin16Lock(void);
2625DWORD WINAPI _ConfirmSysLevel(SYSLEVEL*);
2626VOID WINAPI _EnterSysLevel(SYSLEVEL*);
2627VOID WINAPI _LeaveSysLevel(SYSLEVEL*);
2628
2629#ifdef __WIN32OS2__
2630HANDLE WINAPI FindFirstVolumeA(LPTSTR lpszVolumeName, DWORD cchBufferLength);
2631HANDLE WINAPI FindFirstVolumeW(LPWSTR lpszVolumeName, DWORD cchBufferLength);
2632#define FindFirstVolume WINELIB_NAME_AW(FindFirstVolume)
2633
2634BOOL WINAPI FindNextVolumeA(HANDLE hFindVolume, LPTSTR lpszVolumeName,
2635 DWORD cchBufferLength);
2636BOOL WINAPI FindNextVolumeW(HANDLE hFindVolume, LPWSTR lpszVolumeName,
2637 DWORD cchBufferLength);
2638#define FindNextVolume WINELIB_NAME_AW(FindNextVolume)
2639
2640BOOL WINAPI FindVolumeClose(HANDLE hFindVolume);
2641
2642HANDLE WINAPI FindFirstVolumeMountPointA(LPTSTR lpszRootPathName,
2643 LPTSTR lpszVolumeMountPoint,
2644 DWORD cchBufferLength);
2645HANDLE WINAPI FindFirstVolumeMountPointW(LPWSTR lpszRootPathName,
2646 LPWSTR lpszVolumeMountPoint,
2647 DWORD cchBufferLength);
2648#define FindFirstVolumeMountPoint WINELIB_NAME_AW(FindFirstVolumeMountPoint)
2649
2650BOOL WINAPI FindNextVolumeMountPointA(HANDLE hFindVolumeMountPoint,
2651 LPTSTR lpszVolumeMountPoint,
2652 DWORD cchBufferLength);
2653BOOL WINAPI FindNextVolumeMountPointW(HANDLE hFindVolumeMountPoint,
2654 LPWSTR lpszVolumeMountPoint,
2655 DWORD cchBufferLength);
2656#define FindNextVolumeMountPoint WINELIB_NAME_AW(FindNextVolumeMountPoint)
2657
2658BOOL WINAPI FindVolumeMountPointClose(HANDLE hFindVolumeMountPoint);
2659
2660BOOL WINAPI GetVolumeNameForVolumeMountPointA(LPCSTR lpszVolumeMountPoint,
2661 LPSTR lpszVolumeName,
2662 DWORD cchBufferLength);
2663BOOL WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR lpszVolumeMountPoint,
2664 LPWSTR lpszVolumeName,
2665 DWORD cchBufferLength);
2666#define GetVolumeNameForVolumeMountPoint WINELIB_NAME_AW(GetVolumeNameForVolumeMountPoint)
2667
2668BOOL WINAPI GetVolumePathNameA(LPCSTR,LPSTR,DWORD);
2669BOOL WINAPI GetVolumePathNameW(LPCWSTR,LPWSTR,DWORD);
2670#define GetVolumePathName WINELIB_NAME_AW(GetVolumePathName)
2671
2672#endif
2673
2674#ifdef __cplusplus
2675}
2676#endif
2677
2678#endif /* __WINE_WINBASE_H */
Note: See TracBrowser for help on using the repository browser.