- New implementation of SendMessage, ReceiveMessage, ReplyMessage functions
[wine] / include / winbase.h
1 #ifndef __WINE_WINBASE_H
2 #define __WINE_WINBASE_H
3
4 #include "winnt.h"
5
6 #pragma pack(1)
7
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 typedef 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
23 typedef 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
35 typedef struct _EXCEPTION_DEBUG_INFO {
36 /*    EXCEPTION_RECORD ExceptionRecord; */
37     DWORD dwFirstChange;
38 } EXCEPTION_DEBUG_INFO;
39
40 typedef struct _CREATE_THREAD_DEBUG_INFO {
41     HANDLE32 hThread;
42     LPVOID lpThreadLocalBase;
43     LPTHREAD_START_ROUTINE lpStartAddress;
44 } CREATE_THREAD_DEBUG_INFO;
45
46 typedef struct _CREATE_PROCESS_DEBUG_INFO {
47     HANDLE32 hFile;
48     HANDLE32 hProcess;
49     HANDLE32 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
59 typedef struct _EXIT_THREAD_DEBUG_INFO {
60     DWORD dwExitCode;
61 } EXIT_THREAD_DEBUG_INFO;
62
63 typedef struct _EXIT_PROCESS_DEBUG_INFO {
64     DWORD dwExitCode;
65 } EXIT_PROCESS_DEBUG_INFO;
66
67 typedef struct _LOAD_DLL_DEBUG_INFO {
68     HANDLE32 hFile;
69     LPVOID   lpBaseOfDll;
70     DWORD    dwDebugInfoFileOffset;
71     DWORD    nDebugInfoSize;
72     LPVOID   lpImageName;
73     WORD     fUnicode;
74 } LOAD_DLL_DEBUG_INFO;
75
76 typedef struct _UNLOAD_DLL_DEBUG_INFO {
77     LPVOID lpBaseOfDll;
78 } UNLOAD_DLL_DEBUG_INFO;
79
80 typedef struct _OUTPUT_DEBUG_STRING_INFO {
81     LPSTR lpDebugStringData;
82     WORD  fUnicode;
83     WORD  nDebugStringLength;
84 } OUTPUT_DEBUG_STRING_INFO;
85
86 typedef struct _RIP_INFO {
87     DWORD dwError;
88     DWORD dwType;
89 } RIP_INFO;
90
91 typedef 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 OFS_MAXPATHNAME 128
109 typedef struct
110 {
111     BYTE cBytes;
112     BYTE fFixedDisk;
113     WORD nErrCode;
114     BYTE reserved[4];
115     BYTE szPathName[OFS_MAXPATHNAME];
116 } OFSTRUCT, *LPOFSTRUCT;
117
118 #define OF_READ               0x0000
119 #define OF_WRITE              0x0001
120 #define OF_READWRITE          0x0002
121 #define OF_SHARE_COMPAT       0x0000
122 #define OF_SHARE_EXCLUSIVE    0x0010
123 #define OF_SHARE_DENY_WRITE   0x0020
124 #define OF_SHARE_DENY_READ    0x0030
125 #define OF_SHARE_DENY_NONE    0x0040
126 #define OF_PARSE              0x0100
127 #define OF_DELETE             0x0200
128 #define OF_VERIFY             0x0400   /* Used with OF_REOPEN */
129 #define OF_SEARCH             0x0400   /* Used without OF_REOPEN */
130 #define OF_CANCEL             0x0800
131 #define OF_CREATE             0x1000
132 #define OF_PROMPT             0x2000
133 #define OF_EXIST              0x4000
134 #define OF_REOPEN             0x8000
135
136 /* SetErrorMode values */
137 #define SEM_FAILCRITICALERRORS      0x0001
138 #define SEM_NOGPFAULTERRORBOX       0x0002
139 #define SEM_NOALIGNMENTFAULTEXCEPT  0x0004
140 #define SEM_NOOPENFILEERRORBOX      0x8000
141
142 /* CopyFileEx flags */
143 #define COPY_FILE_FAIL_IF_EXISTS        0x00000001
144 #define COPY_FILE_RESTARTABLE           0x00000002
145 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
146
147 /* GetTempFileName() Flags */
148 #define TF_FORCEDRIVE           0x80
149
150 #define DRIVE_CANNOTDETERMINE      0
151 #define DRIVE_DOESNOTEXIST         1
152 #define DRIVE_REMOVABLE            2
153 #define DRIVE_FIXED                3
154 #define DRIVE_REMOTE               4
155 /* Win32 additions */
156 #define DRIVE_CDROM                5
157 #define DRIVE_RAMDISK              6
158
159 /* The security attributes structure */
160 typedef struct
161 {
162     DWORD   nLength;
163     LPVOID  lpSecurityDescriptor;
164     BOOL32  bInheritHandle;
165 } SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
166
167 typedef DWORD SECURITY_INFORMATION;
168
169
170 #ifndef _FILETIME_
171 #define _FILETIME_
172 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
173 typedef struct
174 {
175   DWORD  dwLowDateTime;
176   DWORD  dwHighDateTime;
177 } FILETIME, *LPFILETIME;
178 #endif /* _FILETIME_ */
179
180 /* Find* structures */
181 typedef struct
182 {
183     DWORD     dwFileAttributes;
184     FILETIME  ftCreationTime;
185     FILETIME  ftLastAccessTime;
186     FILETIME  ftLastWriteTime;
187     DWORD     nFileSizeHigh;
188     DWORD     nFileSizeLow;
189     DWORD     dwReserved0;
190     DWORD     dwReserved1;
191     CHAR      cFileName[260];
192     CHAR      cAlternateFileName[14];
193 } WIN32_FIND_DATA32A, *LPWIN32_FIND_DATA32A;
194
195 typedef struct
196 {
197     DWORD     dwFileAttributes;
198     FILETIME  ftCreationTime;
199     FILETIME  ftLastAccessTime;
200     FILETIME  ftLastWriteTime;
201     DWORD     nFileSizeHigh;
202     DWORD     nFileSizeLow;
203     DWORD     dwReserved0;
204     DWORD     dwReserved1;
205     WCHAR     cFileName[260];
206     WCHAR     cAlternateFileName[14];
207 } WIN32_FIND_DATA32W, *LPWIN32_FIND_DATA32W;
208
209 DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA)
210 DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA)
211
212 #define INVALID_HANDLE_VALUE16  ((HANDLE16) -1)
213 #define INVALID_HANDLE_VALUE32  ((HANDLE32) -1)
214 #define INVALID_HANDLE_VALUE WINELIB_NAME(INVALID_HANDLE_VALUE)
215
216 /* comm */
217
218 #define CBR_110 0xFF10
219 #define CBR_300 0xFF11
220 #define CBR_600 0xFF12
221 #define CBR_1200        0xFF13
222 #define CBR_2400        0xFF14
223 #define CBR_4800        0xFF15
224 #define CBR_9600        0xFF16
225 #define CBR_14400       0xFF17
226 #define CBR_19200       0xFF18
227 #define CBR_38400       0xFF1B
228 #define CBR_56000       0xFF1F
229 #define CBR_128000      0xFF23
230 #define CBR_256000      0xFF27
231
232 #define NOPARITY        0
233 #define ODDPARITY       1
234 #define EVENPARITY      2
235 #define MARKPARITY      3
236 #define SPACEPARITY     4
237 #define ONESTOPBIT      0
238 #define ONE5STOPBITS    1
239 #define TWOSTOPBITS     2
240
241 #define IGNORE          0
242 #define INFINITE16      0xFFFF
243 #define INFINITE32      0xFFFFFFFF
244 #define INFINITE WINELIB_NAME(INFINITE)
245
246 #define CE_RXOVER       0x0001
247 #define CE_OVERRUN      0x0002
248 #define CE_RXPARITY     0x0004
249 #define CE_FRAME        0x0008
250 #define CE_BREAK        0x0010
251 #define CE_CTSTO        0x0020
252 #define CE_DSRTO        0x0040
253 #define CE_RLSDTO       0x0080
254 #define CE_TXFULL       0x0100
255 #define CE_PTO          0x0200
256 #define CE_IOE          0x0400
257 #define CE_DNS          0x0800
258 #define CE_OOP          0x1000
259 #define CE_MODE 0x8000
260
261 #define IE_BADID        -1
262 #define IE_OPEN -2
263 #define IE_NOPEN        -3
264 #define IE_MEMORY       -4
265 #define IE_DEFAULT      -5
266 #define IE_HARDWARE     -10
267 #define IE_BYTESIZE     -11
268 #define IE_BAUDRATE     -12
269
270 #define EV_RXCHAR       0x0001
271 #define EV_RXFLAG       0x0002
272 #define EV_TXEMPTY      0x0004
273 #define EV_CTS          0x0008
274 #define EV_DSR          0x0010
275 #define EV_RLSD 0x0020
276 #define EV_BREAK        0x0040
277 #define EV_ERR          0x0080
278 #define EV_RING 0x0100
279 #define EV_PERR 0x0200
280 #define EV_CTSS 0x0400
281 #define EV_DSRS 0x0800
282 #define EV_RLSDS        0x1000
283 #define EV_RINGTE       0x2000
284 #define EV_RingTe       EV_RINGTE
285
286 #define SETXOFF 1
287 #define SETXON          2
288 #define SETRTS          3
289 #define CLRRTS          4
290 #define SETDTR          5
291 #define CLRDTR          6
292 #define RESETDEV        7
293 #define SETBREAK        8
294 #define CLRBREAK        9
295
296 #define GETBASEIRQ      10
297
298 /* Purge functions for Comm Port */
299 #define PURGE_TXABORT       0x0001  /* Kill the pending/current writes to the 
300                                        comm port */
301 #define PURGE_RXABORT       0x0002  /*Kill the pending/current reads to 
302                                      the comm port */
303 #define PURGE_TXCLEAR       0x0004  /* Kill the transmit queue if there*/
304 #define PURGE_RXCLEAR       0x0008  /* Kill the typeahead buffer if there*/
305
306
307 /* Modem Status Flags */
308 #define MS_CTS_ON           ((DWORD)0x0010)
309 #define MS_DSR_ON           ((DWORD)0x0020)
310 #define MS_RING_ON          ((DWORD)0x0040)
311 #define MS_RLSD_ON          ((DWORD)0x0080)
312
313 #define RTS_CONTROL_DISABLE     0
314 #define RTS_CONTROL_ENABLE      1
315 #define RTS_CONTROL_HANDSHAKE   2
316 #define RTS_CONTROL_TOGGLE      3
317
318 #define DTR_CONTROL_DISABLE     0
319 #define DTR_CONTROL_ENABLE      1
320 #define DTR_CONTROL_HANDSHAKE   2
321
322 #define CSTF_CTSHOLD    0x01
323 #define CSTF_DSRHOLD    0x02
324 #define CSTF_RLSDHOLD   0x04
325 #define CSTF_XOFFHOLD   0x08
326 #define CSTF_XOFFSENT   0x10
327 #define CSTF_EOF        0x20
328 #define CSTF_TXIM       0x40
329
330 #define MAKEINTRESOURCE32A(i) (LPSTR)((DWORD)((WORD)(i)))
331 #define MAKEINTRESOURCE32W(i) (LPWSTR)((DWORD)((WORD)(i)))
332 #define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE)
333
334 /* Predefined resource types */
335 #define RT_CURSOR32A         MAKEINTRESOURCE32A(1)
336 #define RT_CURSOR32W         MAKEINTRESOURCE32W(1)
337 #define RT_CURSOR            WINELIB_NAME_AW(RT_CURSOR)
338 #define RT_BITMAP32A         MAKEINTRESOURCE32A(2)
339 #define RT_BITMAP32W         MAKEINTRESOURCE32W(2)
340 #define RT_BITMAP            WINELIB_NAME_AW(RT_BITMAP)
341 #define RT_ICON32A           MAKEINTRESOURCE32A(3)
342 #define RT_ICON32W           MAKEINTRESOURCE32W(3)
343 #define RT_ICON              WINELIB_NAME_AW(RT_ICON)
344 #define RT_MENU32A           MAKEINTRESOURCE32A(4)
345 #define RT_MENU32W           MAKEINTRESOURCE32W(4)
346 #define RT_MENU              WINELIB_NAME_AW(RT_MENU)
347 #define RT_DIALOG32A         MAKEINTRESOURCE32A(5)
348 #define RT_DIALOG32W         MAKEINTRESOURCE32W(5)
349 #define RT_DIALOG            WINELIB_NAME_AW(RT_DIALOG)
350 #define RT_STRING32A         MAKEINTRESOURCE32A(6)
351 #define RT_STRING32W         MAKEINTRESOURCE32W(6)
352 #define RT_STRING            WINELIB_NAME_AW(RT_STRING)
353 #define RT_FONTDIR32A        MAKEINTRESOURCE32A(7)
354 #define RT_FONTDIR32W        MAKEINTRESOURCE32W(7)
355 #define RT_FONTDIR           WINELIB_NAME_AW(RT_FONTDIR)
356 #define RT_FONT32A           MAKEINTRESOURCE32A(8)
357 #define RT_FONT32W           MAKEINTRESOURCE32W(8)
358 #define RT_FONT              WINELIB_NAME_AW(RT_FONT)
359 #define RT_ACCELERATOR32A    MAKEINTRESOURCE32A(9)
360 #define RT_ACCELERATOR32W    MAKEINTRESOURCE32W(9)
361 #define RT_ACCELERATOR       WINELIB_NAME_AW(RT_ACCELERATOR)
362 #define RT_RCDATA32A         MAKEINTRESOURCE32A(10)
363 #define RT_RCDATA32W         MAKEINTRESOURCE32W(10)
364 #define RT_RCDATA            WINELIB_NAME_AW(RT_RCDATA)
365 #define RT_MESSAGELIST32A    MAKEINTRESOURCE32A(11)
366 #define RT_MESSAGELIST32W    MAKEINTRESOURCE32W(11)
367 #define RT_MESSAGELIST       WINELIB_NAME_AW(RT_MESSAGELIST)
368 #define RT_GROUP_CURSOR32A   MAKEINTRESOURCE32A(12)
369 #define RT_GROUP_CURSOR32W   MAKEINTRESOURCE32W(12)
370 #define RT_GROUP_CURSOR      WINELIB_NAME_AW(RT_GROUP_CURSOR)
371 #define RT_GROUP_ICON32A     MAKEINTRESOURCE32A(14)
372 #define RT_GROUP_ICON32W     MAKEINTRESOURCE32W(14)
373 #define RT_GROUP_ICON        WINELIB_NAME_AW(RT_GROUP_ICON)
374
375
376 #define LMEM_FIXED          0   
377 #define LMEM_MOVEABLE       0x0002
378 #define LMEM_NOCOMPACT      0x0010
379 #define LMEM_NODISCARD      0x0020
380 #define LMEM_ZEROINIT       0x0040
381 #define LMEM_MODIFY         0x0080
382 #define LMEM_DISCARDABLE    0x0F00
383 #define LMEM_DISCARDED      0x4000
384 #define LMEM_LOCKCOUNT      0x00FF
385
386 #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
387
388 #define GMEM_FIXED          0x0000
389 #define GMEM_MOVEABLE       0x0002
390 #define GMEM_NOCOMPACT      0x0010
391 #define GMEM_NODISCARD      0x0020
392 #define GMEM_ZEROINIT       0x0040
393 #define GMEM_MODIFY         0x0080
394 #define GMEM_DISCARDABLE    0x0100
395 #define GMEM_NOT_BANKED     0x1000
396 #define GMEM_SHARE          0x2000
397 #define GMEM_DDESHARE       0x2000
398 #define GMEM_NOTIFY         0x4000
399 #define GMEM_LOWER          GMEM_NOT_BANKED
400 #define GMEM_DISCARDED      0x4000
401 #define GMEM_LOCKCOUNT      0x00ff
402 #define GMEM_INVALID_HANDLE 0x8000
403
404 #define GHND                (GMEM_MOVEABLE | GMEM_ZEROINIT)
405 #define GPTR                (GMEM_FIXED | GMEM_ZEROINIT)
406
407
408 typedef struct tagMEMORYSTATUS
409 {
410     DWORD    dwLength;
411     DWORD    dwMemoryLoad;
412     DWORD    dwTotalPhys;
413     DWORD    dwAvailPhys;
414     DWORD    dwTotalPageFile;
415     DWORD    dwAvailPageFile;
416     DWORD    dwTotalVirtual;
417     DWORD    dwAvailVirtual;
418 } MEMORYSTATUS, *LPMEMORYSTATUS;
419
420
421 #ifndef NOLOGERROR
422
423 /* LogParamError and LogError values */
424
425 /* Error modifier bits */
426 #define ERR_WARNING             0x8000
427 #define ERR_PARAM               0x4000
428
429 #define ERR_SIZE_MASK           0x3000
430 #define ERR_BYTE                0x1000
431 #define ERR_WORD                0x2000
432 #define ERR_DWORD               0x3000
433
434 /* LogParamError() values */
435
436 /* Generic parameter values */
437 #define ERR_BAD_VALUE           0x6001
438 #define ERR_BAD_FLAGS           0x6002
439 #define ERR_BAD_INDEX           0x6003
440 #define ERR_BAD_DVALUE          0x7004
441 #define ERR_BAD_DFLAGS          0x7005
442 #define ERR_BAD_DINDEX          0x7006
443 #define ERR_BAD_PTR             0x7007
444 #define ERR_BAD_FUNC_PTR        0x7008
445 #define ERR_BAD_SELECTOR        0x6009
446 #define ERR_BAD_STRING_PTR      0x700a
447 #define ERR_BAD_HANDLE          0x600b
448
449 /* KERNEL parameter errors */
450 #define ERR_BAD_HINSTANCE       0x6020
451 #define ERR_BAD_HMODULE         0x6021
452 #define ERR_BAD_GLOBAL_HANDLE   0x6022
453 #define ERR_BAD_LOCAL_HANDLE    0x6023
454 #define ERR_BAD_ATOM            0x6024
455 #define ERR_BAD_HFILE           0x6025
456
457 /* USER parameter errors */
458 #define ERR_BAD_HWND            0x6040
459 #define ERR_BAD_HMENU           0x6041
460 #define ERR_BAD_HCURSOR         0x6042
461 #define ERR_BAD_HICON           0x6043
462 #define ERR_BAD_HDWP            0x6044
463 #define ERR_BAD_CID             0x6045
464 #define ERR_BAD_HDRVR           0x6046
465
466 /* GDI parameter errors */
467 #define ERR_BAD_COORDS          0x7060
468 #define ERR_BAD_GDI_OBJECT      0x6061
469 #define ERR_BAD_HDC             0x6062
470 #define ERR_BAD_HPEN            0x6063
471 #define ERR_BAD_HFONT           0x6064
472 #define ERR_BAD_HBRUSH          0x6065
473 #define ERR_BAD_HBITMAP         0x6066
474 #define ERR_BAD_HRGN            0x6067
475 #define ERR_BAD_HPALETTE        0x6068
476 #define ERR_BAD_HMETAFILE       0x6069
477
478
479 /* LogError() values */
480
481 /* KERNEL errors */
482 #define ERR_GALLOC              0x0001
483 #define ERR_GREALLOC            0x0002
484 #define ERR_GLOCK               0x0003
485 #define ERR_LALLOC              0x0004
486 #define ERR_LREALLOC            0x0005
487 #define ERR_LLOCK               0x0006
488 #define ERR_ALLOCRES            0x0007
489 #define ERR_LOCKRES             0x0008
490 #define ERR_LOADMODULE          0x0009
491
492 /* USER errors */
493 #define ERR_CREATEDLG           0x0040
494 #define ERR_CREATEDLG2          0x0041
495 #define ERR_REGISTERCLASS       0x0042
496 #define ERR_DCBUSY              0x0043
497 #define ERR_CREATEWND           0x0044
498 #define ERR_STRUCEXTRA          0x0045
499 #define ERR_LOADSTR             0x0046
500 #define ERR_LOADMENU            0x0047
501 #define ERR_NESTEDBEGINPAINT    0x0048
502 #define ERR_BADINDEX            0x0049
503 #define ERR_CREATEMENU          0x004a
504
505 /* GDI errors */
506 #define ERR_CREATEDC            0x0080
507 #define ERR_CREATEMETA          0x0081
508 #define ERR_DELOBJSELECTED      0x0082
509 #define ERR_SELBITMAP           0x0083
510
511
512
513 /* Debugging support (DEBUG SYSTEM ONLY) */
514 typedef struct
515 {
516     UINT16  flags;
517     DWORD   dwOptions WINE_PACKED;
518     DWORD   dwFilter WINE_PACKED;
519     CHAR    achAllocModule[8] WINE_PACKED;
520     DWORD   dwAllocBreak WINE_PACKED;
521     DWORD   dwAllocCount WINE_PACKED;
522 } WINDEBUGINFO, *LPWINDEBUGINFO;
523
524 /* WINDEBUGINFO flags values */
525 #define WDI_OPTIONS         0x0001
526 #define WDI_FILTER          0x0002
527 #define WDI_ALLOCBREAK      0x0004
528
529 /* dwOptions values */
530 #define DBO_CHECKHEAP       0x0001
531 #define DBO_BUFFERFILL      0x0004
532 #define DBO_DISABLEGPTRAPPING 0x0010
533 #define DBO_CHECKFREE       0x0020
534
535 #define DBO_SILENT          0x8000
536
537 #define DBO_TRACEBREAK      0x2000
538 #define DBO_WARNINGBREAK    0x1000
539 #define DBO_NOERRORBREAK    0x0800
540 #define DBO_NOFATALBREAK    0x0400
541 #define DBO_INT3BREAK       0x0100
542
543 /* DebugOutput flags values */
544 #define DBF_TRACE           0x0000
545 #define DBF_WARNING         0x4000
546 #define DBF_ERROR           0x8000
547 #define DBF_FATAL           0xc000
548
549 /* dwFilter values */
550 #define DBF_KERNEL          0x1000
551 #define DBF_KRN_MEMMAN      0x0001
552 #define DBF_KRN_LOADMODULE  0x0002
553 #define DBF_KRN_SEGMENTLOAD 0x0004
554 #define DBF_USER            0x0800
555 #define DBF_GDI             0x0400
556 #define DBF_MMSYSTEM        0x0040
557 #define DBF_PENWIN          0x0020
558 #define DBF_APPLICATION     0x0008
559 #define DBF_DRIVER          0x0010
560
561 #endif /* NOLOGERROR */
562
563 typedef struct {
564         WORD wYear;
565         WORD wMonth;
566         WORD wDayOfWeek;
567         WORD wDay;
568         WORD wHour;
569         WORD wMinute;
570         WORD wSecond;
571         WORD wMilliseconds;
572 } SYSTEMTIME, *LPSYSTEMTIME;
573
574
575 /* Code page information.
576  */
577 #define MAX_LEADBYTES     12
578 #define MAX_DEFAULTCHAR   2
579
580 typedef struct
581 {
582     UINT32 MaxCharSize;
583     BYTE   DefaultChar[MAX_DEFAULTCHAR];
584     BYTE   LeadByte[MAX_LEADBYTES];
585 } CPINFO, *LPCPINFO;
586
587 /* The 'overlapped' data structure used by async I/O functions.
588  */
589 typedef struct {
590         DWORD Internal;
591         DWORD InternalHigh;
592         DWORD Offset;
593         DWORD OffsetHigh;
594         HANDLE32 hEvent;
595 } OVERLAPPED, *LPOVERLAPPED;
596
597 /* Process startup information.
598  */
599
600 /* STARTUPINFO.dwFlags */
601 #define STARTF_USESHOWWINDOW    0x00000001
602 #define STARTF_USESIZE          0x00000002
603 #define STARTF_USEPOSITION      0x00000004
604 #define STARTF_USECOUNTCHARS    0x00000008
605 #define STARTF_USEFILLATTRIBUTE 0x00000010
606 #define STARTF_RUNFULLSCREEN    0x00000020
607 #define STARTF_FORCEONFEEDBACK  0x00000040
608 #define STARTF_FORCEOFFFEEDBACK 0x00000080
609 #define STARTF_USESTDHANDLES    0x00000100
610 #define STARTF_USEHOTKEY        0x00000200
611
612 typedef struct {
613         DWORD cb;               /* 00: size of struct */
614         LPSTR lpReserved;       /* 04: */
615         LPSTR lpDesktop;        /* 08: */
616         LPSTR lpTitle;          /* 0c: */
617         DWORD dwX;              /* 10: */
618         DWORD dwY;              /* 14: */
619         DWORD dwXSize;          /* 18: */
620         DWORD dwYSize;          /* 1c: */
621         DWORD dwXCountChars;    /* 20: */
622         DWORD dwYCountChars;    /* 24: */
623         DWORD dwFillAttribute;  /* 28: */
624         DWORD dwFlags;          /* 2c: */
625         WORD wShowWindow;       /* 30: */
626         WORD cbReserved2;       /* 32: */
627         BYTE *lpReserved2;      /* 34: */
628         HANDLE32 hStdInput;     /* 38: */
629         HANDLE32 hStdOutput;    /* 3c: */
630         HANDLE32 hStdError;     /* 40: */
631 } STARTUPINFO32A, *LPSTARTUPINFO32A;
632
633 typedef struct {
634         DWORD cb;
635         LPWSTR lpReserved;
636         LPWSTR lpDesktop;
637         LPWSTR lpTitle;
638         DWORD dwX;
639         DWORD dwY;
640         DWORD dwXSize;
641         DWORD dwYSize;
642         DWORD dwXCountChars;
643         DWORD dwYCountChars;
644         DWORD dwFillAttribute;
645         DWORD dwFlags;
646         WORD wShowWindow;
647         WORD cbReserved2;
648         BYTE *lpReserved2;
649         HANDLE32 hStdInput;
650         HANDLE32 hStdOutput;
651         HANDLE32 hStdError;
652 } STARTUPINFO32W, *LPSTARTUPINFO32W;
653
654 DECL_WINELIB_TYPE_AW(STARTUPINFO)
655 DECL_WINELIB_TYPE_AW(LPSTARTUPINFO)
656
657 typedef struct {
658         HANDLE32        hProcess;
659         HANDLE32        hThread;
660         DWORD           dwProcessId;
661         DWORD           dwThreadId;
662 } PROCESS_INFORMATION,*LPPROCESS_INFORMATION;
663
664 typedef struct {
665         LONG Bias;
666         WCHAR StandardName[32];
667         SYSTEMTIME StandardDate;
668         LONG StandardBias;
669         WCHAR DaylightName[32];
670         SYSTEMTIME DaylightDate;
671         LONG DaylightBias;
672 } TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
673
674 #define TIME_ZONE_ID_UNKNOWN    0
675 #define TIME_ZONE_ID_STANDARD   1
676 #define TIME_ZONE_ID_DAYLIGHT   2
677
678 /* CreateProcess: dwCreationFlag values
679  */
680 #define DEBUG_PROCESS               0x00000001
681 #define DEBUG_ONLY_THIS_PROCESS     0x00000002
682 #define CREATE_SUSPENDED            0x00000004
683 #define DETACHED_PROCESS            0x00000008
684 #define CREATE_NEW_CONSOLE          0x00000010
685 #define NORMAL_PRIORITY_CLASS       0x00000020
686 #define IDLE_PRIORITY_CLASS         0x00000040
687 #define HIGH_PRIORITY_CLASS         0x00000080
688 #define REALTIME_PRIORITY_CLASS     0x00000100
689 #define CREATE_NEW_PROCESS_GROUP    0x00000200
690 #define CREATE_UNICODE_ENVIRONMENT  0x00000400
691 #define CREATE_SEPARATE_WOW_VDM     0x00000800
692 #define CREATE_SHARED_WOW_VDM       0x00001000
693 #define CREATE_DEFAULT_ERROR_MODE   0x04000000
694 #define CREATE_NO_WINDOW            0x08000000
695 #define PROFILE_USER                0x10000000
696 #define PROFILE_KERNEL              0x20000000
697 #define PROFILE_SERVER              0x40000000
698
699
700 /* File object type definitions
701  */
702 #define FILE_TYPE_UNKNOWN       0
703 #define FILE_TYPE_DISK          1
704 #define FILE_TYPE_CHAR          2
705 #define FILE_TYPE_PIPE          3
706 #define FILE_TYPE_REMOTE        32768
707
708 /* File creation flags
709  */
710 #define FILE_FLAG_WRITE_THROUGH    0x80000000UL
711 #define FILE_FLAG_OVERLAPPED       0x40000000L
712 #define FILE_FLAG_NO_BUFFERING     0x20000000L
713 #define FILE_FLAG_RANDOM_ACCESS    0x10000000L
714 #define FILE_FLAG_SEQUENTIAL_SCAN  0x08000000L
715 #define FILE_FLAG_DELETE_ON_CLOSE  0x04000000L
716 #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L
717 #define FILE_FLAG_POSIX_SEMANTICS  0x01000000L
718 #define CREATE_NEW              1
719 #define CREATE_ALWAYS           2
720 #define OPEN_EXISTING           3
721 #define OPEN_ALWAYS             4
722 #define TRUNCATE_EXISTING       5
723
724 /* Standard handle identifiers
725  */
726 #define STD_INPUT_HANDLE        ((DWORD) -10)
727 #define STD_OUTPUT_HANDLE       ((DWORD) -11)
728 #define STD_ERROR_HANDLE        ((DWORD) -12)
729
730 typedef struct
731 {
732   int dwFileAttributes;
733   FILETIME ftCreationTime;
734   FILETIME ftLastAccessTime;
735   FILETIME ftLastWriteTime;
736   int dwVolumeSerialNumber;
737   int nFileSizeHigh;
738   int nFileSizeLow;
739   int nNumberOfLinks;
740   int nFileIndexHigh;
741   int nFileIndexLow;
742 } BY_HANDLE_FILE_INFORMATION ;
743
744
745 typedef struct _SYSTEM_POWER_STATUS
746 {
747   BOOL16  ACLineStatus;
748   BYTE    BatteryFlag;
749   BYTE    BatteryLifePercent;
750   BYTE    reserved;
751   DWORD   BatteryLifeTime;
752   DWORD   BatteryFullLifeTime;
753 } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
754
755 typedef struct _MEMORY_BASIC_INFORMATION
756 {
757     LPVOID   BaseAddress;
758     LPVOID   AllocationBase;
759     DWORD    AllocationProtect;
760     DWORD    RegionSize;
761     DWORD    State;
762     DWORD    Protect;
763     DWORD    Type;
764 } MEMORY_BASIC_INFORMATION,*LPMEMORY_BASIC_INFORMATION;
765
766
767 typedef BOOL32 (CALLBACK *CODEPAGE_ENUMPROC32A)(LPSTR);
768 typedef BOOL32 (CALLBACK *CODEPAGE_ENUMPROC32W)(LPWSTR);
769 DECL_WINELIB_TYPE_AW(CODEPAGE_ENUMPROC)
770 typedef BOOL32 (CALLBACK *LOCALE_ENUMPROC32A)(LPSTR);
771 typedef BOOL32 (CALLBACK *LOCALE_ENUMPROC32W)(LPWSTR);
772 DECL_WINELIB_TYPE_AW(LOCALE_ENUMPROC)
773
774 typedef struct tagSYSTEM_INFO
775 {
776     union {
777         DWORD   dwOemId;
778         struct {
779                 WORD wProcessorArchitecture;
780                 WORD wReserved;
781         } x;
782     } u;
783     DWORD       dwPageSize;
784     LPVOID      lpMinimumApplicationAddress;
785     LPVOID      lpMaximumApplicationAddress;
786     DWORD       dwActiveProcessorMask;
787     DWORD       dwNumberOfProcessors;
788     DWORD       dwProcessorType;
789     DWORD       dwAllocationGranularity;
790     WORD        wProcessorLevel;
791     WORD        wProcessorRevision;
792 } SYSTEM_INFO, *LPSYSTEM_INFO;
793
794 /* service main function prototype */
795 typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTION32A)(DWORD,LPSTR);
796 typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTION32W)(DWORD,LPWSTR);
797 DECL_WINELIB_TYPE_AW(LPSERVICE_MAIN_FUNCTION)
798
799 /* service start table */
800 typedef struct
801 {
802     LPSTR                       lpServiceName;
803     LPSERVICE_MAIN_FUNCTION32A  lpServiceProc;
804 } *LPSERVICE_TABLE_ENTRY32A, SERVICE_TABLE_ENTRY32A;
805
806 typedef struct
807 {
808     LPWSTR                      lpServiceName;
809     LPSERVICE_MAIN_FUNCTION32W  lpServiceProc;
810 } *LPSERVICE_TABLE_ENTRY32W, SERVICE_TABLE_ENTRY32W;
811
812 DECL_WINELIB_TYPE_AW(SERVICE_TABLE_ENTRY)
813 DECL_WINELIB_TYPE_AW(LPSERVICE_TABLE_ENTRY)
814
815 /* {G,S}etPriorityClass */
816 #define NORMAL_PRIORITY_CLASS   0x00000020
817 #define IDLE_PRIORITY_CLASS     0x00000040
818 #define HIGH_PRIORITY_CLASS     0x00000080
819 #define REALTIME_PRIORITY_CLASS 0x00000100
820
821 typedef BOOL32 (CALLBACK *ENUMRESTYPEPROC32A)(HMODULE32,LPSTR,LONG);
822 typedef BOOL32 (CALLBACK *ENUMRESTYPEPROC32W)(HMODULE32,LPWSTR,LONG);
823 typedef BOOL32 (CALLBACK *ENUMRESNAMEPROC32A)(HMODULE32,LPCSTR,LPSTR,LONG);
824 typedef BOOL32 (CALLBACK *ENUMRESNAMEPROC32W)(HMODULE32,LPCWSTR,LPWSTR,LONG);
825 typedef BOOL32 (CALLBACK *ENUMRESLANGPROC32A)(HMODULE32,LPCSTR,LPCSTR,WORD,LONG);
826 typedef BOOL32 (CALLBACK *ENUMRESLANGPROC32W)(HMODULE32,LPCWSTR,LPCWSTR,WORD,LONG);
827
828 DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC)
829 DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC)
830 DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC)
831
832 /* flags that can be passed to LoadLibraryEx */
833 #define DONT_RESOLVE_DLL_REFERENCES     0x00000001
834 #define LOAD_LIBRARY_AS_DATAFILE        0x00000002
835 #define LOAD_WITH_ALTERED_SEARCH_PATH   0x00000008
836
837 /* ifdef _x86_ ... */
838 typedef struct _LDT_ENTRY {
839     WORD        LimitLow;
840     WORD        BaseLow;
841     union {
842         struct {
843             BYTE        BaseMid;
844             BYTE        Flags1;/*Declare as bytes to avoid alignment problems */
845             BYTE        Flags2; 
846             BYTE        BaseHi;
847         } Bytes;
848         struct {
849             DWORD       BaseMid         : 8;
850             DWORD       Type            : 5;
851             DWORD       Dpl             : 2;
852             DWORD       Pres            : 1;
853             DWORD       LimitHi         : 4;
854             DWORD       Sys             : 1;
855             DWORD       Reserved_0      : 1;
856             DWORD       Default_Big     : 1;
857             DWORD       Granularity     : 1;
858             DWORD       BaseHi          : 8;
859         } Bits;
860     } HighWord;
861 } LDT_ENTRY, *LPLDT_ENTRY;
862
863 /* for WOWHandle{16,32} */
864 typedef enum _WOW_HANDLE_TYPE { /* WOW */
865     WOW_TYPE_HWND,
866     WOW_TYPE_HMENU,
867     WOW_TYPE_HDWP,
868     WOW_TYPE_HDROP,
869     WOW_TYPE_HDC,
870     WOW_TYPE_HFONT,
871     WOW_TYPE_HMETAFILE,
872     WOW_TYPE_HRGN,
873     WOW_TYPE_HBITMAP,
874     WOW_TYPE_HBRUSH,
875     WOW_TYPE_HPALETTE,
876     WOW_TYPE_HPEN,
877     WOW_TYPE_HACCEL,
878     WOW_TYPE_HTASK,
879     WOW_TYPE_FULLHWND
880 } WOW_HANDLE_TYPE;
881
882 /* WOWCallback16Ex defines */
883 #define WCB16_MAX_CBARGS        16
884 /* ... dwFlags */
885 #define WCB16_PASCAL            0x0
886 #define WCB16_CDECL             0x1
887
888 typedef enum _GET_FILEEX_INFO_LEVELS {
889     GetFileExInfoStandard
890 } GET_FILEEX_INFO_LEVELS;
891
892 typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
893     DWORD    dwFileAttributes;
894     FILETIME ftCreationTime;
895     FILETIME ftLastAccessTime;
896     FILETIME ftLastWriteTime;
897     DWORD    nFileSizeHigh;
898     DWORD    nFileSizeLow;
899 } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
900
901 typedef struct _DllVersionInfo {
902     DWORD cbSize;
903     DWORD dwMajorVersion;
904     DWORD dwMinorVersion;
905     DWORD dwBuildNumber;
906     DWORD dwPlatformID;
907 } DLLVERSIONINFO;
908
909 /*
910  * This one seems to be a Win32 only definition. It also is defined with
911  * WINAPI instead of CALLBACK in the windows headers.
912  */
913 typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, 
914                                            LARGE_INTEGER, DWORD, DWORD, HANDLE32,
915                                            HANDLE32, LPVOID);
916
917 #define DM_UPDATE       1
918 #define DM_COPY         2
919 #define DM_PROMPT       4
920 #define DM_MODIFY       8
921
922 #define DM_IN_BUFFER      DM_MODIFY
923 #define DM_IN_PROMPT      DM_PROMPT
924 #define DM_OUT_BUFFER     DM_COPY
925 #define DM_OUT_DEFAULT    DM_UPDATE
926
927 #define DM_ORIENTATION          0x00000001L
928 #define DM_PAPERSIZE            0x00000002L
929 #define DM_PAPERLENGTH          0x00000004L
930 #define DM_PAPERWIDTH           0x00000008L
931 #define DM_SCALE                0x00000010L
932 #define DM_COPIES               0x00000100L
933 #define DM_DEFAULTSOURCE        0x00000200L
934 #define DM_PRINTQUALITY         0x00000400L
935 #define DM_COLOR                0x00000800L
936 #define DM_DUPLEX               0x00001000L
937 #define DM_YRESOLUTION          0x00002000L
938 #define DM_TTOPTION             0x00004000L
939 #define DM_BITSPERPEL           0x00040000L
940 #define DM_PELSWIDTH            0x00080000L
941 #define DM_PELSHEIGHT           0x00100000L
942 #define DM_DISPLAYFLAGS         0x00200000L
943 #define DM_DISPLAYFREQUENCY     0x00400000L
944
945 /* etc.... */
946
947 #define DMORIENT_PORTRAIT       1
948 #define DMORIENT_LANDSCAPE      2
949
950 #define DMPAPER_LETTER          1
951 #define DMPAPER_LEGAL           5
952 #define DMPAPER_EXECUTIVE       7
953 #define DMPAPER_A3              8
954 #define DMPAPER_A4              9
955 #define DMPAPER_A5              11
956 #define DMPAPER_ENV_10          20
957 #define DMPAPER_ENV_DL          27
958 #define DMPAPER_ENV_C5          28
959 #define DMPAPER_ENV_B5          34
960 #define DMPAPER_ENV_MONARCH     37
961
962 #define DMBIN_UPPER             1
963 #define DMBIN_LOWER             2
964 #define DMBIN_MIDDLE            3
965 #define DMBIN_MANUAL            4
966 #define DMBIN_ENVELOPE          5
967 #define DMBIN_ENVMANUAL         6
968 #define DMBIN_AUTO              7
969 #define DMBIN_LARGECAPACITY     11
970
971 #define DMCOLOR_MONOCHROME      1
972 #define DMCOLOR_COLOR           2
973
974 #define DMTT_BITMAP             1
975 #define DMTT_DOWNLOAD           2
976 #define DMTT_SUBDEV             3
977
978 #define WAIT_FAILED             0xffffffff
979 #define WAIT_OBJECT_0           0
980 #define WAIT_ABANDONED          STATUS_ABANDONED_WAIT_0
981 #define WAIT_ABANDONED_0        STATUS_ABANDONED_WAIT_0
982 #define WAIT_IO_COMPLETION      STATUS_USER_APC
983 #define WAIT_TIMEOUT            STATUS_TIMEOUT
984
985 #define PAGE_NOACCESS           0x01
986 #define PAGE_READONLY           0x02
987 #define PAGE_READWRITE          0x04
988 #define PAGE_WRITECOPY          0x08
989 #define PAGE_EXECUTE            0x10
990 #define PAGE_EXECUTE_READ       0x20
991 #define PAGE_EXECUTE_READWRITE  0x40
992 #define PAGE_EXECUTE_WRITECOPY  0x80
993 #define PAGE_GUARD              0x100
994 #define PAGE_NOCACHE            0x200
995
996 #define MEM_COMMIT              0x00001000
997 #define MEM_RESERVE             0x00002000
998 #define MEM_DECOMMIT            0x00004000
999 #define MEM_RELEASE             0x00008000
1000 #define MEM_FREE                0x00010000
1001 #define MEM_PRIVATE             0x00020000
1002 #define MEM_MAPPED              0x00040000
1003 #define MEM_TOP_DOWN            0x00100000
1004
1005 #define SEC_FILE                0x00800000
1006 #define SEC_IMAGE               0x01000000
1007 #define SEC_RESERVE             0x04000000
1008 #define SEC_COMMIT              0x08000000
1009 #define SEC_NOCACHE             0x10000000
1010
1011 #define FILE_BEGIN              0
1012 #define FILE_CURRENT            1
1013 #define FILE_END                2
1014
1015 #define FILE_CASE_SENSITIVE_SEARCH      0x00000001
1016 #define FILE_CASE_PRESERVED_NAMES       0x00000002
1017 #define FILE_UNICODE_ON_DISK            0x00000004
1018 #define FILE_PERSISTENT_ACLS            0x00000008
1019
1020 #define FILE_MAP_COPY                   0x00000001
1021 #define FILE_MAP_WRITE                  0x00000002
1022 #define FILE_MAP_READ                   0x00000004
1023 #define FILE_MAP_ALL_ACCESS             0x000f001f
1024
1025 #define MOVEFILE_REPLACE_EXISTING       0x00000001
1026 #define MOVEFILE_COPY_ALLOWED           0x00000002
1027 #define MOVEFILE_DELAY_UNTIL_REBOOT     0x00000004
1028
1029 #define FS_CASE_SENSITIVE               FILE_CASE_SENSITIVE_SEARCH
1030 #define FS_CASE_IS_PRESERVED            FILE_CASE_PRESERVED_NAMES
1031 #define FS_UNICODE_STORED_ON_DISK       FILE_UNICODE_ON_DISK
1032
1033
1034 #define STATUS_SUCCESS                   0x00000000
1035 #define STATUS_WAIT_0                    0x00000000    
1036 #define STATUS_ABANDONED_WAIT_0          0x00000080    
1037 #define STATUS_USER_APC                  0x000000C0    
1038 #define STATUS_TIMEOUT                   0x00000102    
1039 #define STATUS_PENDING                   0x00000103    
1040 #define STATUS_GUARD_PAGE_VIOLATION      0x80000001    
1041 #define STATUS_DATATYPE_MISALIGNMENT     0x80000002    
1042 #define STATUS_BREAKPOINT                0x80000003    
1043 #define STATUS_SINGLE_STEP               0x80000004    
1044 #define STATUS_BUFFER_OVERFLOW           0x80000005
1045 #define STATUS_ACCESS_VIOLATION          0xC0000005    
1046 #define STATUS_IN_PAGE_ERROR             0xC0000006    
1047 #define STATUS_INVALID_PARAMETER         0xC000000D
1048 #define STATUS_NO_MEMORY                 0xC0000017    
1049 #define STATUS_ILLEGAL_INSTRUCTION       0xC000001D    
1050 #define STATUS_BUFFER_TOO_SMALL          0xC0000023
1051 #define STATUS_NONCONTINUABLE_EXCEPTION  0xC0000025    
1052 #define STATUS_INVALID_DISPOSITION       0xC0000026    
1053 #define STATUS_UNKNOWN_REVISION          0xC0000058
1054 #define STATUS_INVALID_SECURITY_DESCR    0xC0000079
1055 #define STATUS_ARRAY_BOUNDS_EXCEEDED     0xC000008C    
1056 #define STATUS_FLOAT_DENORMAL_OPERAND    0xC000008D    
1057 #define STATUS_FLOAT_DIVIDE_BY_ZERO      0xC000008E    
1058 #define STATUS_FLOAT_INEXACT_RESULT      0xC000008F    
1059 #define STATUS_FLOAT_INVALID_OPERATION   0xC0000090    
1060 #define STATUS_FLOAT_OVERFLOW            0xC0000091    
1061 #define STATUS_FLOAT_STACK_CHECK         0xC0000092    
1062 #define STATUS_FLOAT_UNDERFLOW           0xC0000093    
1063 #define STATUS_INTEGER_DIVIDE_BY_ZERO    0xC0000094    
1064 #define STATUS_INTEGER_OVERFLOW          0xC0000095    
1065 #define STATUS_PRIVILEGED_INSTRUCTION    0xC0000096    
1066 #define STATUS_INVALID_PARAMETER_2       0xC00000F0
1067 #define STATUS_STACK_OVERFLOW            0xC00000FD    
1068 #define STATUS_CONTROL_C_EXIT            0xC000013A    
1069
1070 #define DUPLICATE_CLOSE_SOURCE          0x00000001
1071 #define DUPLICATE_SAME_ACCESS           0x00000002
1072
1073 #define HANDLE_FLAG_INHERIT             0x00000001
1074 #define HANDLE_FLAG_PROTECT_FROM_CLOSE  0x00000002
1075
1076 #define HINSTANCE_ERROR 32
1077
1078 #define THREAD_PRIORITY_LOWEST          THREAD_BASE_PRIORITY_MIN
1079 #define THREAD_PRIORITY_BELOW_NORMAL    (THREAD_PRIORITY_LOWEST+1)
1080 #define THREAD_PRIORITY_NORMAL          0
1081 #define THREAD_PRIORITY_HIGHEST         THREAD_BASE_PRIORITY_MAX
1082 #define THREAD_PRIORITY_ABOVE_NORMAL    (THREAD_PRIORITY_HIGHEST-1)
1083 #define THREAD_PRIORITY_ERROR_RETURN    (0x7fffffff)
1084 #define THREAD_PRIORITY_TIME_CRITICAL   THREAD_BASE_PRIORITY_LOWRT
1085 #define THREAD_PRIORITY_IDLE            THREAD_BASE_PRIORITY_IDLE
1086
1087 typedef struct 
1088 {
1089   int type;
1090 } wine_exception;
1091
1092 typedef struct 
1093 {
1094   int pad[39];
1095   int edi;
1096   int esi;
1097   int ebx;
1098   int edx;
1099   int ecx;
1100   int eax;
1101
1102   int ebp;
1103   int eip;
1104   int cs;
1105   int eflags;
1106   int esp;
1107   int ss;
1108 } exception_info;
1109
1110 /* Could this type be considered opaque? */
1111 typedef struct {
1112         LPVOID  DebugInfo;
1113         LONG LockCount;
1114         LONG RecursionCount;
1115         HANDLE32 OwningThread;
1116         HANDLE32 LockSemaphore;
1117         DWORD Reserved;
1118 }CRITICAL_SECTION;
1119
1120 typedef struct {
1121         DWORD dwOSVersionInfoSize;
1122         DWORD dwMajorVersion;
1123         DWORD dwMinorVersion;
1124         DWORD dwBuildNumber;
1125         DWORD dwPlatformId;
1126         CHAR szCSDVersion[128];
1127 } OSVERSIONINFO16;
1128
1129 typedef struct {
1130         DWORD dwOSVersionInfoSize;
1131         DWORD dwMajorVersion;
1132         DWORD dwMinorVersion;
1133         DWORD dwBuildNumber;
1134         DWORD dwPlatformId;
1135         CHAR szCSDVersion[128];
1136 } OSVERSIONINFO32A;
1137
1138 typedef struct {
1139         DWORD dwOSVersionInfoSize;
1140         DWORD dwMajorVersion;
1141         DWORD dwMinorVersion;
1142         DWORD dwBuildNumber;
1143         DWORD dwPlatformId;
1144         WCHAR szCSDVersion[128];
1145 } OSVERSIONINFO32W;
1146
1147 DECL_WINELIB_TYPE_AW(OSVERSIONINFO)
1148
1149 #define VER_PLATFORM_WIN32s             0
1150 #define VER_PLATFORM_WIN32_WINDOWS      1
1151 #define VER_PLATFORM_WIN32_NT           2
1152
1153 typedef struct tagCOMSTAT
1154 {
1155     BYTE   status;
1156     UINT16 cbInQue WINE_PACKED;
1157     UINT16 cbOutQue WINE_PACKED;
1158 } COMSTAT,*LPCOMSTAT;
1159
1160 typedef struct tagDCB16
1161 {
1162     BYTE   Id;
1163     UINT16 BaudRate WINE_PACKED;
1164     BYTE   ByteSize;
1165     BYTE   Parity;
1166     BYTE   StopBits;
1167     UINT16 RlsTimeout;
1168     UINT16 CtsTimeout;
1169     UINT16 DsrTimeout;
1170
1171     UINT16 fBinary        :1;
1172     UINT16 fRtsDisable    :1;
1173     UINT16 fParity        :1;
1174     UINT16 fOutxCtsFlow   :1;
1175     UINT16 fOutxDsrFlow   :1;
1176     UINT16 fDummy         :2;
1177     UINT16 fDtrDisable    :1;
1178
1179     UINT16 fOutX          :1;
1180     UINT16 fInX           :1;
1181     UINT16 fPeChar        :1;
1182     UINT16 fNull          :1;
1183     UINT16 fChEvt         :1;
1184     UINT16 fDtrflow       :1;
1185     UINT16 fRtsflow       :1;
1186     UINT16 fDummy2        :1;
1187
1188     CHAR   XonChar;
1189     CHAR   XoffChar;
1190     UINT16 XonLim;
1191     UINT16 XoffLim;
1192     CHAR   PeChar;
1193     CHAR   EofChar;
1194     CHAR   EvtChar;
1195     UINT16 TxDelay WINE_PACKED;
1196 } DCB16, *LPDCB16;
1197
1198 typedef struct tagDCB32
1199 {
1200     DWORD DCBlength;
1201     DWORD BaudRate;
1202     DWORD fBinary               :1;
1203     DWORD fParity               :1;
1204     DWORD fOutxCtsFlow          :1;
1205     DWORD fOutxDsrFlow          :1;
1206     DWORD fDtrControl           :2;
1207     DWORD fDsrSensitivity       :1;
1208     DWORD fTXContinueOnXoff     :1;
1209     DWORD fOutX                 :1;
1210     DWORD fInX                  :1;
1211     DWORD fErrorChar            :1;
1212     DWORD fNull                 :1;
1213     DWORD fRtsControl           :2;
1214     DWORD fAbortOnError         :1;
1215     DWORD fDummy2               :17;
1216     WORD wReserved;
1217     WORD XonLim;
1218     WORD XoffLim;
1219     BYTE ByteSize;
1220     BYTE Parity;
1221     BYTE StopBits;
1222     char XonChar;
1223     char XoffChar;
1224     char ErrorChar;
1225     char EofChar;
1226     char EvtChar;
1227 } DCB32, *LPDCB32;
1228
1229 DECL_WINELIB_TYPE(DCB)
1230 DECL_WINELIB_TYPE(LPDCB)
1231
1232
1233 typedef struct tagCOMMTIMEOUTS {
1234         DWORD   ReadIntervalTimeout;
1235         DWORD   ReadTotalTimeoutMultiplier;
1236         DWORD   ReadTotalTimeoutConstant;
1237         DWORD   WriteTotalTimeoutMultiplier;
1238         DWORD   WriteTotalTimeoutConstant;
1239 } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
1240   
1241 #pragma pack(4)
1242
1243 typedef VOID (CALLBACK *PAPCFUNC)(ULONG_PTR);
1244
1245 BOOL32      WINAPI ClearCommError(INT32,LPDWORD,LPCOMSTAT);
1246 BOOL32      WINAPI BuildCommDCB32A(LPCSTR,LPDCB32);
1247 BOOL32      WINAPI BuildCommDCB32W(LPCWSTR,LPDCB32);
1248 #define     BuildCommDCB WINELIB_NAME_AW(BuildCommDCB)
1249 BOOL32      WINAPI BuildCommDCBAndTimeouts32A(LPCSTR,LPDCB32,LPCOMMTIMEOUTS);
1250 BOOL32      WINAPI BuildCommDCBAndTimeouts32W(LPCWSTR,LPDCB32,LPCOMMTIMEOUTS);
1251 #define     BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts)
1252 BOOL32      WINAPI GetCommTimeouts(INT32,LPCOMMTIMEOUTS);
1253 BOOL32      WINAPI SetCommTimeouts(INT32,LPCOMMTIMEOUTS);
1254 BOOL32      WINAPI GetCommState32(INT32,LPDCB32);
1255 #define     GetCommState WINELIB_NAME(GetCommState)
1256 BOOL32      WINAPI SetCommState32(INT32,LPDCB32);
1257 #define     SetCommState WINELIB_NAME(SetCommState)
1258 BOOL32      WINAPI TransmitCommChar32(INT32,CHAR);
1259 #define     TransmitCommChar WINELIB_NAME(TransmitCommChar)
1260
1261   
1262 /*DWORD WINAPI GetVersion( void );*/
1263 BOOL16 WINAPI GetVersionEx16(OSVERSIONINFO16*);
1264 BOOL32 WINAPI GetVersionEx32A(OSVERSIONINFO32A*);
1265 BOOL32 WINAPI GetVersionEx32W(OSVERSIONINFO32W*);
1266 #define GetVersionEx WINELIB_NAME_AW(GetVersionEx)
1267
1268 /*int WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);*/
1269
1270 void      WINAPI DeleteCriticalSection(CRITICAL_SECTION *lpCrit);
1271 void      WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit);
1272 void      WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
1273 void      WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
1274 void      WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit);
1275 HANDLE32  WINAPI OpenProcess(DWORD access, BOOL32 inherit, DWORD id);
1276 BOOL32    WINAPI GetProcessWorkingSetSize(HANDLE32,LPDWORD,LPDWORD);
1277 DWORD     WINAPI QueueUserAPC(PAPCFUNC,HANDLE32,ULONG_PTR);
1278 void      WINAPI RaiseException(DWORD,DWORD,DWORD,const LPDWORD);
1279 BOOL32    WINAPI SetProcessWorkingSetSize(HANDLE32,DWORD,DWORD);
1280 BOOL32    WINAPI TerminateProcess(HANDLE32,DWORD);
1281 BOOL32    WINAPI TerminateThread(HANDLE32,DWORD);
1282
1283
1284 /* GetBinaryType return values.
1285  */
1286
1287 #define SCS_32BIT_BINARY    0
1288 #define SCS_DOS_BINARY      1
1289 #define SCS_WOW_BINARY      2
1290 #define SCS_PIF_BINARY      3
1291 #define SCS_POSIX_BINARY    4
1292 #define SCS_OS216_BINARY    5
1293
1294 BOOL32 WINAPI GetBinaryType32A( LPCSTR lpApplicationName, LPDWORD lpBinaryType );
1295 BOOL32 WINAPI GetBinaryType32W( LPCWSTR lpApplicationName, LPDWORD lpBinaryType );
1296 #define GetBinaryType WINELIB_NAME_AW(GetBinaryType)
1297
1298 BOOL16      WINAPI GetWinDebugInfo(LPWINDEBUGINFO,UINT16);
1299 BOOL16      WINAPI SetWinDebugInfo(LPWINDEBUGINFO);
1300 /* Declarations for functions that exist only in Win32 */
1301
1302 BOOL32      WINAPI AllocConsole(void);
1303 BOOL32      WINAPI AreFileApisANSI(void);
1304 BOOL32      WINAPI Beep(DWORD,DWORD);
1305 BOOL32      WINAPI CloseHandle(HANDLE32);
1306 HANDLE32    WINAPI ConvertToGlobalHandle(HANDLE32 hSrc);
1307 BOOL32      WINAPI CopyFile32A(LPCSTR,LPCSTR,BOOL32);
1308 BOOL32      WINAPI CopyFile32W(LPCWSTR,LPCWSTR,BOOL32);
1309 #define     CopyFile WINELIB_NAME_AW(CopyFile)
1310 BOOL32      WINAPI CopyFileEx32A(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL32, DWORD);
1311 BOOL32      WINAPI CopyFileEx32W(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL32, DWORD);
1312 #define     CopyFileEx WINELIB_NAME_AW(CopyFileEx)
1313 INT32       WINAPI CompareFileTime(LPFILETIME,LPFILETIME);
1314 HANDLE32    WINAPI CreateEvent32A(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCSTR);
1315 HANDLE32    WINAPI CreateEvent32W(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCWSTR);
1316 #define     CreateEvent WINELIB_NAME_AW(CreateEvent)
1317 HFILE32     WINAPI CreateFile32A(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
1318                                  DWORD,DWORD,HANDLE32);
1319 HFILE32     WINAPI CreateFile32W(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
1320                                  DWORD,DWORD,HANDLE32);
1321 #define     CreateFile WINELIB_NAME_AW(CreateFile)
1322 HANDLE32    WINAPI CreateFileMapping32A(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD,
1323                                         DWORD,DWORD,LPCSTR);
1324 HANDLE32    WINAPI CreateFileMapping32W(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD,
1325                                         DWORD,DWORD,LPCWSTR);
1326 #define     CreateFileMapping WINELIB_NAME_AW(CreateFileMapping)
1327 HANDLE32    WINAPI CreateMutex32A(LPSECURITY_ATTRIBUTES,BOOL32,LPCSTR);
1328 HANDLE32    WINAPI CreateMutex32W(LPSECURITY_ATTRIBUTES,BOOL32,LPCWSTR);
1329 #define     CreateMutex WINELIB_NAME_AW(CreateMutex)
1330 BOOL32      WINAPI CreateProcess32A(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,
1331                                     LPSECURITY_ATTRIBUTES,BOOL32,DWORD,LPVOID,LPCSTR,
1332                                     LPSTARTUPINFO32A,LPPROCESS_INFORMATION);
1333 BOOL32      WINAPI CreateProcess32W(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,
1334                                     LPSECURITY_ATTRIBUTES,BOOL32,DWORD,LPVOID,LPCWSTR,
1335                                     LPSTARTUPINFO32W,LPPROCESS_INFORMATION);
1336 #define     CreateProcess WINELIB_NAME_AW(CreateProcess)
1337 HANDLE32    WINAPI CreateSemaphore32A(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
1338 HANDLE32    WINAPI CreateSemaphore32W(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
1339 #define     CreateSemaphore WINELIB_NAME_AW(CreateSemaphore)
1340 HANDLE32    WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
1341 BOOL32      WINAPI DisableThreadLibraryCalls(HMODULE32);
1342 BOOL32      WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
1343 BOOL32      WINAPI DuplicateHandle(HANDLE32,HANDLE32,HANDLE32,HANDLE32*,DWORD,BOOL32,DWORD);
1344 BOOL32      WINAPI EnumDateFormats32A(DATEFMT_ENUMPROC32A lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
1345 BOOL32      WINAPI EnumDateFormats32W(DATEFMT_ENUMPROC32W lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
1346 #define     EnumDateFormats WINELIB_NAME_AW(EnumDateFormats)
1347 BOOL32      WINAPI EnumResourceLanguages32A(HMODULE32,LPCSTR,LPCSTR,
1348                                             ENUMRESLANGPROC32A,LONG);
1349 BOOL32      WINAPI EnumResourceLanguages32W(HMODULE32,LPCWSTR,LPCWSTR,
1350                                             ENUMRESLANGPROC32W,LONG);
1351 #define     EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages)
1352 BOOL32      WINAPI EnumResourceNames32A(HMODULE32,LPCSTR,ENUMRESNAMEPROC32A,
1353                                         LONG);
1354 BOOL32      WINAPI EnumResourceNames32W(HMODULE32,LPCWSTR,ENUMRESNAMEPROC32W,
1355                                         LONG);
1356 #define     EnumResourceNames WINELIB_NAME_AW(EnumResourceNames)
1357 BOOL32      WINAPI EnumResourceTypes32A(HMODULE32,ENUMRESTYPEPROC32A,LONG);
1358 BOOL32      WINAPI EnumResourceTypes32W(HMODULE32,ENUMRESTYPEPROC32W,LONG);
1359 #define     EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes)
1360 BOOL32      WINAPI EnumSystemCodePages32A(CODEPAGE_ENUMPROC32A,DWORD);
1361 BOOL32      WINAPI EnumSystemCodePages32W(CODEPAGE_ENUMPROC32W,DWORD);
1362 #define     EnumSystemCodePages WINELIB_NAME_AW(EnumSystemCodePages)
1363 BOOL32      WINAPI EnumSystemLocales32A(LOCALE_ENUMPROC32A,DWORD);
1364 BOOL32      WINAPI EnumSystemLocales32W(LOCALE_ENUMPROC32W,DWORD);
1365 #define     EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales)
1366 BOOL32      WINAPI EnumTimeFormats32A(TIMEFMT_ENUMPROC32A lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
1367 BOOL32      WINAPI EnumTimeFormats32W(TIMEFMT_ENUMPROC32W lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
1368 #define     EnumTimeFormats WINELIB_NAME_AW(EnumTimeFormats)
1369 VOID        WINAPI ExitProcess(DWORD);
1370 VOID        WINAPI ExitThread(DWORD);
1371 DWORD       WINAPI ExpandEnvironmentStrings32A(LPCSTR,LPSTR,DWORD);
1372 DWORD       WINAPI ExpandEnvironmentStrings32W(LPCWSTR,LPWSTR,DWORD);
1373 #define     ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings)
1374 BOOL32      WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD);
1375 BOOL32      WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME);
1376 BOOL32      WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME);
1377 HANDLE32    WINAPI FindFirstChangeNotification32A(LPCSTR,BOOL32,DWORD);
1378 HANDLE32    WINAPI FindFirstChangeNotification32W(LPCWSTR,BOOL32,DWORD);
1379 #define     FindFirstChangeNotification WINELIB_NAME_AW(FindFirstChangeNotification)
1380 BOOL32      WINAPI FindNextChangeNotification(HANDLE32);
1381 BOOL32      WINAPI FindCloseChangeNotification(HANDLE32);
1382 HRSRC32     WINAPI FindResourceEx32A(HMODULE32,LPCSTR,LPCSTR,WORD);
1383 HRSRC32     WINAPI FindResourceEx32W(HMODULE32,LPCWSTR,LPCWSTR,WORD);
1384 #define     FindResourceEx WINELIB_NAME_AW(FindResourceEx)
1385 BOOL32      WINAPI FlushConsoleInputBuffer(HANDLE32);
1386 BOOL32      WINAPI FlushFileBuffers(HFILE32);
1387 BOOL32      WINAPI FlushViewOfFile(LPCVOID, DWORD);
1388 DWORD       WINAPI FormatMessage32A(DWORD,LPCVOID,DWORD,DWORD,LPSTR,
1389                                     DWORD,LPDWORD);
1390 DWORD       WINAPI FormatMessage32W(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,
1391                                     DWORD,LPDWORD);
1392 #define     FormatMessage WINELIB_NAME_AW(FormatMessage)
1393 BOOL32      WINAPI FreeConsole(void);
1394 BOOL32      WINAPI FreeEnvironmentStrings32A(LPSTR);
1395 BOOL32      WINAPI FreeEnvironmentStrings32W(LPWSTR);
1396 #define     FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings)
1397 UINT32      WINAPI GetACP(void);
1398 LPCSTR      WINAPI GetCommandLine32A(void);
1399 LPCWSTR     WINAPI GetCommandLine32W(void);
1400 #define     GetCommandLine WINELIB_NAME_AW(GetCommandLine)
1401 BOOL32      WINAPI GetComputerName32A(LPSTR,LPDWORD);
1402 BOOL32      WINAPI GetComputerName32W(LPWSTR,LPDWORD);
1403 #define     GetComputerName WINELIB_NAME_AW(GetComputerName)
1404 UINT32      WINAPI GetConsoleCP(void);
1405 BOOL32      WINAPI GetConsoleMode(HANDLE32,LPDWORD);
1406 UINT32      WINAPI GetConsoleOutputCP(void);
1407 DWORD       WINAPI GetConsoleTitle32A(LPSTR,DWORD);
1408 DWORD       WINAPI GetConsoleTitle32W(LPWSTR,DWORD);
1409 #define     GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
1410 BOOL32      WINAPI GetCPInfo(UINT32,LPCPINFO);
1411 BOOL32      WINAPI GetCommMask(HANDLE32, LPDWORD);
1412 BOOL32      WINAPI GetCommModemStatus(HANDLE32, LPDWORD);
1413 HANDLE32    WINAPI GetCurrentProcess(void);
1414 DWORD       WINAPI GetCurrentProcessId(void);
1415 HANDLE32    WINAPI GetCurrentThread(void);
1416 DWORD       WINAPI GetCurrentThreadId(void);
1417 INT32       WINAPI GetDateFormat32A(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT32);
1418 INT32       WINAPI GetDateFormat32W(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT32);
1419 #define     GetDateFormat WINELIB_NAME_AW(GetDateFormat)
1420 LPSTR       WINAPI GetEnvironmentStrings32A(void);
1421 LPWSTR      WINAPI GetEnvironmentStrings32W(void);
1422 #define     GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings)
1423 DWORD       WINAPI GetEnvironmentVariable32A(LPCSTR,LPSTR,DWORD);
1424 DWORD       WINAPI GetEnvironmentVariable32W(LPCWSTR,LPWSTR,DWORD);
1425 #define     GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable)
1426 BOOL32      WINAPI GetFileAttributesEx32A(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
1427 BOOL32      WINAPI GetFileAttributesEx32W(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
1428 #define     GetFileattributesEx WINELIB_NAME_AW(GetFileAttributesEx)
1429 DWORD       WINAPI GetFileInformationByHandle(HFILE32,BY_HANDLE_FILE_INFORMATION*);
1430 DWORD       WINAPI GetFileSize(HFILE32,LPDWORD);
1431 BOOL32      WINAPI GetFileTime(HFILE32,LPFILETIME,LPFILETIME,LPFILETIME);
1432 DWORD       WINAPI GetFileType(HFILE32);
1433 DWORD       WINAPI GetFullPathName32A(LPCSTR,DWORD,LPSTR,LPSTR*);
1434 DWORD       WINAPI GetFullPathName32W(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1435 #define     GetFullPathName WINELIB_NAME_AW(GetFullPathName)
1436 BOOL32      WINAPI GetHandleInformation(HANDLE32,LPDWORD);
1437 DWORD       WINAPI GetLargestConsoleWindowSize(HANDLE32);
1438 VOID        WINAPI GetLocalTime(LPSYSTEMTIME);
1439 DWORD       WINAPI GetLogicalDrives(void);
1440 DWORD       WINAPI GetLongPathName32A(LPCSTR,LPSTR,DWORD);
1441 DWORD       WINAPI GetLongPathName32W(LPCWSTR,LPWSTR,DWORD);
1442 #define     GetLongPathName WINELIB_NAME_AW(GetLongPathName)
1443 BOOL32      WINAPI GetNumberOfConsoleInputEvents(HANDLE32,LPDWORD);
1444 BOOL32      WINAPI GetNumberOfConsoleMouseButtons(LPDWORD);
1445 UINT32      WINAPI GetOEMCP(void);
1446 DWORD       WINAPI GetPriorityClass(HANDLE32);
1447 HANDLE32    WINAPI GetProcessHeap(void);
1448 DWORD       WINAPI GetProcessVersion(DWORD);
1449 DWORD       WINAPI GetShortPathName32A(LPCSTR,LPSTR,DWORD);
1450 DWORD       WINAPI GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
1451 #define     GetShortPathName WINELIB_NAME_AW(GetShortPathName)
1452 HFILE32     WINAPI GetStdHandle(DWORD);
1453 BOOL32      WINAPI GetStringTypeEx32A(LCID,DWORD,LPCSTR,INT32,LPWORD);
1454 BOOL32      WINAPI GetStringTypeEx32W(LCID,DWORD,LPCWSTR,INT32,LPWORD);
1455 #define     GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx)
1456 VOID        WINAPI GetSystemInfo(LPSYSTEM_INFO);
1457 BOOL32      WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
1458 VOID        WINAPI GetSystemTime(LPSYSTEMTIME);
1459 INT32       WINAPI GetTimeFormat32A(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT32);
1460 INT32       WINAPI GetTimeFormat32W(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT32);
1461 #define     GetTimeFormat WINELIB_NAME_AW(GetTimeFormat)
1462 LCID        WINAPI GetThreadLocale(void);
1463 INT32       WINAPI GetThreadPriority(HANDLE32);
1464 BOOL32      WINAPI GetThreadSelectorEntry(HANDLE32,DWORD,LPLDT_ENTRY);
1465 VOID        WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
1466 LPVOID      WINAPI HeapAlloc(HANDLE32,DWORD,DWORD);
1467 DWORD       WINAPI HeapCompact(HANDLE32,DWORD);
1468 HANDLE32    WINAPI HeapCreate(DWORD,DWORD,DWORD);
1469 BOOL32      WINAPI HeapDestroy(HANDLE32);
1470 BOOL32      WINAPI HeapFree(HANDLE32,DWORD,LPVOID);
1471 BOOL32      WINAPI HeapLock(HANDLE32);
1472 LPVOID      WINAPI HeapReAlloc(HANDLE32,DWORD,LPVOID,DWORD);
1473 DWORD       WINAPI HeapSize(HANDLE32,DWORD,LPVOID);
1474 BOOL32      WINAPI HeapUnlock(HANDLE32);
1475 BOOL32      WINAPI HeapValidate(HANDLE32,DWORD,LPCVOID);
1476 LONG        WINAPI InterlockedDecrement(LPLONG);
1477 LONG        WINAPI InterlockedExchange(LPLONG,LONG);
1478 LONG        WINAPI InterlockedIncrement(LPLONG);
1479 BOOL32      WINAPI IsDBCSLeadByteEx(UINT32,BYTE);
1480 BOOL32      WINAPI IsProcessorFeaturePresent(DWORD);
1481 BOOL32      WINAPI IsValidLocale(DWORD,DWORD);
1482 BOOL32      WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
1483 BOOL32      WINAPI LockFile(HFILE32,DWORD,DWORD,DWORD,DWORD);
1484 HMODULE32   WINAPI MapHModuleSL(HMODULE16);
1485 HMODULE16   WINAPI MapHModuleLS(HMODULE32);
1486 SEGPTR      WINAPI MapLS(LPVOID);
1487 LPVOID      WINAPI MapSL(SEGPTR);
1488 LPVOID      WINAPI MapViewOfFile(HANDLE32,DWORD,DWORD,DWORD,DWORD);
1489 LPVOID      WINAPI MapViewOfFileEx(HANDLE32,DWORD,DWORD,DWORD,DWORD,LPVOID);
1490 BOOL32      WINAPI MoveFile32A(LPCSTR,LPCSTR);
1491 BOOL32      WINAPI MoveFile32W(LPCWSTR,LPCWSTR);
1492 #define     MoveFile WINELIB_NAME_AW(MoveFile)
1493 BOOL32      WINAPI MoveFileEx32A(LPCSTR,LPCSTR,DWORD);
1494 BOOL32      WINAPI MoveFileEx32W(LPCWSTR,LPCWSTR,DWORD);
1495 #define     MoveFileEx WINELIB_NAME_AW(MoveFileEx)
1496 INT32       WINAPI MultiByteToWideChar(UINT32,DWORD,LPCSTR,INT32,LPWSTR,INT32);
1497 INT32       WINAPI WideCharToMultiByte(UINT32,DWORD,LPCWSTR,INT32,LPSTR,INT32,LPCSTR,BOOL32*);
1498 HANDLE32    WINAPI OpenEvent32A(DWORD,BOOL32,LPCSTR);
1499 HANDLE32    WINAPI OpenEvent32W(DWORD,BOOL32,LPCWSTR);
1500 #define     OpenEvent WINELIB_NAME_AW(OpenEvent)
1501 HANDLE32    WINAPI OpenFileMapping32A(DWORD,BOOL32,LPCSTR);
1502 HANDLE32    WINAPI OpenFileMapping32W(DWORD,BOOL32,LPCWSTR);
1503 #define     OpenFileMapping WINELIB_NAME_AW(OpenFileMapping)
1504 HANDLE32    WINAPI OpenMutex32A(DWORD,BOOL32,LPCSTR);
1505 HANDLE32    WINAPI OpenMutex32W(DWORD,BOOL32,LPCWSTR);
1506 #define     OpenMutex WINELIB_NAME_AW(OpenMutex)
1507 HANDLE32    WINAPI OpenProcess(DWORD,BOOL32,DWORD);
1508 HANDLE32    WINAPI OpenSemaphore32A(DWORD,BOOL32,LPCSTR);
1509 HANDLE32    WINAPI OpenSemaphore32W(DWORD,BOOL32,LPCWSTR);
1510 #define     OpenSemaphore WINELIB_NAME_AW(OpenSemaphore)
1511 BOOL32      WINAPI PulseEvent(HANDLE32);
1512 BOOL32      WINAPI PurgeComm(HANDLE32,DWORD);
1513 DWORD       WINAPI QueryDosDevice32A(LPCSTR,LPSTR,DWORD);
1514 DWORD       WINAPI QueryDosDevice32W(LPCWSTR,LPWSTR,DWORD);
1515 #define     QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
1516 BOOL32      WINAPI QueryPerformanceCounter(PLARGE_INTEGER);
1517 BOOL32      WINAPI ReadConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
1518 BOOL32      WINAPI ReadConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
1519 #define     ReadConsole WINELIB_NAME_AW(ReadConsole)
1520 BOOL32      WINAPI ReadConsoleOutputCharacter32A(HANDLE32,LPSTR,DWORD,
1521                                                  COORD,LPDWORD);
1522 #define     ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter)
1523 BOOL32      WINAPI ReadFile(HANDLE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
1524 BOOL32      WINAPI ReleaseMutex(HANDLE32);
1525 BOOL32      WINAPI ReleaseSemaphore(HANDLE32,LONG,LPLONG);
1526 BOOL32      WINAPI ResetEvent(HANDLE32);
1527 DWORD       WINAPI ResumeThread(HANDLE32);
1528 VOID        WINAPI RtlFillMemory(LPVOID,UINT32,UINT32);
1529 VOID        WINAPI RtlMoveMemory(LPVOID,LPCVOID,UINT32);
1530 VOID        WINAPI RtlZeroMemory(LPVOID,UINT32);
1531 DWORD       WINAPI SearchPath32A(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
1532 DWORD       WINAPI SearchPath32W(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
1533 #define     SearchPath WINELIB_NAME(SearchPath)
1534 BOOL32      WINAPI SetCommMask(INT32,DWORD);
1535 BOOL32      WINAPI SetComputerName32A(LPCSTR);
1536 BOOL32      WINAPI SetComputerName32W(LPCWSTR);
1537 #define     SetComputerName WINELIB_NAME_AW(SetComputerName)
1538 BOOL32      WINAPI SetConsoleCursorPosition(HANDLE32,COORD);
1539 BOOL32      WINAPI SetConsoleMode(HANDLE32,DWORD);
1540 BOOL32      WINAPI SetConsoleTitle32A(LPCSTR);
1541 BOOL32      WINAPI SetConsoleTitle32W(LPCWSTR);
1542 #define     SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
1543 BOOL32      WINAPI SetEndOfFile(HFILE32);
1544 BOOL32      WINAPI SetEnvironmentVariable32A(LPCSTR,LPCSTR);
1545 BOOL32      WINAPI SetEnvironmentVariable32W(LPCWSTR,LPCWSTR);
1546 #define     SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
1547 BOOL32      WINAPI SetEvent(HANDLE32);
1548 VOID        WINAPI SetFileApisToANSI(void);
1549 VOID        WINAPI SetFileApisToOEM(void);
1550 DWORD       WINAPI SetFilePointer(HFILE32,LONG,LPLONG,DWORD);
1551 BOOL32      WINAPI SetFileTime(HFILE32,const FILETIME*,const FILETIME*,
1552                                const FILETIME*);
1553 BOOL32      WINAPI SetHandleInformation(HANDLE32,DWORD,DWORD);
1554 BOOL32      WINAPI SetPriorityClass(HANDLE32,DWORD);
1555 BOOL32      WINAPI SetStdHandle(DWORD,HANDLE32);
1556 BOOL32      WINAPI SetSystemPowerState(BOOL32,BOOL32);
1557 BOOL32      WINAPI SetSystemTime(const SYSTEMTIME*);
1558 DWORD       WINAPI SetThreadAffinityMask(HANDLE32,DWORD);
1559 BOOL32      WINAPI SetThreadLocale(LCID);
1560 BOOL32      WINAPI SetThreadPriority(HANDLE32,INT32);
1561 BOOL32      WINAPI SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION);
1562 VOID        WINAPI Sleep(DWORD);
1563 DWORD       WINAPI SleepEx(DWORD,BOOL32);
1564 DWORD       WINAPI SuspendThread(HANDLE32);
1565 BOOL32      WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
1566 DWORD       WINAPI TlsAlloc(void);
1567 BOOL32      WINAPI TlsFree(DWORD);
1568 LPVOID      WINAPI TlsGetValue(DWORD);
1569 BOOL32      WINAPI TlsSetValue(DWORD,LPVOID);
1570 VOID        WINAPI UnMapLS(SEGPTR);
1571 BOOL32      WINAPI UnlockFile(HFILE32,DWORD,DWORD,DWORD,DWORD);
1572 BOOL32      WINAPI UnmapViewOfFile(LPVOID);
1573 LPVOID      WINAPI VirtualAlloc(LPVOID,DWORD,DWORD,DWORD);
1574 BOOL32      WINAPI VirtualFree(LPVOID,DWORD,DWORD);
1575 BOOL32      WINAPI VirtualLock(LPVOID,DWORD);
1576 BOOL32      WINAPI VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD);
1577 BOOL32      WINAPI VirtualProtectEx(HANDLE32,LPVOID,DWORD,DWORD,LPDWORD);
1578 DWORD       WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
1579 DWORD       WINAPI VirtualQueryEx(HANDLE32,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
1580 BOOL32      WINAPI VirtualUnlock(LPVOID,DWORD);
1581 BOOL32      WINAPI WaitCommEvent(HANDLE32,LPDWORD,LPOVERLAPPED);
1582 BOOL32      WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
1583 DWORD       WINAPI WaitForMultipleObjects(DWORD,const HANDLE32*,BOOL32,DWORD);
1584 DWORD       WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE32*,BOOL32,DWORD,BOOL32);
1585 DWORD       WINAPI WaitForSingleObject(HANDLE32,DWORD);
1586 DWORD       WINAPI WaitForSingleObjectEx(HANDLE32,DWORD,BOOL32);
1587 SEGPTR      WINAPI WOWGlobalAllocLock16(DWORD,DWORD,HGLOBAL16*);
1588 DWORD       WINAPI WOWCallback16(FARPROC16,DWORD);
1589 BOOL32      WINAPI WOWCallback16Ex(FARPROC16,DWORD,DWORD,LPVOID,LPDWORD);
1590 HANDLE32    WINAPI WOWHandle32(WORD,WOW_HANDLE_TYPE);
1591 BOOL32      WINAPI WriteConsole32A(HANDLE32,LPCVOID,DWORD,LPDWORD,LPVOID);
1592 BOOL32      WINAPI WriteConsole32W(HANDLE32,LPCVOID,DWORD,LPDWORD,LPVOID);
1593 #define     WriteConsole WINELIB_NAME_AW(WriteConsole)
1594 BOOL32      WINAPI WriteFile(HANDLE32,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
1595 VOID        WINAPI ZeroMemory(LPVOID,UINT32);
1596 #define     ZeroMemory RtlZeroMemory
1597 DWORD       WINAPI GetLastError(void);
1598 LANGID      WINAPI GetSystemDefaultLangID(void);
1599 LCID        WINAPI GetSystemDefaultLCID(void);
1600 LANGID      WINAPI GetUserDefaultLangID(void);
1601 LCID        WINAPI GetUserDefaultLCID(void);
1602 VOID        WINAPI SetLastError(DWORD);
1603 ATOM        WINAPI AddAtom32A(LPCSTR);
1604 ATOM        WINAPI AddAtom32W(LPCWSTR);
1605 #define     AddAtom WINELIB_NAME_AW(AddAtom)
1606 UINT32      WINAPI CompareString32A(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
1607 UINT32      WINAPI CompareString32W(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD);
1608 #define     CompareString WINELIB_NAME_AW(CompareString)
1609 BOOL32      WINAPI CreateDirectory32A(LPCSTR,LPSECURITY_ATTRIBUTES);
1610 BOOL32      WINAPI CreateDirectory32W(LPCWSTR,LPSECURITY_ATTRIBUTES);
1611 #define     CreateDirectory WINELIB_NAME_AW(CreateDirectory)
1612 BOOL32      WINAPI CreateDirectoryEx32A(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
1613 BOOL32      WINAPI CreateDirectoryEx32W(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
1614 #define     CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx)
1615 #define     DefineHandleTable32(w) ((w),TRUE)
1616 #define     DefineHandleTable WINELIB_NAME(DefineHandleTable)
1617 ATOM        WINAPI DeleteAtom32(ATOM);
1618 #define     DeleteAtom WINELIB_NAME(DeleteAtom)
1619 BOOL32      WINAPI DeleteFile32A(LPCSTR);
1620 BOOL32      WINAPI DeleteFile32W(LPCWSTR);
1621 #define     DeleteFile WINELIB_NAME_AW(DeleteFile)
1622 void        WINAPI FatalAppExit32A(UINT32,LPCSTR);
1623 void        WINAPI FatalAppExit32W(UINT32,LPCWSTR);
1624 #define     FatalAppExit WINELIB_NAME_AW(FatalAppExit)
1625 ATOM        WINAPI FindAtom32A(LPCSTR);
1626 ATOM        WINAPI FindAtom32W(LPCWSTR);
1627 #define     FindAtom WINELIB_NAME_AW(FindAtom)
1628 BOOL32      WINAPI FindClose32(HANDLE32);
1629 #define     FindClose WINELIB_NAME(FindClose)
1630 HANDLE16    WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATA32A);
1631 HANDLE32    WINAPI FindFirstFile32A(LPCSTR,LPWIN32_FIND_DATA32A);
1632 HANDLE32    WINAPI FindFirstFile32W(LPCWSTR,LPWIN32_FIND_DATA32W);
1633 #define     FindFirstFile WINELIB_NAME_AW(FindFirstFile)
1634 BOOL16      WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATA32A);
1635 BOOL32      WINAPI FindNextFile32A(HANDLE32,LPWIN32_FIND_DATA32A);
1636 BOOL32      WINAPI FindNextFile32W(HANDLE32,LPWIN32_FIND_DATA32W);
1637 #define     FindNextFile WINELIB_NAME_AW(FindNextFile)
1638 HRSRC32     WINAPI FindResource32A(HMODULE32,LPCSTR,LPCSTR);
1639 HRSRC32     WINAPI FindResource32W(HMODULE32,LPCWSTR,LPCWSTR);
1640 #define     FindResource WINELIB_NAME_AW(FindResource)
1641 VOID        WINAPI FreeLibrary16(HINSTANCE16);
1642 BOOL32      WINAPI FreeLibrary32(HMODULE32);
1643 #define     FreeLibrary WINELIB_NAME(FreeLibrary)
1644 #define     FreeModule32(handle) FreeLibrary32(handle)
1645 #define     FreeProcInstance32(proc) /*nothing*/
1646 #define     FreeProcInstance WINELIB_NAME(FreeProcInstance)
1647 BOOL32      WINAPI FreeResource32(HGLOBAL32);
1648 #define     FreeResource WINELIB_NAME(FreeResource)
1649 UINT32      WINAPI GetAtomName32A(ATOM,LPSTR,INT32);
1650 UINT32      WINAPI GetAtomName32W(ATOM,LPWSTR,INT32);
1651 #define     GetAtomName WINELIB_NAME_AW(GetAtomName)
1652 UINT32      WINAPI GetCurrentDirectory32A(UINT32,LPSTR);
1653 UINT32      WINAPI GetCurrentDirectory32W(UINT32,LPWSTR);
1654 #define     GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory)
1655 BOOL32      WINAPI GetDiskFreeSpace32A(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
1656 BOOL32      WINAPI GetDiskFreeSpace32W(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
1657 #define     GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace)
1658 BOOL32      WINAPI GetDiskFreeSpaceEx32A(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1659 BOOL32      WINAPI GetDiskFreeSpaceEx32W(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
1660 #define     GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx)
1661 UINT32      WINAPI GetDriveType32A(LPCSTR);
1662 UINT32      WINAPI GetDriveType32W(LPCWSTR);
1663 #define     GetDriveType WINELIB_NAME_AW(GetDriveType)
1664 DWORD       WINAPI GetFileAttributes32A(LPCSTR);
1665 DWORD       WINAPI GetFileAttributes32W(LPCWSTR);
1666 #define     GetFileAttributes WINELIB_NAME_AW(GetFileAttributes)
1667 #define     GetFreeSpace32(w) (0x100000L)
1668 #define     GetFreeSpace WINELIB_NAME(GetFreeSpace)
1669 UINT32      WINAPI GetLogicalDriveStrings32A(UINT32,LPSTR);
1670 UINT32      WINAPI GetLogicalDriveStrings32W(UINT32,LPWSTR);
1671 #define     GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings)
1672 INT32       WINAPI GetLocaleInfo32A(LCID,LCTYPE,LPSTR,INT32);
1673 INT32       WINAPI GetLocaleInfo32W(LCID,LCTYPE,LPWSTR,INT32);
1674 #define     GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo)
1675 DWORD       WINAPI GetModuleFileName32A(HMODULE32,LPSTR,DWORD);
1676 DWORD       WINAPI GetModuleFileName32W(HMODULE32,LPWSTR,DWORD);
1677 #define     GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
1678 HMODULE32   WINAPI GetModuleHandle32A(LPCSTR);
1679 HMODULE32   WINAPI GetModuleHandle32W(LPCWSTR);
1680 #define     GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
1681 UINT32      WINAPI GetPrivateProfileInt32A(LPCSTR,LPCSTR,INT32,LPCSTR);
1682 UINT32      WINAPI GetPrivateProfileInt32W(LPCWSTR,LPCWSTR,INT32,LPCWSTR);
1683 #define     GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt)
1684 INT32       WINAPI GetPrivateProfileSection32A(LPCSTR,LPSTR,DWORD,LPCSTR);
1685 INT32       WINAPI GetPrivateProfileSection32W(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
1686 #define     GetPrivateProfileSection WINELIB_NAME_AW(GetPrivateProfileSection)
1687 DWORD       WINAPI GetPrivateProfileSectionNames32A(LPSTR,DWORD,LPCSTR);
1688 DWORD       WINAPI GetPrivateProfileSectionNames32W(LPWSTR,DWORD,LPCWSTR);
1689 #define     GetPrivateProfileSectionNames WINELIB_NAME_AW(GetPrivateProfileSectionNames)
1690 INT32       WINAPI GetPrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32,LPCSTR);
1691 INT32       WINAPI GetPrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32,LPCWSTR);
1692 #define     GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString)
1693 BOOL32      WINAPI GetPrivateProfileStruct32A(LPCSTR,LPCSTR,LPVOID,UINT32,LPCSTR);
1694 BOOL32      WINAPI GetPrivateProfileStruct32W(LPCWSTR,LPCWSTR,LPVOID,UINT32,LPCWSTR);
1695 #define     GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct)
1696 FARPROC32   WINAPI GetProcAddress32(HMODULE32,LPCSTR);
1697 #define     GetProcAddress WINELIB_NAME(GetProcAddress)
1698 UINT32      WINAPI GetProfileInt32A(LPCSTR,LPCSTR,INT32);
1699 UINT32      WINAPI GetProfileInt32W(LPCWSTR,LPCWSTR,INT32);
1700 #define     GetProfileInt WINELIB_NAME_AW(GetProfileInt)
1701 INT32       WINAPI GetProfileSection32A(LPCSTR,LPSTR,DWORD);
1702 INT32       WINAPI GetProfileSection32W(LPCWSTR,LPWSTR,DWORD);
1703 #define     GetProfileSection WINELIB_NAME_AW(GetProfileSection)
1704 INT32       WINAPI GetProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32);
1705 INT32       WINAPI GetProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32);
1706 #define     GetProfileString WINELIB_NAME_AW(GetProfileString)
1707 BOOL32      WINAPI GetStringType32A(LCID,DWORD,LPCSTR,INT32,LPWORD);
1708 BOOL32      WINAPI GetStringType32W(DWORD,LPCWSTR,INT32,LPWORD);
1709 #define     GetStringType WINELIB_NAME_AW(GetStringType)
1710 UINT32      WINAPI GetSystemDirectory32A(LPSTR,UINT32);
1711 UINT32      WINAPI GetSystemDirectory32W(LPWSTR,UINT32);
1712 #define     GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
1713 UINT32      WINAPI GetTempFileName32A(LPCSTR,LPCSTR,UINT32,LPSTR);
1714 UINT32      WINAPI GetTempFileName32W(LPCWSTR,LPCWSTR,UINT32,LPWSTR);
1715 #define     GetTempFileName WINELIB_NAME_AW(GetTempFileName)
1716 UINT32      WINAPI GetTempPath32A(UINT32,LPSTR);
1717 UINT32      WINAPI GetTempPath32W(UINT32,LPWSTR);
1718 #define     GetTempPath WINELIB_NAME_AW(GetTempPath)
1719 LONG        WINAPI GetVersion32(void);
1720 #define     GetVersion WINELIB_NAME(GetVersion)
1721 BOOL32      WINAPI GetExitCodeProcess(HANDLE32,LPDWORD);
1722 BOOL32      WINAPI GetVolumeInformation32A(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
1723 BOOL32      WINAPI GetVolumeInformation32W(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
1724 #define     GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation)
1725 UINT32      WINAPI GetWindowsDirectory32A(LPSTR,UINT32);
1726 UINT32      WINAPI GetWindowsDirectory32W(LPWSTR,UINT32);
1727 #define     GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory)
1728 HGLOBAL16   WINAPI GlobalAlloc16(UINT16,DWORD);
1729 HGLOBAL32   WINAPI GlobalAlloc32(UINT32,DWORD);
1730 #define     GlobalAlloc WINELIB_NAME(GlobalAlloc)
1731 DWORD       WINAPI GlobalCompact32(DWORD);
1732 #define     GlobalCompact WINELIB_NAME(GlobalCompact)
1733 UINT32      WINAPI GlobalFlags32(HGLOBAL32);
1734 #define     GlobalFlags WINELIB_NAME(GlobalFlags)
1735 HGLOBAL16   WINAPI GlobalFree16(HGLOBAL16);
1736 HGLOBAL32   WINAPI GlobalFree32(HGLOBAL32);
1737 #define     GlobalFree WINELIB_NAME(GlobalFree)
1738 HGLOBAL32   WINAPI GlobalHandle32(LPCVOID);
1739 #define     GlobalHandle WINELIB_NAME(GlobalHandle)
1740 WORD        WINAPI GlobalFix16(HGLOBAL16);
1741 VOID        WINAPI GlobalFix32(HGLOBAL32);
1742 #define     GlobalFix WINELIB_NAME(GlobalFix)
1743 LPVOID      WINAPI GlobalLock16(HGLOBAL16);
1744 LPVOID      WINAPI GlobalLock32(HGLOBAL32);
1745 #define     GlobalLock WINELIB_NAME(GlobalLock)
1746 HGLOBAL32   WINAPI GlobalReAlloc32(HGLOBAL32,DWORD,UINT32);
1747 #define     GlobalReAlloc WINELIB_NAME(GlobalReAlloc)
1748 DWORD       WINAPI GlobalSize16(HGLOBAL16);
1749 DWORD       WINAPI GlobalSize32(HGLOBAL32);
1750 #define     GlobalSize WINELIB_NAME(GlobalSize)
1751 VOID        WINAPI GlobalUnfix16(HGLOBAL16);
1752 VOID        WINAPI GlobalUnfix32(HGLOBAL32);
1753 #define     GlobalUnfix WINELIB_NAME(GlobalUnfix)
1754 BOOL16      WINAPI GlobalUnlock16(HGLOBAL16);
1755 BOOL32      WINAPI GlobalUnlock32(HGLOBAL32);
1756 #define     GlobalUnlock WINELIB_NAME(GlobalUnlock)
1757 BOOL16      WINAPI GlobalUnWire16(HGLOBAL16);
1758 BOOL32      WINAPI GlobalUnWire32(HGLOBAL32);
1759 #define     GlobalUnWire WINELIB_NAME(GlobalUnWire)
1760 SEGPTR      WINAPI GlobalWire16(HGLOBAL16);
1761 LPVOID      WINAPI GlobalWire32(HGLOBAL32);
1762 #define     GlobalWire WINELIB_NAME(GlobalWire)
1763 BOOL32      WINAPI InitAtomTable32(DWORD);
1764 #define     InitAtomTable WINELIB_NAME(InitAtomTable)
1765 BOOL32      WINAPI IsBadCodePtr32(FARPROC32);
1766 #define     IsBadCodePtr WINELIB_NAME(IsBadCodePtr)
1767 BOOL32      WINAPI IsBadHugeReadPtr32(LPCVOID,UINT32);
1768 #define     IsBadHugeReadPtr WINELIB_NAME(IsBadHugeReadPtr)
1769 BOOL32      WINAPI IsBadHugeWritePtr32(LPVOID,UINT32);
1770 #define     IsBadHugeWritePtr WINELIB_NAME(IsBadHugeWritePtr)
1771 BOOL32      WINAPI IsBadReadPtr32(LPCVOID,UINT32);
1772 #define     IsBadReadPtr WINELIB_NAME(IsBadReadPtr)
1773 BOOL32      WINAPI IsBadStringPtr32A(LPCSTR,UINT32);
1774 BOOL32      WINAPI IsBadStringPtr32W(LPCWSTR,UINT32);
1775 #define     IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr)
1776 BOOL32      WINAPI IsBadWritePtr32(LPVOID,UINT32);
1777 #define     IsBadWritePtr WINELIB_NAME(IsBadWritePtr)
1778 BOOL32      WINAPI IsDBCSLeadByte32(BYTE);
1779 #define     IsDBCSLeadByte WINELIB_NAME(IsDBCSLeadByte)
1780 HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
1781 HMODULE32   WINAPI LoadLibrary32A(LPCSTR);
1782 HMODULE32   WINAPI LoadLibrary32W(LPCWSTR);
1783 #define     LoadLibrary WINELIB_NAME_AW(LoadLibrary)
1784 HMODULE32   WINAPI LoadLibraryEx32A(LPCSTR,HFILE32,DWORD);
1785 HMODULE32   WINAPI LoadLibraryEx32W(LPCWSTR,HFILE32,DWORD);
1786 #define     LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx)
1787 HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
1788 HINSTANCE32 WINAPI LoadModule32(LPCSTR,LPVOID);
1789 #define     LoadModule WINELIB_NAME(LoadModule)
1790 HGLOBAL32   WINAPI LoadResource32(HMODULE32,HRSRC32);
1791 #define     LoadResource WINELIB_NAME(LoadResource)
1792 HLOCAL32    WINAPI LocalAlloc32(UINT32,DWORD);
1793 #define     LocalAlloc WINELIB_NAME(LocalAlloc)
1794 UINT32      WINAPI LocalCompact32(UINT32);
1795 #define     LocalCompact WINELIB_NAME(LocalCompact)
1796 UINT32      WINAPI LocalFlags32(HLOCAL32);
1797 #define     LocalFlags WINELIB_NAME(LocalFlags)
1798 HLOCAL32    WINAPI LocalFree32(HLOCAL32);
1799 #define     LocalFree WINELIB_NAME(LocalFree)
1800 HLOCAL32    WINAPI LocalHandle32(LPCVOID);
1801 #define     LocalHandle WINELIB_NAME(LocalHandle)
1802 LPVOID      WINAPI LocalLock32(HLOCAL32);
1803 #define     LocalLock WINELIB_NAME(LocalLock)
1804 HLOCAL32    WINAPI LocalReAlloc32(HLOCAL32,DWORD,UINT32);
1805 #define     LocalReAlloc WINELIB_NAME(LocalReAlloc)
1806 UINT32      WINAPI LocalShrink32(HGLOBAL32,UINT32);
1807 #define     LocalShrink WINELIB_NAME(LocalShrink)
1808 UINT32      WINAPI LocalSize32(HLOCAL32);
1809 #define     LocalSize WINELIB_NAME(LocalSize)
1810 BOOL32      WINAPI LocalUnlock32(HLOCAL32);
1811 #define     LocalUnlock WINELIB_NAME(LocalUnlock)
1812 LPVOID      WINAPI LockResource32(HGLOBAL32);
1813 #define     LockResource WINELIB_NAME(LockResource)
1814 #define     LockSegment32(handle) GlobalFix32((HANDLE32)(handle))
1815 #define     LockSegment WINELIB_NAME(LockSegment)
1816 #define     MakeProcInstance32(proc,inst) (proc)
1817 #define     MakeProcInstance WINELIB_NAME(MakeProcInstance)
1818 HFILE16     WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
1819 HFILE32     WINAPI OpenFile32(LPCSTR,OFSTRUCT*,UINT32);
1820 #define     OpenFile WINELIB_NAME(OpenFile)
1821 VOID        WINAPI OutputDebugString32A(LPCSTR);
1822 VOID        WINAPI OutputDebugString32W(LPCWSTR);
1823 #define     OutputDebugString WINELIB_NAME_AW(OutputDebugString)
1824 BOOL32      WINAPI RemoveDirectory32A(LPCSTR);
1825 BOOL32      WINAPI RemoveDirectory32W(LPCWSTR);
1826 #define     RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
1827 BOOL32      WINAPI SetCurrentDirectory32A(LPCSTR);
1828 BOOL32      WINAPI SetCurrentDirectory32W(LPCWSTR);
1829 #define     SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory)
1830 UINT32      WINAPI SetErrorMode32(UINT32);
1831 #define     SetErrorMode WINELIB_NAME(SetErrorMode)
1832 BOOL32      WINAPI SetFileAttributes32A(LPCSTR,DWORD);
1833 BOOL32      WINAPI SetFileAttributes32W(LPCWSTR,DWORD);
1834 #define     SetFileAttributes WINELIB_NAME_AW(SetFileAttributes)
1835 UINT32      WINAPI SetHandleCount32(UINT32);
1836 #define     SetHandleCount WINELIB_NAME(SetHandleCount)
1837 #define     SetSwapAreaSize32(w) (w)
1838 #define     SetSwapAreaSize WINELIB_NAME(SetSwapAreaSize)
1839 DWORD       WINAPI SizeofResource32(HMODULE32,HRSRC32);
1840 #define     SizeofResource WINELIB_NAME(SizeofResource)
1841 #define     UnlockSegment32(handle) GlobalUnfix((HANDLE32)(handle))
1842 #define     UnlockSegment WINELIB_NAME(UnlockSegment)
1843 DWORD       WINAPI VerLanguageName32A(UINT32,LPSTR,UINT32);
1844 DWORD       WINAPI VerLanguageName32W(UINT32,LPWSTR,UINT32);
1845 #define     VerLanguageName WINELIB_NAME_AW(VerLanguageName)
1846 BOOL32      WINAPI WritePrivateProfileSection32A(LPCSTR,LPCSTR,LPCSTR);
1847 BOOL32      WINAPI WritePrivateProfileSection32W(LPCWSTR,LPCWSTR,LPCWSTR);
1848 #define     WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
1849 BOOL32      WINAPI WritePrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
1850 BOOL32      WINAPI WritePrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
1851 BOOL32       WINAPI WriteProfileSection32A(LPCSTR,LPCSTR);
1852 BOOL32       WINAPI WriteProfileSection32W(LPCWSTR,LPCWSTR);
1853 #define     WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString)
1854 BOOL32      WINAPI WritePrivateProfileStruct32A(LPCSTR,LPCSTR,LPVOID,UINT32,LPCSTR);
1855 BOOL32      WINAPI WritePrivateProfileStruct32W(LPCWSTR,LPCWSTR,LPVOID,UINT32,LPCWSTR);
1856 #define     WritePrivateProfileStruct WINELIB_NAME_AW(WritePrivateProfileStruct)
1857 BOOL32      WINAPI WriteProfileString32A(LPCSTR,LPCSTR,LPCSTR);
1858 BOOL32      WINAPI WriteProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR);
1859 #define     WriteProfileString WINELIB_NAME_AW(WriteProfileString)
1860 #define     Yield32()
1861 #define     Yield WINELIB_NAME(Yield)
1862 LPSTR       WINAPI lstrcat32A(LPSTR,LPCSTR);
1863 LPWSTR      WINAPI lstrcat32W(LPWSTR,LPCWSTR);
1864 #define     lstrcat WINELIB_NAME_AW(lstrcat)
1865 LPSTR       WINAPI lstrcatn32A(LPSTR,LPCSTR,INT32);
1866 LPWSTR      WINAPI lstrcatn32W(LPWSTR,LPCWSTR,INT32);
1867 #define     lstrcatn WINELIB_NAME_AW(lstrcatn)
1868 LPSTR       WINAPI lstrcpy32A(LPSTR,LPCSTR);
1869 LPWSTR      WINAPI lstrcpy32W(LPWSTR,LPCWSTR);
1870 #define     lstrcpy WINELIB_NAME_AW(lstrcpy)
1871 LPSTR       WINAPI lstrcpyn32A(LPSTR,LPCSTR,INT32);
1872 LPWSTR      WINAPI lstrcpyn32W(LPWSTR,LPCWSTR,INT32);
1873 #define     lstrcpyn WINELIB_NAME_AW(lstrcpyn)
1874 INT32       WINAPI lstrlen32A(LPCSTR);
1875 INT32       WINAPI lstrlen32W(LPCWSTR);
1876 #define     lstrlen WINELIB_NAME_AW(lstrlen)
1877 HINSTANCE32 WINAPI WinExec32(LPCSTR,UINT32);
1878 #define     WinExec WINELIB_NAME(WinExec)
1879 LONG        WINAPI _hread32(HFILE32,LPVOID,LONG);
1880 #define     _hread WINELIB_NAME(_hread)
1881 LONG        WINAPI _hwrite32(HFILE32,LPCSTR,LONG);
1882 #define     _hwrite WINELIB_NAME(_hwrite)
1883 HFILE32     WINAPI _lcreat32(LPCSTR,INT32);
1884 #define     _lcreat WINELIB_NAME(_lcreat)
1885 HFILE32     WINAPI _lclose32(HFILE32);
1886 #define     _lclose WINELIB_NAME(_lclose)
1887 LONG        WINAPI _llseek32(HFILE32,LONG,INT32);
1888 #define     _llseek WINELIB_NAME(_llseek)
1889 HFILE32     WINAPI _lopen32(LPCSTR,INT32);
1890 #define     _lopen WINELIB_NAME(_lopen)
1891 UINT32      WINAPI _lread32(HFILE32,LPVOID,UINT32);
1892 #define     _lread WINELIB_NAME(_lread)
1893 UINT32      WINAPI _lwrite32(HFILE32,LPCSTR,UINT32);
1894 #define     _lwrite WINELIB_NAME(_lwrite)
1895 SEGPTR      WINAPI WIN16_GlobalLock16(HGLOBAL16);
1896 INT32       WINAPI lstrcmp32A(LPCSTR,LPCSTR);
1897 INT32       WINAPI lstrcmp32W(LPCWSTR,LPCWSTR);
1898 #define     lstrcmp WINELIB_NAME_AW(lstrcmp)
1899 INT32       WINAPI lstrcmpi32A(LPCSTR,LPCSTR);
1900 INT32       WINAPI lstrcmpi32W(LPCWSTR,LPCWSTR);
1901 #define     lstrcmpi WINELIB_NAME_AW(lstrcmpi)
1902
1903
1904 #ifdef __cplusplus
1905 }
1906 #endif
1907
1908 #endif  /* __WINE_WINBASE_H */