Hacked server-side device support
[wine] / include / windows.h
1 #ifndef __WINE_WINDOWS_H
2 #define __WINE_WINDOWS_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #ifndef RC_INVOKED
9 #include <stdarg.h>
10 #endif
11
12 #include "wintypes.h"
13 #include "winbase.h"  
14
15 /* FIXME: Maybe MAX_PATH and _MAX_PATH should be computed from the Unix headers instead
16  * and by the way, _MAX_PATH should be defined in stdlib.h and MAX_PATH in windef.h 
17  * and mapiwin.h
18  */
19 #define _MAX_PATH 260
20 #ifndef MAX_PATH
21 #define MAX_PATH 260
22 #endif
23
24 #ifndef DONT_INCLUDE_WINGDI
25 #include "winbase.h"
26 #include "wingdi.h"
27 #include "winuser.h"
28 #endif /* DONT_INCLUDE_WINGDI */
29
30 #pragma pack(1)
31
32 typedef struct tagCOORD {
33     INT16 x;
34     INT16 y;
35 } COORD, *LPCOORD;
36
37
38   /* Windows */
39
40 typedef struct
41 {
42     LPVOID      lpCreateParams;
43     HINSTANCE16 hInstance;
44     HMENU16     hMenu;
45     HWND16      hwndParent;
46     INT16       cy;
47     INT16       cx;
48     INT16       y;
49     INT16       x;
50     LONG        style WINE_PACKED;
51     SEGPTR      lpszName WINE_PACKED;
52     SEGPTR      lpszClass WINE_PACKED;
53     DWORD       dwExStyle WINE_PACKED;
54 } CREATESTRUCT16, *LPCREATESTRUCT16;
55
56 typedef struct
57 {
58     LPVOID      lpCreateParams;
59     HINSTANCE32 hInstance;
60     HMENU32     hMenu;
61     HWND32      hwndParent;
62     INT32       cy;
63     INT32       cx;
64     INT32       y;
65     INT32       x;
66     LONG        style;
67     LPCSTR      lpszName;
68     LPCSTR      lpszClass;
69     DWORD       dwExStyle;
70 } CREATESTRUCT32A, *LPCREATESTRUCT32A;
71
72 typedef struct
73 {
74     LPVOID      lpCreateParams;
75     HINSTANCE32 hInstance;
76     HMENU32     hMenu;
77     HWND32      hwndParent;
78     INT32       cy;
79     INT32       cx;
80     INT32       y;
81     INT32       x;
82     LONG        style;
83     LPCWSTR     lpszName;
84     LPCWSTR     lpszClass;
85     DWORD       dwExStyle;
86 } CREATESTRUCT32W, *LPCREATESTRUCT32W;
87
88 DECL_WINELIB_TYPE_AW(CREATESTRUCT)
89 DECL_WINELIB_TYPE_AW(LPCREATESTRUCT)
90
91 typedef struct 
92 {
93     HMENU16   hWindowMenu;
94     UINT16    idFirstChild;
95 } CLIENTCREATESTRUCT16, *LPCLIENTCREATESTRUCT16;
96
97 typedef struct 
98 {
99     HMENU32   hWindowMenu;
100     UINT32    idFirstChild;
101 } CLIENTCREATESTRUCT32, *LPCLIENTCREATESTRUCT32;
102
103 DECL_WINELIB_TYPE(CLIENTCREATESTRUCT)
104 DECL_WINELIB_TYPE(LPCLIENTCREATESTRUCT)
105
106 typedef struct
107 {
108     SEGPTR       szClass;
109     SEGPTR       szTitle;
110     HINSTANCE16  hOwner;
111     INT16        x;
112     INT16        y;
113     INT16        cx;
114     INT16        cy;
115     DWORD        style WINE_PACKED;
116     LPARAM       lParam WINE_PACKED;
117 } MDICREATESTRUCT16, *LPMDICREATESTRUCT16;
118
119 typedef struct
120 {
121     LPCSTR       szClass;
122     LPCSTR       szTitle;
123     HINSTANCE32  hOwner;
124     INT32        x;
125     INT32        y;
126     INT32        cx;
127     INT32        cy;
128     DWORD        style;
129     LPARAM       lParam;
130 } MDICREATESTRUCT32A, *LPMDICREATESTRUCT32A;
131
132 typedef struct
133 {
134     LPCWSTR      szClass;
135     LPCWSTR      szTitle;
136     HINSTANCE32  hOwner;
137     INT32        x;
138     INT32        y;
139     INT32        cx;
140     INT32        cy;
141     DWORD        style;
142     LPARAM       lParam;
143 } MDICREATESTRUCT32W, *LPMDICREATESTRUCT32W;
144
145 DECL_WINELIB_TYPE_AW(MDICREATESTRUCT)
146 DECL_WINELIB_TYPE_AW(LPMDICREATESTRUCT)
147
148 #define MDITILE_VERTICAL     0x0000   
149 #define MDITILE_HORIZONTAL   0x0001
150 #define MDITILE_SKIPDISABLED 0x0002
151
152 #define MDIS_ALLCHILDSTYLES  0x0001
153
154 typedef struct {
155     DWORD   styleOld;
156     DWORD   styleNew;
157 } STYLESTRUCT, *LPSTYLESTRUCT;
158
159   /* Offsets for GetWindowLong() and GetWindowWord() */
160 #define GWL_USERDATA        (-21)
161 #define GWL_EXSTYLE         (-20)
162 #define GWL_STYLE           (-16)
163 #define GWW_ID              (-12)
164 #define GWL_ID              GWW_ID
165 #define GWW_HWNDPARENT      (-8)
166 #define GWL_HWNDPARENT      GWW_HWNDPARENT
167 #define GWW_HINSTANCE       (-6)
168 #define GWL_HINSTANCE       GWW_HINSTANCE
169 #define GWL_WNDPROC         (-4)
170 #define DWL_MSGRESULT       0
171 #define DWL_DLGPROC         4
172 #define DWL_USER            8
173
174   /* GetWindow() constants */
175 #define GW_HWNDFIRST    0
176 #define GW_HWNDLAST     1
177 #define GW_HWNDNEXT     2
178 #define GW_HWNDPREV     3
179 #define GW_OWNER        4
180 #define GW_CHILD        5
181
182   /* WM_GETMINMAXINFO struct */
183 typedef struct
184 {
185     POINT16   ptReserved;
186     POINT16   ptMaxSize;
187     POINT16   ptMaxPosition;
188     POINT16   ptMinTrackSize;
189     POINT16   ptMaxTrackSize;
190 } MINMAXINFO16;
191
192 typedef struct
193 {
194     POINT32   ptReserved;
195     POINT32   ptMaxSize;
196     POINT32   ptMaxPosition;
197     POINT32   ptMinTrackSize;
198     POINT32   ptMaxTrackSize;
199 } MINMAXINFO32;
200
201 DECL_WINELIB_TYPE(MINMAXINFO)
202
203   /* RedrawWindow() flags */
204 #define RDW_INVALIDATE       0x0001
205 #define RDW_INTERNALPAINT    0x0002
206 #define RDW_ERASE            0x0004
207 #define RDW_VALIDATE         0x0008
208 #define RDW_NOINTERNALPAINT  0x0010
209 #define RDW_NOERASE          0x0020
210 #define RDW_NOCHILDREN       0x0040
211 #define RDW_ALLCHILDREN      0x0080
212 #define RDW_UPDATENOW        0x0100
213 #define RDW_ERASENOW         0x0200
214 #define RDW_FRAME            0x0400
215 #define RDW_NOFRAME          0x0800
216
217 /* debug flags */
218 #define DBGFILL_ALLOC  0xfd
219 #define DBGFILL_FREE   0xfb
220 #define DBGFILL_BUFFER 0xf9
221 #define DBGFILL_STACK  0xf7
222
223   /* WM_WINDOWPOSCHANGING/CHANGED struct */
224 typedef struct
225 {
226     HWND16  hwnd;
227     HWND16  hwndInsertAfter;
228     INT16   x;
229     INT16   y;
230     INT16   cx;
231     INT16   cy;
232     UINT16  flags;
233 } WINDOWPOS16, *LPWINDOWPOS16;
234
235 typedef struct
236 {
237     HWND32  hwnd;
238     HWND32  hwndInsertAfter;
239     INT32   x;
240     INT32   y;
241     INT32   cx;
242     INT32   cy;
243     UINT32  flags;
244 } WINDOWPOS32, *LPWINDOWPOS32;
245
246 DECL_WINELIB_TYPE(WINDOWPOS)
247 DECL_WINELIB_TYPE(LPWINDOWPOS)
248
249   /* WM_MOUSEACTIVATE return values */
250 #define MA_ACTIVATE             1
251 #define MA_ACTIVATEANDEAT       2
252 #define MA_NOACTIVATE           3
253 #define MA_NOACTIVATEANDEAT     4
254
255   /* WM_ACTIVATE wParam values */
256 #define WA_INACTIVE             0
257 #define WA_ACTIVE               1
258 #define WA_CLICKACTIVE          2
259
260   /* WM_NCCALCSIZE parameter structure */
261 typedef struct
262 {
263     RECT16  rgrc[3];
264     SEGPTR  lppos;
265 } NCCALCSIZE_PARAMS16, *LPNCCALCSIZE_PARAMS16;
266
267 typedef struct
268 {
269     RECT32       rgrc[3];
270     WINDOWPOS32 *lppos;
271 } NCCALCSIZE_PARAMS32, *LPNCCALCSIZE_PARAMS32;
272
273 DECL_WINELIB_TYPE(NCCALCSIZE_PARAMS)
274 DECL_WINELIB_TYPE(LPNCCALCSIZE_PARAMS)
275
276   /* WM_NCCALCSIZE return flags */
277 #define WVR_ALIGNTOP        0x0010
278 #define WVR_ALIGNLEFT       0x0020
279 #define WVR_ALIGNBOTTOM     0x0040
280 #define WVR_ALIGNRIGHT      0x0080
281 #define WVR_HREDRAW         0x0100
282 #define WVR_VREDRAW         0x0200
283 #define WVR_REDRAW          (WVR_HREDRAW | WVR_VREDRAW)
284 #define WVR_VALIDRECTS      0x0400
285
286   /* WM_NCHITTEST return codes */
287 #define HTERROR             (-2)
288 #define HTTRANSPARENT       (-1)
289 #define HTNOWHERE           0
290 #define HTCLIENT            1
291 #define HTCAPTION           2
292 #define HTSYSMENU           3
293 #define HTSIZE              4
294 #define HTMENU              5
295 #define HTHSCROLL           6
296 #define HTVSCROLL           7
297 #define HTMINBUTTON         8
298 #define HTMAXBUTTON         9
299 #define HTLEFT              10
300 #define HTRIGHT             11
301 #define HTTOP               12
302 #define HTTOPLEFT           13
303 #define HTTOPRIGHT          14
304 #define HTBOTTOM            15
305 #define HTBOTTOMLEFT        16
306 #define HTBOTTOMRIGHT       17
307 #define HTBORDER            18
308 #define HTGROWBOX           HTSIZE
309 #define HTREDUCE            HTMINBUTTON
310 #define HTZOOM              HTMAXBUTTON
311 #define HTOBJECT            19
312 #define HTCLOSE             20
313 #define HTHELP              21
314 #define HTSIZEFIRST         HTLEFT
315 #define HTSIZELAST          HTBOTTOMRIGHT
316
317   /* WM_SYSCOMMAND parameters */
318 #ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */
319 #undef SC_SIZE
320 #endif
321 #define SC_SIZE         0xf000
322 #define SC_MOVE         0xf010
323 #define SC_MINIMIZE     0xf020
324 #define SC_MAXIMIZE     0xf030
325 #define SC_NEXTWINDOW   0xf040
326 #define SC_PREVWINDOW   0xf050
327 #define SC_CLOSE        0xf060
328 #define SC_VSCROLL      0xf070
329 #define SC_HSCROLL      0xf080
330 #define SC_MOUSEMENU    0xf090
331 #define SC_KEYMENU      0xf100
332 #define SC_ARRANGE      0xf110
333 #define SC_RESTORE      0xf120
334 #define SC_TASKLIST     0xf130
335 #define SC_SCREENSAVE   0xf140
336 #define SC_HOTKEY       0xf150
337
338 #define CS_VREDRAW          0x0001
339 #define CS_HREDRAW          0x0002
340 #define CS_KEYCVTWINDOW     0x0004
341 #define CS_DBLCLKS          0x0008
342 #define CS_OWNDC            0x0020
343 #define CS_CLASSDC          0x0040
344 #define CS_PARENTDC         0x0080
345 #define CS_NOKEYCVT         0x0100
346 #define CS_NOCLOSE          0x0200
347 #define CS_SAVEBITS         0x0800
348 #define CS_BYTEALIGNCLIENT  0x1000
349 #define CS_BYTEALIGNWINDOW  0x2000
350 #define CS_GLOBALCLASS      0x4000
351
352   /* Offsets for GetClassLong() and GetClassWord() */
353 #define GCL_MENUNAME        (-8)
354 #define GCW_HBRBACKGROUND   (-10)
355 #define GCL_HBRBACKGROUND   GCW_HBRBACKGROUND
356 #define GCW_HCURSOR         (-12)
357 #define GCL_HCURSOR         GCW_HCURSOR
358 #define GCW_HICON           (-14)
359 #define GCL_HICON           GCW_HICON
360 #define GCW_HMODULE         (-16)
361 #define GCL_HMODULE         GCW_HMODULE
362 #define GCW_CBWNDEXTRA      (-18)
363 #define GCL_CBWNDEXTRA      GCW_CBWNDEXTRA
364 #define GCW_CBCLSEXTRA      (-20)
365 #define GCL_CBCLSEXTRA      GCW_CBCLSEXTRA
366 #define GCL_WNDPROC         (-24)
367 #define GCW_STYLE           (-26)
368 #define GCL_STYLE           GCW_STYLE
369 #define GCW_ATOM            (-32)
370 #define GCW_HICONSM         (-34)
371 #define GCL_HICONSM         GCW_HICONSM
372
373 /***** Window hooks *****/
374
375   /* Hook values */
376 #define WH_MIN              (-1)
377 #define WH_MSGFILTER        (-1)
378 #define WH_JOURNALRECORD    0
379 #define WH_JOURNALPLAYBACK  1
380 #define WH_KEYBOARD         2
381 #define WH_GETMESSAGE       3
382 #define WH_CALLWNDPROC      4
383 #define WH_CBT              5
384 #define WH_SYSMSGFILTER     6
385 #define WH_MOUSE            7
386 #define WH_HARDWARE         8
387 #define WH_DEBUG            9
388 #define WH_SHELL            10
389 #define WH_FOREGROUNDIDLE   11
390 #define WH_CALLWNDPROCRET   12
391 #define WH_MAX              12
392
393 #define WH_MINHOOK          WH_MIN
394 #define WH_MAXHOOK          WH_MAX
395 #define WH_NB_HOOKS         (WH_MAXHOOK-WH_MINHOOK+1)
396
397   /* Hook action codes */
398 #define HC_ACTION           0
399 #define HC_GETNEXT          1
400 #define HC_SKIP             2
401 #define HC_NOREMOVE         3
402 #define HC_NOREM            HC_NOREMOVE
403 #define HC_SYSMODALON       4
404 #define HC_SYSMODALOFF      5
405
406   /* CallMsgFilter() values */
407 #define MSGF_DIALOGBOX      0
408 #define MSGF_MESSAGEBOX     1
409 #define MSGF_MENU           2
410 #define MSGF_MOVE           3
411 #define MSGF_SIZE           4
412 #define MSGF_SCROLLBAR      5
413 #define MSGF_NEXTWINDOW     6
414 #define MSGF_MAINLOOP       8
415 #define MSGF_USER        4096
416
417   /* Windows Exit Procedure flag values */
418 #define WEP_FREE_DLL        0
419 #define WEP_SYSTEM_EXIT     1
420
421   /* Journalling hook structure */
422
423 typedef struct
424 {
425     UINT16  message;
426     UINT16  paramL;
427     UINT16  paramH;
428     DWORD   time WINE_PACKED;
429 } EVENTMSG16, *LPEVENTMSG16;
430
431 typedef struct
432 {
433     UINT32  message;
434     UINT32  paramL;
435     UINT32  paramH;
436     DWORD   time;
437     HWND32  hwnd;
438 } EVENTMSG32, *LPEVENTMSG32;
439
440 DECL_WINELIB_TYPE(EVENTMSG)
441 DECL_WINELIB_TYPE(LPEVENTMSG)
442
443   /* Mouse hook structure */
444
445 typedef struct
446 {
447     POINT16 pt;
448     HWND16  hwnd;
449     UINT16  wHitTestCode;
450     DWORD   dwExtraInfo;
451 } MOUSEHOOKSTRUCT16, *LPMOUSEHOOKSTRUCT16;
452
453 typedef struct
454 {
455     POINT32 pt;
456     HWND32  hwnd;
457     UINT32  wHitTestCode;
458     DWORD   dwExtraInfo;
459 } MOUSEHOOKSTRUCT32, *LPMOUSEHOOKSTRUCT32;
460
461 DECL_WINELIB_TYPE(MOUSEHOOKSTRUCT)
462 DECL_WINELIB_TYPE(LPMOUSEHOOKSTRUCT)
463
464   /* Hardware hook structure */
465
466 typedef struct
467 {
468     HWND16    hWnd;
469     UINT16    wMessage;
470     WPARAM16  wParam;
471     LPARAM    lParam WINE_PACKED;
472 } HARDWAREHOOKSTRUCT16, *LPHARDWAREHOOKSTRUCT16;
473
474 typedef struct
475 {
476     HWND32    hWnd;
477     UINT32    wMessage;
478     WPARAM32  wParam;
479     LPARAM    lParam;
480 } HARDWAREHOOKSTRUCT32, *LPHARDWAREHOOKSTRUCT32;
481
482 DECL_WINELIB_TYPE(HARDWAREHOOKSTRUCT)
483 DECL_WINELIB_TYPE(LPHARDWAREHOOKSTRUCT)
484
485   /* CBT hook values */
486 #define HCBT_MOVESIZE       0
487 #define HCBT_MINMAX         1
488 #define HCBT_QS             2
489 #define HCBT_CREATEWND      3
490 #define HCBT_DESTROYWND     4
491 #define HCBT_ACTIVATE       5
492 #define HCBT_CLICKSKIPPED   6
493 #define HCBT_KEYSKIPPED     7
494 #define HCBT_SYSCOMMAND     8
495 #define HCBT_SETFOCUS       9
496
497   /* CBT hook structures */
498
499 typedef struct
500 {
501     CREATESTRUCT16  *lpcs;
502     HWND16           hwndInsertAfter;
503 } CBT_CREATEWND16, *LPCBT_CREATEWND16;
504
505 typedef struct
506 {
507     CREATESTRUCT32A *lpcs;
508     HWND32           hwndInsertAfter;
509 } CBT_CREATEWND32A, *LPCBT_CREATEWND32A;
510
511 typedef struct
512 {
513     CREATESTRUCT32W *lpcs;
514     HWND32           hwndInsertAfter;
515 } CBT_CREATEWND32W, *LPCBT_CREATEWND32W;
516
517 DECL_WINELIB_TYPE_AW(CBT_CREATEWND)
518 DECL_WINELIB_TYPE_AW(LPCBT_CREATEWND)
519
520 typedef struct
521 {
522     BOOL16    fMouse;
523     HWND16    hWndActive;
524 } CBTACTIVATESTRUCT16, *LPCBTACTIVATESTRUCT16;
525
526 typedef struct
527 {
528     BOOL32    fMouse;
529     HWND32    hWndActive;
530 } CBTACTIVATESTRUCT32, *LPCBTACTIVATESTRUCT32;
531
532 DECL_WINELIB_TYPE(CBTACTIVATESTRUCT)
533 DECL_WINELIB_TYPE(LPCBTACTIVATESTRUCT)
534
535   /* Shell hook values */
536 #define HSHELL_WINDOWCREATED       1
537 #define HSHELL_WINDOWDESTROYED     2
538 #define HSHELL_ACTIVATESHELLWINDOW 3
539
540   /* Debug hook structure */
541
542 typedef struct
543 {
544     HMODULE16   hModuleHook;
545     LPARAM      reserved WINE_PACKED;
546     LPARAM      lParam WINE_PACKED;
547     WPARAM16    wParam;
548     INT16       code;
549 } DEBUGHOOKINFO16, *LPDEBUGHOOKINFO16;
550
551 typedef struct
552 {
553     DWORD       idThread;
554     DWORD       idThreadInstaller;
555     LPARAM      lParam;
556     WPARAM32    wParam;
557     INT32       code;
558 } DEBUGHOOKINFO32, *LPDEBUGHOOKINFO32;
559
560 DECL_WINELIB_TYPE(DEBUGHOOKINFO)
561 DECL_WINELIB_TYPE(LPDEBUGHOOKINFO)
562
563 typedef DWORD (CALLBACK *LPTHREAD_START_ROUTINE)(LPVOID);
564
565 /* This is also defined in winnt.h */
566 /* typedef struct _EXCEPTION_RECORD {
567     DWORD   ExceptionCode;
568     DWORD   ExceptionFlags;
569     struct  _EXCEPTION_RECORD *ExceptionRecord;
570     LPVOID  ExceptionAddress;
571     DWORD   NumberParameters;
572     DWORD   ExceptionInformation[15];
573 } EXCEPTION_RECORD; */
574
575 typedef struct _EXCEPTION_DEBUG_INFO {
576 /*    EXCEPTION_RECORD ExceptionRecord; */
577     DWORD dwFirstChange;
578 } EXCEPTION_DEBUG_INFO;
579
580 typedef struct _CREATE_THREAD_DEBUG_INFO {
581     HANDLE32 hThread;
582     LPVOID lpThreadLocalBase;
583     LPTHREAD_START_ROUTINE lpStartAddress;
584 } CREATE_THREAD_DEBUG_INFO;
585
586 typedef struct _CREATE_PROCESS_DEBUG_INFO {
587     HANDLE32 hFile;
588     HANDLE32 hProcess;
589     HANDLE32 hThread;
590     LPVOID lpBaseOfImage;
591     DWORD dwDebugInfoFileOffset;
592     DWORD nDebugInfoSize;
593     LPVOID lpThreadLocalBase;
594     LPTHREAD_START_ROUTINE lpStartAddress;
595     LPVOID lpImageName;
596     WORD fUnicode;
597 } CREATE_PROCESS_DEBUG_INFO;
598
599 typedef struct _EXIT_THREAD_DEBUG_INFO {
600     DWORD dwExitCode;
601 } EXIT_THREAD_DEBUG_INFO;
602
603 typedef struct _EXIT_PROCESS_DEBUG_INFO {
604     DWORD dwExitCode;
605 } EXIT_PROCESS_DEBUG_INFO;
606
607 typedef struct _LOAD_DLL_DEBUG_INFO {
608     HANDLE32 hFile;
609     LPVOID   lpBaseOfDll;
610     DWORD    dwDebugInfoFileOffset;
611     DWORD    nDebugInfoSize;
612     LPVOID   lpImageName;
613     WORD     fUnicode;
614 } LOAD_DLL_DEBUG_INFO;
615
616 typedef struct _UNLOAD_DLL_DEBUG_INFO {
617     LPVOID lpBaseOfDll;
618 } UNLOAD_DLL_DEBUG_INFO;
619
620 typedef struct _OUTPUT_DEBUG_STRING_INFO {
621     LPSTR lpDebugStringData;
622     WORD  fUnicode;
623     WORD  nDebugStringLength;
624 } OUTPUT_DEBUG_STRING_INFO;
625
626 typedef struct _RIP_INFO {
627     DWORD dwError;
628     DWORD dwType;
629 } RIP_INFO;
630
631 typedef struct _DEBUG_EVENT {
632     DWORD dwDebugEventCode;
633     DWORD dwProcessId;
634     DWORD dwThreadId;
635     union {
636         EXCEPTION_DEBUG_INFO      Exception;
637         CREATE_THREAD_DEBUG_INFO  CreateThread;
638         CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
639         EXIT_THREAD_DEBUG_INFO    ExitThread;
640         EXIT_PROCESS_DEBUG_INFO   ExitProcess;
641         LOAD_DLL_DEBUG_INFO       LoadDll;
642         UNLOAD_DLL_DEBUG_INFO     UnloadDll;
643         OUTPUT_DEBUG_STRING_INFO  DebugString;
644         RIP_INFO                  RipInfo;
645     } u;
646 } DEBUG_EVENT, *LPDEBUG_EVENT;
647
648
649 /***** Dialogs *****/
650
651   /* cbWndExtra bytes for dialog class */
652 #define DLGWINDOWEXTRA      30
653
654   /* Dialog styles */
655 #define DS_ABSALIGN             0x0001
656 #define DS_SYSMODAL             0x0002
657 #define DS_3DLOOK               0x0004  /* win95 */
658 #define DS_FIXEDSYS             0x0008  /* win95 */
659 #define DS_NOFAILCREATE         0x0010  /* win95 */
660 #define DS_LOCALEDIT            0x0020
661 #define DS_SETFONT              0x0040
662 #define DS_MODALFRAME           0x0080
663 #define DS_NOIDLEMSG            0x0100
664 #define DS_SETFOREGROUND        0x0200  /* win95 */
665 #define DS_CONTROL              0x0400  /* win95 */
666 #define DS_CENTER               0x0800  /* win95 */
667 #define DS_CENTERMOUSE          0x1000  /* win95 */
668 #define DS_CONTEXTHELP          0x2000  /* win95 */
669
670
671   /* Dialog messages */
672 #define DM_GETDEFID         (WM_USER+0)
673 #define DM_SETDEFID         (WM_USER+1)
674
675 #define DC_HASDEFID         0x534b
676
677   /* WM_GETDLGCODE values */
678 #define DLGC_WANTARROWS      0x0001
679 #define DLGC_WANTTAB         0x0002
680 #define DLGC_WANTALLKEYS     0x0004
681 #define DLGC_WANTMESSAGE     0x0004
682 #define DLGC_HASSETSEL       0x0008
683 #define DLGC_DEFPUSHBUTTON   0x0010
684 #define DLGC_UNDEFPUSHBUTTON 0x0020
685 #define DLGC_RADIOBUTTON     0x0040
686 #define DLGC_WANTCHARS       0x0080
687 #define DLGC_STATIC          0x0100
688 #define DLGC_BUTTON          0x2000
689
690 /* Standard dialog button IDs */
691 #define IDOK                1
692 #define IDCANCEL            2
693 #define IDABORT             3
694 #define IDRETRY             4
695 #define IDIGNORE            5
696 #define IDYES               6
697 #define IDNO                7
698 #define IDCLOSE             8
699 #define IDHELP              9      
700
701 #ifdef FSHIFT
702 /* Gcc on Solaris has a version of this that we don't care about.  */
703 #undef FSHIFT
704 #endif
705
706 #define FVIRTKEY        TRUE          /* Assumed to be == TRUE */
707 #define FNOINVERT       0x02
708 #define FSHIFT          0x04
709 #define FCONTROL        0x08
710 #define FALT            0x10
711
712 /* modifiers for RegisterHotKey */
713 #define MOD_ALT         0x0001
714 #define MOD_CONTROL     0x0002
715 #define MOD_SHIFT       0x0004
716 #define MOD_WIN         0x0008
717
718 /* ids for RegisterHotKey */
719 #define IDHOT_SNAPWINDOW        (-1)    /* SHIFT-PRINTSCRN  */
720 #define IDHOT_SNAPDESKTOP       (-2)    /* PRINTSCRN        */
721
722 /* Flags for DrawIconEx.  */
723 #define DI_MASK                 1
724 #define DI_IMAGE                2
725 #define DI_NORMAL               (DI_MASK | DI_IMAGE)
726 #define DI_COMPAT               4
727 #define DI_DEFAULTSIZE          8
728
729 typedef struct {
730         BYTE i;  /* much more .... */
731 } KANJISTRUCT;
732 typedef KANJISTRUCT *LPKANJISTRUCT;
733 typedef KANJISTRUCT *NPKANJISTRUCT;
734 typedef KANJISTRUCT *PKANJISTRUCT;
735
736 #define OFS_MAXPATHNAME 128
737 typedef struct
738 {
739     BYTE cBytes;
740     BYTE fFixedDisk;
741     WORD nErrCode;
742     BYTE reserved[4];
743     BYTE szPathName[OFS_MAXPATHNAME];
744 } OFSTRUCT, *LPOFSTRUCT;
745
746 #define OF_READ               0x0000
747 #define OF_WRITE              0x0001
748 #define OF_READWRITE          0x0002
749 #define OF_SHARE_COMPAT       0x0000
750 #define OF_SHARE_EXCLUSIVE    0x0010
751 #define OF_SHARE_DENY_WRITE   0x0020
752 #define OF_SHARE_DENY_READ    0x0030
753 #define OF_SHARE_DENY_NONE    0x0040
754 #define OF_PARSE              0x0100
755 #define OF_DELETE             0x0200
756 #define OF_VERIFY             0x0400   /* Used with OF_REOPEN */
757 #define OF_SEARCH             0x0400   /* Used without OF_REOPEN */
758 #define OF_CANCEL             0x0800
759 #define OF_CREATE             0x1000
760 #define OF_PROMPT             0x2000
761 #define OF_EXIST              0x4000
762 #define OF_REOPEN             0x8000
763
764 /* SetErrorMode values */
765 #define SEM_FAILCRITICALERRORS      0x0001
766 #define SEM_NOGPFAULTERRORBOX       0x0002
767 #define SEM_NOALIGNMENTFAULTEXCEPT  0x0004
768 #define SEM_NOOPENFILEERRORBOX      0x8000
769
770 /* CopyFileEx flags */
771 #define COPY_FILE_FAIL_IF_EXISTS        0x00000001
772 #define COPY_FILE_RESTARTABLE           0x00000002
773 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
774
775 /* GetTempFileName() Flags */
776 #define TF_FORCEDRIVE           0x80
777
778 #define DRIVE_CANNOTDETERMINE      0
779 #define DRIVE_DOESNOTEXIST         1
780 #define DRIVE_REMOVABLE            2
781 #define DRIVE_FIXED                3
782 #define DRIVE_REMOTE               4
783 /* Win32 additions */
784 #define DRIVE_CDROM                5
785 #define DRIVE_RAMDISK              6
786
787 #define HFILE_ERROR16   ((HFILE16)-1)
788 #define HFILE_ERROR32   ((HFILE32)-1)
789 #define HFILE_ERROR     WINELIB_NAME(HFILE_ERROR)
790
791 #define DDL_READWRITE   0x0000
792 #define DDL_READONLY    0x0001
793 #define DDL_HIDDEN      0x0002
794 #define DDL_SYSTEM      0x0004
795 #define DDL_DIRECTORY   0x0010
796 #define DDL_ARCHIVE     0x0020
797
798 #define DDL_POSTMSGS    0x2000
799 #define DDL_DRIVES      0x4000
800 #define DDL_EXCLUSIVE   0x8000
801
802 typedef struct _ACL {
803     BYTE AclRevision;
804     BYTE Sbz1;
805     WORD AclSize;
806     WORD AceCount;
807     WORD Sbz2;
808 } ACL, *LPACL;
809
810 typedef struct {
811     BYTE Value[6];
812 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;
813
814 typedef struct _SID {
815     BYTE Revision;
816     BYTE SubAuthorityCount;
817     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
818     DWORD SubAuthority[1];
819 } SID,*PSID,*LPSID;
820
821 /* The security attributes structure */
822 typedef struct
823 {
824     DWORD   nLength;
825     LPVOID  lpSecurityDescriptor;
826     BOOL32  bInheritHandle;
827 } SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
828
829 typedef WORD SECURITY_DESCRIPTOR_CONTROL;
830
831 /* The security descriptor structure */
832 typedef struct {
833     BYTE Revision;
834     BYTE Sbz1;
835     SECURITY_DESCRIPTOR_CONTROL Control;
836     LPSID Owner;
837     LPSID Group;
838     LPACL Sacl;
839     LPACL Dacl;
840 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR, *LPSECURITY_DESCRIPTOR;
841
842 typedef DWORD SECURITY_INFORMATION;
843
844
845 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
846 typedef struct
847 {
848   DWORD  dwLowDateTime;
849   DWORD  dwHighDateTime;
850 } FILETIME, *LPFILETIME;
851
852 /* Find* structures */
853 typedef struct
854 {
855     DWORD     dwFileAttributes;
856     FILETIME  ftCreationTime;
857     FILETIME  ftLastAccessTime;
858     FILETIME  ftLastWriteTime;
859     DWORD     nFileSizeHigh;
860     DWORD     nFileSizeLow;
861     DWORD     dwReserved0;
862     DWORD     dwReserved1;
863     CHAR      cFileName[260];
864     CHAR      cAlternateFileName[14];
865 } WIN32_FIND_DATA32A, *LPWIN32_FIND_DATA32A;
866
867 typedef struct
868 {
869     DWORD     dwFileAttributes;
870     FILETIME  ftCreationTime;
871     FILETIME  ftLastAccessTime;
872     FILETIME  ftLastWriteTime;
873     DWORD     nFileSizeHigh;
874     DWORD     nFileSizeLow;
875     DWORD     dwReserved0;
876     DWORD     dwReserved1;
877     WCHAR     cFileName[260];
878     WCHAR     cAlternateFileName[14];
879 } WIN32_FIND_DATA32W, *LPWIN32_FIND_DATA32W;
880
881 DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA)
882 DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA)
883
884 #define INVALID_HANDLE_VALUE16  ((HANDLE16) -1)
885 #define INVALID_HANDLE_VALUE32  ((HANDLE32) -1)
886 #define INVALID_HANDLE_VALUE WINELIB_NAME(INVALID_HANDLE_VALUE)
887
888 /* comm */
889
890 #define CBR_110 0xFF10
891 #define CBR_300 0xFF11
892 #define CBR_600 0xFF12
893 #define CBR_1200        0xFF13
894 #define CBR_2400        0xFF14
895 #define CBR_4800        0xFF15
896 #define CBR_9600        0xFF16
897 #define CBR_14400       0xFF17
898 #define CBR_19200       0xFF18
899 #define CBR_38400       0xFF1B
900 #define CBR_56000       0xFF1F
901 #define CBR_128000      0xFF23
902 #define CBR_256000      0xFF27
903
904 #define NOPARITY        0
905 #define ODDPARITY       1
906 #define EVENPARITY      2
907 #define MARKPARITY      3
908 #define SPACEPARITY     4
909 #define ONESTOPBIT      0
910 #define ONE5STOPBITS    1
911 #define TWOSTOPBITS     2
912
913 #define IGNORE          0
914 #define INFINITE16      0xFFFF
915 #define INFINITE32      0xFFFFFFFF
916 #define INFINITE WINELIB_NAME(INFINITE)
917
918 #define CE_RXOVER       0x0001
919 #define CE_OVERRUN      0x0002
920 #define CE_RXPARITY     0x0004
921 #define CE_FRAME        0x0008
922 #define CE_BREAK        0x0010
923 #define CE_CTSTO        0x0020
924 #define CE_DSRTO        0x0040
925 #define CE_RLSDTO       0x0080
926 #define CE_TXFULL       0x0100
927 #define CE_PTO          0x0200
928 #define CE_IOE          0x0400
929 #define CE_DNS          0x0800
930 #define CE_OOP          0x1000
931 #define CE_MODE 0x8000
932
933 #define IE_BADID        -1
934 #define IE_OPEN -2
935 #define IE_NOPEN        -3
936 #define IE_MEMORY       -4
937 #define IE_DEFAULT      -5
938 #define IE_HARDWARE     -10
939 #define IE_BYTESIZE     -11
940 #define IE_BAUDRATE     -12
941
942 #define EV_RXCHAR       0x0001
943 #define EV_RXFLAG       0x0002
944 #define EV_TXEMPTY      0x0004
945 #define EV_CTS          0x0008
946 #define EV_DSR          0x0010
947 #define EV_RLSD 0x0020
948 #define EV_BREAK        0x0040
949 #define EV_ERR          0x0080
950 #define EV_RING 0x0100
951 #define EV_PERR 0x0200
952 #define EV_CTSS 0x0400
953 #define EV_DSRS 0x0800
954 #define EV_RLSDS        0x1000
955 #define EV_RINGTE       0x2000
956 #define EV_RingTe       EV_RINGTE
957
958 #define SETXOFF 1
959 #define SETXON          2
960 #define SETRTS          3
961 #define CLRRTS          4
962 #define SETDTR          5
963 #define CLRDTR          6
964 #define RESETDEV        7
965 /* win16 only */
966 #define GETMAXLPT       8
967 #define GETMAXCOM       9
968 /* win32 only */
969 #define SETBREAK        8
970 #define CLRBREAK        9
971
972 #define GETBASEIRQ      10
973
974 /* Purge functions for Comm Port */
975 #define PURGE_TXABORT       0x0001  /* Kill the pending/current writes to the 
976                                        comm port */
977 #define PURGE_RXABORT       0x0002  /*Kill the pending/current reads to 
978                                      the comm port */
979 #define PURGE_TXCLEAR       0x0004  /* Kill the transmit queue if there*/
980 #define PURGE_RXCLEAR       0x0008  /* Kill the typeahead buffer if there*/
981
982
983 /* Modem Status Flags */
984 #define MS_CTS_ON           ((DWORD)0x0010)
985 #define MS_DSR_ON           ((DWORD)0x0020)
986 #define MS_RING_ON          ((DWORD)0x0040)
987 #define MS_RLSD_ON          ((DWORD)0x0080)
988
989 #define RTS_CONTROL_DISABLE     0
990 #define RTS_CONTROL_ENABLE      1
991 #define RTS_CONTROL_HANDSHAKE   2
992 #define RTS_CONTROL_TOGGLE      3
993
994 #define DTR_CONTROL_DISABLE     0
995 #define DTR_CONTROL_ENABLE      1
996 #define DTR_CONTROL_HANDSHAKE   2
997
998 #define CSTF_CTSHOLD    0x01
999 #define CSTF_DSRHOLD    0x02
1000 #define CSTF_RLSDHOLD   0x04
1001 #define CSTF_XOFFHOLD   0x08
1002 #define CSTF_XOFFSENT   0x10
1003 #define CSTF_EOF        0x20
1004 #define CSTF_TXIM       0x40
1005
1006 /* SystemParametersInfo */
1007 /* defines below are for all win versions */
1008 #define SPI_GETBEEP               1
1009 #define SPI_SETBEEP               2
1010 #define SPI_GETMOUSE              3
1011 #define SPI_SETMOUSE              4
1012 #define SPI_GETBORDER             5
1013 #define SPI_SETBORDER             6
1014 #define SPI_GETKEYBOARDSPEED      10
1015 #define SPI_SETKEYBOARDSPEED      11
1016 #define SPI_LANGDRIVER            12
1017 #define SPI_ICONHORIZONTALSPACING 13
1018 #define SPI_GETSCREENSAVETIMEOUT  14
1019 #define SPI_SETSCREENSAVETIMEOUT  15
1020 #define SPI_GETSCREENSAVEACTIVE   16
1021 #define SPI_SETSCREENSAVEACTIVE   17
1022 #define SPI_GETGRIDGRANULARITY    18
1023 #define SPI_SETGRIDGRANULARITY    19
1024 #define SPI_SETDESKWALLPAPER      20
1025 #define SPI_SETDESKPATTERN        21
1026 #define SPI_GETKEYBOARDDELAY      22
1027 #define SPI_SETKEYBOARDDELAY      23
1028 #define SPI_ICONVERTICALSPACING   24
1029 #define SPI_GETICONTITLEWRAP      25
1030 #define SPI_SETICONTITLEWRAP      26
1031 #define SPI_GETMENUDROPALIGNMENT  27
1032 #define SPI_SETMENUDROPALIGNMENT  28
1033 #define SPI_SETDOUBLECLKWIDTH     29
1034 #define SPI_SETDOUBLECLKHEIGHT    30
1035 #define SPI_GETICONTITLELOGFONT   31
1036 #define SPI_SETDOUBLECLICKTIME    32
1037 #define SPI_SETMOUSEBUTTONSWAP    33
1038 #define SPI_SETICONTITLELOGFONT   34
1039 #define SPI_GETFASTTASKSWITCH     35
1040 #define SPI_SETFASTTASKSWITCH     36
1041 #define SPI_SETDRAGFULLWINDOWS    37
1042 #define SPI_GETDRAGFULLWINDOWS    38
1043
1044 #define SPI_GETFILTERKEYS         50
1045 #define SPI_SETFILTERKEYS         51
1046 #define SPI_GETTOGGLEKEYS         52
1047 #define SPI_SETTOGGLEKEYS         53
1048 #define SPI_GETMOUSEKEYS          54
1049 #define SPI_SETMOUSEKEYS          55
1050 #define SPI_GETSHOWSOUNDS         56
1051 #define SPI_SETSHOWSOUNDS         57
1052 #define SPI_GETSTICKYKEYS         58
1053 #define SPI_SETSTICKYKEYS         59
1054 #define SPI_GETACCESSTIMEOUT      60
1055 #define SPI_SETACCESSTIMEOUT      61
1056
1057 #define SPI_GETSOUNDSENTRY        64
1058 #define SPI_SETSOUNDSENTRY        65
1059
1060 /* defines below are for all win versions WINVER >= 0x0400 */
1061 #define SPI_SETDRAGFULLWINDOWS    37
1062 #define SPI_GETDRAGFULLWINDOWS    38
1063 #define SPI_GETNONCLIENTMETRICS   41
1064 #define SPI_SETNONCLIENTMETRICS   42
1065 #define SPI_GETMINIMIZEDMETRICS   43
1066 #define SPI_SETMINIMIZEDMETRICS   44
1067 #define SPI_GETICONMETRICS        45
1068 #define SPI_SETICONMETRICS        46
1069 #define SPI_SETWORKAREA           47
1070 #define SPI_GETWORKAREA           48
1071 #define SPI_SETPENWINDOWS         49
1072
1073 #define SPI_GETSERIALKEYS         62
1074 #define SPI_SETSERIALKEYS         63
1075 #define SPI_GETHIGHCONTRAST       66
1076 #define SPI_SETHIGHCONTRAST       67
1077 #define SPI_GETKEYBOARDPREF       68
1078 #define SPI_SETKEYBOARDPREF       69
1079 #define SPI_GETSCREENREADER       70
1080 #define SPI_SETSCREENREADER       71
1081 #define SPI_GETANIMATION          72
1082 #define SPI_SETANIMATION          73
1083 #define SPI_GETFONTSMOOTHING      74
1084 #define SPI_SETFONTSMOOTHING      75
1085 #define SPI_SETDRAGWIDTH          76
1086 #define SPI_SETDRAGHEIGHT         77
1087 #define SPI_SETHANDHELD           78
1088 #define SPI_GETLOWPOWERTIMEOUT    79
1089 #define SPI_GETPOWEROFFTIMEOUT    80
1090 #define SPI_SETLOWPOWERTIMEOUT    81
1091 #define SPI_SETPOWEROFFTIMEOUT    82
1092 #define SPI_GETLOWPOWERACTIVE     83
1093 #define SPI_GETPOWEROFFACTIVE     84
1094 #define SPI_SETLOWPOWERACTIVE     85
1095 #define SPI_SETPOWEROFFACTIVE     86
1096 #define SPI_SETCURSORS            87
1097 #define SPI_SETICONS              88
1098 #define SPI_GETDEFAULTINPUTLANG   89
1099 #define SPI_SETDEFAULTINPUTLANG   90
1100 #define SPI_SETLANGTOGGLE         91
1101 #define SPI_GETWINDOWSEXTENSION   92
1102 #define SPI_SETMOUSETRAILS        93
1103 #define SPI_GETMOUSETRAILS        94
1104 #define SPI_SETSCREENSAVERRUNNING 97
1105 #define SPI_SCREENSAVERRUNNING    SPI_SETSCREENSAVERRUNNING
1106
1107 /* defines below are for all win versions (_WIN32_WINNT >= 0x0400) ||
1108  *                                        (_WIN32_WINDOWS > 0x0400) */
1109 #define SPI_GETMOUSEHOVERWIDTH    98
1110 #define SPI_SETMOUSEHOVERWIDTH    99
1111 #define SPI_GETMOUSEHOVERHEIGHT   100
1112 #define SPI_SETMOUSEHOVERHEIGHT   101
1113 #define SPI_GETMOUSEHOVERTIME     102
1114 #define SPI_SETMOUSEHOVERTIME     103
1115 #define SPI_GETWHEELSCROLLLINES   104
1116 #define SPI_SETWHEELSCROLLLINES   105
1117
1118 #define SPI_GETSHOWIMEUI          110
1119 #define SPI_SETSHOWIMEUI          111
1120
1121 /* defines below are for all win versions WINVER >= 0x0500 */
1122 #define SPI_GETMOUSESPEED         112
1123 #define SPI_SETMOUSESPEED         113
1124 #define SPI_GETSCREENSAVERRUNNING 114
1125
1126 #define SPI_GETACTIVEWINDOWTRACKING    0x1000
1127 #define SPI_SETACTIVEWINDOWTRACKING    0x1001
1128 #define SPI_GETMENUANIMATION           0x1002
1129 #define SPI_SETMENUANIMATION           0x1003
1130 #define SPI_GETCOMBOBOXANIMATION       0x1004
1131 #define SPI_SETCOMBOBOXANIMATION       0x1005
1132 #define SPI_GETLISTBOXSMOOTHSCROLLING  0x1006
1133 #define SPI_SETLISTBOXSMOOTHSCROLLING  0x1007
1134 #define SPI_GETGRADIENTCAPTIONS        0x1008
1135 #define SPI_SETGRADIENTCAPTIONS        0x1009
1136 #define SPI_GETMENUUNDERLINES          0x100A
1137 #define SPI_SETMENUUNDERLINES          0x100B
1138 #define SPI_GETACTIVEWNDTRKZORDER      0x100C
1139 #define SPI_SETACTIVEWNDTRKZORDER      0x100D
1140 #define SPI_GETHOTTRACKING             0x100E
1141 #define SPI_SETHOTTRACKING             0x100F
1142 #define SPI_GETFOREGROUNDLOCKTIMEOUT   0x2000
1143 #define SPI_SETFOREGROUNDLOCKTIMEOUT   0x2001
1144 #define SPI_GETACTIVEWNDTRKTIMEOUT     0x2002
1145 #define SPI_SETACTIVEWNDTRKTIMEOUT     0x2003
1146 #define SPI_GETFOREGROUNDFLASHCOUNT    0x2004
1147 #define SPI_SETFOREGROUNDFLASHCOUNT    0x2005
1148
1149 /* SystemParametersInfo flags */
1150
1151 #define SPIF_UPDATEINIFILE              1
1152 #define SPIF_SENDWININICHANGE           2
1153 #define SPIF_SENDCHANGE                 SPIF_SENDWININICHANGE
1154
1155 /* flags for HIGHCONTRAST dwFlags field */
1156 #define HCF_HIGHCONTRASTON  0x00000001
1157 #define HCF_AVAILABLE       0x00000002
1158 #define HCF_HOTKEYACTIVE    0x00000004
1159 #define HCF_CONFIRMHOTKEY   0x00000008
1160 #define HCF_HOTKEYSOUND     0x00000010
1161 #define HCF_INDICATOR       0x00000020
1162 #define HCF_HOTKEYAVAILABLE 0x00000040
1163 typedef struct tagHIGHCONTRASTA
1164 {
1165     UINT32  cbSize;
1166     DWORD   dwFlags;
1167     LPSTR   lpszDefaultScheme;
1168 }   HIGHCONTRASTA, *LPHIGHCONTRASTA;
1169
1170 typedef struct tagHIGHCONTRASTW
1171 {
1172     UINT32  cbSize;
1173     DWORD   dwFlags;
1174     LPWSTR  lpszDefaultScheme;
1175 }   HIGHCONTRASTW, *LPHIGHCONTRASTW;
1176
1177 /* GetFreeSystemResources() parameters */
1178
1179 #define GFSR_SYSTEMRESOURCES   0x0000
1180 #define GFSR_GDIRESOURCES      0x0001
1181 #define GFSR_USERRESOURCES     0x0002
1182
1183 /* GetWinFlags */
1184
1185 #define WF_PMODE        0x0001
1186 #define WF_CPU286       0x0002
1187 #define WF_CPU386       0x0004
1188 #define WF_CPU486       0x0008
1189 #define WF_STANDARD     0x0010
1190 #define WF_WIN286       0x0010
1191 #define WF_ENHANCED     0x0020
1192 #define WF_WIN386       0x0020
1193 #define WF_CPU086       0x0040
1194 #define WF_CPU186       0x0080
1195 #define WF_LARGEFRAME   0x0100
1196 #define WF_SMALLFRAME   0x0200
1197 #define WF_80x87        0x0400
1198 #define WF_PAGING       0x0800
1199 #define WF_HASCPUID     0x2000
1200 #define WF_WIN32WOW     0x4000  /* undoc */
1201 #define WF_WLO          0x8000
1202
1203 #define MAKEINTRESOURCE16(i)  (SEGPTR)((DWORD)((WORD)(i)))
1204 #define MAKEINTRESOURCE32A(i) (LPSTR)((DWORD)((WORD)(i)))
1205 #define MAKEINTRESOURCE32W(i) (LPWSTR)((DWORD)((WORD)(i)))
1206 #define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE)
1207
1208 /* Predefined resource types */
1209 #define RT_CURSOR16          MAKEINTRESOURCE16(1)
1210 #define RT_CURSOR32A         MAKEINTRESOURCE32A(1)
1211 #define RT_CURSOR32W         MAKEINTRESOURCE32W(1)
1212 #define RT_CURSOR            WINELIB_NAME_AW(RT_CURSOR)
1213 #define RT_BITMAP16          MAKEINTRESOURCE16(2)
1214 #define RT_BITMAP32A         MAKEINTRESOURCE32A(2)
1215 #define RT_BITMAP32W         MAKEINTRESOURCE32W(2)
1216 #define RT_BITMAP            WINELIB_NAME_AW(RT_BITMAP)
1217 #define RT_ICON16            MAKEINTRESOURCE16(3)
1218 #define RT_ICON32A           MAKEINTRESOURCE32A(3)
1219 #define RT_ICON32W           MAKEINTRESOURCE32W(3)
1220 #define RT_ICON              WINELIB_NAME_AW(RT_ICON)
1221 #define RT_MENU16            MAKEINTRESOURCE16(4)
1222 #define RT_MENU32A           MAKEINTRESOURCE32A(4)
1223 #define RT_MENU32W           MAKEINTRESOURCE32W(4)
1224 #define RT_MENU              WINELIB_NAME_AW(RT_MENU)
1225 #define RT_DIALOG16          MAKEINTRESOURCE16(5)
1226 #define RT_DIALOG32A         MAKEINTRESOURCE32A(5)
1227 #define RT_DIALOG32W         MAKEINTRESOURCE32W(5)
1228 #define RT_DIALOG            WINELIB_NAME_AW(RT_DIALOG)
1229 #define RT_STRING16          MAKEINTRESOURCE16(6)
1230 #define RT_STRING32A         MAKEINTRESOURCE32A(6)
1231 #define RT_STRING32W         MAKEINTRESOURCE32W(6)
1232 #define RT_STRING            WINELIB_NAME_AW(RT_STRING)
1233 #define RT_FONTDIR16         MAKEINTRESOURCE16(7)
1234 #define RT_FONTDIR32A        MAKEINTRESOURCE32A(7)
1235 #define RT_FONTDIR32W        MAKEINTRESOURCE32W(7)
1236 #define RT_FONTDIR           WINELIB_NAME_AW(RT_FONTDIR)
1237 #define RT_FONT16            MAKEINTRESOURCE16(8)
1238 #define RT_FONT32A           MAKEINTRESOURCE32A(8)
1239 #define RT_FONT32W           MAKEINTRESOURCE32W(8)
1240 #define RT_FONT              WINELIB_NAME_AW(RT_FONT)
1241 #define RT_ACCELERATOR16     MAKEINTRESOURCE16(9)
1242 #define RT_ACCELERATOR32A    MAKEINTRESOURCE32A(9)
1243 #define RT_ACCELERATOR32W    MAKEINTRESOURCE32W(9)
1244 #define RT_ACCELERATOR       WINELIB_NAME_AW(RT_ACCELERATOR)
1245 #define RT_RCDATA16          MAKEINTRESOURCE16(10)
1246 #define RT_RCDATA32A         MAKEINTRESOURCE32A(10)
1247 #define RT_RCDATA32W         MAKEINTRESOURCE32W(10)
1248 #define RT_RCDATA            WINELIB_NAME_AW(RT_RCDATA)
1249 #define RT_MESSAGELIST16     MAKEINTRESOURCE16(11)
1250 #define RT_MESSAGELIST32A    MAKEINTRESOURCE32A(11)
1251 #define RT_MESSAGELIST32W    MAKEINTRESOURCE32W(11)
1252 #define RT_MESSAGELIST       WINELIB_NAME_AW(RT_MESSAGELIST)
1253 #define RT_GROUP_CURSOR16    MAKEINTRESOURCE16(12)
1254 #define RT_GROUP_CURSOR32A   MAKEINTRESOURCE32A(12)
1255 #define RT_GROUP_CURSOR32W   MAKEINTRESOURCE32W(12)
1256 #define RT_GROUP_CURSOR      WINELIB_NAME_AW(RT_GROUP_CURSOR)
1257 #define RT_GROUP_ICON16      MAKEINTRESOURCE16(14)
1258 #define RT_GROUP_ICON32A     MAKEINTRESOURCE32A(14)
1259 #define RT_GROUP_ICON32W     MAKEINTRESOURCE32W(14)
1260 #define RT_GROUP_ICON        WINELIB_NAME_AW(RT_GROUP_ICON)
1261
1262 /* Predefined resources */
1263 #define IDI_APPLICATION16  MAKEINTRESOURCE16(32512)
1264 #define IDI_APPLICATION32A MAKEINTRESOURCE32A(32512)
1265 #define IDI_APPLICATION32W MAKEINTRESOURCE32W(32512)
1266 #define IDI_APPLICATION    WINELIB_NAME_AW(IDI_APPLICATION)
1267 #define IDI_HAND16         MAKEINTRESOURCE16(32513)
1268 #define IDI_HAND32A        MAKEINTRESOURCE32A(32513)
1269 #define IDI_HAND32W        MAKEINTRESOURCE32W(32513)
1270 #define IDI_HAND           WINELIB_NAME_AW(IDI_HAND)
1271 #define IDI_QUESTION16     MAKEINTRESOURCE16(32514)
1272 #define IDI_QUESTION32A    MAKEINTRESOURCE32A(32514)
1273 #define IDI_QUESTION32W    MAKEINTRESOURCE32W(32514)
1274 #define IDI_QUESTION       WINELIB_NAME_AW(IDI_QUESTION)
1275 #define IDI_EXCLAMATION16  MAKEINTRESOURCE16(32515)
1276 #define IDI_EXCLAMATION32A MAKEINTRESOURCE32A(32515)
1277 #define IDI_EXCLAMATION32W MAKEINTRESOURCE32W(32515)
1278 #define IDI_EXCLAMATION    WINELIB_NAME_AW(IDI_EXCLAMATION)
1279 #define IDI_ASTERISK16     MAKEINTRESOURCE16(32516)
1280 #define IDI_ASTERISK32A    MAKEINTRESOURCE32A(32516)
1281 #define IDI_ASTERISK32W    MAKEINTRESOURCE32W(32516)
1282 #define IDI_ASTERISK       WINELIB_NAME_AW(IDI_ASTERISK)
1283
1284 #define IDC_BUMMER16       MAKEINTRESOURCE16(100)
1285 #define IDC_BUMMER32A      MAKEINTRESOURCE32A(100)
1286 #define IDC_BUMMER32W      MAKEINTRESOURCE32W(100)
1287 #define IDC_BUMMER         WINELIB_NAME_AW(IDC_BUMMER)
1288 #define IDC_ARROW16        MAKEINTRESOURCE16(32512)
1289 #define IDC_ARROW32A       MAKEINTRESOURCE32A(32512)
1290 #define IDC_ARROW32W       MAKEINTRESOURCE32W(32512)
1291 #define IDC_ARROW          WINELIB_NAME_AW(IDC_ARROW)
1292 #define IDC_IBEAM16        MAKEINTRESOURCE16(32513)
1293 #define IDC_IBEAM32A       MAKEINTRESOURCE32A(32513)
1294 #define IDC_IBEAM32W       MAKEINTRESOURCE32W(32513)
1295 #define IDC_IBEAM          WINELIB_NAME_AW(IDC_IBEAM)
1296 #define IDC_WAIT16         MAKEINTRESOURCE16(32514)
1297 #define IDC_WAIT32A        MAKEINTRESOURCE32A(32514)
1298 #define IDC_WAIT32W        MAKEINTRESOURCE32W(32514)
1299 #define IDC_WAIT           WINELIB_NAME_AW(IDC_WAIT)
1300 #define IDC_CROSS16        MAKEINTRESOURCE16(32515)
1301 #define IDC_CROSS32A       MAKEINTRESOURCE32A(32515)
1302 #define IDC_CROSS32W       MAKEINTRESOURCE32W(32515)
1303 #define IDC_CROSS          WINELIB_NAME_AW(IDC_CROSS)
1304 #define IDC_UPARROW16      MAKEINTRESOURCE16(32516)
1305 #define IDC_UPARROW32A     MAKEINTRESOURCE32A(32516)
1306 #define IDC_UPARROW32W     MAKEINTRESOURCE32W(32516)
1307 #define IDC_UPARROW        WINELIB_NAME_AW(IDC_UPARROW)
1308 #define IDC_SIZE16         MAKEINTRESOURCE16(32640)
1309 #define IDC_SIZE32A        MAKEINTRESOURCE32A(32640)
1310 #define IDC_SIZE32W        MAKEINTRESOURCE32W(32640)
1311 #define IDC_SIZE           WINELIB_NAME_AW(IDC_SIZE)
1312 #define IDC_ICON16         MAKEINTRESOURCE16(32641)
1313 #define IDC_ICON32A        MAKEINTRESOURCE32A(32641)
1314 #define IDC_ICON32W        MAKEINTRESOURCE32W(32641)
1315 #define IDC_ICON           WINELIB_NAME_AW(IDC_ICON)
1316 #define IDC_SIZENWSE16     MAKEINTRESOURCE16(32642)
1317 #define IDC_SIZENWSE32A    MAKEINTRESOURCE32A(32642)
1318 #define IDC_SIZENWSE32W    MAKEINTRESOURCE32W(32642)
1319 #define IDC_SIZENWSE       WINELIB_NAME_AW(IDC_SIZENWSE)
1320 #define IDC_SIZENESW16     MAKEINTRESOURCE16(32643)
1321 #define IDC_SIZENESW32A    MAKEINTRESOURCE32A(32643)
1322 #define IDC_SIZENESW32W    MAKEINTRESOURCE32W(32643)
1323 #define IDC_SIZENESW       WINELIB_NAME_AW(IDC_SIZENESW)
1324 #define IDC_SIZEWE16       MAKEINTRESOURCE16(32644)
1325 #define IDC_SIZEWE32A      MAKEINTRESOURCE32A(32644)
1326 #define IDC_SIZEWE32W      MAKEINTRESOURCE32W(32644)
1327 #define IDC_SIZEWE         WINELIB_NAME_AW(IDC_SIZEWE)
1328 #define IDC_SIZENS16       MAKEINTRESOURCE16(32645)
1329 #define IDC_SIZENS32A      MAKEINTRESOURCE32A(32645)
1330 #define IDC_SIZENS32W      MAKEINTRESOURCE32W(32645)
1331 #define IDC_SIZENS         WINELIB_NAME_AW(IDC_SIZENS)
1332 #define IDC_SIZEALL16      MAKEINTRESOURCE16(32646)
1333 #define IDC_SIZEALL32A     MAKEINTRESOURCE32A(32646)
1334 #define IDC_SIZEALL32W     MAKEINTRESOURCE32W(32646)
1335 #define IDC_SIZEALL        WINELIB_NAME_AW(IDC_SIZEALL)
1336 #define IDC_NO16           MAKEINTRESOURCE16(32648)
1337 #define IDC_NO32A          MAKEINTRESOURCE32A(32648)
1338 #define IDC_NO32W          MAKEINTRESOURCE32W(32648)
1339 #define IDC_NO             WINELIB_NAME_AW(IDC_NO)
1340 #define IDC_APPSTARTING16  MAKEINTRESOURCE16(32650)
1341 #define IDC_APPSTARTING32A MAKEINTRESOURCE32A(32650)
1342 #define IDC_APPSTARTING32W MAKEINTRESOURCE32W(32650)
1343 #define IDC_APPSTARTING    WINELIB_NAME_AW(IDC_APPSTARTING)
1344 #define IDC_HELP16         MAKEINTRESOURCE16(32651)
1345 #define IDC_HELP32A        MAKEINTRESOURCE32A(32651)
1346 #define IDC_HELP32W        MAKEINTRESOURCE32W(32651)
1347 #define IDC_HELP           WINELIB_NAME_AW(IDC_HELP)
1348
1349 /* OEM Resource Ordinal Numbers */
1350 #define OBM_CLOSE           32754
1351 #define OBM_UPARROW         32753
1352 #define OBM_DNARROW         32752
1353 #define OBM_RGARROW         32751
1354 #define OBM_LFARROW         32750
1355 #define OBM_REDUCE          32749
1356 #define OBM_ZOOM            32748
1357 #define OBM_RESTORE         32747
1358 #define OBM_REDUCED         32746
1359 #define OBM_ZOOMD           32745
1360 #define OBM_RESTORED        32744
1361 #define OBM_UPARROWD        32743
1362 #define OBM_DNARROWD        32742
1363 #define OBM_RGARROWD        32741
1364 #define OBM_LFARROWD        32740
1365 #define OBM_MNARROW         32739
1366 #define OBM_COMBO           32738
1367 #define OBM_UPARROWI        32737
1368 #define OBM_DNARROWI        32736
1369 #define OBM_RGARROWI        32735
1370 #define OBM_LFARROWI        32734
1371
1372 #define OBM_FOLDER          32733
1373 #define OBM_FOLDER2         32732
1374 #define OBM_FLOPPY          32731
1375 #define OBM_HDISK           32730
1376 #define OBM_CDROM           32729
1377 #define OBM_TRTYPE          32728
1378
1379 /* Wine extension, I think.  */
1380 #define OBM_RADIOCHECK      32727
1381
1382 #define OBM_OLD_CLOSE       32767
1383 #define OBM_SIZE            32766
1384 #define OBM_OLD_UPARROW     32765
1385 #define OBM_OLD_DNARROW     32764
1386 #define OBM_OLD_RGARROW     32763
1387 #define OBM_OLD_LFARROW     32762
1388 #define OBM_BTSIZE          32761
1389 #define OBM_CHECK           32760
1390 #define OBM_CHECKBOXES      32759
1391 #define OBM_BTNCORNERS      32758
1392 #define OBM_OLD_REDUCE      32757
1393 #define OBM_OLD_ZOOM        32756
1394 #define OBM_OLD_RESTORE     32755
1395
1396 #define OCR_BUMMER          100
1397 #define OCR_DRAGOBJECT      101
1398
1399 #define OCR_NORMAL          32512
1400 #define OCR_IBEAM           32513
1401 #define OCR_WAIT            32514
1402 #define OCR_CROSS           32515
1403 #define OCR_UP              32516
1404 #define OCR_SIZE            32640
1405 #define OCR_ICON            32641
1406 #define OCR_SIZENWSE        32642
1407 #define OCR_SIZENESW        32643
1408 #define OCR_SIZEWE          32644
1409 #define OCR_SIZENS          32645
1410 #define OCR_SIZEALL         32646
1411 #define OCR_ICOCUR          32647
1412 #define OCR_NO              32648
1413 #define OCR_APPSTARTING     32650
1414 #define OCR_HELP            32651  /* only defined in wine */
1415
1416 #define OIC_SAMPLE          32512
1417 #define OIC_HAND            32513
1418 #define OIC_QUES            32514
1419 #define OIC_BANG            32515
1420 #define OIC_NOTE            32516
1421 #define OIC_PORTRAIT        32517
1422 #define OIC_LANDSCAPE       32518
1423 #define OIC_WINEICON        32519
1424
1425
1426 /* DragObject stuff */
1427
1428 typedef struct
1429 {
1430     HWND16     hWnd;
1431     HANDLE16   hScope;
1432     WORD       wFlags;
1433     HANDLE16   hList;
1434     HANDLE16   hOfStruct;
1435     POINT16 pt WINE_PACKED;
1436     LONG       l WINE_PACKED;
1437 } DRAGINFO, *LPDRAGINFO;
1438
1439 #define DRAGOBJ_PROGRAM         0x0001
1440 #define DRAGOBJ_DATA            0x0002
1441 #define DRAGOBJ_DIRECTORY       0x0004
1442 #define DRAGOBJ_MULTIPLE        0x0008
1443 #define DRAGOBJ_EXTERNAL        0x8000
1444
1445 #define DRAG_PRINT              0x544E5250
1446 #define DRAG_FILE               0x454C4946
1447
1448 /* Messages */
1449
1450 #define WM_NULL                 0x0000
1451 #define WM_CREATE               0x0001
1452 #define WM_DESTROY              0x0002
1453 #define WM_MOVE                 0x0003
1454 #define WM_SIZEWAIT             0x0004
1455 #define WM_SIZE                 0x0005
1456 #define WM_ACTIVATE             0x0006
1457 #define WM_SETFOCUS             0x0007
1458 #define WM_KILLFOCUS            0x0008
1459 #define WM_SETVISIBLE           0x0009
1460 #define WM_ENABLE               0x000a
1461 #define WM_SETREDRAW            0x000b
1462 #define WM_SETTEXT              0x000c
1463 #define WM_GETTEXT              0x000d
1464 #define WM_GETTEXTLENGTH        0x000e
1465 #define WM_PAINT                0x000f
1466 #define WM_CLOSE                0x0010
1467 #define WM_QUERYENDSESSION      0x0011
1468 #define WM_QUIT                 0x0012
1469 #define WM_QUERYOPEN            0x0013
1470 #define WM_ERASEBKGND           0x0014
1471 #define WM_SYSCOLORCHANGE       0x0015
1472 #define WM_ENDSESSION           0x0016
1473 #define WM_SYSTEMERROR          0x0017
1474 #define WM_SHOWWINDOW           0x0018
1475 #define WM_CTLCOLOR             0x0019
1476 #define WM_WININICHANGE         0x001a
1477 #define WM_SETTINGCHANGE        WM_WININICHANGE
1478 #define WM_DEVMODECHANGE        0x001b
1479 #define WM_ACTIVATEAPP          0x001c
1480 #define WM_FONTCHANGE           0x001d
1481 #define WM_TIMECHANGE           0x001e
1482 #define WM_CANCELMODE           0x001f
1483 #define WM_SETCURSOR            0x0020
1484 #define WM_MOUSEACTIVATE        0x0021
1485 #define WM_CHILDACTIVATE        0x0022
1486 #define WM_QUEUESYNC            0x0023
1487 #define WM_GETMINMAXINFO        0x0024
1488
1489 #define WM_PAINTICON            0x0026
1490 #define WM_ICONERASEBKGND       0x0027
1491 #define WM_NEXTDLGCTL           0x0028
1492 #define WM_ALTTABACTIVE         0x0029
1493 #define WM_SPOOLERSTATUS        0x002a
1494 #define WM_DRAWITEM             0x002b
1495 #define WM_MEASUREITEM          0x002c
1496 #define WM_DELETEITEM           0x002d
1497 #define WM_VKEYTOITEM           0x002e
1498 #define WM_CHARTOITEM           0x002f
1499 #define WM_SETFONT              0x0030
1500 #define WM_GETFONT              0x0031
1501 #define WM_SETHOTKEY            0x0032
1502 #define WM_GETHOTKEY            0x0033
1503 #define WM_FILESYSCHANGE        0x0034
1504 #define WM_ISACTIVEICON         0x0035
1505 #define WM_QUERYPARKICON        0x0036
1506 #define WM_QUERYDRAGICON        0x0037
1507 #define WM_QUERYSAVESTATE       0x0038
1508 #define WM_COMPAREITEM          0x0039
1509 #define WM_TESTING              0x003a
1510
1511 #define WM_OTHERWINDOWCREATED   0x003c
1512 #define WM_OTHERWINDOWDESTROYED 0x003d
1513 #define WM_ACTIVATESHELLWINDOW  0x003e
1514
1515 #define WM_COMPACTING           0x0041
1516
1517 #define WM_COMMNOTIFY           0x0044
1518 #define WM_WINDOWPOSCHANGING    0x0046
1519 #define WM_WINDOWPOSCHANGED     0x0047
1520 #define WM_POWER                0x0048
1521
1522   /* Win32 4.0 messages */
1523 #define WM_COPYDATA             0x004a
1524 #define WM_CANCELJOURNAL        0x004b
1525 #define WM_NOTIFY               0x004e
1526 #define WM_HELP                 0x0053
1527 #define WM_NOTIFYFORMAT         0x0055
1528
1529 #define WM_CONTEXTMENU          0x007b
1530 #define WM_STYLECHANGING        0x007c
1531 #define WM_STYLECHANGED         0x007d
1532 #define WM_DISPLAYCHANGE        0x007e
1533 #define WM_GETICON              0x007f
1534 #define WM_SETICON              0x0080
1535
1536   /* Non-client system messages */
1537 #define WM_NCCREATE         0x0081
1538 #define WM_NCDESTROY        0x0082
1539 #define WM_NCCALCSIZE       0x0083
1540 #define WM_NCHITTEST        0x0084
1541 #define WM_NCPAINT          0x0085
1542 #define WM_NCACTIVATE       0x0086
1543
1544 #define WM_GETDLGCODE       0x0087
1545 #define WM_SYNCPAINT        0x0088
1546 #define WM_SYNCTASK         0x0089
1547
1548   /* Non-client mouse messages */
1549 #define WM_NCMOUSEMOVE      0x00a0
1550 #define WM_NCLBUTTONDOWN    0x00a1
1551 #define WM_NCLBUTTONUP      0x00a2
1552 #define WM_NCLBUTTONDBLCLK  0x00a3
1553 #define WM_NCRBUTTONDOWN    0x00a4
1554 #define WM_NCRBUTTONUP      0x00a5
1555 #define WM_NCRBUTTONDBLCLK  0x00a6
1556 #define WM_NCMBUTTONDOWN    0x00a7
1557 #define WM_NCMBUTTONUP      0x00a8
1558 #define WM_NCMBUTTONDBLCLK  0x00a9
1559
1560   /* Keyboard messages */
1561 #define WM_KEYDOWN          0x0100
1562 #define WM_KEYUP            0x0101
1563 #define WM_CHAR             0x0102
1564 #define WM_DEADCHAR         0x0103
1565 #define WM_SYSKEYDOWN       0x0104
1566 #define WM_SYSKEYUP         0x0105
1567 #define WM_SYSCHAR          0x0106
1568 #define WM_SYSDEADCHAR      0x0107
1569 #define WM_KEYFIRST         WM_KEYDOWN
1570 #define WM_KEYLAST          0x0108
1571
1572 #define WM_INITDIALOG       0x0110 
1573 #define WM_COMMAND          0x0111
1574 #define WM_SYSCOMMAND       0x0112
1575 #define WM_TIMER            0x0113
1576 #define WM_SYSTIMER         0x0118
1577
1578   /* scroll messages */
1579 #define WM_HSCROLL          0x0114
1580 #define WM_VSCROLL          0x0115
1581
1582 /* Menu messages */
1583 #define WM_INITMENU         0x0116
1584 #define WM_INITMENUPOPUP    0x0117
1585
1586 #define WM_MENUSELECT       0x011F
1587 #define WM_MENUCHAR         0x0120
1588 #define WM_ENTERIDLE        0x0121
1589
1590 #define WM_LBTRACKPOINT     0x0131
1591
1592   /* Win32 CTLCOLOR messages */
1593 #define WM_CTLCOLORMSGBOX    0x0132
1594 #define WM_CTLCOLOREDIT      0x0133
1595 #define WM_CTLCOLORLISTBOX   0x0134
1596 #define WM_CTLCOLORBTN       0x0135
1597 #define WM_CTLCOLORDLG       0x0136
1598 #define WM_CTLCOLORSCROLLBAR 0x0137
1599 #define WM_CTLCOLORSTATIC    0x0138
1600
1601   /* Mouse messages */
1602 #define WM_MOUSEMOVE        0x0200
1603 #define WM_LBUTTONDOWN      0x0201
1604 #define WM_LBUTTONUP        0x0202
1605 #define WM_LBUTTONDBLCLK    0x0203
1606 #define WM_RBUTTONDOWN      0x0204
1607 #define WM_RBUTTONUP        0x0205
1608 #define WM_RBUTTONDBLCLK    0x0206
1609 #define WM_MBUTTONDOWN      0x0207
1610 #define WM_MBUTTONUP        0x0208
1611 #define WM_MBUTTONDBLCLK    0x0209
1612 #define WM_MOUSEFIRST       WM_MOUSEMOVE
1613 #define WM_MOUSELAST        WM_MBUTTONDBLCLK
1614
1615 #define WM_PARENTNOTIFY     0x0210
1616 #define WM_ENTERMENULOOP    0x0211
1617 #define WM_EXITMENULOOP     0x0212
1618 #define WM_NEXTMENU         0x0213
1619
1620   /* Win32 4.0 messages */
1621 #define WM_SIZING           0x0214
1622 #define WM_CAPTURECHANGED   0x0215
1623 #define WM_MOVING           0x0216
1624
1625   /* MDI messages */
1626 #define WM_MDICREATE        0x0220
1627 #define WM_MDIDESTROY       0x0221
1628 #define WM_MDIACTIVATE      0x0222
1629 #define WM_MDIRESTORE       0x0223
1630 #define WM_MDINEXT          0x0224
1631 #define WM_MDIMAXIMIZE      0x0225
1632 #define WM_MDITILE          0x0226
1633 #define WM_MDICASCADE       0x0227
1634 #define WM_MDIICONARRANGE   0x0228
1635 #define WM_MDIGETACTIVE     0x0229
1636 #define WM_MDIREFRESHMENU   0x0234
1637
1638   /* D&D messages */
1639 #define WM_DROPOBJECT       0x022A
1640 #define WM_QUERYDROPOBJECT  0x022B
1641 #define WM_BEGINDRAG        0x022C
1642 #define WM_DRAGLOOP         0x022D
1643 #define WM_DRAGSELECT       0x022E
1644 #define WM_DRAGMOVE         0x022F
1645 #define WM_MDISETMENU       0x0230
1646
1647 #define WM_ENTERSIZEMOVE    0x0231
1648 #define WM_EXITSIZEMOVE     0x0232
1649 #define WM_DROPFILES        0x0233
1650
1651 #define WM_CUT               0x0300
1652 #define WM_COPY              0x0301
1653 #define WM_PASTE             0x0302
1654 #define WM_CLEAR             0x0303
1655 #define WM_UNDO              0x0304
1656 #define WM_RENDERFORMAT      0x0305
1657 #define WM_RENDERALLFORMATS  0x0306
1658 #define WM_DESTROYCLIPBOARD  0x0307
1659 #define WM_DRAWCLIPBOARD     0x0308
1660 #define WM_PAINTCLIPBOARD    0x0309
1661 #define WM_VSCROLLCLIPBOARD  0x030A
1662 #define WM_SIZECLIPBOARD     0x030B
1663 #define WM_ASKCBFORMATNAME   0x030C
1664 #define WM_CHANGECBCHAIN     0x030D
1665 #define WM_HSCROLLCLIPBOARD  0x030E
1666 #define WM_QUERYNEWPALETTE   0x030F
1667 #define WM_PALETTEISCHANGING 0x0310
1668 #define WM_PALETTECHANGED    0x0311
1669 #define WM_HOTKEY            0x0312
1670
1671 #define WM_PRINT             0x0317
1672 #define WM_PRINTCLIENT       0x0318
1673
1674   /* MFC messages [370-37f] */
1675
1676 #define WM_QUERYAFXWNDPROC  0x0360
1677 #define WM_SIZEPARENT       0x0361
1678 #define WM_SETMESSAGESTRING 0x0362
1679 #define WM_IDLEUPDATECMDUI  0x0363 
1680 #define WM_INITIALUPDATE    0x0364
1681 #define WM_COMMANDHELP      0x0365
1682 #define WM_HELPHITTEST      0x0366
1683 #define WM_EXITHELPMODE     0x0367
1684 #define WM_RECALCPARENT     0x0368
1685 #define WM_SIZECHILD        0x0369
1686 #define WM_KICKIDLE         0x036A 
1687 #define WM_QUERYCENTERWND   0x036B
1688 #define WM_DISABLEMODAL     0x036C
1689 #define WM_FLOATSTATUS      0x036D 
1690 #define WM_ACTIVATETOPLEVEL 0x036E 
1691 #define WM_QUERY3DCONTROLS  0x036F 
1692 #define WM_SOCKET_NOTIFY    0x0373
1693 #define WM_SOCKET_DEAD      0x0374
1694 #define WM_POPMESSAGESTRING 0x0375
1695 #define WM_OCC_LOADFROMSTREAM           0x0376
1696 #define WM_OCC_LOADFROMSTORAGE          0x0377
1697 #define WM_OCC_INITNEW                  0x0378
1698 #define WM_OCC_LOADFROMSTREAM_EX        0x037A
1699 #define WM_OCC_LOADFROMSTORAGE_EX       0x037B
1700 #define WM_QUEUE_SENTINEL   0x0379
1701
1702 /* end of MFC messages */
1703
1704 #define WM_COALESCE_FIRST    0x0390
1705 #define WM_COALESCE_LAST     0x039F
1706
1707   /* misc messages */
1708 #define WM_NULL             0x0000
1709 #define WM_CPL_LAUNCH       (WM_USER + 1000)
1710 #define WM_CPL_LAUNCHED     (WM_USER + 1001)
1711
1712 /* WM_NOTIFYFORMAT commands and return values */
1713 #define NFR_ANSI            1
1714 #define NFR_UNICODE         2
1715 #define NF_QUERY            3
1716 #define NF_REQUERY          4
1717
1718   /* Key status flags for mouse events */
1719 #define MK_LBUTTON          0x0001
1720 #define MK_RBUTTON          0x0002
1721 #define MK_SHIFT            0x0004
1722 #define MK_CONTROL          0x0008
1723 #define MK_MBUTTON          0x0010
1724
1725   /* keybd_event flags */
1726 #define KEYEVENTF_EXTENDEDKEY        0x0001
1727 #define KEYEVENTF_KEYUP              0x0002
1728 #define KEYEVENTF_WINE_FORCEEXTENDED 0x8000
1729
1730   /* mouse_event flags */
1731 #define MOUSEEVENTF_MOVE        0x0001
1732 #define MOUSEEVENTF_LEFTDOWN    0x0002
1733 #define MOUSEEVENTF_LEFTUP      0x0004
1734 #define MOUSEEVENTF_RIGHTDOWN   0x0008
1735 #define MOUSEEVENTF_RIGHTUP     0x0010
1736 #define MOUSEEVENTF_MIDDLEDOWN  0x0020
1737 #define MOUSEEVENTF_MIDDLEUP    0x0040
1738 #define MOUSEEVENTF_ABSOLUTE    0x8000
1739
1740   /* Queue status flags */
1741 #define QS_KEY          0x0001
1742 #define QS_MOUSEMOVE    0x0002
1743 #define QS_MOUSEBUTTON  0x0004
1744 #define QS_MOUSE        (QS_MOUSEMOVE | QS_MOUSEBUTTON)
1745 #define QS_POSTMESSAGE  0x0008
1746 #define QS_TIMER        0x0010
1747 #define QS_PAINT        0x0020
1748 #define QS_SENDMESSAGE  0x0040
1749 #define QS_ALLINPUT     0x007f
1750
1751   /* PeekMessage() options */
1752 #define PM_NOREMOVE     0x0000
1753 #define PM_REMOVE       0x0001
1754 #define PM_NOYIELD      0x0002
1755
1756 #define WM_SHOWWINDOW       0x0018
1757
1758 /* WM_SHOWWINDOW wParam codes */
1759 #define SW_PARENTCLOSING    1
1760 #define SW_OTHERMAXIMIZED   2
1761 #define SW_PARENTOPENING    3
1762 #define SW_OTHERRESTORED    4
1763
1764   /* ShowWindow() codes */
1765 #define SW_HIDE             0
1766 #define SW_SHOWNORMAL       1
1767 #define SW_NORMAL           1
1768 #define SW_SHOWMINIMIZED    2
1769 #define SW_SHOWMAXIMIZED    3
1770 #define SW_MAXIMIZE         3
1771 #define SW_SHOWNOACTIVATE   4
1772 #define SW_SHOW             5
1773 #define SW_MINIMIZE         6
1774 #define SW_SHOWMINNOACTIVE  7
1775 #define SW_SHOWNA           8
1776 #define SW_RESTORE          9
1777 #define SW_SHOWDEFAULT      10
1778 #define SW_MAX              10
1779 #define SW_NORMALNA         0xCC        /* undoc. flag in MinMaximize */
1780
1781   /* WM_SIZE message wParam values */
1782 #define SIZE_RESTORED        0
1783 #define SIZE_MINIMIZED       1
1784 #define SIZE_MAXIMIZED       2
1785 #define SIZE_MAXSHOW         3
1786 #define SIZE_MAXHIDE         4
1787 #define SIZENORMAL           SIZE_RESTORED
1788 #define SIZEICONIC           SIZE_MINIMIZED
1789 #define SIZEFULLSCREEN       SIZE_MAXIMIZED
1790 #define SIZEZOOMSHOW         SIZE_MAXSHOW
1791 #define SIZEZOOMHIDE         SIZE_MAXHIDE
1792
1793 /* SetWindowPos() and WINDOWPOS flags */
1794 #define SWP_NOSIZE          0x0001
1795 #define SWP_NOMOVE          0x0002
1796 #define SWP_NOZORDER        0x0004
1797 #define SWP_NOREDRAW        0x0008
1798 #define SWP_NOACTIVATE      0x0010
1799 #define SWP_FRAMECHANGED    0x0020  /* The frame changed: send WM_NCCALCSIZE */
1800 #define SWP_SHOWWINDOW      0x0040
1801 #define SWP_HIDEWINDOW      0x0080
1802 #define SWP_NOCOPYBITS      0x0100
1803 #define SWP_NOOWNERZORDER   0x0200  /* Don't do owner Z ordering */
1804
1805 #define SWP_DRAWFRAME       SWP_FRAMECHANGED
1806 #define SWP_NOREPOSITION    SWP_NOOWNERZORDER
1807
1808 #define SWP_NOSENDCHANGING  0x0400
1809 #define SWP_DEFERERASE      0x2000
1810
1811 #define HWND_DESKTOP        ((HWND32)0)
1812 #define HWND_BROADCAST      ((HWND32)0xffff)
1813
1814 /* SetWindowPos() hwndInsertAfter field values */
1815 #define HWND_TOP            ((HWND32)0)
1816 #define HWND_BOTTOM         ((HWND32)1)
1817 #define HWND_TOPMOST        ((HWND32)-1)
1818 #define HWND_NOTOPMOST      ((HWND32)-2)
1819
1820 #define MF_INSERT          0x0000
1821 #define MF_CHANGE          0x0080
1822 #define MF_APPEND          0x0100
1823 #define MF_DELETE          0x0200
1824 #define MF_REMOVE          0x1000
1825 #define MF_END             0x0080
1826
1827 #define MF_ENABLED         0x0000
1828 #define MF_GRAYED          0x0001
1829 #define MF_DISABLED        0x0002
1830 #define MF_STRING          0x0000
1831 #define MF_BITMAP          0x0004
1832 #define MF_UNCHECKED       0x0000
1833 #define MF_CHECKED         0x0008
1834 #define MF_POPUP           0x0010
1835 #define MF_MENUBARBREAK    0x0020
1836 #define MF_MENUBREAK       0x0040
1837 #define MF_UNHILITE        0x0000
1838 #define MF_HILITE          0x0080
1839 #define MF_OWNERDRAW       0x0100
1840 #define MF_USECHECKBITMAPS 0x0200
1841 #define MF_BYCOMMAND       0x0000
1842 #define MF_BYPOSITION      0x0400
1843 #define MF_SEPARATOR       0x0800
1844 #define MF_DEFAULT         0x1000
1845 #define MF_SYSMENU         0x2000
1846 #define MF_HELP            0x4000
1847 #define MF_RIGHTJUSTIFY    0x4000
1848 #define MF_MOUSESELECT     0x8000
1849
1850 /* Flags for extended menu item types.  */
1851 #define MFT_STRING         MF_STRING
1852 #define MFT_BITMAP         MF_BITMAP
1853 #define MFT_MENUBARBREAK   MF_MENUBARBREAK
1854 #define MFT_MENUBREAK      MF_MENUBREAK
1855 #define MFT_OWNERDRAW      MF_OWNERDRAW
1856 #define MFT_RADIOCHECK     0x00000200L
1857 #define MFT_SEPARATOR      MF_SEPARATOR
1858 #define MFT_RIGHTORDER     0x00002000L
1859 #define MFT_RIGHTJUSTIFY   MF_RIGHTJUSTIFY
1860
1861 /* Flags for extended menu item states.  */
1862 #define MFS_GRAYED          0x00000003L
1863 #define MFS_DISABLED        MFS_GRAYED
1864 #define MFS_CHECKED         MF_CHECKED
1865 #define MFS_HILITE          MF_HILITE
1866 #define MFS_ENABLED         MF_ENABLED
1867 #define MFS_UNCHECKED       MF_UNCHECKED
1868 #define MFS_UNHILITE        MF_UNHILITE
1869 #define MFS_DEFAULT         MF_DEFAULT
1870
1871 #ifndef NOWINOFFSETS
1872 #define GCW_HBRBACKGROUND (-10)
1873 #endif
1874
1875 #define MB_OK                   0x00000000
1876 #define MB_OKCANCEL             0x00000001
1877 #define MB_ABORTRETRYIGNORE     0x00000002
1878 #define MB_YESNOCANCEL          0x00000003
1879 #define MB_YESNO                0x00000004
1880 #define MB_RETRYCANCEL          0x00000005
1881 #define MB_TYPEMASK             0x0000000F
1882
1883 #define MB_ICONHAND             0x00000010
1884 #define MB_ICONQUESTION         0x00000020
1885 #define MB_ICONEXCLAMATION      0x00000030
1886 #define MB_ICONASTERISK         0x00000040
1887 #define MB_USERICON             0x00000080
1888 #define MB_ICONMASK             0x000000F0
1889
1890 #define MB_ICONINFORMATION      MB_ICONASTERISK
1891 #define MB_ICONSTOP             MB_ICONHAND
1892 #define MB_ICONWARNING          MB_ICONEXCLAMATION
1893 #define MB_ICONERROR            MB_ICONHAND
1894
1895 #define MB_DEFBUTTON1           0x00000000
1896 #define MB_DEFBUTTON2           0x00000100
1897 #define MB_DEFBUTTON3           0x00000200
1898 #define MB_DEFBUTTON4           0x00000300
1899 #define MB_DEFMASK              0x00000F00
1900
1901 #define MB_APPLMODAL            0x00000000
1902 #define MB_SYSTEMMODAL          0x00001000
1903 #define MB_TASKMODAL            0x00002000
1904 #define MB_MODEMASK             0x00003000
1905
1906 #define MB_HELP                 0x00004000
1907 #define MB_NOFOCUS              0x00008000
1908 #define MB_MISCMASK             0x0000C000
1909
1910 #define MB_SETFOREGROUND        0x00010000
1911 #define MB_DEFAULT_DESKTOP_ONLY 0x00020000
1912 #define MB_SERVICE_NOTIFICATION 0x00040000
1913 #define MB_TOPMOST              0x00040000
1914 #define MB_RIGHT                0x00080000
1915 #define MB_RTLREADING           0x00100000
1916
1917
1918 #define DT_TOP 0
1919 #define DT_LEFT 0
1920 #define DT_CENTER 1
1921 #define DT_RIGHT 2
1922 #define DT_VCENTER 4
1923 #define DT_BOTTOM 8
1924 #define DT_WORDBREAK 16
1925 #define DT_SINGLELINE 32
1926 #define DT_EXPANDTABS 64
1927 #define DT_TABSTOP 128
1928 #define DT_NOCLIP 256
1929 #define DT_EXTERNALLEADING 512
1930 #define DT_CALCRECT 1024
1931 #define DT_NOPREFIX 2048
1932 #define DT_INTERNAL 4096
1933
1934 /* DrawCaption()/DrawCaptionTemp() flags */
1935 #define DC_ACTIVE               0x0001
1936 #define DC_SMALLCAP             0x0002
1937 #define DC_ICON                 0x0004
1938 #define DC_TEXT                 0x0008
1939 #define DC_INBUTTON             0x0010
1940
1941 /* DrawEdge() flags */
1942 #define BDR_RAISEDOUTER    0x0001
1943 #define BDR_SUNKENOUTER    0x0002
1944 #define BDR_RAISEDINNER    0x0004
1945 #define BDR_SUNKENINNER    0x0008
1946
1947 #define BDR_OUTER          0x0003
1948 #define BDR_INNER          0x000c
1949 #define BDR_RAISED         0x0005
1950 #define BDR_SUNKEN         0x000a
1951
1952 #define EDGE_RAISED        (BDR_RAISEDOUTER | BDR_RAISEDINNER)
1953 #define EDGE_SUNKEN        (BDR_SUNKENOUTER | BDR_SUNKENINNER)
1954 #define EDGE_ETCHED        (BDR_SUNKENOUTER | BDR_RAISEDINNER)
1955 #define EDGE_BUMP          (BDR_RAISEDOUTER | BDR_SUNKENINNER)
1956
1957 /* border flags */
1958 #define BF_LEFT            0x0001
1959 #define BF_TOP             0x0002
1960 #define BF_RIGHT           0x0004
1961 #define BF_BOTTOM          0x0008
1962 #define BF_DIAGONAL        0x0010
1963 #define BF_MIDDLE          0x0800  /* Fill in the middle */
1964 #define BF_SOFT            0x1000  /* For softer buttons */
1965 #define BF_ADJUST          0x2000  /* Calculate the space left over */
1966 #define BF_FLAT            0x4000  /* For flat rather than 3D borders */
1967 #define BF_MONO            0x8000  /* For monochrome borders */
1968 #define BF_TOPLEFT         (BF_TOP | BF_LEFT)
1969 #define BF_TOPRIGHT        (BF_TOP | BF_RIGHT)
1970 #define BF_BOTTOMLEFT      (BF_BOTTOM | BF_LEFT)
1971 #define BF_BOTTOMRIGHT     (BF_BOTTOM | BF_RIGHT)
1972 #define BF_RECT            (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
1973 #define BF_DIAGONAL_ENDTOPRIGHT     (BF_DIAGONAL | BF_TOP | BF_RIGHT)
1974 #define BF_DIAGONAL_ENDTOPLEFT      (BF_DIAGONAL | BF_TOP | BF_LEFT)
1975 #define BF_DIAGONAL_ENDBOTTOMLEFT   (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
1976 #define BF_DIAGONAL_ENDBOTTOMRIGHT  (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
1977
1978 /* DrawFrameControl() uType's */
1979
1980 #define DFC_CAPTION             1
1981 #define DFC_MENU                2
1982 #define DFC_SCROLL              3
1983 #define DFC_BUTTON              4
1984
1985 /* uState's */
1986
1987 #define DFCS_CAPTIONCLOSE       0x0000
1988 #define DFCS_CAPTIONMIN         0x0001
1989 #define DFCS_CAPTIONMAX         0x0002
1990 #define DFCS_CAPTIONRESTORE     0x0003
1991 #define DFCS_CAPTIONHELP        0x0004          /* Windows 95 only */
1992
1993 #define DFCS_MENUARROW          0x0000
1994 #define DFCS_MENUCHECK          0x0001
1995 #define DFCS_MENUBULLET         0x0002
1996 #define DFCS_MENUARROWRIGHT     0x0004
1997
1998 #define DFCS_SCROLLUP            0x0000
1999 #define DFCS_SCROLLDOWN          0x0001
2000 #define DFCS_SCROLLLEFT          0x0002
2001 #define DFCS_SCROLLRIGHT         0x0003
2002 #define DFCS_SCROLLCOMBOBOX      0x0005
2003 #define DFCS_SCROLLSIZEGRIP      0x0008
2004 #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
2005
2006 #define DFCS_BUTTONCHECK        0x0000
2007 #define DFCS_BUTTONRADIOIMAGE   0x0001
2008 #define DFCS_BUTTONRADIOMASK    0x0002          /* to draw nonsquare button */
2009 #define DFCS_BUTTONRADIO        0x0004
2010 #define DFCS_BUTTON3STATE       0x0008
2011 #define DFCS_BUTTONPUSH         0x0010
2012
2013 /* additional state of the control */
2014
2015 #define DFCS_INACTIVE           0x0100
2016 #define DFCS_PUSHED             0x0200
2017 #define DFCS_CHECKED            0x0400
2018 #define DFCS_ADJUSTRECT         0x2000          /* exclude surrounding edge */
2019 #define DFCS_FLAT               0x4000
2020 #define DFCS_MONO               0x8000
2021
2022 /* Image type */
2023 #define DST_COMPLEX     0x0000
2024 #define DST_TEXT        0x0001
2025 #define DST_PREFIXTEXT  0x0002
2026 #define DST_ICON        0x0003
2027 #define DST_BITMAP      0x0004
2028
2029 /* State type */
2030 #define DSS_NORMAL      0x0000
2031 #define DSS_UNION       0x0010  /* Gray string appearance */
2032 #define DSS_DISABLED    0x0020
2033 #define DSS_DEFAULT     0x0040  /* Make it bold */
2034 #define DSS_MONO        0x0080
2035 #define DSS_RIGHT       0x8000
2036
2037 /* Window Styles */
2038 #define WS_OVERLAPPED    0x00000000L
2039 #define WS_POPUP         0x80000000L
2040 #define WS_CHILD         0x40000000L
2041 #define WS_MINIMIZE      0x20000000L
2042 #define WS_VISIBLE       0x10000000L
2043 #define WS_DISABLED      0x08000000L
2044 #define WS_CLIPSIBLINGS  0x04000000L
2045 #define WS_CLIPCHILDREN  0x02000000L
2046 #define WS_MAXIMIZE      0x01000000L
2047 #define WS_CAPTION       0x00C00000L
2048 #define WS_BORDER        0x00800000L
2049 #define WS_DLGFRAME      0x00400000L
2050 #define WS_VSCROLL       0x00200000L
2051 #define WS_HSCROLL       0x00100000L
2052 #define WS_SYSMENU       0x00080000L
2053 #define WS_THICKFRAME    0x00040000L
2054 #define WS_GROUP         0x00020000L
2055 #define WS_TABSTOP       0x00010000L
2056 #define WS_MINIMIZEBOX   0x00020000L
2057 #define WS_MAXIMIZEBOX   0x00010000L
2058 #define WS_TILED         WS_OVERLAPPED
2059 #define WS_ICONIC        WS_MINIMIZE
2060 #define WS_SIZEBOX       WS_THICKFRAME
2061 #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
2062 #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
2063 #define WS_CHILDWINDOW (WS_CHILD)
2064 #define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW)
2065
2066 /* Window extended styles */
2067 #define WS_EX_DLGMODALFRAME    0x00000001L
2068 #define WS_EX_DRAGDETECT       0x00000002L
2069 #define WS_EX_NOPARENTNOTIFY   0x00000004L
2070 #define WS_EX_TOPMOST          0x00000008L
2071 #define WS_EX_ACCEPTFILES      0x00000010L
2072 #define WS_EX_TRANSPARENT      0x00000020L
2073
2074 /* New Win95/WinNT4 styles */
2075 #define WS_EX_MDICHILD         0x00000040L
2076 #define WS_EX_TOOLWINDOW       0x00000080L
2077 #define WS_EX_WINDOWEDGE       0x00000100L
2078 #define WS_EX_CLIENTEDGE       0x00000200L
2079 #define WS_EX_CONTEXTHELP      0x00000400L
2080 #define WS_EX_RIGHT            0x00001000L
2081 #define WS_EX_LEFT             0x00000000L
2082 #define WS_EX_RTLREADING       0x00002000L
2083 #define WS_EX_LTRREADING       0x00000000L
2084 #define WS_EX_LEFTSCROLLBAR    0x00004000L
2085 #define WS_EX_RIGHTSCROLLBAR   0x00000000L
2086 #define WS_EX_CONTROLPARENT    0x00010000L
2087 #define WS_EX_STATICEDGE       0x00020000L
2088 #define WS_EX_APPWINDOW        0x00040000L
2089
2090 #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE|WS_EX_CLIENTEDGE)
2091 #define WS_EX_PALETTEWINDOW    (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST)
2092
2093 /* Window scrolling */
2094 #define SW_SCROLLCHILDREN      0x0001
2095 #define SW_INVALIDATE          0x0002
2096 #define SW_ERASE               0x0004
2097
2098 /* CreateWindow() coordinates */
2099 #define CW_USEDEFAULT16 ((INT16)0x8000)
2100 #define CW_USEDEFAULT32 ((INT32)0x80000000)
2101 #define CW_USEDEFAULT   WINELIB_NAME(CW_USEDEFAULT)
2102
2103 /* ChildWindowFromPointEx Flags */
2104 #define CWP_ALL                0x0000
2105 #define CWP_SKIPINVISIBLE      0x0001
2106 #define CWP_SKIPDISABLED       0x0002
2107 #define CWP_SKIPTRANSPARENT    0x0004
2108
2109 /* Button control styles */
2110 #define BS_PUSHBUTTON          0x00000000L
2111 #define BS_DEFPUSHBUTTON       0x00000001L
2112 #define BS_CHECKBOX            0x00000002L
2113 #define BS_AUTOCHECKBOX        0x00000003L
2114 #define BS_RADIOBUTTON         0x00000004L
2115 #define BS_3STATE              0x00000005L
2116 #define BS_AUTO3STATE          0x00000006L
2117 #define BS_GROUPBOX            0x00000007L
2118 #define BS_USERBUTTON          0x00000008L
2119 #define BS_AUTORADIOBUTTON     0x00000009L
2120 #define BS_OWNERDRAW           0x0000000BL
2121 #define BS_LEFTTEXT            0x00000020L
2122
2123 /* Win16 button control messages */
2124 #define BM_GETCHECK16          (WM_USER+0)
2125 #define BM_SETCHECK16          (WM_USER+1)
2126 #define BM_GETSTATE16          (WM_USER+2)
2127 #define BM_SETSTATE16          (WM_USER+3)
2128 #define BM_SETSTYLE16          (WM_USER+4)
2129 #define BM_CLICK16             WM_NULL  /* Does not exist in Win16 */
2130 #define BM_GETIMAGE16          WM_NULL  /* Does not exist in Win16 */
2131 #define BM_SETIMAGE16          WM_NULL  /* Does not exist in Win16 */
2132 /* Win32 button control messages */
2133 #define BM_GETCHECK32          0x00f0
2134 #define BM_SETCHECK32          0x00f1
2135 #define BM_GETSTATE32          0x00f2
2136 #define BM_SETSTATE32          0x00f3
2137 #define BM_SETSTYLE32          0x00f4
2138 #define BM_CLICK32             0x00f5
2139 #define BM_GETIMAGE32          0x00f6
2140 #define BM_SETIMAGE32          0x00f7
2141 /* Winelib button control messages */
2142 #define BM_GETCHECK            WINELIB_NAME(BM_GETCHECK)
2143 #define BM_SETCHECK            WINELIB_NAME(BM_SETCHECK)
2144 #define BM_GETSTATE            WINELIB_NAME(BM_GETSTATE)
2145 #define BM_SETSTATE            WINELIB_NAME(BM_SETSTATE)
2146 #define BM_SETSTYLE            WINELIB_NAME(BM_SETSTYLE)
2147 #define BM_CLICK               WINELIB_NAME(BM_CLICK)
2148 #define BM_GETIMAGE            WINELIB_NAME(BM_GETIMAGE)
2149 #define BM_SETIMAGE            WINELIB_NAME(BM_SETIMAGE)
2150
2151 /* Button notification codes */
2152 #define BN_CLICKED             0
2153 #define BN_PAINT               1
2154 #define BN_HILITE              2
2155 #define BN_UNHILITE            3
2156 #define BN_DISABLE             4
2157 #define BN_DOUBLECLICKED       5
2158
2159 /* Static Control Styles */
2160 #define SS_LEFT             0x00000000L
2161 #define SS_CENTER           0x00000001L
2162 #define SS_RIGHT            0x00000002L
2163 #define SS_ICON             0x00000003L
2164 #define SS_BLACKRECT        0x00000004L
2165 #define SS_GRAYRECT         0x00000005L
2166 #define SS_WHITERECT        0x00000006L
2167 #define SS_BLACKFRAME       0x00000007L
2168 #define SS_GRAYFRAME        0x00000008L
2169 #define SS_WHITEFRAME       0x00000009L
2170
2171 #define SS_SIMPLE           0x0000000BL
2172 #define SS_LEFTNOWORDWRAP   0x0000000CL
2173
2174 #define SS_OWNERDRAW        0x0000000DL
2175 #define SS_BITMAP           0x0000000EL
2176 #define SS_ENHMETAFILE      0x0000000FL
2177
2178 #define SS_ETCHEDHORZ       0x00000010L
2179 #define SS_ETCHEDVERT       0x00000011L
2180 #define SS_ETCHEDFRAME      0x00000012L
2181 #define SS_TYPEMASK         0x0000001FL
2182
2183 #define SS_NOPREFIX         0x00000080L
2184 #define SS_NOTIFY           0x00000100L
2185 #define SS_CENTERIMAGE      0x00000200L
2186 #define SS_RIGHTJUST        0x00000400L
2187 #define SS_REALSIZEIMAGE    0x00000800L
2188 #define SS_SUNKEN           0x00001000L
2189
2190 /* Static Control Messages */
2191 #define STM_SETICON16       (WM_USER+0)
2192 #define STM_SETICON32       0x0170
2193 #define STM_SETICON         WINELIB_NAME(STM_SETICON)
2194 #define STM_GETICON16       (WM_USER+1)
2195 #define STM_GETICON32       0x0171
2196 #define STM_GETICON         WINELIB_NAME(STM_GETICON)
2197 #define STM_SETIMAGE        0x0172
2198 #define STM_GETIMAGE        0x0173
2199
2200 /* Owner draw control types */
2201 #define ODT_MENU        1
2202 #define ODT_LISTBOX     2
2203 #define ODT_COMBOBOX    3
2204 #define ODT_BUTTON      4
2205
2206 /* Owner draw actions */
2207 #define ODA_DRAWENTIRE  0x0001
2208 #define ODA_SELECT      0x0002
2209 #define ODA_FOCUS       0x0004
2210
2211 /* Owner draw state */
2212 #define ODS_SELECTED    0x0001
2213 #define ODS_GRAYED      0x0002
2214 #define ODS_DISABLED    0x0004
2215 #define ODS_CHECKED     0x0008
2216 #define ODS_FOCUS       0x0010
2217
2218 /* Edit control styles */
2219 #define ES_LEFT         0x00000000
2220 #define ES_CENTER       0x00000001
2221 #define ES_RIGHT        0x00000002
2222 #define ES_MULTILINE    0x00000004
2223 #define ES_UPPERCASE    0x00000008
2224 #define ES_LOWERCASE    0x00000010
2225 #define ES_PASSWORD     0x00000020
2226 #define ES_AUTOVSCROLL  0x00000040
2227 #define ES_AUTOHSCROLL  0x00000080
2228 #define ES_NOHIDESEL    0x00000100
2229 #define ES_OEMCONVERT   0x00000400
2230 #define ES_READONLY     0x00000800
2231 #define ES_WANTRETURN   0x00001000
2232 #define ES_NUMBER       0x00002000
2233
2234 /* Edit control messages */
2235 #define EM_GETSEL16                (WM_USER+0)
2236 #define EM_GETSEL32                0x00b0
2237 #define EM_GETSEL                  WINELIB_NAME(EM_GETSEL)
2238 #define EM_SETSEL16                (WM_USER+1)
2239 #define EM_SETSEL32                0x00b1
2240 #define EM_SETSEL                  WINELIB_NAME(EM_SETSEL)
2241 #define EM_GETRECT16               (WM_USER+2)
2242 #define EM_GETRECT32               0x00b2
2243 #define EM_GETRECT                 WINELIB_NAME(EM_GETRECT)
2244 #define EM_SETRECT16               (WM_USER+3)
2245 #define EM_SETRECT32               0x00b3
2246 #define EM_SETRECT                 WINELIB_NAME(EM_SETRECT)
2247 #define EM_SETRECTNP16             (WM_USER+4)
2248 #define EM_SETRECTNP32             0x00b4
2249 #define EM_SETRECTNP               WINELIB_NAME(EM_SETRECTNP)
2250 #define EM_SCROLL16                (WM_USER+5)
2251 #define EM_SCROLL32                0x00b5
2252 #define EM_SCROLL                  WINELIB_NAME(EM_SCROLL)
2253 #define EM_LINESCROLL16            (WM_USER+6)
2254 #define EM_LINESCROLL32            0x00b6
2255 #define EM_LINESCROLL              WINELIB_NAME(EM_LINESCROLL)
2256 #define EM_SCROLLCARET16           (WM_USER+7)
2257 #define EM_SCROLLCARET32           0x00b7
2258 #define EM_SCROLLCARET             WINELIB_NAME(EM_SCROLLCARET)
2259 #define EM_GETMODIFY16             (WM_USER+8)
2260 #define EM_GETMODIFY32             0x00b8
2261 #define EM_GETMODIFY               WINELIB_NAME(EM_GETMODIFY)
2262 #define EM_SETMODIFY16             (WM_USER+9)
2263 #define EM_SETMODIFY32             0x00b9
2264 #define EM_SETMODIFY               WINELIB_NAME(EM_SETMODIFY)
2265 #define EM_GETLINECOUNT16          (WM_USER+10)
2266 #define EM_GETLINECOUNT32          0x00ba
2267 #define EM_GETLINECOUNT            WINELIB_NAME(EM_GETLINECOUNT)
2268 #define EM_LINEINDEX16             (WM_USER+11)
2269 #define EM_LINEINDEX32             0x00bb
2270 #define EM_LINEINDEX               WINELIB_NAME(EM_LINEINDEX)
2271 #define EM_SETHANDLE16             (WM_USER+12)
2272 #define EM_SETHANDLE32             0x00bc
2273 #define EM_SETHANDLE               WINELIB_NAME(EM_SETHANDLE)
2274 #define EM_GETHANDLE16             (WM_USER+13)
2275 #define EM_GETHANDLE32             0x00bd
2276 #define EM_GETHANDLE               WINELIB_NAME(EM_GETHANDLE)
2277 #define EM_GETTHUMB16              (WM_USER+14)
2278 #define EM_GETTHUMB32              0x00be
2279 #define EM_GETTHUMB                WINELIB_NAME(EM_GETTHUMB)
2280 /* FIXME : missing from specs 0x00bf and 0x00c0 */
2281 #define EM_LINELENGTH16            (WM_USER+17)
2282 #define EM_LINELENGTH32            0x00c1
2283 #define EM_LINELENGTH              WINELIB_NAME(EM_LINELENGTH)
2284 #define EM_REPLACESEL16            (WM_USER+18)
2285 #define EM_REPLACESEL32            0x00c2
2286 #define EM_REPLACESEL              WINELIB_NAME(EM_REPLACESEL)
2287 /* FIXME : missing from specs 0x00c3 */
2288 #define EM_GETLINE16               (WM_USER+20)
2289 #define EM_GETLINE32               0x00c4
2290 #define EM_GETLINE                 WINELIB_NAME(EM_GETLINE)
2291 #define EM_LIMITTEXT16             (WM_USER+21)
2292 #define EM_LIMITTEXT32             0x00c5
2293 #define EM_LIMITTEXT               WINELIB_NAME(EM_LIMITTEXT)
2294 #define EM_CANUNDO16               (WM_USER+22)
2295 #define EM_CANUNDO32               0x00c6
2296 #define EM_CANUNDO                 WINELIB_NAME(EM_CANUNDO)
2297 #define EM_UNDO16                  (WM_USER+23)
2298 #define EM_UNDO32                  0x00c7
2299 #define EM_UNDO                    WINELIB_NAME(EM_UNDO)
2300 #define EM_FMTLINES16              (WM_USER+24)
2301 #define EM_FMTLINES32              0x00c8
2302 #define EM_FMTLINES                WINELIB_NAME(EM_FMTLINES)
2303 #define EM_LINEFROMCHAR16          (WM_USER+25)
2304 #define EM_LINEFROMCHAR32          0x00c9
2305 #define EM_LINEFROMCHAR            WINELIB_NAME(EM_LINEFROMCHAR)
2306 /* FIXME : missing from specs 0x00ca */
2307 #define EM_SETTABSTOPS16           (WM_USER+27)
2308 #define EM_SETTABSTOPS32           0x00cb
2309 #define EM_SETTABSTOPS             WINELIB_NAME(EM_SETTABSTOPS)
2310 #define EM_SETPASSWORDCHAR16       (WM_USER+28)
2311 #define EM_SETPASSWORDCHAR32       0x00cc
2312 #define EM_SETPASSWORDCHAR         WINELIB_NAME(EM_SETPASSWORDCHAR)
2313 #define EM_EMPTYUNDOBUFFER16       (WM_USER+29)
2314 #define EM_EMPTYUNDOBUFFER32       0x00cd
2315 #define EM_EMPTYUNDOBUFFER         WINELIB_NAME(EM_EMPTYUNDOBUFFER)
2316 #define EM_GETFIRSTVISIBLELINE16   (WM_USER+30)
2317 #define EM_GETFIRSTVISIBLELINE32   0x00ce
2318 #define EM_GETFIRSTVISIBLELINE     WINELIB_NAME(EM_GETFIRSTVISIBLELINE)
2319 #define EM_SETREADONLY16           (WM_USER+31)
2320 #define EM_SETREADONLY32           0x00cf
2321 #define EM_SETREADONLY             WINELIB_NAME(EM_SETREADONLY)
2322 #define EM_SETWORDBREAKPROC16      (WM_USER+32)
2323 #define EM_SETWORDBREAKPROC32      0x00d0
2324 #define EM_SETWORDBREAKPROC        WINELIB_NAME(EM_SETWORDBREAKPROC)
2325 #define EM_GETWORDBREAKPROC16      (WM_USER+33)
2326 #define EM_GETWORDBREAKPROC32      0x00d1
2327 #define EM_GETWORDBREAKPROC        WINELIB_NAME(EM_GETWORDBREAKPROC)
2328 #define EM_GETPASSWORDCHAR16       (WM_USER+34)
2329 #define EM_GETPASSWORDCHAR32       0x00d2
2330 #define EM_GETPASSWORDCHAR         WINELIB_NAME(EM_GETPASSWORDCHAR)
2331 #define EM_SETMARGINS16            WM_NULL /* not in win16 */
2332 #define EM_SETMARGINS32            0x00d3
2333 #define EM_SETMARGINS              WINELIB_NAME(EM_SETMARGINS)
2334 #define EM_GETMARGINS16            WM_NULL /* not in win16 */
2335 #define EM_GETMARGINS32            0x00d4
2336 #define EM_GETMARGINS              WINELIB_NAME(EM_GETMARGINS)
2337 #define EM_GETLIMITTEXT16          WM_NULL /* not in win16 */
2338 #define EM_GETLIMITTEXT32          0x00d5
2339 #define EM_GETLIMITTEXT            WINELIB_NAME(EM_GETLIMITTEXT)
2340 #define EM_POSFROMCHAR16           WM_NULL /* not in win16 */
2341 #define EM_POSFROMCHAR32           0x00d6
2342 #define EM_POSFROMCHAR             WINELIB_NAME(EM_POSFROMCHAR)
2343 #define EM_CHARFROMPOS16           WM_NULL /* not in win16 */
2344 #define EM_CHARFROMPOS32           0x00d7
2345 #define EM_CHARFROMPOS             WINELIB_NAME(EM_CHARFROMPOS)
2346 /* a name change since win95 */
2347 #define EM_SETLIMITTEXT16          WM_NULL /* no name change in win16 */
2348 #define EM_SETLIMITTEXT32          EM_LIMITTEXT32
2349 #define EM_SETLIMITTEXT            WINELIB_NAME(EM_SETLIMITTEXT)
2350
2351 /* EDITWORDBREAKPROC code values */
2352 #define WB_LEFT         0
2353 #define WB_RIGHT        1
2354 #define WB_ISDELIMITER  2
2355
2356 /* Edit control notification codes */
2357 #define EN_SETFOCUS     0x0100
2358 #define EN_KILLFOCUS    0x0200
2359 #define EN_CHANGE       0x0300
2360 #define EN_UPDATE       0x0400
2361 #define EN_ERRSPACE     0x0500
2362 #define EN_MAXTEXT      0x0501
2363 #define EN_HSCROLL      0x0601
2364 #define EN_VSCROLL      0x0602
2365
2366 /* New since win95 : EM_SETMARGIN parameters */
2367 #define EC_LEFTMARGIN   0x0001
2368 #define EC_RIGHTMARGIN  0x0002
2369 #define EC_USEFONTINFO  0xffff
2370
2371
2372 typedef struct
2373 {
2374     UINT16      CtlType;
2375     UINT16      CtlID;
2376     UINT16      itemID;
2377     UINT16      itemAction;
2378     UINT16      itemState;
2379     HWND16      hwndItem;
2380     HDC16       hDC;
2381     RECT16      rcItem WINE_PACKED;
2382     DWORD       itemData WINE_PACKED;
2383 } DRAWITEMSTRUCT16, *PDRAWITEMSTRUCT16, *LPDRAWITEMSTRUCT16;
2384
2385 typedef struct
2386 {
2387     UINT32      CtlType;
2388     UINT32      CtlID;
2389     UINT32      itemID;
2390     UINT32      itemAction;
2391     UINT32      itemState;
2392     HWND32      hwndItem;
2393     HDC32       hDC;
2394     RECT32      rcItem WINE_PACKED;
2395     DWORD       itemData WINE_PACKED;
2396 } DRAWITEMSTRUCT32, *PDRAWITEMSTRUCT32, *LPDRAWITEMSTRUCT32;
2397
2398 DECL_WINELIB_TYPE(DRAWITEMSTRUCT)
2399 DECL_WINELIB_TYPE(PDRAWITEMSTRUCT)
2400 DECL_WINELIB_TYPE(LPDRAWITEMSTRUCT)
2401
2402 typedef struct
2403 {
2404     UINT16      CtlType;
2405     UINT16      CtlID;
2406     UINT16      itemID;
2407     UINT16      itemWidth;
2408     UINT16      itemHeight;
2409     DWORD       itemData WINE_PACKED;
2410 } MEASUREITEMSTRUCT16, *PMEASUREITEMSTRUCT16, *LPMEASUREITEMSTRUCT16;
2411
2412 typedef struct
2413 {
2414     UINT32      CtlType;
2415     UINT32      CtlID;
2416     UINT32      itemID;
2417     UINT32      itemWidth;
2418     UINT32      itemHeight;
2419     DWORD       itemData;
2420 } MEASUREITEMSTRUCT32, *PMEASUREITEMSTRUCT32, *LPMEASUREITEMSTRUCT32;
2421
2422 DECL_WINELIB_TYPE(MEASUREITEMSTRUCT)
2423 DECL_WINELIB_TYPE(PMEASUREITEMSTRUCT)
2424 DECL_WINELIB_TYPE(LPMEASUREITEMSTRUCT)
2425
2426 typedef struct
2427 {
2428     UINT16     CtlType;
2429     UINT16     CtlID;
2430     UINT16     itemID;
2431     HWND16     hwndItem;
2432     DWORD      itemData;
2433 } DELETEITEMSTRUCT16, *LPDELETEITEMSTRUCT16;
2434
2435 typedef struct
2436 {
2437     UINT32     CtlType;
2438     UINT32     CtlID;
2439     UINT32     itemID;
2440     HWND32     hwndItem;
2441     DWORD      itemData;
2442 } DELETEITEMSTRUCT32, *LPDELETEITEMSTRUCT32;
2443
2444 DECL_WINELIB_TYPE(DELETEITEMSTRUCT)
2445 DECL_WINELIB_TYPE(LPDELETEITEMSTRUCT)
2446
2447 typedef struct
2448 {
2449     UINT16      CtlType;
2450     UINT16      CtlID;
2451     HWND16      hwndItem;
2452     UINT16      itemID1;
2453     DWORD       itemData1;
2454     UINT16      itemID2;
2455     DWORD       itemData2 WINE_PACKED;
2456 } COMPAREITEMSTRUCT16, *LPCOMPAREITEMSTRUCT16;
2457
2458 typedef struct
2459 {
2460     UINT32      CtlType;
2461     UINT32      CtlID;
2462     HWND32      hwndItem;
2463     UINT32      itemID1;
2464     DWORD       itemData1;
2465     UINT32      itemID2;
2466     DWORD       itemData2;
2467     DWORD       dwLocaleId;
2468 } COMPAREITEMSTRUCT32, *LPCOMPAREITEMSTRUCT32;
2469
2470 DECL_WINELIB_TYPE(COMPAREITEMSTRUCT)
2471 DECL_WINELIB_TYPE(LPCOMPAREITEMSTRUCT)
2472
2473 /* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */
2474 #define KF_EXTENDED         0x0100
2475 #define KF_DLGMODE          0x0800
2476 #define KF_MENUMODE         0x1000
2477 #define KF_ALTDOWN          0x2000
2478 #define KF_REPEAT           0x4000
2479 #define KF_UP               0x8000
2480
2481 /* Virtual key codes */
2482 #define VK_LBUTTON          0x01
2483 #define VK_RBUTTON          0x02
2484 #define VK_CANCEL           0x03
2485 #define VK_MBUTTON          0x04
2486 /*                          0x05-0x07  Undefined */
2487 #define VK_BACK             0x08
2488 #define VK_TAB              0x09
2489 /*                          0x0A-0x0B  Undefined */
2490 #define VK_CLEAR            0x0C
2491 #define VK_RETURN           0x0D
2492 /*                          0x0E-0x0F  Undefined */
2493 #define VK_SHIFT            0x10
2494 #define VK_CONTROL          0x11
2495 #define VK_MENU             0x12
2496 #define VK_PAUSE            0x13
2497 #define VK_CAPITAL          0x14
2498 /*                          0x15-0x19  Reserved for Kanji systems */
2499 /*                          0x1A       Undefined */
2500 #define VK_ESCAPE           0x1B
2501 /*                          0x1C-0x1F  Reserved for Kanji systems */
2502 #define VK_SPACE            0x20
2503 #define VK_PRIOR            0x21
2504 #define VK_NEXT             0x22
2505 #define VK_END              0x23
2506 #define VK_HOME             0x24
2507 #define VK_LEFT             0x25
2508 #define VK_UP               0x26
2509 #define VK_RIGHT            0x27
2510 #define VK_DOWN             0x28
2511 #define VK_SELECT           0x29
2512 #define VK_PRINT            0x2A /* OEM specific in Windows 3.1 SDK */
2513 #define VK_EXECUTE          0x2B
2514 #define VK_SNAPSHOT         0x2C
2515 #define VK_INSERT           0x2D
2516 #define VK_DELETE           0x2E
2517 #define VK_HELP             0x2F
2518 #define VK_0                0x30
2519 #define VK_1                0x31
2520 #define VK_2                0x32
2521 #define VK_3                0x33
2522 #define VK_4                0x34
2523 #define VK_5                0x35
2524 #define VK_6                0x36
2525 #define VK_7                0x37
2526 #define VK_8                0x38
2527 #define VK_9                0x39
2528 /*                          0x3A-0x40  Undefined */
2529 #define VK_A                0x41
2530 #define VK_B                0x42
2531 #define VK_C                0x43
2532 #define VK_D                0x44
2533 #define VK_E                0x45
2534 #define VK_F                0x46
2535 #define VK_G                0x47
2536 #define VK_H                0x48
2537 #define VK_I                0x49
2538 #define VK_J                0x4A
2539 #define VK_K                0x4B
2540 #define VK_L                0x4C
2541 #define VK_M                0x4D
2542 #define VK_N                0x4E
2543 #define VK_O                0x4F
2544 #define VK_P                0x50
2545 #define VK_Q                0x51
2546 #define VK_R                0x52
2547 #define VK_S                0x53
2548 #define VK_T                0x54
2549 #define VK_U                0x55
2550 #define VK_V                0x56
2551 #define VK_W                0x57
2552 #define VK_X                0x58
2553 #define VK_Y                0x59
2554 #define VK_Z                0x5A
2555
2556 #define VK_LWIN             0x5B
2557 #define VK_RWIN             0x5C
2558 #define VK_APPS             0x5D
2559 /*                          0x5E-0x5F Unassigned */
2560 #define VK_NUMPAD0          0x60
2561 #define VK_NUMPAD1          0x61
2562 #define VK_NUMPAD2          0x62
2563 #define VK_NUMPAD3          0x63
2564 #define VK_NUMPAD4          0x64
2565 #define VK_NUMPAD5          0x65
2566 #define VK_NUMPAD6          0x66
2567 #define VK_NUMPAD7          0x67
2568 #define VK_NUMPAD8          0x68
2569 #define VK_NUMPAD9          0x69
2570 #define VK_MULTIPLY         0x6A
2571 #define VK_ADD              0x6B
2572 #define VK_SEPARATOR        0x6C
2573 #define VK_SUBTRACT         0x6D
2574 #define VK_DECIMAL          0x6E
2575 #define VK_DIVIDE           0x6F
2576 #define VK_F1               0x70
2577 #define VK_F2               0x71
2578 #define VK_F3               0x72
2579 #define VK_F4               0x73
2580 #define VK_F5               0x74
2581 #define VK_F6               0x75
2582 #define VK_F7               0x76
2583 #define VK_F8               0x77
2584 #define VK_F9               0x78
2585 #define VK_F10              0x79
2586 #define VK_F11              0x7A
2587 #define VK_F12              0x7B
2588 #define VK_F13              0x7C
2589 #define VK_F14              0x7D
2590 #define VK_F15              0x7E
2591 #define VK_F16              0x7F
2592 #define VK_F17              0x80
2593 #define VK_F18              0x81
2594 #define VK_F19              0x82
2595 #define VK_F20              0x83
2596 #define VK_F21              0x84
2597 #define VK_F22              0x85
2598 #define VK_F23              0x86
2599 #define VK_F24              0x87
2600 /*                          0x88-0x8F  Unassigned */
2601 #define VK_NUMLOCK          0x90
2602 #define VK_SCROLL           0x91
2603 /*                          0x92-0x9F  Unassigned */
2604 /*
2605  * differencing between right and left shift/control/alt key.
2606  * Used only by GetAsyncKeyState() and GetKeyState().
2607  */
2608 #define VK_LSHIFT           0xA0
2609 #define VK_RSHIFT           0xA1
2610 #define VK_LCONTROL         0xA2
2611 #define VK_RCONTROL         0xA3
2612 #define VK_LMENU            0xA4
2613 #define VK_RMENU            0xA5
2614 /*                          0xA6-0xB9  Unassigned */
2615 #define VK_OEM_1            0xBA
2616 #define VK_OEM_PLUS         0xBB
2617 #define VK_OEM_COMMA        0xBC
2618 #define VK_OEM_MINUS        0xBD
2619 #define VK_OEM_PERIOD       0xBE
2620 #define VK_OEM_2            0xBF
2621 #define VK_OEM_3            0xC0
2622 /*                          0xC1-0xDA  Unassigned */
2623 #define VK_OEM_4            0xDB
2624 #define VK_OEM_5            0xDC
2625 #define VK_OEM_6            0xDD
2626 #define VK_OEM_7            0xDE
2627 /*                          0xDF-0xE4  OEM specific */
2628
2629 #define VK_PROCESSKEY       0xE5
2630
2631 /*                          0xE6       OEM specific */
2632 /*                          0xE7-0xE8  Unassigned */
2633 /*                          0xE9-0xF5  OEM specific */
2634
2635 #define VK_ATTN             0xF6
2636 #define VK_CRSEL            0xF7
2637 #define VK_EXSEL            0xF8
2638 #define VK_EREOF            0xF9
2639 #define VK_PLAY             0xFA
2640 #define VK_ZOOM             0xFB
2641 #define VK_NONAME           0xFC
2642 #define VK_PA1              0xFD
2643 #define VK_OEM_CLEAR        0xFE
2644   
2645 #define LMEM_FIXED          0   
2646 #define LMEM_MOVEABLE       0x0002
2647 #define LMEM_NOCOMPACT      0x0010
2648 #define LMEM_NODISCARD      0x0020
2649 #define LMEM_ZEROINIT       0x0040
2650 #define LMEM_MODIFY         0x0080
2651 #define LMEM_DISCARDABLE    0x0F00
2652 #define LMEM_DISCARDED      0x4000
2653 #define LMEM_LOCKCOUNT      0x00FF
2654
2655 #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
2656
2657 #define GMEM_FIXED          0x0000
2658 #define GMEM_MOVEABLE       0x0002
2659 #define GMEM_NOCOMPACT      0x0010
2660 #define GMEM_NODISCARD      0x0020
2661 #define GMEM_ZEROINIT       0x0040
2662 #define GMEM_MODIFY         0x0080
2663 #define GMEM_DISCARDABLE    0x0100
2664 #define GMEM_NOT_BANKED     0x1000
2665 #define GMEM_SHARE          0x2000
2666 #define GMEM_DDESHARE       0x2000
2667 #define GMEM_NOTIFY         0x4000
2668 #define GMEM_LOWER          GMEM_NOT_BANKED
2669 #define GMEM_DISCARDED      0x4000
2670 #define GMEM_LOCKCOUNT      0x00ff
2671 #define GMEM_INVALID_HANDLE 0x8000
2672
2673 #define GHND                (GMEM_MOVEABLE | GMEM_ZEROINIT)
2674 #define GPTR                (GMEM_FIXED | GMEM_ZEROINIT)
2675
2676
2677 typedef struct tagMEMORYSTATUS
2678 {
2679     DWORD    dwLength;
2680     DWORD    dwMemoryLoad;
2681     DWORD    dwTotalPhys;
2682     DWORD    dwAvailPhys;
2683     DWORD    dwTotalPageFile;
2684     DWORD    dwAvailPageFile;
2685     DWORD    dwTotalVirtual;
2686     DWORD    dwAvailVirtual;
2687 } MEMORYSTATUS, *LPMEMORYSTATUS;
2688
2689 /* Predefined Clipboard Formats */
2690 #define CF_TEXT              1
2691 #define CF_BITMAP            2
2692 #define CF_METAFILEPICT      3
2693 #define CF_SYLK              4
2694 #define CF_DIF               5
2695 #define CF_TIFF              6
2696 #define CF_OEMTEXT           7
2697 #define CF_DIB               8
2698 #define CF_PALETTE           9
2699 #define CF_PENDATA          10
2700 #define CF_RIFF             11
2701 #define CF_WAVE             12
2702 #define CF_ENHMETAFILE      14
2703
2704 #define CF_OWNERDISPLAY     0x0080
2705 #define CF_DSPTEXT          0x0081
2706 #define CF_DSPBITMAP        0x0082
2707 #define CF_DSPMETAFILEPICT  0x0083
2708
2709 /* "Private" formats don't get GlobalFree()'d */
2710 #define CF_PRIVATEFIRST     0x0200
2711 #define CF_PRIVATELAST      0x02FF
2712
2713 /* "GDIOBJ" formats do get DeleteObject()'d */
2714 #define CF_GDIOBJFIRST      0x0300
2715 #define CF_GDIOBJLAST       0x03FF
2716
2717 /* Clipboard command messages */
2718 #define WM_CUT              0x0300
2719 #define WM_COPY             0x0301
2720 #define WM_PASTE            0x0302
2721 #define WM_CLEAR            0x0303
2722 #define WM_UNDO             0x0304
2723
2724 /* Clipboard owner messages */
2725 #define WM_RENDERFORMAT     0x0305
2726 #define WM_RENDERALLFORMATS 0x0306
2727 #define WM_DESTROYCLIPBOARD 0x0307
2728
2729 /* Clipboard viewer messages */
2730 #define WM_DRAWCLIPBOARD    0x0308
2731 #define WM_PAINTCLIPBOARD   0x0309
2732 #define WM_SIZECLIPBOARD    0x030B
2733 #define WM_VSCROLLCLIPBOARD 0x030A
2734 #define WM_HSCROLLCLIPBOARD 0x030E
2735 #define WM_ASKCBFORMATNAME  0x030C
2736 #define WM_CHANGECBCHAIN    0x030D
2737
2738
2739 #ifndef NOLOGERROR
2740
2741 /* LogParamError and LogError values */
2742
2743 /* Error modifier bits */
2744 #define ERR_WARNING             0x8000
2745 #define ERR_PARAM               0x4000
2746
2747 #define ERR_SIZE_MASK           0x3000
2748 #define ERR_BYTE                0x1000
2749 #define ERR_WORD                0x2000
2750 #define ERR_DWORD               0x3000
2751
2752 /* LogParamError() values */
2753
2754 /* Generic parameter values */
2755 #define ERR_BAD_VALUE           0x6001
2756 #define ERR_BAD_FLAGS           0x6002
2757 #define ERR_BAD_INDEX           0x6003
2758 #define ERR_BAD_DVALUE          0x7004
2759 #define ERR_BAD_DFLAGS          0x7005
2760 #define ERR_BAD_DINDEX          0x7006
2761 #define ERR_BAD_PTR             0x7007
2762 #define ERR_BAD_FUNC_PTR        0x7008
2763 #define ERR_BAD_SELECTOR        0x6009
2764 #define ERR_BAD_STRING_PTR      0x700a
2765 #define ERR_BAD_HANDLE          0x600b
2766
2767 /* KERNEL parameter errors */
2768 #define ERR_BAD_HINSTANCE       0x6020
2769 #define ERR_BAD_HMODULE         0x6021
2770 #define ERR_BAD_GLOBAL_HANDLE   0x6022
2771 #define ERR_BAD_LOCAL_HANDLE    0x6023
2772 #define ERR_BAD_ATOM            0x6024
2773 #define ERR_BAD_HFILE           0x6025
2774
2775 /* USER parameter errors */
2776 #define ERR_BAD_HWND            0x6040
2777 #define ERR_BAD_HMENU           0x6041
2778 #define ERR_BAD_HCURSOR         0x6042
2779 #define ERR_BAD_HICON           0x6043
2780 #define ERR_BAD_HDWP            0x6044
2781 #define ERR_BAD_CID             0x6045
2782 #define ERR_BAD_HDRVR           0x6046
2783
2784 /* GDI parameter errors */
2785 #define ERR_BAD_COORDS          0x7060
2786 #define ERR_BAD_GDI_OBJECT      0x6061
2787 #define ERR_BAD_HDC             0x6062
2788 #define ERR_BAD_HPEN            0x6063
2789 #define ERR_BAD_HFONT           0x6064
2790 #define ERR_BAD_HBRUSH          0x6065
2791 #define ERR_BAD_HBITMAP         0x6066
2792 #define ERR_BAD_HRGN            0x6067
2793 #define ERR_BAD_HPALETTE        0x6068
2794 #define ERR_BAD_HMETAFILE       0x6069
2795
2796
2797 /* LogError() values */
2798
2799 /* KERNEL errors */
2800 #define ERR_GALLOC              0x0001
2801 #define ERR_GREALLOC            0x0002
2802 #define ERR_GLOCK               0x0003
2803 #define ERR_LALLOC              0x0004
2804 #define ERR_LREALLOC            0x0005
2805 #define ERR_LLOCK               0x0006
2806 #define ERR_ALLOCRES            0x0007
2807 #define ERR_LOCKRES             0x0008
2808 #define ERR_LOADMODULE          0x0009
2809
2810 /* USER errors */
2811 #define ERR_CREATEDLG           0x0040
2812 #define ERR_CREATEDLG2          0x0041
2813 #define ERR_REGISTERCLASS       0x0042
2814 #define ERR_DCBUSY              0x0043
2815 #define ERR_CREATEWND           0x0044
2816 #define ERR_STRUCEXTRA          0x0045
2817 #define ERR_LOADSTR             0x0046
2818 #define ERR_LOADMENU            0x0047
2819 #define ERR_NESTEDBEGINPAINT    0x0048
2820 #define ERR_BADINDEX            0x0049
2821 #define ERR_CREATEMENU          0x004a
2822
2823 /* GDI errors */
2824 #define ERR_CREATEDC            0x0080
2825 #define ERR_CREATEMETA          0x0081
2826 #define ERR_DELOBJSELECTED      0x0082
2827 #define ERR_SELBITMAP           0x0083
2828
2829
2830
2831 /* Debugging support (DEBUG SYSTEM ONLY) */
2832 typedef struct
2833 {
2834     UINT16  flags;
2835     DWORD   dwOptions WINE_PACKED;
2836     DWORD   dwFilter WINE_PACKED;
2837     CHAR    achAllocModule[8] WINE_PACKED;
2838     DWORD   dwAllocBreak WINE_PACKED;
2839     DWORD   dwAllocCount WINE_PACKED;
2840 } WINDEBUGINFO, *LPWINDEBUGINFO;
2841
2842 /* WINDEBUGINFO flags values */
2843 #define WDI_OPTIONS         0x0001
2844 #define WDI_FILTER          0x0002
2845 #define WDI_ALLOCBREAK      0x0004
2846
2847 /* dwOptions values */
2848 #define DBO_CHECKHEAP       0x0001
2849 #define DBO_BUFFERFILL      0x0004
2850 #define DBO_DISABLEGPTRAPPING 0x0010
2851 #define DBO_CHECKFREE       0x0020
2852
2853 #define DBO_SILENT          0x8000
2854
2855 #define DBO_TRACEBREAK      0x2000
2856 #define DBO_WARNINGBREAK    0x1000
2857 #define DBO_NOERRORBREAK    0x0800
2858 #define DBO_NOFATALBREAK    0x0400
2859 #define DBO_INT3BREAK       0x0100
2860
2861 /* DebugOutput flags values */
2862 #define DBF_TRACE           0x0000
2863 #define DBF_WARNING         0x4000
2864 #define DBF_ERROR           0x8000
2865 #define DBF_FATAL           0xc000
2866
2867 /* dwFilter values */
2868 #define DBF_KERNEL          0x1000
2869 #define DBF_KRN_MEMMAN      0x0001
2870 #define DBF_KRN_LOADMODULE  0x0002
2871 #define DBF_KRN_SEGMENTLOAD 0x0004
2872 #define DBF_USER            0x0800
2873 #define DBF_GDI             0x0400
2874 #define DBF_MMSYSTEM        0x0040
2875 #define DBF_PENWIN          0x0020
2876 #define DBF_APPLICATION     0x0008
2877 #define DBF_DRIVER          0x0010
2878
2879 #endif /* NOLOGERROR */
2880
2881 /* Win32-specific structures */
2882
2883 typedef struct {
2884     DWORD dwData;
2885     DWORD cbData;
2886     LPVOID lpData;
2887 } COPYDATASTRUCT, *PCOPYDATASTRUCT, *LPCOPYDATASTRUCT;
2888
2889 typedef struct {
2890     HMENU32 hmenuIn;
2891     HMENU32 hmenuNext;
2892     HWND32  hwndNext;
2893 } MDINEXTMENU, *PMDINEXTMENU, *LPMDINEXTMENU;
2894
2895 typedef struct {
2896         WORD wYear;
2897         WORD wMonth;
2898         WORD wDayOfWeek;
2899         WORD wDay;
2900         WORD wHour;
2901         WORD wMinute;
2902         WORD wSecond;
2903         WORD wMilliseconds;
2904 } SYSTEMTIME, *LPSYSTEMTIME;
2905
2906
2907 /* Code page information.
2908  */
2909 #define MAX_LEADBYTES     12
2910 #define MAX_DEFAULTCHAR   2
2911
2912 typedef struct
2913 {
2914     UINT32 MaxCharSize;
2915     BYTE   DefaultChar[MAX_DEFAULTCHAR];
2916     BYTE   LeadByte[MAX_LEADBYTES];
2917 } CPINFO, *LPCPINFO;
2918
2919 /* The 'overlapped' data structure used by async I/O functions.
2920  */
2921 typedef struct {
2922         DWORD Internal;
2923         DWORD InternalHigh;
2924         DWORD Offset;
2925         DWORD OffsetHigh;
2926         HANDLE32 hEvent;
2927 } OVERLAPPED, *LPOVERLAPPED;
2928
2929 /* Process startup information.
2930  */
2931
2932 /* STARTUPINFO.dwFlags */
2933 #define STARTF_USESHOWWINDOW    0x00000001
2934 #define STARTF_USESIZE          0x00000002
2935 #define STARTF_USEPOSITION      0x00000004
2936 #define STARTF_USECOUNTCHARS    0x00000008
2937 #define STARTF_USEFILLATTRIBUTE 0x00000010
2938 #define STARTF_RUNFULLSCREEN    0x00000020
2939 #define STARTF_FORCEONFEEDBACK  0x00000040
2940 #define STARTF_FORCEOFFFEEDBACK 0x00000080
2941 #define STARTF_USESTDHANDLES    0x00000100
2942 #define STARTF_USEHOTKEY        0x00000200
2943
2944 typedef struct {
2945         DWORD cb;               /* 00: size of struct */
2946         LPSTR lpReserved;       /* 04: */
2947         LPSTR lpDesktop;        /* 08: */
2948         LPSTR lpTitle;          /* 0c: */
2949         DWORD dwX;              /* 10: */
2950         DWORD dwY;              /* 14: */
2951         DWORD dwXSize;          /* 18: */
2952         DWORD dwYSize;          /* 1c: */
2953         DWORD dwXCountChars;    /* 20: */
2954         DWORD dwYCountChars;    /* 24: */
2955         DWORD dwFillAttribute;  /* 28: */
2956         DWORD dwFlags;          /* 2c: */
2957         WORD wShowWindow;       /* 30: */
2958         WORD cbReserved2;       /* 32: */
2959         BYTE *lpReserved2;      /* 34: */
2960         HANDLE32 hStdInput;     /* 38: */
2961         HANDLE32 hStdOutput;    /* 3c: */
2962         HANDLE32 hStdError;     /* 40: */
2963 } STARTUPINFO32A, *LPSTARTUPINFO32A;
2964
2965 typedef struct {
2966         DWORD cb;
2967         LPWSTR lpReserved;
2968         LPWSTR lpDesktop;
2969         LPWSTR lpTitle;
2970         DWORD dwX;
2971         DWORD dwY;
2972         DWORD dwXSize;
2973         DWORD dwYSize;
2974         DWORD dwXCountChars;
2975         DWORD dwYCountChars;
2976         DWORD dwFillAttribute;
2977         DWORD dwFlags;
2978         WORD wShowWindow;
2979         WORD cbReserved2;
2980         BYTE *lpReserved2;
2981         HANDLE32 hStdInput;
2982         HANDLE32 hStdOutput;
2983         HANDLE32 hStdError;
2984 } STARTUPINFO32W, *LPSTARTUPINFO32W;
2985
2986 DECL_WINELIB_TYPE_AW(STARTUPINFO)
2987 DECL_WINELIB_TYPE_AW(LPSTARTUPINFO)
2988
2989 typedef struct {
2990         HANDLE32        hProcess;
2991         HANDLE32        hThread;
2992         DWORD           dwProcessId;
2993         DWORD           dwThreadId;
2994 } PROCESS_INFORMATION,*LPPROCESS_INFORMATION;
2995
2996 typedef struct {
2997         LONG Bias;
2998         WCHAR StandardName[32];
2999         SYSTEMTIME StandardDate;
3000         LONG StandardBias;
3001         WCHAR DaylightName[32];
3002         SYSTEMTIME DaylightDate;
3003         LONG DaylightBias;
3004 } TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
3005
3006 #define TIME_ZONE_ID_UNKNOWN    0
3007 #define TIME_ZONE_ID_STANDARD   1
3008 #define TIME_ZONE_ID_DAYLIGHT   2
3009
3010 /* CreateProcess: dwCreationFlag values
3011  */
3012 #define DEBUG_PROCESS               0x00000001
3013 #define DEBUG_ONLY_THIS_PROCESS     0x00000002
3014 #define CREATE_SUSPENDED            0x00000004
3015 #define DETACHED_PROCESS            0x00000008
3016 #define CREATE_NEW_CONSOLE          0x00000010
3017 #define NORMAL_PRIORITY_CLASS       0x00000020
3018 #define IDLE_PRIORITY_CLASS         0x00000040
3019 #define HIGH_PRIORITY_CLASS         0x00000080
3020 #define REALTIME_PRIORITY_CLASS     0x00000100
3021 #define CREATE_NEW_PROCESS_GROUP    0x00000200
3022 #define CREATE_UNICODE_ENVIRONMENT  0x00000400
3023 #define CREATE_SEPARATE_WOW_VDM     0x00000800
3024 #define CREATE_SHARED_WOW_VDM       0x00001000
3025 #define CREATE_DEFAULT_ERROR_MODE   0x04000000
3026 #define CREATE_NO_WINDOW            0x08000000
3027 #define PROFILE_USER                0x10000000
3028 #define PROFILE_KERNEL              0x20000000
3029 #define PROFILE_SERVER              0x40000000
3030
3031
3032 /* File object type definitions
3033  */
3034 #define FILE_TYPE_UNKNOWN       0
3035 #define FILE_TYPE_DISK          1
3036 #define FILE_TYPE_CHAR          2
3037 #define FILE_TYPE_PIPE          3
3038 #define FILE_TYPE_REMOTE        32768
3039
3040 /* File creation flags
3041  */
3042 #define FILE_FLAG_WRITE_THROUGH    0x80000000UL
3043 #define FILE_FLAG_OVERLAPPED       0x40000000L
3044 #define FILE_FLAG_NO_BUFFERING     0x20000000L
3045 #define FILE_FLAG_RANDOM_ACCESS    0x10000000L
3046 #define FILE_FLAG_SEQUENTIAL_SCAN  0x08000000L
3047 #define FILE_FLAG_DELETE_ON_CLOSE  0x04000000L
3048 #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L
3049 #define FILE_FLAG_POSIX_SEMANTICS  0x01000000L
3050 #define CREATE_NEW              1
3051 #define CREATE_ALWAYS           2
3052 #define OPEN_EXISTING           3
3053 #define OPEN_ALWAYS             4
3054 #define TRUNCATE_EXISTING       5
3055
3056 /* Standard handle identifiers
3057  */
3058 #define STD_INPUT_HANDLE        ((DWORD) -10)
3059 #define STD_OUTPUT_HANDLE       ((DWORD) -11)
3060 #define STD_ERROR_HANDLE        ((DWORD) -12)
3061
3062 typedef struct
3063 {
3064   int dwFileAttributes;
3065   FILETIME ftCreationTime;
3066   FILETIME ftLastAccessTime;
3067   FILETIME ftLastWriteTime;
3068   int dwVolumeSerialNumber;
3069   int nFileSizeHigh;
3070   int nFileSizeLow;
3071   int nNumberOfLinks;
3072   int nFileIndexHigh;
3073   int nFileIndexLow;
3074 } BY_HANDLE_FILE_INFORMATION ;
3075
3076 /* File attribute flags
3077  */
3078 #define FILE_SHARE_READ                 0x00000001L
3079 #define FILE_SHARE_WRITE                0x00000002L
3080 #define FILE_SHARE_DELETE               0x00000004L
3081 #define FILE_ATTRIBUTE_READONLY         0x00000001L
3082 #define FILE_ATTRIBUTE_HIDDEN           0x00000002L
3083 #define FILE_ATTRIBUTE_SYSTEM           0x00000004L
3084 #define FILE_ATTRIBUTE_LABEL            0x00000008L  /* Not in Windows API */
3085 #define FILE_ATTRIBUTE_DIRECTORY        0x00000010L
3086 #define FILE_ATTRIBUTE_ARCHIVE          0x00000020L
3087 #define FILE_ATTRIBUTE_NORMAL           0x00000080L
3088 #define FILE_ATTRIBUTE_TEMPORARY        0x00000100L
3089 #define FILE_ATTRIBUTE_ATOMIC_WRITE     0x00000200L
3090 #define FILE_ATTRIBUTE_XACTION_WRITE    0x00000400L
3091 #define FILE_ATTRIBUTE_COMPRESSED       0x00000800L
3092 #define FILE_ATTRIBUTE_OFFLINE          0x00001000L
3093
3094 /* File alignments (NT) */
3095 #define FILE_BYTE_ALIGNMENT             0x00000000
3096 #define FILE_WORD_ALIGNMENT             0x00000001
3097 #define FILE_LONG_ALIGNMENT             0x00000003
3098 #define FILE_QUAD_ALIGNMENT             0x00000007
3099 #define FILE_OCTA_ALIGNMENT             0x0000000f
3100 #define FILE_32_BYTE_ALIGNMENT          0x0000001f
3101 #define FILE_64_BYTE_ALIGNMENT          0x0000003f
3102 #define FILE_128_BYTE_ALIGNMENT         0x0000007f
3103 #define FILE_256_BYTE_ALIGNMENT         0x000000ff
3104 #define FILE_512_BYTE_ALIGNMENT         0x000001ff
3105
3106 /* WinHelp internal structure */
3107 typedef struct {
3108         WORD size;
3109         WORD command;
3110         LONG data;
3111         LONG reserved;
3112         WORD ofsFilename;
3113         WORD ofsData;
3114 } WINHELP,*LPWINHELP;
3115
3116 typedef struct
3117 {
3118     UINT16  mkSize;
3119     BYTE    mkKeyList;
3120     BYTE    szKeyPhrase[1];
3121 } MULTIKEYHELP, *LPMULTIKEYHELP;
3122
3123 typedef struct {
3124         WORD wStructSize;
3125         WORD x;
3126         WORD y;
3127         WORD dx;
3128         WORD dy;
3129         WORD wMax;
3130         char rgchMember[2];
3131 } HELPWININFO, *LPHELPWININFO;
3132
3133 #define HELP_CONTEXT        0x0001
3134 #define HELP_QUIT           0x0002
3135 #define HELP_INDEX          0x0003
3136 #define HELP_CONTENTS       0x0003
3137 #define HELP_HELPONHELP     0x0004
3138 #define HELP_SETINDEX       0x0005
3139 #define HELP_SETCONTENTS    0x0005
3140 #define HELP_CONTEXTPOPUP   0x0008
3141 #define HELP_FORCEFILE      0x0009
3142 #define HELP_KEY            0x0101
3143 #define HELP_COMMAND        0x0102
3144 #define HELP_PARTIALKEY     0x0105
3145 #define HELP_MULTIKEY       0x0201
3146 #define HELP_SETWINPOS      0x0203
3147 #define HELP_CONTEXTMENU    0x000a
3148 #define HELP_FINDER         0x000b
3149 #define HELP_WM_HELP        0x000c
3150 #define HELP_SETPOPUP_POS   0x000d
3151
3152 #define HELP_TCARD          0x8000
3153 #define HELP_TCARD_DATA     0x0010
3154 #define HELP_TCARD_OTHER_CALLER 0x0011
3155
3156
3157 /* ExitWindows() flags */
3158 #define EW_RESTARTWINDOWS   0x0042
3159 #define EW_REBOOTSYSTEM     0x0043
3160 #define EW_EXITANDEXECAPP   0x0044
3161
3162 /* ExitWindowsEx() flags */
3163 #define EWX_LOGOFF           0
3164 #define EWX_SHUTDOWN         1
3165 #define EWX_REBOOT           2
3166 #define EWX_FORCE            4
3167 #define EWX_POWEROFF         8
3168
3169
3170 #define DM_UPDATE       1
3171 #define DM_COPY         2
3172 #define DM_PROMPT       4
3173 #define DM_MODIFY       8
3174
3175 #define DM_IN_BUFFER      DM_MODIFY
3176 #define DM_IN_PROMPT      DM_PROMPT
3177 #define DM_OUT_BUFFER     DM_COPY
3178 #define DM_OUT_DEFAULT    DM_UPDATE
3179
3180 #define DM_ORIENTATION          0x00000001L
3181 #define DM_PAPERSIZE            0x00000002L
3182 #define DM_PAPERLENGTH          0x00000004L
3183 #define DM_PAPERWIDTH           0x00000008L
3184 #define DM_SCALE                0x00000010L
3185 #define DM_COPIES               0x00000100L
3186 #define DM_DEFAULTSOURCE        0x00000200L
3187 #define DM_PRINTQUALITY         0x00000400L
3188 #define DM_COLOR                0x00000800L
3189 #define DM_DUPLEX               0x00001000L
3190 #define DM_YRESOLUTION          0x00002000L
3191 #define DM_TTOPTION             0x00004000L
3192 #define DM_BITSPERPEL           0x00040000L
3193 #define DM_PELSWIDTH            0x00080000L
3194 #define DM_PELSHEIGHT           0x00100000L
3195 #define DM_DISPLAYFLAGS         0x00200000L
3196 #define DM_DISPLAYFREQUENCY     0x00400000L
3197
3198 /* etc.... */
3199
3200 #define DMORIENT_PORTRAIT       1
3201 #define DMORIENT_LANDSCAPE      2
3202
3203 #define DMPAPER_LETTER          1
3204 #define DMPAPER_LEGAL           5
3205 #define DMPAPER_EXECUTIVE       7
3206 #define DMPAPER_A3              8
3207 #define DMPAPER_A4              9
3208 #define DMPAPER_A5              11
3209 #define DMPAPER_ENV_10          20
3210 #define DMPAPER_ENV_DL          27
3211 #define DMPAPER_ENV_C5          28
3212 #define DMPAPER_ENV_B5          34
3213 #define DMPAPER_ENV_MONARCH     37
3214
3215 #define DMBIN_UPPER             1
3216 #define DMBIN_LOWER             2
3217 #define DMBIN_MIDDLE            3
3218 #define DMBIN_MANUAL            4
3219 #define DMBIN_ENVELOPE          5
3220 #define DMBIN_ENVMANUAL         6
3221 #define DMBIN_AUTO              7
3222 #define DMBIN_LARGECAPACITY     11
3223
3224 #define DMCOLOR_MONOCHROME      1
3225 #define DMCOLOR_COLOR           2
3226
3227 #define DMTT_BITMAP             1
3228 #define DMTT_DOWNLOAD           2
3229 #define DMTT_SUBDEV             3
3230
3231
3232 #define DC_FIELDS               1
3233 #define DC_PAPERS               2
3234 #define DC_PAPERSIZE            3
3235 #define DC_MINEXTENT            4
3236 #define DC_MAXEXTENT            5
3237 #define DC_BINS                 6
3238 #define DC_DUPLEX               7
3239 #define DC_SIZE                 8
3240 #define DC_EXTRA                9
3241 #define DC_VERSION              10
3242 #define DC_DRIVER               11
3243 #define DC_BINNAMES             12
3244 #define DC_ENUMRESOLUTIONS      13
3245 #define DC_FILEDEPENDENCIES     14
3246 #define DC_TRUETYPE             15
3247 #define DC_PAPERNAMES           16
3248 #define DC_ORIENTATION          17
3249 #define DC_COPIES               18
3250
3251      /* ChangeDisplaySettings return codes */
3252
3253 #define DISP_CHANGE_SUCCESSFUL 0
3254 #define DISP_CHANGE_RESTART    1
3255 #define DISP_CHANGE_FAILED     (-1)
3256 #define DISP_CHANGE_BADMODE    (-2)
3257 #define DISP_CHANGE_NOTUPDATED (-3)
3258 #define DISP_CHANGE_BADFLAGS   (-4)
3259
3260
3261 typedef struct _SYSTEM_POWER_STATUS
3262 {
3263   BOOL16  ACLineStatus;
3264   BYTE    BatteryFlag;
3265   BYTE    BatteryLifePercent;
3266   BYTE    reserved;
3267   DWORD   BatteryLifeTime;
3268   DWORD   BatteryFullLifeTime;
3269 } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
3270
3271 /* flags to FormatMessage */
3272 #define FORMAT_MESSAGE_ALLOCATE_BUFFER  0x00000100
3273 #define FORMAT_MESSAGE_IGNORE_INSERTS   0x00000200
3274 #define FORMAT_MESSAGE_FROM_STRING      0x00000400
3275 #define FORMAT_MESSAGE_FROM_HMODULE     0x00000800
3276 #define FORMAT_MESSAGE_FROM_SYSTEM      0x00001000
3277 #define FORMAT_MESSAGE_ARGUMENT_ARRAY   0x00002000
3278 #define FORMAT_MESSAGE_MAX_WIDTH_MASK   0x000000FF
3279
3280 /* types of LoadImage */
3281 #define IMAGE_BITMAP    0
3282 #define IMAGE_ICON      1
3283 #define IMAGE_CURSOR    2
3284 #define IMAGE_ENHMETA   3
3285
3286 /* loadflags to LoadImage */
3287 #define LR_DEFAULTCOLOR         0x0000
3288 #define LR_MONOCHROME           0x0001
3289 #define LR_COLOR                0x0002
3290 #define LR_COPYRETURNORG        0x0004
3291 #define LR_COPYDELETEORG        0x0008
3292 #define LR_LOADFROMFILE         0x0010
3293 #define LR_LOADTRANSPARENT      0x0020
3294 #define LR_DEFAULTSIZE          0x0040
3295 #define LR_VGA_COLOR            0x0080
3296 #define LR_LOADMAP3DCOLORS      0x1000
3297 #define LR_CREATEDIBSECTION     0x2000
3298 #define LR_COPYFROMRESOURCE     0x4000
3299 #define LR_SHARED               0x8000
3300
3301 /* Flags for PolyDraw and GetPath */
3302 #define PT_CLOSEFIGURE          0x0001
3303 #define PT_LINETO               0x0002
3304 #define PT_BEZIERTO             0x0004
3305 #define PT_MOVETO               0x0006
3306
3307 typedef struct _LARGE_INTEGER
3308 {
3309     DWORD    LowPart;
3310     LONG     HighPart;
3311 } LARGE_INTEGER,*LPLARGE_INTEGER;
3312
3313 typedef struct _ULARGE_INTEGER
3314 {
3315     DWORD    LowPart;
3316     DWORD    HighPart;
3317 } ULARGE_INTEGER,*LPULARGE_INTEGER;
3318
3319 typedef LARGE_INTEGER LUID,*LPLUID; /* locally unique ids */
3320
3321 /* SetLastErrorEx types */
3322 #define SLE_ERROR       0x00000001
3323 #define SLE_MINORERROR  0x00000002
3324 #define SLE_WARNING     0x00000003
3325
3326 /* Argument 1 passed to the DllEntryProc. */
3327 #define DLL_PROCESS_DETACH      0       /* detach process (unload library) */
3328 #define DLL_PROCESS_ATTACH      1       /* attach process (load library) */
3329 #define DLL_THREAD_ATTACH       2       /* attach new thread */
3330 #define DLL_THREAD_DETACH       3       /* detach thread */
3331
3332 typedef struct _MEMORY_BASIC_INFORMATION
3333 {
3334     LPVOID   BaseAddress;
3335     LPVOID   AllocationBase;
3336     DWORD    AllocationProtect;
3337     DWORD    RegionSize;
3338     DWORD    State;
3339     DWORD    Protect;
3340     DWORD    Type;
3341 } MEMORY_BASIC_INFORMATION,*LPMEMORY_BASIC_INFORMATION;
3342
3343
3344 typedef BOOL32 (CALLBACK *CODEPAGE_ENUMPROC32A)(LPSTR);
3345 typedef BOOL32 (CALLBACK *CODEPAGE_ENUMPROC32W)(LPWSTR);
3346 DECL_WINELIB_TYPE_AW(CODEPAGE_ENUMPROC)
3347 typedef BOOL32 (CALLBACK *LOCALE_ENUMPROC32A)(LPSTR);
3348 typedef BOOL32 (CALLBACK *LOCALE_ENUMPROC32W)(LPWSTR);
3349 DECL_WINELIB_TYPE_AW(LOCALE_ENUMPROC)
3350
3351 typedef struct tagSYSTEM_INFO
3352 {
3353     union {
3354         DWORD   dwOemId;
3355         struct {
3356                 WORD wProcessorArchitecture;
3357                 WORD wReserved;
3358         } x;
3359     } u;
3360     DWORD       dwPageSize;
3361     LPVOID      lpMinimumApplicationAddress;
3362     LPVOID      lpMaximumApplicationAddress;
3363     DWORD       dwActiveProcessorMask;
3364     DWORD       dwNumberOfProcessors;
3365     DWORD       dwProcessorType;
3366     DWORD       dwAllocationGranularity;
3367     WORD        wProcessorLevel;
3368     WORD        wProcessorRevision;
3369 } SYSTEM_INFO, *LPSYSTEM_INFO;
3370
3371 /* u.x.wProcessorArchitecture (NT) */
3372 #define PROCESSOR_ARCHITECTURE_INTEL    0
3373 #define PROCESSOR_ARCHITECTURE_MIPS     1
3374 #define PROCESSOR_ARCHITECTURE_ALPHA    2
3375 #define PROCESSOR_ARCHITECTURE_PPC      3
3376 #define PROCESSOR_ARCHITECTURE_UNKNOWN  0xFFFF
3377
3378 /* dwProcessorType */
3379 #define PROCESSOR_INTEL_386     386
3380 #define PROCESSOR_INTEL_486     486
3381 #define PROCESSOR_INTEL_PENTIUM 586
3382 #define PROCESSOR_MIPS_R4000    4000
3383 #define PROCESSOR_ALPHA_21064   21064
3384
3385 /* service main function prototype */
3386 typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTION32A)(DWORD,LPSTR);
3387 typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTION32W)(DWORD,LPWSTR);
3388 DECL_WINELIB_TYPE_AW(LPSERVICE_MAIN_FUNCTION)
3389
3390 /* service start table */
3391 typedef struct
3392 {
3393     LPSTR                       lpServiceName;
3394     LPSERVICE_MAIN_FUNCTION32A  lpServiceProc;
3395 } *LPSERVICE_TABLE_ENTRY32A, SERVICE_TABLE_ENTRY32A;
3396
3397 typedef struct
3398 {
3399     LPWSTR                      lpServiceName;
3400     LPSERVICE_MAIN_FUNCTION32W  lpServiceProc;
3401 } *LPSERVICE_TABLE_ENTRY32W, SERVICE_TABLE_ENTRY32W;
3402
3403 DECL_WINELIB_TYPE_AW(SERVICE_TABLE_ENTRY)
3404 DECL_WINELIB_TYPE_AW(LPSERVICE_TABLE_ENTRY)
3405
3406 /* Used by: ControlService */
3407 typedef struct _SERVICE_STATUS {
3408     DWORD dwServiceType;
3409     DWORD dwCurrentState;
3410     DWORD dwControlsAccepted;
3411     DWORD dwWin32ExitCode;
3412     DWORD dwServiceSpecificExitCode;
3413     DWORD dwCheckPoint;
3414     DWORD dwWaitHint;
3415 } SERVICE_STATUS, *LPSERVICE_STATUS;
3416
3417
3418 /* {G,S}etPriorityClass */
3419 #define NORMAL_PRIORITY_CLASS   0x00000020
3420 #define IDLE_PRIORITY_CLASS     0x00000040
3421 #define HIGH_PRIORITY_CLASS     0x00000080
3422 #define REALTIME_PRIORITY_CLASS 0x00000100
3423
3424 /* GDI Escape commands */
3425 #define NEWFRAME                1
3426 #define ABORTDOC                2
3427 #define NEXTBAND                3
3428 #define SETCOLORTABLE           4
3429 #define GETCOLORTABLE           5
3430 #define FLUSHOUTPUT             6
3431 #define DRAFTMODE               7
3432 #define QUERYESCSUPPORT         8
3433 #define SETABORTPROC            9
3434 #define STARTDOC                10
3435 #define ENDDOC                  11
3436 #define GETPHYSPAGESIZE         12
3437 #define GETPRINTINGOFFSET       13
3438 #define GETSCALINGFACTOR        14
3439 #define MFCOMMENT               15
3440 #define GETPENWIDTH             16
3441 #define SETCOPYCOUNT            17
3442 #define SELECTPAPERSOURCE       18
3443 #define DEVICEDATA              19
3444 #define PASSTHROUGH             19
3445 #define GETTECHNOLGY            20
3446 #define GETTECHNOLOGY           20 /* yes, both of them */
3447 #define SETLINECAP              21
3448 #define SETLINEJOIN             22
3449 #define SETMITERLIMIT           23
3450 #define BANDINFO                24
3451 #define DRAWPATTERNRECT         25
3452 #define GETVECTORPENSIZE        26
3453 #define GETVECTORBRUSHSIZE      27
3454 #define ENABLEDUPLEX            28
3455 #define GETSETPAPERBINS         29
3456 #define GETSETPRINTORIENT       30
3457 #define ENUMPAPERBINS           31
3458 #define SETDIBSCALING           32
3459 #define EPSPRINTING             33
3460 #define ENUMPAPERMETRICS        34
3461 #define GETSETPAPERMETRICS      35
3462 #define POSTSCRIPT_DATA         37
3463 #define POSTSCRIPT_IGNORE       38
3464 #define MOUSETRAILS             39
3465 #define GETDEVICEUNITS          42
3466
3467 #define GETEXTENDEDTEXTMETRICS  256
3468 #define GETEXTENTTABLE          257
3469 #define GETPAIRKERNTABLE        258
3470 #define GETTRACKKERNTABLE       259
3471 #define EXTTEXTOUT              512
3472 #define GETFACENAME             513
3473 #define DOWNLOADFACE            514
3474 #define ENABLERELATIVEWIDTHS    768
3475 #define ENABLEPAIRKERNING       769
3476 #define SETKERNTRACK            770
3477 #define SETALLJUSTVALUES        771
3478 #define SETCHARSET              772
3479
3480 #define STRETCHBLT              2048
3481 #define GETSETSCREENPARAMS      3072
3482 #define QUERYDIBSUPPORT         3073
3483 #define BEGIN_PATH              4096
3484 #define CLIP_TO_PATH            4097
3485 #define END_PATH                4098
3486 #define EXT_DEVICE_CAPS         4099
3487 #define RESTORE_CTM             4100
3488 #define SAVE_CTM                4101
3489 #define SET_ARC_DIRECTION       4102
3490 #define SET_BACKGROUND_COLOR    4103
3491 #define SET_POLY_MODE           4104
3492 #define SET_SCREEN_ANGLE        4105
3493 #define SET_SPREAD              4106
3494 #define TRANSFORM_CTM           4107
3495 #define SET_CLIP_BOX            4108
3496 #define SET_BOUNDS              4109
3497 #define SET_MIRROR_MODE         4110
3498 #define OPENCHANNEL             4110
3499 #define DOWNLOADHEADER          4111
3500 #define CLOSECHANNEL            4112
3501 #define POSTSCRIPT_PASSTHROUGH  4115
3502 #define ENCAPSULATED_POSTSCRIPT 4116
3503
3504 /* Flag returned from Escape QUERYDIBSUPPORT */
3505 #define QDI_SETDIBITS           1
3506 #define QDI_GETDIBITS           2
3507 #define QDI_DIBTOSCREEN         4
3508 #define QDI_STRETCHDIB          8
3509
3510 /* Spooler Error Codes */
3511 #define SP_NOTREPORTED  0x4000
3512 #define SP_ERROR        (-1)
3513 #define SP_APPABORT     (-2)
3514 #define SP_USERABORT    (-3)
3515 #define SP_OUTOFDISK    (-4)
3516 #define SP_OUTOFMEMORY  (-5)
3517
3518 #define PR_JOBSTATUS    0x0000
3519
3520 typedef BOOL32 (CALLBACK *ENUMRESTYPEPROC32A)(HMODULE32,LPSTR,LONG);
3521 typedef BOOL32 (CALLBACK *ENUMRESTYPEPROC32W)(HMODULE32,LPWSTR,LONG);
3522 typedef BOOL32 (CALLBACK *ENUMRESNAMEPROC32A)(HMODULE32,LPCSTR,LPSTR,LONG);
3523 typedef BOOL32 (CALLBACK *ENUMRESNAMEPROC32W)(HMODULE32,LPCWSTR,LPWSTR,LONG);
3524 typedef BOOL32 (CALLBACK *ENUMRESLANGPROC32A)(HMODULE32,LPCSTR,LPCSTR,WORD,LONG);
3525 typedef BOOL32 (CALLBACK *ENUMRESLANGPROC32W)(HMODULE32,LPCWSTR,LPCWSTR,WORD,LONG);
3526
3527 DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC)
3528 DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC)
3529 DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC)
3530
3531 /* Character Type Flags */
3532 #define CT_CTYPE1               0x00000001      /* usual ctype */
3533 #define CT_CTYPE2               0x00000002      /* bidirectional layout info */
3534 #define CT_CTYPE3               0x00000004      /* textprocessing info */
3535
3536 /* CType 1 Flag Bits */
3537 #define C1_UPPER                0x0001
3538 #define C1_LOWER                0x0002
3539 #define C1_DIGIT                0x0004
3540 #define C1_SPACE                0x0008
3541 #define C1_PUNCT                0x0010
3542 #define C1_CNTRL                0x0020
3543 #define C1_BLANK                0x0040
3544 #define C1_XDIGIT               0x0080
3545 #define C1_ALPHA                0x0100
3546
3547 /* CType 2 Flag Bits */
3548 #define C2_LEFTTORIGHT          0x0001
3549 #define C2_RIGHTTOLEFT          0x0002
3550 #define C2_EUROPENUMBER         0x0003
3551 #define C2_EUROPESEPARATOR      0x0004
3552 #define C2_EUROPETERMINATOR     0x0005
3553 #define C2_ARABICNUMBER         0x0006
3554 #define C2_COMMONSEPARATOR      0x0007
3555 #define C2_BLOCKSEPARATOR       0x0008
3556 #define C2_SEGMENTSEPARATOR     0x0009
3557 #define C2_WHITESPACE           0x000A
3558 #define C2_OTHERNEUTRAL         0x000B
3559 #define C2_NOTAPPLICABLE        0x0000
3560
3561 /* CType 3 Flag Bits */
3562 #define C3_NONSPACING           0x0001
3563 #define C3_DIACRITIC            0x0002
3564 #define C3_VOWELMARK            0x0004
3565 #define C3_SYMBOL               0x0008
3566 #define C3_KATAKANA             0x0010
3567 #define C3_HIRAGANA             0x0020
3568 #define C3_HALFWIDTH            0x0040
3569 #define C3_FULLWIDTH            0x0080
3570 #define C3_IDEOGRAPH            0x0100
3571 #define C3_KASHIDA              0x0200
3572 #define C3_LEXICAL              0x0400
3573 #define C3_ALPHA                0x8000
3574 #define C3_NOTAPPLICABLE        0x0000
3575
3576 /* flags that can be passed to LoadLibraryEx */
3577 #define DONT_RESOLVE_DLL_REFERENCES     0x00000001
3578 #define LOAD_LIBRARY_AS_DATAFILE        0x00000002
3579 #define LOAD_WITH_ALTERED_SEARCH_PATH   0x00000008
3580
3581
3582 typedef struct {
3583         DWORD   dwScope;
3584         DWORD   dwType;
3585         DWORD   dwDisplayType;
3586         DWORD   dwUsage;
3587         LPSTR   lpLocalName;
3588         LPSTR   lpRemoteName;
3589         LPSTR   lpComment ;
3590         LPSTR   lpProvider;
3591 } NETRESOURCE32A,*LPNETRESOURCE32A;
3592
3593 typedef struct {
3594         DWORD   dwScope;
3595         DWORD   dwType;
3596         DWORD   dwDisplayType;
3597         DWORD   dwUsage;
3598         LPWSTR  lpLocalName;
3599         LPWSTR  lpRemoteName;
3600         LPWSTR  lpComment ;
3601         LPWSTR  lpProvider;
3602 } NETRESOURCE32W,*LPNETRESOURCE32W;
3603
3604 DECL_WINELIB_TYPE_AW(NETRESOURCE)
3605 DECL_WINELIB_TYPE_AW(LPNETRESOURCE)
3606
3607 typedef struct {
3608     DWORD cbStructure;       /* size of this structure in bytes */
3609     HWND32 hwndOwner;          /* owner window for the dialog */
3610     LPNETRESOURCE32A lpConnRes;/* Requested Resource info    */
3611     DWORD dwFlags;           /* flags (see below) */
3612     DWORD dwDevNum;          /* number of devices connected to */
3613 } CONNECTDLGSTRUCT32A, *LPCONNECTDLGSTRUCT32A;
3614 typedef struct {
3615     DWORD cbStructure;       /* size of this structure in bytes */
3616     HWND32 hwndOwner;          /* owner window for the dialog */
3617     LPNETRESOURCE32W lpConnRes;/* Requested Resource info    */
3618     DWORD dwFlags;           /* flags (see below) */
3619     DWORD dwDevNum;          /* number of devices connected to */
3620 } CONNECTDLGSTRUCT32W, *LPCONNECTDLGSTRUCT32W;
3621
3622 DECL_WINELIB_TYPE_AW(CONNECTDLGSTRUCT)
3623 DECL_WINELIB_TYPE_AW(LPCONNECTDLGSTRUCT)
3624
3625 /**/
3626 #define CONNDLG_RO_PATH     0x00000001 /* Resource path should be read-only    */
3627 #define CONNDLG_CONN_POINT  0x00000002 /* Netware -style movable connection point enabled */
3628 #define CONNDLG_USE_MRU     0x00000004 /* Use MRU combobox  */
3629 #define CONNDLG_HIDE_BOX    0x00000008 /* Hide persistent connect checkbox  */
3630 #define CONNDLG_PERSIST     0x00000010 /* Force persistent connection */
3631 #define CONNDLG_NOT_PERSIST 0x00000020 /* Force connection NOT persistent */
3632
3633
3634 typedef struct {
3635         DWORD   cbStructure;
3636         DWORD   dwFlags;
3637         DWORD   dwSpeed;
3638         DWORD   dwDelay;
3639         DWORD   dwOptDataSize;
3640 } NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT;
3641
3642
3643 typedef struct tagANIMATIONINFO
3644 {
3645        UINT32          cbSize;
3646        INT32           iMinAnimate;
3647 } ANIMATIONINFO, *LPANIMATIONINFO;
3648
3649 typedef struct tagNMHDR
3650 {
3651     HWND32  hwndFrom;
3652     UINT32  idFrom;
3653     UINT32  code;
3654 } NMHDR, *LPNMHDR;
3655
3656 typedef struct
3657 {
3658         UINT32  cbSize;
3659         INT32   iTabLength;
3660         INT32   iLeftMargin;
3661         INT32   iRightMargin;
3662         UINT32  uiLengthDrawn;
3663 } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
3664
3665 /* ifdef _x86_ ... */
3666 typedef struct _LDT_ENTRY {
3667     WORD        LimitLow;
3668     WORD        BaseLow;
3669     union {
3670         struct {
3671             BYTE        BaseMid;
3672             BYTE        Flags1;/*Declare as bytes to avoid alignment problems */
3673             BYTE        Flags2; 
3674             BYTE        BaseHi;
3675         } Bytes;
3676         struct {
3677             DWORD       BaseMid         : 8;
3678             DWORD       Type            : 5;
3679             DWORD       Dpl             : 2;
3680             DWORD       Pres            : 1;
3681             DWORD       LimitHi         : 4;
3682             DWORD       Sys             : 1;
3683             DWORD       Reserved_0      : 1;
3684             DWORD       Default_Big     : 1;
3685             DWORD       Granularity     : 1;
3686             DWORD       BaseHi          : 8;
3687         } Bits;
3688     } HighWord;
3689 } LDT_ENTRY, *LPLDT_ENTRY;
3690
3691 /* for WOWHandle{16,32} */
3692 typedef enum _WOW_HANDLE_TYPE { /* WOW */
3693     WOW_TYPE_HWND,
3694     WOW_TYPE_HMENU,
3695     WOW_TYPE_HDWP,
3696     WOW_TYPE_HDROP,
3697     WOW_TYPE_HDC,
3698     WOW_TYPE_HFONT,
3699     WOW_TYPE_HMETAFILE,
3700     WOW_TYPE_HRGN,
3701     WOW_TYPE_HBITMAP,
3702     WOW_TYPE_HBRUSH,
3703     WOW_TYPE_HPALETTE,
3704     WOW_TYPE_HPEN,
3705     WOW_TYPE_HACCEL,
3706     WOW_TYPE_HTASK,
3707     WOW_TYPE_FULLHWND
3708 } WOW_HANDLE_TYPE;
3709
3710 /* WOWCallback16Ex defines */
3711 #define WCB16_MAX_CBARGS        16
3712 /* ... dwFlags */
3713 #define WCB16_PASCAL            0x0
3714 #define WCB16_CDECL             0x1
3715
3716 typedef enum _GET_FILEEX_INFO_LEVELS {
3717     GetFileExInfoStandard
3718 } GET_FILEEX_INFO_LEVELS;
3719
3720 typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
3721     DWORD    dwFileAttributes;
3722     FILETIME ftCreationTime;
3723     FILETIME ftLastAccessTime;
3724     FILETIME ftLastWriteTime;
3725     DWORD    nFileSizeHigh;
3726     DWORD    nFileSizeLow;
3727 } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
3728
3729 typedef struct _DllVersionInfo {
3730     DWORD cbSize;
3731     DWORD dwMajorVersion;
3732     DWORD dwMinorVersion;
3733     DWORD dwBuildNumber;
3734     DWORD dwPlatformID;
3735 } DLLVERSIONINFO;
3736
3737 typedef struct _SEGINFO {
3738     UINT16    offSegment;
3739     UINT16    cbSegment;
3740     UINT16    flags;
3741     UINT16    cbAlloc;
3742     HGLOBAL16 h;
3743     UINT16    alignShift;
3744     UINT16    reserved[2];
3745 } SEGINFO;
3746
3747 typedef struct tagDLGTEMPLATE
3748 {
3749     DWORD style;
3750     DWORD dwExtendedStyle;
3751     WORD cdit;
3752     short x;
3753     short y;
3754     short cx;
3755     short cy;
3756 }DLGTEMPLATE, *LPDLGTEMPLATE;
3757 typedef const DLGTEMPLATE *LPCDLGTEMPLATE;
3758 /* Fixme: use this instaed of LPCVOID for CreateDialogIndirectParam and DialogBoxIndirectParam*/
3759 typedef struct tagDLGITEMTEMPLATE
3760 {
3761     DWORD style;
3762     DWORD dwExtendedStyle;
3763     WORD cdit;
3764     short x;
3765     short y;
3766     short cx;
3767     short cy;
3768     WORD id;
3769 }DLGITEMTEMPLATE, *LPDLGITEMTEMPLATE;
3770 typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATE;
3771
3772 /*
3773  * This one seems to be a Win32 only definition. It also is defined with
3774  * WINAPI instead of CALLBACK in the windows headers.
3775  */
3776 typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, 
3777                                            LARGE_INTEGER, DWORD, DWORD, HANDLE32,
3778                                            HANDLE32, LPVOID);
3779
3780 #pragma pack(4)
3781
3782 /* Declarations for functions that exist only in Win16 */
3783
3784 #ifdef __WINE__
3785 typedef VOID (*SYSTEMTIMERPROC)(WORD);
3786
3787 WORD        WINAPI AllocCStoDSAlias(WORD);
3788 WORD        WINAPI AllocDStoCSAlias(WORD);
3789 HGLOBAL16   WINAPI AllocResource(HINSTANCE16,HRSRC16,DWORD);
3790 WORD        WINAPI AllocSelector(WORD);
3791 WORD        WINAPI AllocSelectorArray(WORD);
3792 WORD        WINAPI CreateSystemTimer(WORD,SYSTEMTIMERPROC);
3793 VOID        WINAPI DirectedYield(HTASK16);
3794 HGLOBAL16   WINAPI DirectResAlloc(HINSTANCE16,WORD,UINT16);
3795 VOID        WINAPI DisableSystemTimers(void);
3796 VOID        WINAPI EnableSystemTimers(void);
3797 HANDLE16    WINAPI FarGetOwner(HGLOBAL16);
3798 VOID        WINAPI FarSetOwner(HGLOBAL16,HANDLE16);
3799 FARPROC16   WINAPI FileCDR(FARPROC16);
3800 WORD        WINAPI FreeSelector(WORD);
3801 HANDLE16    WINAPI GetAtomHandle(ATOM);
3802 HANDLE16    WINAPI GetCodeHandle(FARPROC16);
3803 VOID        WINAPI GetCodeInfo(FARPROC16,SEGINFO*);
3804 DWORD       WINAPI GetCurrentPDB(void);
3805 HTASK16     WINAPI GetCurrentTask(void);
3806 SEGPTR      WINAPI GetDOSEnvironment(void);
3807 HMODULE16   WINAPI GetExePtr(HANDLE16);
3808 WORD        WINAPI GetExeVersion(void);
3809 WORD        WINAPI GetExpWinVer(HMODULE16);
3810 DWORD       WINAPI GetFileResourceSize(LPCSTR,SEGPTR,SEGPTR,LPDWORD);
3811 DWORD       WINAPI GetFileResource(LPCSTR,SEGPTR,SEGPTR,DWORD,DWORD,LPVOID);
3812 DWORD       WINAPI GetHeapSpaces(HMODULE16);
3813 INT16       WINAPI GetInstanceData(HINSTANCE16,WORD,INT16);
3814 BOOL16      WINAPI GetModuleName(HINSTANCE16,LPSTR,INT16);
3815 INT16       WINAPI GetModuleUsage(HINSTANCE16);
3816 UINT16      WINAPI GetNumTasks(void);
3817 DWORD       WINAPI GetSelectorBase(WORD);
3818 DWORD       WINAPI GetSelectorLimit(WORD);
3819 FARPROC16   WINAPI GetSetKernelDOSProc(FARPROC16 DosProc);
3820 HINSTANCE16 WINAPI GetTaskDS(void);
3821 HQUEUE16    WINAPI GetTaskQueue(HTASK16);
3822 BYTE        WINAPI GetTempDrive(BYTE);
3823 BOOL16      WINAPI GetWinDebugInfo(LPWINDEBUGINFO,UINT16);
3824 DWORD       WINAPI GetWinFlags(void);
3825 DWORD       WINAPI GlobalDOSAlloc(DWORD);
3826 WORD        WINAPI GlobalDOSFree(WORD);
3827 void        WINAPI GlobalFreeAll(HGLOBAL16);
3828 DWORD       WINAPI GlobalHandleNoRIP(WORD);
3829 HGLOBAL16   WINAPI GlobalLRUNewest(HGLOBAL16);
3830 HGLOBAL16   WINAPI GlobalLRUOldest(HGLOBAL16);
3831 VOID        WINAPI GlobalNotify(FARPROC16);
3832 WORD        WINAPI GlobalPageLock(HGLOBAL16);
3833 WORD        WINAPI GlobalPageUnlock(HGLOBAL16);
3834 BOOL16      WINAPI IsSharedSelector(HANDLE16);
3835 BOOL16      WINAPI IsTask(HTASK16);
3836 HTASK16     WINAPI IsTaskLocked(void);
3837 VOID        WINAPI LogError(UINT16, LPVOID);
3838 VOID        WINAPI LogParamError(UINT16,FARPROC16,LPVOID);
3839 WORD        WINAPI LocalCountFree(void);
3840 WORD        WINAPI LocalHandleDelta(WORD);
3841 WORD        WINAPI LocalHeapSize(void);
3842 BOOL16      WINAPI LocalInit(HANDLE16,WORD,WORD);
3843 HMODULE32   WINAPI LoadLibraryEx32W16(LPCSTR,HANDLE16,DWORD);
3844 FARPROC16   WINAPI LocalNotify(FARPROC16);
3845 HTASK16     WINAPI LockCurrentTask(BOOL16);
3846 VOID        WINAPI OldYield(void);
3847 VOID        WINAPI PostEvent(HTASK16);
3848 WORD        WINAPI PrestoChangoSelector(WORD,WORD);
3849 BOOL32      WINAPI RegisterShellHook(HWND16,UINT16);
3850 /* NOTE: This is SYSTEM.3, not USER.182, which is also named KillSystemTimer */
3851 WORD        WINAPI SYSTEM_KillSystemTimer( WORD );
3852 WORD        WINAPI SelectorAccessRights(WORD,WORD,WORD);
3853 VOID        WINAPI SetPriority(HTASK16,INT16);
3854 FARPROC16   WINAPI SetResourceHandler(HINSTANCE16,SEGPTR,FARPROC16);
3855 WORD        WINAPI SetSelectorBase(WORD,DWORD);
3856 WORD        WINAPI SetSelectorLimit(WORD,DWORD);
3857 HQUEUE16    WINAPI SetTaskQueue(HTASK16,HQUEUE16);
3858 FARPROC16   WINAPI SetTaskSignalProc(HTASK16,FARPROC16);
3859 BOOL16      WINAPI SetWinDebugInfo(LPWINDEBUGINFO);
3860 VOID        WINAPI SwitchStackTo(WORD,WORD,WORD);
3861 BOOL16      WINAPI WaitEvent(HTASK16);
3862 VOID        WINAPI WriteOutProfiles(VOID);
3863 VOID        WINAPI hmemcpy(LPVOID,LPCVOID,LONG);
3864 #endif  /* __WINE__ */
3865
3866 /* Declarations for functions that exist only in Win32 */
3867
3868 BOOL32      WINAPI AllocConsole(void);
3869 BOOL32      WINAPI AreFileApisANSI(void);
3870 BOOL32      WINAPI Beep(DWORD,DWORD);
3871 BOOL32      WINAPI CloseHandle(HANDLE32);
3872 BOOL32      WINAPI CloseServiceHandle(HANDLE32);
3873 HANDLE32    WINAPI ConvertToGlobalHandle(HANDLE32 hSrc);
3874 BOOL32      WINAPI CopyFile32A(LPCSTR,LPCSTR,BOOL32);
3875 BOOL32      WINAPI CopyFile32W(LPCWSTR,LPCWSTR,BOOL32);
3876 #define     CopyFile WINELIB_NAME_AW(CopyFile)
3877 BOOL32      WINAPI CopyFileEx32A(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL32, DWORD);
3878 BOOL32      WINAPI CopyFileEx32W(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL32, DWORD);
3879 #define     CopyFileEx WINELIB_NAME_AW(CopyFileEx)
3880 INT32       WINAPI CompareFileTime(LPFILETIME,LPFILETIME);
3881 BOOL32      WINAPI ControlService(HANDLE32,DWORD,LPSERVICE_STATUS);
3882 HANDLE32    WINAPI CreateEvent32A(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCSTR);
3883 HANDLE32    WINAPI CreateEvent32W(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCWSTR);
3884 #define     CreateEvent WINELIB_NAME_AW(CreateEvent)
3885 HFILE32     WINAPI CreateFile32A(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
3886                                  DWORD,DWORD,HANDLE32);
3887 HFILE32     WINAPI CreateFile32W(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
3888                                  DWORD,DWORD,HANDLE32);
3889 #define     CreateFile WINELIB_NAME_AW(CreateFile)
3890 HANDLE32    WINAPI CreateFileMapping32A(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD,
3891                                         DWORD,DWORD,LPCSTR);
3892 HANDLE32    WINAPI CreateFileMapping32W(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD,
3893                                         DWORD,DWORD,LPCWSTR);
3894 #define     CreateFileMapping WINELIB_NAME_AW(CreateFileMapping)
3895 HANDLE32    WINAPI CreateMutex32A(LPSECURITY_ATTRIBUTES,BOOL32,LPCSTR);
3896 HANDLE32    WINAPI CreateMutex32W(LPSECURITY_ATTRIBUTES,BOOL32,LPCWSTR);
3897 #define     CreateMutex WINELIB_NAME_AW(CreateMutex)
3898 BOOL32      WINAPI CreateProcess32A(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,
3899                                     LPSECURITY_ATTRIBUTES,BOOL32,DWORD,LPVOID,LPCSTR,
3900                                     LPSTARTUPINFO32A,LPPROCESS_INFORMATION);
3901 BOOL32      WINAPI CreateProcess32W(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,
3902                                     LPSECURITY_ATTRIBUTES,BOOL32,DWORD,LPVOID,LPCWSTR,
3903                                     LPSTARTUPINFO32W,LPPROCESS_INFORMATION);
3904 #define     CreateProcess WINELIB_NAME_AW(CreateProcess)
3905 HANDLE32    WINAPI CreateSemaphore32A(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
3906 HANDLE32    WINAPI CreateSemaphore32W(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
3907 #define     CreateSemaphore WINELIB_NAME_AW(CreateSemaphore)
3908 HANDLE32    WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
3909 BOOL32      WINAPI DeleteService(HANDLE32);
3910 BOOL32      WINAPI DeregisterEventSource(HANDLE32);
3911 BOOL32      WINAPI DisableThreadLibraryCalls(HMODULE32);
3912 BOOL32      WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
3913 BOOL32      WINAPI DuplicateHandle(HANDLE32,HANDLE32,HANDLE32,HANDLE32*,DWORD,BOOL32,DWORD);
3914 BOOL32      WINAPI EnumDateFormats32A(DATEFMT_ENUMPROC32A lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
3915 BOOL32      WINAPI EnumDateFormats32W(DATEFMT_ENUMPROC32W lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
3916 #define     EnumDateFormats WINELIB_NAME_AW(EnumDateFormats)
3917 BOOL32      WINAPI EnumResourceLanguages32A(HMODULE32,LPCSTR,LPCSTR,
3918                                             ENUMRESLANGPROC32A,LONG);
3919 BOOL32      WINAPI EnumResourceLanguages32W(HMODULE32,LPCWSTR,LPCWSTR,
3920                                             ENUMRESLANGPROC32W,LONG);
3921 #define     EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages)
3922 BOOL32      WINAPI EnumResourceNames32A(HMODULE32,LPCSTR,ENUMRESNAMEPROC32A,
3923                                         LONG);
3924 BOOL32      WINAPI EnumResourceNames32W(HMODULE32,LPCWSTR,ENUMRESNAMEPROC32W,
3925                                         LONG);
3926 #define     EnumResourceNames WINELIB_NAME_AW(EnumResourceNames)
3927 BOOL32      WINAPI EnumResourceTypes32A(HMODULE32,ENUMRESTYPEPROC32A,LONG);
3928 BOOL32      WINAPI EnumResourceTypes32W(HMODULE32,ENUMRESTYPEPROC32W,LONG);
3929 #define     EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes)
3930 BOOL32      WINAPI EnumSystemCodePages32A(CODEPAGE_ENUMPROC32A,DWORD);
3931 BOOL32      WINAPI EnumSystemCodePages32W(CODEPAGE_ENUMPROC32W,DWORD);
3932 #define     EnumSystemCodePages WINELIB_NAME_AW(EnumSystemCodePages)
3933 BOOL32      WINAPI EnumSystemLocales32A(LOCALE_ENUMPROC32A,DWORD);
3934 BOOL32      WINAPI EnumSystemLocales32W(LOCALE_ENUMPROC32W,DWORD);
3935 #define     EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales)
3936 BOOL32      WINAPI EnumTimeFormats32A(TIMEFMT_ENUMPROC32A lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
3937 BOOL32      WINAPI EnumTimeFormats32W(TIMEFMT_ENUMPROC32W lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
3938 #define     EnumTimeFormats WINELIB_NAME_AW(EnumTimeFormats)
3939 VOID        WINAPI ExitProcess(DWORD);
3940 VOID        WINAPI ExitThread(DWORD);
3941 DWORD       WINAPI ExpandEnvironmentStrings32A(LPCSTR,LPSTR,DWORD);
3942 DWORD       WINAPI ExpandEnvironmentStrings32W(LPCWSTR,LPWSTR,DWORD);
3943 #define     ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings)
3944 BOOL32      WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD);
3945 BOOL32      WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME);
3946 BOOL32      WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME);
3947 HANDLE32    WINAPI FindFirstChangeNotification32A(LPCSTR,BOOL32,DWORD);
3948 HANDLE32    WINAPI FindFirstChangeNotification32W(LPCWSTR,BOOL32,DWORD);
3949 #define     FindFirstChangeNotification WINELIB_NAME_AW(FindFirstChangeNotification)
3950 BOOL32      WINAPI FindNextChangeNotification(HANDLE32);
3951 BOOL32      WINAPI FindCloseChangeNotification(HANDLE32);
3952 HRSRC32     WINAPI FindResourceEx32A(HMODULE32,LPCSTR,LPCSTR,WORD);
3953 HRSRC32     WINAPI FindResourceEx32W(HMODULE32,LPCWSTR,LPCWSTR,WORD);
3954 #define     FindResourceEx WINELIB_NAME_AW(FindResourceEx)
3955 BOOL32      WINAPI FlushConsoleInputBuffer(HANDLE32);
3956 BOOL32      WINAPI FlushFileBuffers(HFILE32);
3957 BOOL32      WINAPI FlushViewOfFile(LPCVOID, DWORD);
3958 DWORD       WINAPI FormatMessage32A(DWORD,LPCVOID,DWORD,DWORD,LPSTR,
3959                                     DWORD,LPDWORD);
3960 #define     FormatMessage WINELIB_NAME_AW(FormatMessage)
3961 BOOL32      WINAPI FreeConsole(void);
3962 BOOL32      WINAPI FreeEnvironmentStrings32A(LPSTR);
3963 BOOL32      WINAPI FreeEnvironmentStrings32W(LPWSTR);
3964 #define     FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings)
3965 UINT32      WINAPI GetACP(void);
3966 LPCSTR      WINAPI GetCommandLine32A(void);
3967 LPCWSTR     WINAPI GetCommandLine32W(void);
3968 #define     GetCommandLine WINELIB_NAME_AW(GetCommandLine)
3969 BOOL32      WINAPI GetComputerName32A(LPSTR,LPDWORD);
3970 BOOL32      WINAPI GetComputerName32W(LPWSTR,LPDWORD);
3971 #define     GetComputerName WINELIB_NAME_AW(GetComputerName)
3972 UINT32      WINAPI GetConsoleCP(void);
3973 BOOL32      WINAPI GetConsoleMode(HANDLE32,LPDWORD);
3974 UINT32      WINAPI GetConsoleOutputCP(void);
3975 DWORD       WINAPI GetConsoleTitle32A(LPSTR,DWORD);
3976 DWORD       WINAPI GetConsoleTitle32W(LPWSTR,DWORD);
3977 #define     GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
3978 BOOL32      WINAPI GetCPInfo(UINT32,LPCPINFO);
3979 BOOL32      WINAPI GetCommMask(HANDLE32, LPDWORD);
3980 BOOL32      WINAPI GetCommModemStatus(HANDLE32, LPDWORD);
3981 HANDLE32    WINAPI GetCurrentProcess(void);
3982 DWORD       WINAPI GetCurrentProcessId(void);
3983 HANDLE32    WINAPI GetCurrentThread(void);
3984 DWORD       WINAPI GetCurrentThreadId(void);
3985 INT32       WINAPI GetDateFormat32A(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT32);
3986 INT32       WINAPI GetDateFormat32W(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT32);
3987 #define     GetDateFormat WINELIB_NAME_AW(GetDateFormat)
3988 LPSTR       WINAPI GetEnvironmentStrings32A(void);
3989 LPWSTR      WINAPI GetEnvironmentStrings32W(void);
3990 #define     GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings)
3991 DWORD       WINAPI GetEnvironmentVariable32A(LPCSTR,LPSTR,DWORD);
3992 DWORD       WINAPI GetEnvironmentVariable32W(LPCWSTR,LPWSTR,DWORD);
3993 #define     GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable)
3994 BOOL32      WINAPI GetFileAttributesEx32A(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
3995 BOOL32      WINAPI GetFileAttributesEx32W(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
3996 #define     GetFileattributesEx WINELIB_NAME_AW(GetFileAttributesEx)
3997 DWORD       WINAPI GetFileInformationByHandle(HFILE32,BY_HANDLE_FILE_INFORMATION*);
3998 BOOL32      WINAPI GetFileSecurity32A(LPCSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD);
3999 BOOL32      WINAPI GetFileSecurity32W(LPCWSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD);
4000 #define     GetFileSecurity WINELIB_NAME_AW(GetFileSecurity)
4001 DWORD       WINAPI GetFileSize(HFILE32,LPDWORD);
4002 BOOL32      WINAPI GetFileTime(HFILE32,LPFILETIME,LPFILETIME,LPFILETIME);
4003 DWORD       WINAPI GetFileType(HFILE32);
4004 DWORD       WINAPI GetFullPathName32A(LPCSTR,DWORD,LPSTR,LPSTR*);
4005 DWORD       WINAPI GetFullPathName32W(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
4006 #define     GetFullPathName WINELIB_NAME_AW(GetFullPathName)
4007 BOOL32      WINAPI GetHandleInformation(HANDLE32,LPDWORD);
4008 DWORD       WINAPI GetLargestConsoleWindowSize(HANDLE32);
4009 VOID        WINAPI GetLocalTime(LPSYSTEMTIME);
4010 DWORD       WINAPI GetLogicalDrives(void);
4011 DWORD       WINAPI GetLongPathName32A(LPCSTR,LPSTR,DWORD);
4012 DWORD       WINAPI GetLongPathName32W(LPCWSTR,LPWSTR,DWORD);
4013 #define     GetLongPathName WINELIB_NAME_AW(GetLongPathName)
4014 BOOL32      WINAPI GetNumberOfConsoleInputEvents(HANDLE32,LPDWORD);
4015 BOOL32      WINAPI GetNumberOfConsoleMouseButtons(LPDWORD);
4016 UINT32      WINAPI GetOEMCP(void);
4017 DWORD       WINAPI GetPriorityClass(HANDLE32);
4018 HANDLE32    WINAPI GetProcessHeap(void);
4019 DWORD       WINAPI GetProcessVersion(DWORD);
4020 DWORD       WINAPI GetShortPathName32A(LPCSTR,LPSTR,DWORD);
4021 DWORD       WINAPI GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
4022 #define     GetShortPathName WINELIB_NAME_AW(GetShortPathName)
4023 HFILE32     WINAPI GetStdHandle(DWORD);
4024 BOOL32      WINAPI GetStringTypeEx32A(LCID,DWORD,LPCSTR,INT32,LPWORD);
4025 BOOL32      WINAPI GetStringTypeEx32W(LCID,DWORD,LPCWSTR,INT32,LPWORD);
4026 #define     GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx)
4027 VOID        WINAPI GetSystemInfo(LPSYSTEM_INFO);
4028 BOOL32      WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
4029 VOID        WINAPI GetSystemTime(LPSYSTEMTIME);
4030 INT32       WINAPI GetTimeFormat32A(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT32);
4031 INT32       WINAPI GetTimeFormat32W(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT32);
4032 #define     GetTimeFormat WINELIB_NAME_AW(GetTimeFormat)
4033 LCID        WINAPI GetThreadLocale(void);
4034 INT32       WINAPI GetThreadPriority(HANDLE32);
4035 BOOL32      WINAPI GetThreadSelectorEntry(HANDLE32,DWORD,LPLDT_ENTRY);
4036 BOOL32      WINAPI GetUserName32A(LPSTR,LPDWORD);
4037 BOOL32      WINAPI GetUserName32W(LPWSTR,LPDWORD);
4038 #define     GetUserName WINELIB_NAME_AW(GetUserName)
4039 VOID        WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
4040 LPVOID      WINAPI HeapAlloc(HANDLE32,DWORD,DWORD);
4041 DWORD       WINAPI HeapCompact(HANDLE32,DWORD);
4042 HANDLE32    WINAPI HeapCreate(DWORD,DWORD,DWORD);
4043 BOOL32      WINAPI HeapDestroy(HANDLE32);
4044 BOOL32      WINAPI HeapFree(HANDLE32,DWORD,LPVOID);
4045 BOOL32      WINAPI HeapLock(HANDLE32);
4046 LPVOID      WINAPI HeapReAlloc(HANDLE32,DWORD,LPVOID,DWORD);
4047 DWORD       WINAPI HeapSize(HANDLE32,DWORD,LPVOID);
4048 BOOL32      WINAPI HeapUnlock(HANDLE32);
4049 BOOL32      WINAPI HeapValidate(HANDLE32,DWORD,LPCVOID);
4050 LONG        WINAPI InterlockedDecrement(LPLONG);
4051 LONG        WINAPI InterlockedExchange(LPLONG,LONG);
4052 LONG        WINAPI InterlockedIncrement(LPLONG);
4053 BOOL32      WINAPI IsDBCSLeadByteEx(UINT32,BYTE);
4054 BOOL32      WINAPI IsProcessorFeaturePresent(DWORD);
4055 BOOL32      WINAPI IsValidLocale(DWORD,DWORD);
4056 BOOL32      WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
4057 BOOL32      WINAPI LockFile(HFILE32,DWORD,DWORD,DWORD,DWORD);
4058 BOOL32      WINAPI LookupPrivilegeValue32A(LPCSTR,LPCSTR,LPVOID);
4059 BOOL32      WINAPI LookupPrivilegeValue32W(LPCWSTR,LPCWSTR,LPVOID);
4060 #define     LookupPrivilegeValue WINELIB_NAME_AW(LookupPrivilegeValue)
4061 HMODULE32   WINAPI MapHModuleSL(HMODULE16);
4062 HMODULE16   WINAPI MapHModuleLS(HMODULE32);
4063 SEGPTR      WINAPI MapLS(LPVOID);
4064 LPVOID      WINAPI MapSL(SEGPTR);
4065 LPVOID      WINAPI MapViewOfFile(HANDLE32,DWORD,DWORD,DWORD,DWORD);
4066 LPVOID      WINAPI MapViewOfFileEx(HANDLE32,DWORD,DWORD,DWORD,DWORD,LPVOID);
4067 BOOL32      WINAPI MoveFile32A(LPCSTR,LPCSTR);
4068 BOOL32      WINAPI MoveFile32W(LPCWSTR,LPCWSTR);
4069 #define     MoveFile WINELIB_NAME_AW(MoveFile)
4070 BOOL32      WINAPI MoveFileEx32A(LPCSTR,LPCSTR,DWORD);
4071 BOOL32      WINAPI MoveFileEx32W(LPCWSTR,LPCWSTR,DWORD);
4072 #define     MoveFileEx WINELIB_NAME_AW(MoveFileEx)
4073 INT32       WINAPI MultiByteToWideChar(UINT32,DWORD,LPCSTR,INT32,LPWSTR,INT32);
4074 INT32       WINAPI WideCharToMultiByte(UINT32,DWORD,LPCWSTR,INT32,LPSTR,INT32,LPCSTR,BOOL32*);
4075 HANDLE32    WINAPI OpenEvent32A(DWORD,BOOL32,LPCSTR);
4076 HANDLE32    WINAPI OpenEvent32W(DWORD,BOOL32,LPCWSTR);
4077 #define     OpenEvent WINELIB_NAME_AW(OpenEvent)
4078 HANDLE32    WINAPI OpenFileMapping32A(DWORD,BOOL32,LPCSTR);
4079 HANDLE32    WINAPI OpenFileMapping32W(DWORD,BOOL32,LPCWSTR);
4080 #define     OpenFileMapping WINELIB_NAME_AW(OpenFileMapping)
4081 HANDLE32    WINAPI OpenMutex32A(DWORD,BOOL32,LPCSTR);
4082 HANDLE32    WINAPI OpenMutex32W(DWORD,BOOL32,LPCWSTR);
4083 #define     OpenMutex WINELIB_NAME_AW(OpenMutex)
4084 HANDLE32    WINAPI OpenProcess(DWORD,BOOL32,DWORD);
4085 BOOL32      WINAPI OpenProcessToken(HANDLE32,DWORD,HANDLE32*);
4086 HANDLE32    WINAPI OpenSCManager32A(LPCSTR,LPCSTR,DWORD);
4087 HANDLE32    WINAPI OpenSCManager32W(LPCWSTR,LPCWSTR,DWORD);
4088 #define     OpenSCManager WINELIB_NAME_AW(OpenSCManager)
4089 HANDLE32    WINAPI OpenSemaphore32A(DWORD,BOOL32,LPCSTR);
4090 HANDLE32    WINAPI OpenSemaphore32W(DWORD,BOOL32,LPCWSTR);
4091 #define     OpenSemaphore WINELIB_NAME_AW(OpenSemaphore)
4092 HANDLE32    WINAPI OpenService32A(HANDLE32,LPCSTR,DWORD);
4093 HANDLE32    WINAPI OpenService32W(HANDLE32,LPCWSTR,DWORD);
4094 #define     OpenService WINELIB_NAME_AW(OpenService)
4095 BOOL32      WINAPI PulseEvent(HANDLE32);
4096 BOOL32      WINAPI PurgeComm(HANDLE32,DWORD);
4097 DWORD       WINAPI QueryDosDevice32A(LPCSTR,LPSTR,DWORD);
4098 DWORD       WINAPI QueryDosDevice32W(LPCWSTR,LPWSTR,DWORD);
4099 #define     QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
4100 BOOL32      WINAPI QueryPerformanceCounter(LPLARGE_INTEGER);
4101 BOOL32      WINAPI ReadConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
4102 BOOL32      WINAPI ReadConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
4103 #define     ReadConsole WINELIB_NAME_AW(ReadConsole)
4104 BOOL32      WINAPI ReadConsoleOutputCharacter32A(HANDLE32,LPSTR,DWORD,
4105                                                  COORD,LPDWORD);
4106 #define     ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter)
4107 BOOL32      WINAPI ReadFile(HANDLE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
4108 LONG        WINAPI RegConnectRegistry32A(LPCSTR,HKEY,LPHKEY);
4109 LONG        WINAPI RegConnectRegistry32W(LPCWSTR,HKEY,LPHKEY);
4110 #define     RegConnectRegistry WINELIB_NAME_AW(RegConnectRegistry)
4111 DWORD       WINAPI RegCreateKeyEx32A(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,
4112                                      LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD);
4113 DWORD       WINAPI RegCreateKeyEx32W(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,
4114                                      LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD);
4115 #define     RegCreateKeyEx WINELIB_NAME_AW(RegCreateKeyEx)
4116 DWORD       WINAPI RegEnumKeyEx32A(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR,
4117                                    LPDWORD,LPFILETIME);
4118 DWORD       WINAPI RegEnumKeyEx32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,
4119                                    LPDWORD,LPFILETIME);
4120 #define     RegEnumKeyEx WINELIB_NAME_AW(RegEnumKeyEx)
4121 LONG        WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,LPDWORD);
4122 HANDLE32    WINAPI RegisterEventSource32A(LPCSTR,LPCSTR);
4123 HANDLE32    WINAPI RegisterEventSource32W(LPCWSTR,LPCWSTR);
4124 #define     RegisterEventSource WINELIB_NAME_AW(RegisterEventSource)
4125 LONG        WINAPI RegLoadKey32A(HKEY,LPCSTR,LPCSTR);
4126 LONG        WINAPI RegLoadKey32W(HKEY,LPCWSTR,LPCWSTR);
4127 #define     RegLoadKey WINELIB_NAME_AW(RegLoadKey)
4128 LONG        WINAPI RegNotifyChangeKeyValue(HKEY,BOOL32,DWORD,HANDLE32,BOOL32);
4129 DWORD       WINAPI RegOpenKeyEx32W(HKEY,LPCWSTR,DWORD,REGSAM,LPHKEY);
4130 DWORD       WINAPI RegOpenKeyEx32A(HKEY,LPCSTR,DWORD,REGSAM,LPHKEY);
4131 #define     RegOpenKeyEx WINELIB_NAME_AW(RegOpenKeyEx)
4132 DWORD       WINAPI RegQueryInfoKey32W(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,
4133                                       LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
4134                                       LPDWORD,LPFILETIME);
4135 DWORD       WINAPI RegQueryInfoKey32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
4136                                       LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
4137                                       LPDWORD,LPFILETIME);
4138 #define     RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey)
4139 LONG        WINAPI RegReplaceKey32A(HKEY,LPCSTR,LPCSTR,LPCSTR);
4140 LONG        WINAPI RegReplaceKey32W(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
4141 #define     RegReplaceKey WINELIB_NAME_AW(RegReplaceKey)
4142 LONG        WINAPI RegRestoreKey32A(HKEY,LPCSTR,DWORD);
4143 LONG        WINAPI RegRestoreKey32W(HKEY,LPCWSTR,DWORD);
4144 #define     RegRestoreKey WINELIB_NAME_AW(RegRestoreKey)
4145 LONG        WINAPI RegSaveKey32A(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
4146 LONG        WINAPI RegSaveKey32W(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
4147 #define     RegSaveKey WINELIB_NAME_AW(RegSaveKey)
4148 LONG        WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR);
4149 LONG        WINAPI RegUnLoadKey32A(HKEY,LPCSTR);
4150 LONG        WINAPI RegUnLoadKey32W(HKEY,LPCWSTR);
4151 #define     RegUnLoadKey WINELIB_NAME_AW(RegUnLoadKey)
4152 BOOL32      WINAPI ReleaseMutex(HANDLE32);
4153 BOOL32      WINAPI ReleaseSemaphore(HANDLE32,LONG,LPLONG);
4154 BOOL32      WINAPI ResetEvent(HANDLE32);
4155 DWORD       WINAPI ResumeThread(HANDLE32);
4156 VOID        WINAPI RtlFillMemory(LPVOID,UINT32,UINT32);
4157 VOID        WINAPI RtlMoveMemory(LPVOID,LPCVOID,UINT32);
4158 VOID        WINAPI RtlZeroMemory(LPVOID,UINT32);
4159 DWORD       WINAPI SearchPath32A(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
4160 DWORD       WINAPI SearchPath32W(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
4161 #define     SearchPath WINELIB_NAME(SearchPath)
4162 BOOL32      WINAPI SetCommMask(INT32,DWORD);
4163 BOOL32      WINAPI SetComputerName32A(LPCSTR);
4164 BOOL32      WINAPI SetComputerName32W(LPCWSTR);
4165 #define     SetComputerName WINELIB_NAME_AW(SetComputerName)
4166 BOOL32      WINAPI SetConsoleCursorPosition(HANDLE32,COORD);
4167 BOOL32      WINAPI SetConsoleMode(HANDLE32,DWORD);
4168 BOOL32      WINAPI SetConsoleTitle32A(LPCSTR);
4169 BOOL32      WINAPI SetConsoleTitle32W(LPCWSTR);
4170 #define     SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
4171 BOOL32      WINAPI SetEndOfFile(HFILE32);
4172 BOOL32      WINAPI SetEnvironmentVariable32A(LPCSTR,LPCSTR);
4173 BOOL32      WINAPI SetEnvironmentVariable32W(LPCWSTR,LPCWSTR);
4174 #define     SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
4175 BOOL32      WINAPI SetEvent(HANDLE32);
4176 VOID        WINAPI SetFileApisToANSI(void);
4177 VOID        WINAPI SetFileApisToOEM(void);
4178 DWORD       WINAPI SetFilePointer(HFILE32,LONG,LPLONG,DWORD);
4179 BOOL32      WINAPI SetFileSecurity32A(LPCSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR);
4180 BOOL32      WINAPI SetFileSecurity32W(LPCWSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR);
4181 #define     SetFileSecurity WINELIB_NAME_AW(SetFileSecurity)
4182 BOOL32      WINAPI SetFileTime(HFILE32,const FILETIME*,const FILETIME*,
4183                                const FILETIME*);
4184 BOOL32      WINAPI SetHandleInformation(HANDLE32,DWORD,DWORD);
4185 BOOL32      WINAPI SetPriorityClass(HANDLE32,DWORD);
4186 BOOL32      WINAPI SetStdHandle(DWORD,HANDLE32);
4187 BOOL32      WINAPI SetSystemPowerState(BOOL32,BOOL32);
4188 BOOL32      WINAPI SetSystemTime(const SYSTEMTIME*);
4189 DWORD       WINAPI SetThreadAffinityMask(HANDLE32,DWORD);
4190 BOOL32      WINAPI SetThreadPriority(HANDLE32,INT32);
4191 BOOL32      WINAPI SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION);
4192 VOID        WINAPI Sleep(DWORD);
4193 DWORD       WINAPI SleepEx(DWORD,BOOL32);
4194 BOOL32      WINAPI StartService32A(HANDLE32,DWORD,LPCSTR*);
4195 BOOL32      WINAPI StartService32W(HANDLE32,DWORD,LPCWSTR*);
4196 #define     StartService WINELIB_NAME_AW(StartService)
4197 DWORD       WINAPI SuspendThread(HANDLE32);
4198 BOOL32      WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
4199 DWORD       WINAPI TlsAlloc(void);
4200 BOOL32      WINAPI TlsFree(DWORD);
4201 LPVOID      WINAPI TlsGetValue(DWORD);
4202 BOOL32      WINAPI TlsSetValue(DWORD,LPVOID);
4203 VOID        WINAPI UnMapLS(SEGPTR);
4204 BOOL32      WINAPI UnlockFile(HFILE32,DWORD,DWORD,DWORD,DWORD);
4205 BOOL32      WINAPI UnmapViewOfFile(LPVOID);
4206 LPVOID      WINAPI VirtualAlloc(LPVOID,DWORD,DWORD,DWORD);
4207 BOOL32      WINAPI VirtualFree(LPVOID,DWORD,DWORD);
4208 BOOL32      WINAPI VirtualLock(LPVOID,DWORD);
4209 BOOL32      WINAPI VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD);
4210 BOOL32      WINAPI VirtualProtectEx(HANDLE32,LPVOID,DWORD,DWORD,LPDWORD);
4211 DWORD       WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
4212 DWORD       WINAPI VirtualQueryEx(HANDLE32,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
4213 BOOL32      WINAPI VirtualUnlock(LPVOID,DWORD);
4214 BOOL32      WINAPI WaitCommEvent(HANDLE32,LPDWORD,LPOVERLAPPED);
4215 BOOL32      WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
4216 DWORD       WINAPI WaitForMultipleObjects(DWORD,const HANDLE32*,BOOL32,DWORD);
4217 DWORD       WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE32*,BOOL32,DWORD,BOOL32);
4218 DWORD       WINAPI WaitForSingleObject(HANDLE32,DWORD);
4219 DWORD       WINAPI WaitForSingleObjectEx(HANDLE32,DWORD,BOOL32);
4220 UINT32      WINAPI WNetAddConnection2_32A(LPNETRESOURCE32A,LPCSTR,LPCSTR,DWORD);
4221 UINT32      WINAPI WNetAddConnection2_32W(LPNETRESOURCE32W,LPCWSTR,LPCWSTR,DWORD);
4222 #define     WNetAddConnection2 WINELIB_NAME_AW(WNetAddConnection2_)
4223 UINT32      WINAPI WNetAddConnection3_32A(HWND32,LPNETRESOURCE32A,LPCSTR,LPCSTR,DWORD);
4224 UINT32      WINAPI WNetAddConnection3_32W(HWND32,LPNETRESOURCE32W,LPCWSTR,LPCWSTR,DWORD);
4225 #define     WNetAddConnection3 WINELIB_NAME_AW(WNetAddConnection3_)
4226 UINT32      WINAPI WNetConnectionDialog1_32(HWND32,DWORD);
4227 UINT32      WINAPI WNetConnectionDialog1_32A(LPCONNECTDLGSTRUCT32A);
4228 UINT32      WINAPI WNetConnectionDialog1_32W(LPCONNECTDLGSTRUCT32W);
4229 #define     WNetConnectionDialog1 WINELIB_NAME_AW(WNetConnectionDialog1_)
4230 UINT32      WINAPI MultinetGetErrorText32A(DWORD,DWORD,DWORD);
4231 UINT32      WINAPI MultinetGetErrorText32W(DWORD,DWORD,DWORD);
4232 #define     MultinetGetErrorText WINELIB_NAME_AW(MultinetGetErrorText_)
4233 SEGPTR      WINAPI WOWGlobalAllocLock16(DWORD,DWORD,HGLOBAL16*);
4234 DWORD       WINAPI WOWCallback16(FARPROC16,DWORD);
4235 BOOL32      WINAPI WOWCallback16Ex(FARPROC16,DWORD,DWORD,LPVOID,LPDWORD);
4236 HANDLE32    WINAPI WOWHandle32(WORD,WOW_HANDLE_TYPE);
4237 WORD        WINAPI WOWHandle16(HANDLE32,WOW_HANDLE_TYPE);
4238 BOOL32      WINAPI WriteConsole32A(HANDLE32,LPCVOID,DWORD,LPDWORD,LPVOID);
4239 BOOL32      WINAPI WriteConsole32W(HANDLE32,LPCVOID,DWORD,LPDWORD,LPVOID);
4240 #define     WriteConsole WINELIB_NAME_AW(WriteConsole)
4241 BOOL32      WINAPI WriteFile(HANDLE32,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
4242 VOID        WINAPI ZeroMemory(LPVOID,UINT32);
4243 #define     ZeroMemory RtlZeroMemory
4244
4245 /* Declarations for functions that are the same in Win16 and Win32 */
4246
4247 VOID        WINAPI CloseSound(VOID);
4248 DWORD       WINAPI GetLastError(void);
4249 LANGID      WINAPI GetSystemDefaultLangID(void);
4250 LCID        WINAPI GetSystemDefaultLCID(void);
4251 LANGID      WINAPI GetUserDefaultLangID(void);
4252 LCID        WINAPI GetUserDefaultLCID(void);
4253 VOID        WINAPI LZDone(void);
4254 VOID        WINAPI ScreenSwitchEnable(WORD);
4255 DWORD       WINAPI RegCloseKey(HKEY);
4256 DWORD       WINAPI RegFlushKey(HKEY);
4257 VOID        WINAPI SetLastError(DWORD);
4258
4259
4260 /* Declarations for functions that change between Win16 and Win32 */
4261
4262 LRESULT     WINAPI AboutDlgProc16(HWND16,UINT16,WPARAM16,LPARAM);
4263 LRESULT     WINAPI AboutDlgProc32(HWND32,UINT32,WPARAM32,LPARAM);
4264 #define     AboutDlgProc WINELIB_NAME(AboutDlgProc)
4265 INT16       WINAPI AccessResource16(HINSTANCE16,HRSRC16);
4266 INT32       WINAPI AccessResource32(HMODULE32,HRSRC32);
4267 #define     AccessResource WINELIB_NAME(AccessResource)
4268 ATOM        WINAPI AddAtom16(SEGPTR);
4269 ATOM        WINAPI AddAtom32A(LPCSTR);
4270 ATOM        WINAPI AddAtom32W(LPCWSTR);
4271 #define     AddAtom WINELIB_NAME_AW(AddAtom)
4272 INT16       WINAPI AnsiToOem16(LPCSTR,LPSTR);
4273 #define     AnsiToOem32A CharToOem32A
4274 #define     AnsiToOem32W CharToOem32W
4275 #define     AnsiToOem WINELIB_NAME_AW(AnsiToOem)
4276 VOID        WINAPI AnsiToOemBuff16(LPCSTR,LPSTR,UINT16);
4277 #define     AnsiToOemBuff32A CharToOemBuff32A
4278 #define     AnsiToOemBuff32W CharToOemBuff32W
4279 #define     AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff)
4280 BOOL16      WINAPI CheckMenuRadioButton16(HMENU16,UINT16,UINT16,UINT16,BOOL16);
4281 BOOL32      WINAPI CheckMenuRadioButton32(HMENU32,UINT32,UINT32,UINT32,BOOL32);
4282 #define     CheckMenuRadioButton WINELIB_NAME(CheckMenuRadioButton)
4283 UINT16      WINAPI CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
4284 UINT32      WINAPI CompareString32A(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
4285 UINT32      WINAPI CompareString32W(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD);
4286 #define     CompareString WINELIB_NAME_AW(CompareString)
4287 LONG        WINAPI CopyLZFile16(HFILE16,HFILE16);
4288 LONG        WINAPI CopyLZFile32(HFILE32,HFILE32);
4289 #define     CopyLZFile WINELIB_NAME(CopyLZFile)
4290 INT16       WINAPI CountVoiceNotes16(INT16);
4291 DWORD       WINAPI CountVoiceNotes32(DWORD);
4292 #define     CountVoiceNotes WINELIB_NAME(CountVoiceNotes)
4293 BOOL16      WINAPI CreateDirectory16(LPCSTR,LPVOID);
4294 BOOL32      WINAPI CreateDirectory32A(LPCSTR,LPSECURITY_ATTRIBUTES);
4295 BOOL32      WINAPI CreateDirectory32W(LPCWSTR,LPSECURITY_ATTRIBUTES);
4296 #define     CreateDirectory WINELIB_NAME_AW(CreateDirectory)
4297 BOOL32      WINAPI CreateDirectoryEx32A(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
4298 BOOL32      WINAPI CreateDirectoryEx32W(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
4299 #define     CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx)
4300 BOOL16      WINAPI DefineHandleTable16(WORD);
4301 #define     DefineHandleTable32(w) ((w),TRUE)
4302 #define     DefineHandleTable WINELIB_NAME(DefineHandleTable)
4303 ATOM        WINAPI DeleteAtom16(ATOM);
4304 ATOM        WINAPI DeleteAtom32(ATOM);
4305 #define     DeleteAtom WINELIB_NAME(DeleteAtom)
4306 BOOL16      WINAPI DeleteFile16(LPCSTR);
4307 BOOL32      WINAPI DeleteFile32A(LPCSTR);
4308 BOOL32      WINAPI DeleteFile32W(LPCWSTR);
4309 #define     DeleteFile WINELIB_NAME_AW(DeleteFile)
4310 BOOL16      WINAPI EnumTaskWindows16(HTASK16,WNDENUMPROC16,LPARAM);
4311 #define     EnumTaskWindows32(handle,proc,lparam) \
4312             EnumThreadWindows(handle,proc,lparam)
4313 #define     EnumTaskWindows WINELIB_NAME(EnumTaskWindows)
4314 HICON16     WINAPI ExtractIcon16(HINSTANCE16,LPCSTR,UINT16);
4315 HICON32     WINAPI ExtractIcon32A(HINSTANCE32,LPCSTR,UINT32);
4316 HICON32     WINAPI ExtractIcon32W(HINSTANCE32,LPCWSTR,UINT32);
4317 #define     ExtractIcon WINELIB_NAME_AW(ExtractIcon)
4318 HICON16     WINAPI ExtractAssociatedIcon16(HINSTANCE16,LPSTR,LPWORD);
4319 HICON32     WINAPI ExtractAssociatedIcon32A(HINSTANCE32,LPSTR,LPWORD);
4320 HICON32     WINAPI ExtractAssociatedIcon32W(HINSTANCE32,LPWSTR,LPWORD);
4321 #define     ExtractAssociatedIcon WINELIB_NAME_AW(ExtractAssociatedIcon)
4322 void        WINAPI FatalAppExit16(UINT16,LPCSTR);
4323 void        WINAPI FatalAppExit32A(UINT32,LPCSTR);
4324 void        WINAPI FatalAppExit32W(UINT32,LPCWSTR);
4325 #define     FatalAppExit WINELIB_NAME_AW(FatalAppExit)
4326 ATOM        WINAPI FindAtom16(SEGPTR);
4327 ATOM        WINAPI FindAtom32A(LPCSTR);
4328 ATOM        WINAPI FindAtom32W(LPCWSTR);
4329 #define     FindAtom WINELIB_NAME_AW(FindAtom)
4330 BOOL16      WINAPI FindClose16(HANDLE16);
4331 BOOL32      WINAPI FindClose32(HANDLE32);
4332 #define     FindClose WINELIB_NAME(FindClose)
4333 HINSTANCE16 WINAPI FindExecutable16(LPCSTR,LPCSTR,LPSTR);
4334 HINSTANCE32 WINAPI FindExecutable32A(LPCSTR,LPCSTR,LPSTR);
4335 HINSTANCE32 WINAPI FindExecutable32W(LPCWSTR,LPCWSTR,LPWSTR);
4336 #define     FindExecutable WINELIB_NAME_AW(FindExecutable)
4337 HANDLE16    WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATA32A);
4338 HANDLE32    WINAPI FindFirstFile32A(LPCSTR,LPWIN32_FIND_DATA32A);
4339 HANDLE32    WINAPI FindFirstFile32W(LPCWSTR,LPWIN32_FIND_DATA32W);
4340 #define     FindFirstFile WINELIB_NAME_AW(FindFirstFile)
4341 BOOL16      WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATA32A);
4342 BOOL32      WINAPI FindNextFile32A(HANDLE32,LPWIN32_FIND_DATA32A);
4343 BOOL32      WINAPI FindNextFile32W(HANDLE32,LPWIN32_FIND_DATA32W);
4344 #define     FindNextFile WINELIB_NAME_AW(FindNextFile)
4345 HRSRC16     WINAPI FindResource16(HINSTANCE16,SEGPTR,SEGPTR);
4346 HRSRC32     WINAPI FindResource32A(HMODULE32,LPCSTR,LPCSTR);
4347 HRSRC32     WINAPI FindResource32W(HMODULE32,LPCWSTR,LPCWSTR);
4348 #define     FindResource WINELIB_NAME_AW(FindResource)
4349 VOID        WINAPI FreeLibrary16(HINSTANCE16);
4350 BOOL32      WINAPI FreeLibrary32(HMODULE32);
4351 #define     FreeLibrary WINELIB_NAME(FreeLibrary)
4352 BOOL16      WINAPI FreeModule16(HMODULE16);
4353 #define     FreeModule32(handle) FreeLibrary32(handle)
4354 #define     FreeModule WINELIB_NAME(FreeModule)
4355 void        WINAPI FreeProcInstance16(FARPROC16);
4356 #define     FreeProcInstance32(proc) /*nothing*/
4357 #define     FreeProcInstance WINELIB_NAME(FreeProcInstance)
4358 BOOL16      WINAPI FreeResource16(HGLOBAL16);
4359 BOOL32      WINAPI FreeResource32(HGLOBAL32);
4360 #define     FreeResource WINELIB_NAME(FreeResource)
4361 UINT16      WINAPI GetAtomName16(ATOM,LPSTR,INT16);
4362 UINT32      WINAPI GetAtomName32A(ATOM,LPSTR,INT32);
4363 UINT32      WINAPI GetAtomName32W(ATOM,LPWSTR,INT32);
4364 #define     GetAtomName WINELIB_NAME_AW(GetAtomName)
4365 UINT16      WINAPI GetCurrentDirectory16(UINT16,LPSTR);
4366 UINT32      WINAPI GetCurrentDirectory32A(UINT32,LPSTR);
4367 UINT32      WINAPI GetCurrentDirectory32W(UINT32,LPWSTR);
4368 #define     GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory)
4369 BOOL16      WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
4370 BOOL32      WINAPI GetDiskFreeSpace32A(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
4371 BOOL32      WINAPI GetDiskFreeSpace32W(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
4372 #define     GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace)
4373 BOOL32      WINAPI GetDiskFreeSpaceEx32A(LPCSTR,LPULARGE_INTEGER,LPULARGE_INTEGER,LPULARGE_INTEGER);
4374 BOOL32      WINAPI GetDiskFreeSpaceEx32W(LPCWSTR,LPULARGE_INTEGER,LPULARGE_INTEGER,LPULARGE_INTEGER);
4375 #define     GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx)
4376 UINT16      WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */
4377 UINT32      WINAPI GetDriveType32A(LPCSTR);
4378 UINT32      WINAPI GetDriveType32W(LPCWSTR);
4379 #define     GetDriveType WINELIB_NAME_AW(GetDriveType)
4380 INT16       WINAPI GetExpandedName16(LPCSTR,LPSTR);
4381 INT32       WINAPI GetExpandedName32A(LPCSTR,LPSTR);
4382 INT32       WINAPI GetExpandedName32W(LPCWSTR,LPWSTR);
4383 #define     GetExpandedName WINELIB_NAME_AW(GetExpandedName)
4384 DWORD       WINAPI GetFileAttributes16(LPCSTR);
4385 DWORD       WINAPI GetFileAttributes32A(LPCSTR);
4386 DWORD       WINAPI GetFileAttributes32W(LPCWSTR);
4387 #define     GetFileAttributes WINELIB_NAME_AW(GetFileAttributes)
4388 DWORD       WINAPI GetFileVersionInfoSize16(LPCSTR,LPDWORD);
4389 DWORD       WINAPI GetFileVersionInfoSize32A(LPCSTR,LPDWORD);
4390 DWORD       WINAPI GetFileVersionInfoSize32W(LPCWSTR,LPDWORD);
4391 #define     GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
4392 DWORD       WINAPI GetFileVersionInfo16(LPCSTR,DWORD,DWORD,LPVOID);
4393 DWORD       WINAPI GetFileVersionInfo32A(LPCSTR,DWORD,DWORD,LPVOID);
4394 DWORD       WINAPI GetFileVersionInfo32W(LPCWSTR,DWORD,DWORD,LPVOID);
4395 #define     GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
4396 DWORD       WINAPI GetFreeSpace16(UINT16);
4397 #define     GetFreeSpace32(w) (0x100000L)
4398 #define     GetFreeSpace WINELIB_NAME(GetFreeSpace)
4399 UINT32      WINAPI GetLogicalDriveStrings32A(UINT32,LPSTR);
4400 UINT32      WINAPI GetLogicalDriveStrings32W(UINT32,LPWSTR);
4401 #define     GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings)
4402 INT16       WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16);
4403 INT32       WINAPI GetLocaleInfo32A(LCID,LCTYPE,LPSTR,INT32);
4404 INT32       WINAPI GetLocaleInfo32W(LCID,LCTYPE,LPWSTR,INT32);
4405 #define     GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo)
4406 INT16       WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
4407 DWORD       WINAPI GetModuleFileName32A(HMODULE32,LPSTR,DWORD);
4408 DWORD       WINAPI GetModuleFileName32W(HMODULE32,LPWSTR,DWORD);
4409 #define     GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
4410 HMODULE16   WINAPI GetModuleHandle16(LPCSTR);
4411 HMODULE32   WINAPI GetModuleHandle32A(LPCSTR);
4412 HMODULE32   WINAPI GetModuleHandle32W(LPCWSTR);
4413 #define     GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
4414 UINT16      WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
4415 UINT32      WINAPI GetPrivateProfileInt32A(LPCSTR,LPCSTR,INT32,LPCSTR);
4416 UINT32      WINAPI GetPrivateProfileInt32W(LPCWSTR,LPCWSTR,INT32,LPCWSTR);
4417 #define     GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt)
4418 INT16       WINAPI GetPrivateProfileSection16(LPCSTR,LPSTR,UINT16,LPCSTR);
4419 INT32       WINAPI GetPrivateProfileSection32A(LPCSTR,LPSTR,DWORD,LPCSTR);
4420 INT32       WINAPI GetPrivateProfileSection32W(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
4421 #define     GetPrivateProfileSection WINELIB_NAME_AW(GetPrivateProfileSection)
4422 WORD        WINAPI GetPrivateProfileSectionNames16(LPSTR,UINT16,LPCSTR);
4423 DWORD       WINAPI GetPrivateProfileSectionNames32A(LPSTR,DWORD,LPCSTR);
4424 DWORD       WINAPI GetPrivateProfileSectionNames32W(LPWSTR,DWORD,LPCWSTR);
4425 #define     GetPrivateProfileSectionNames WINELIB_NAME_AW(GetPrivateProfileSectionNames)
4426 INT16       WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16,LPCSTR);
4427 INT32       WINAPI GetPrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32,LPCSTR);
4428 INT32       WINAPI GetPrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32,LPCWSTR);
4429 #define     GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString)
4430 BOOL16      WINAPI GetPrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
4431 BOOL32      WINAPI GetPrivateProfileStruct32A(LPCSTR,LPCSTR,LPVOID,UINT32,LPCSTR);
4432 BOOL32      WINAPI GetPrivateProfileStruct32W(LPCWSTR,LPCWSTR,LPVOID,UINT32,LPCWSTR);
4433 #define     GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct)
4434 FARPROC16   WINAPI GetProcAddress16(HMODULE16,SEGPTR);
4435 FARPROC32   WINAPI GetProcAddress32(HMODULE32,LPCSTR);
4436 #define     GetProcAddress WINELIB_NAME(GetProcAddress)
4437 UINT16      WINAPI GetProfileInt16(LPCSTR,LPCSTR,INT16);
4438 UINT32      WINAPI GetProfileInt32A(LPCSTR,LPCSTR,INT32);
4439 UINT32      WINAPI GetProfileInt32W(LPCWSTR,LPCWSTR,INT32);
4440 #define     GetProfileInt WINELIB_NAME_AW(GetProfileInt)
4441 INT16       WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16);
4442 INT32       WINAPI GetProfileSection32A(LPCSTR,LPSTR,DWORD);
4443 INT32       WINAPI GetProfileSection32W(LPCWSTR,LPWSTR,DWORD);
4444 #define     GetProfileSection WINELIB_NAME_AW(GetProfileSection)
4445 INT32       WINAPI GetProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32);
4446 INT32       WINAPI GetProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32);
4447 #define     GetProfileString WINELIB_NAME_AW(GetProfileString)
4448 BOOL16      WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
4449 BOOL32      WINAPI GetStringType32A(LCID,DWORD,LPCSTR,INT32,LPWORD);
4450 BOOL32      WINAPI GetStringType32W(DWORD,LPCWSTR,INT32,LPWORD);
4451 #define     GetStringType WINELIB_NAME_AW(GetStringType)
4452 UINT16      WINAPI GetSystemDirectory16(LPSTR,UINT16);
4453 UINT32      WINAPI GetSystemDirectory32A(LPSTR,UINT32);
4454 UINT32      WINAPI GetSystemDirectory32W(LPWSTR,UINT32);
4455 #define     GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
4456 UINT16      WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
4457 UINT32      WINAPI GetTempFileName32A(LPCSTR,LPCSTR,UINT32,LPSTR);
4458 UINT32      WINAPI GetTempFileName32W(LPCWSTR,LPCWSTR,UINT32,LPWSTR);
4459 #define     GetTempFileName WINELIB_NAME_AW(GetTempFileName)
4460 UINT32      WINAPI GetTempPath32A(UINT32,LPSTR);
4461 UINT32      WINAPI GetTempPath32W(UINT32,LPWSTR);
4462 #define     GetTempPath WINELIB_NAME_AW(GetTempPath)
4463 LPINT16     WINAPI GetThresholdEvent16(void);
4464 LPDWORD     WINAPI GetThresholdEvent32(void);
4465 #define     GetThresholdEvent WINELIB_NAME(GetThresholdEvent)
4466 INT16       WINAPI GetThresholdStatus16(void);
4467 DWORD       WINAPI GetThresholdStatus32(void);
4468 #define     GetThresholdStatus WINELIB_NAME(GetThresholdStatus)
4469 LONG        WINAPI GetVersion16(void);
4470 LONG        WINAPI GetVersion32(void);
4471 #define     GetVersion WINELIB_NAME(GetVersion)
4472 BOOL32      WINAPI GetExitCodeProcess(HANDLE32,LPDWORD);
4473 BOOL32      WINAPI GetVolumeInformation32A(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
4474 BOOL32      WINAPI GetVolumeInformation32W(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
4475 #define     GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation)
4476 UINT16      WINAPI GetWindowsDirectory16(LPSTR,UINT16);
4477 UINT32      WINAPI GetWindowsDirectory32A(LPSTR,UINT32);
4478 UINT32      WINAPI GetWindowsDirectory32W(LPWSTR,UINT32);
4479 #define     GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory)
4480 HGLOBAL16   WINAPI GlobalAlloc16(UINT16,DWORD);
4481 HGLOBAL32   WINAPI GlobalAlloc32(UINT32,DWORD);
4482 #define     GlobalAlloc WINELIB_NAME(GlobalAlloc)
4483 DWORD       WINAPI GlobalCompact16(DWORD);
4484 DWORD       WINAPI GlobalCompact32(DWORD);
4485 #define     GlobalCompact WINELIB_NAME(GlobalCompact)
4486 UINT16      WINAPI GlobalFlags16(HGLOBAL16);
4487 UINT32      WINAPI GlobalFlags32(HGLOBAL32);
4488 #define     GlobalFlags WINELIB_NAME(GlobalFlags)
4489 HGLOBAL16   WINAPI GlobalFree16(HGLOBAL16);
4490 HGLOBAL32   WINAPI GlobalFree32(HGLOBAL32);
4491 #define     GlobalFree WINELIB_NAME(GlobalFree)
4492 DWORD       WINAPI GlobalHandle16(WORD);
4493 HGLOBAL32   WINAPI GlobalHandle32(LPCVOID);
4494 #define     GlobalHandle WINELIB_NAME(GlobalHandle)
4495 WORD        WINAPI GlobalFix16(HGLOBAL16);
4496 VOID        WINAPI GlobalFix32(HGLOBAL32);
4497 #define     GlobalFix WINELIB_NAME(GlobalFix)
4498 LPVOID      WINAPI GlobalLock16(HGLOBAL16);
4499 LPVOID      WINAPI GlobalLock32(HGLOBAL32);
4500 #define     GlobalLock WINELIB_NAME(GlobalLock)
4501 HGLOBAL16   WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
4502 HGLOBAL32   WINAPI GlobalReAlloc32(HGLOBAL32,DWORD,UINT32);
4503 #define     GlobalReAlloc WINELIB_NAME(GlobalReAlloc)
4504 DWORD       WINAPI GlobalSize16(HGLOBAL16);
4505 DWORD       WINAPI GlobalSize32(HGLOBAL32);
4506 #define     GlobalSize WINELIB_NAME(GlobalSize)
4507 VOID        WINAPI GlobalUnfix16(HGLOBAL16);
4508 VOID        WINAPI GlobalUnfix32(HGLOBAL32);
4509 #define     GlobalUnfix WINELIB_NAME(GlobalUnfix)
4510 BOOL16      WINAPI GlobalUnlock16(HGLOBAL16);
4511 BOOL32      WINAPI GlobalUnlock32(HGLOBAL32);
4512 #define     GlobalUnlock WINELIB_NAME(GlobalUnlock)
4513 BOOL16      WINAPI GlobalUnWire16(HGLOBAL16);
4514 BOOL32      WINAPI GlobalUnWire32(HGLOBAL32);
4515 #define     GlobalUnWire WINELIB_NAME(GlobalUnWire)
4516 SEGPTR      WINAPI GlobalWire16(HGLOBAL16);
4517 LPVOID      WINAPI GlobalWire32(HGLOBAL32);
4518 #define     GlobalWire WINELIB_NAME(GlobalWire)
4519 BOOL16      WINAPI GrayString16(HDC16,HBRUSH16,GRAYSTRINGPROC16,LPARAM,
4520                                 INT16,INT16,INT16,INT16,INT16);
4521 WORD        WINAPI InitAtomTable16(WORD);
4522 BOOL32      WINAPI InitAtomTable32(DWORD);
4523 #define     InitAtomTable WINELIB_NAME(InitAtomTable)
4524 BOOL16      WINAPI IsBadCodePtr16(SEGPTR);
4525 BOOL32      WINAPI IsBadCodePtr32(FARPROC32);
4526 #define     IsBadCodePtr WINELIB_NAME(IsBadCodePtr)
4527 BOOL16      WINAPI IsBadHugeReadPtr16(SEGPTR,DWORD);
4528 BOOL32      WINAPI IsBadHugeReadPtr32(LPCVOID,UINT32);
4529 #define     IsBadHugeReadPtr WINELIB_NAME(IsBadHugeReadPtr)
4530 BOOL16      WINAPI IsBadHugeWritePtr16(SEGPTR,DWORD);
4531 BOOL32      WINAPI IsBadHugeWritePtr32(LPVOID,UINT32);
4532 #define     IsBadHugeWritePtr WINELIB_NAME(IsBadHugeWritePtr)
4533 BOOL16      WINAPI IsBadReadPtr16(SEGPTR,UINT16);
4534 BOOL32      WINAPI IsBadReadPtr32(LPCVOID,UINT32);
4535 #define     IsBadReadPtr WINELIB_NAME(IsBadReadPtr)
4536 BOOL16      WINAPI IsBadStringPtr16(SEGPTR,UINT16);
4537 BOOL32      WINAPI IsBadStringPtr32A(LPCSTR,UINT32);
4538 BOOL32      WINAPI IsBadStringPtr32W(LPCWSTR,UINT32);
4539 #define     IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr)
4540 BOOL16      WINAPI IsBadWritePtr16(SEGPTR,UINT16);
4541 BOOL32      WINAPI IsBadWritePtr32(LPVOID,UINT32);
4542 #define     IsBadWritePtr WINELIB_NAME(IsBadWritePtr)
4543 BOOL16      WINAPI IsDBCSLeadByte16(BYTE);
4544 BOOL32      WINAPI IsDBCSLeadByte32(BYTE);
4545 #define     IsDBCSLeadByte WINELIB_NAME(IsDBCSLeadByte)
4546 HFILE16     WINAPI LZOpenFile16(LPCSTR,LPOFSTRUCT,UINT16);
4547 HFILE32     WINAPI LZOpenFile32A(LPCSTR,LPOFSTRUCT,UINT32);
4548 HFILE32     WINAPI LZOpenFile32W(LPCWSTR,LPOFSTRUCT,UINT32);
4549 #define     LZOpenFile WINELIB_NAME_AW(LZOpenFile)
4550 INT16       WINAPI LZRead16(HFILE16,LPVOID,UINT16); 
4551 INT32       WINAPI LZRead32(HFILE32,LPVOID,UINT32); 
4552 #define     LZRead WINELIB_NAME(LZRead)
4553 INT16       WINAPI LZStart16(void);
4554 INT32       WINAPI LZStart32(void);
4555 #define     LZStart WINELIB_NAME(LZStart)
4556 HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
4557 HMODULE32   WINAPI LoadLibrary32A(LPCSTR);
4558 HMODULE32   WINAPI LoadLibrary32W(LPCWSTR);
4559 #define     LoadLibrary WINELIB_NAME_AW(LoadLibrary)
4560 HMODULE32   WINAPI LoadLibraryEx32A(LPCSTR,HFILE32,DWORD);
4561 HMODULE32   WINAPI LoadLibraryEx32W(LPCWSTR,HFILE32,DWORD);
4562 #define     LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx)
4563 HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
4564 HINSTANCE32 WINAPI LoadModule32(LPCSTR,LPVOID);
4565 #define     LoadModule WINELIB_NAME(LoadModule)
4566 HGLOBAL16   WINAPI LoadResource16(HINSTANCE16,HRSRC16);
4567 HGLOBAL32   WINAPI LoadResource32(HMODULE32,HRSRC32);
4568 #define     LoadResource WINELIB_NAME(LoadResource)
4569 HLOCAL16    WINAPI LocalAlloc16(UINT16,WORD);
4570 HLOCAL32    WINAPI LocalAlloc32(UINT32,DWORD);
4571 #define     LocalAlloc WINELIB_NAME(LocalAlloc)
4572 UINT16      WINAPI LocalCompact16(UINT16);
4573 UINT32      WINAPI LocalCompact32(UINT32);
4574 #define     LocalCompact WINELIB_NAME(LocalCompact)
4575 UINT16      WINAPI LocalFlags16(HLOCAL16);
4576 UINT32      WINAPI LocalFlags32(HLOCAL32);
4577 #define     LocalFlags WINELIB_NAME(LocalFlags)
4578 HLOCAL16    WINAPI LocalFree16(HLOCAL16);
4579 HLOCAL32    WINAPI LocalFree32(HLOCAL32);
4580 #define     LocalFree WINELIB_NAME(LocalFree)
4581 HLOCAL16    WINAPI LocalHandle16(WORD);
4582 HLOCAL32    WINAPI LocalHandle32(LPCVOID);
4583 #define     LocalHandle WINELIB_NAME(LocalHandle)
4584 SEGPTR      WINAPI LocalLock16(HLOCAL16);
4585 LPVOID      WINAPI LocalLock32(HLOCAL32);
4586 #define     LocalLock WINELIB_NAME(LocalLock)
4587 HLOCAL16    WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16);
4588 HLOCAL32    WINAPI LocalReAlloc32(HLOCAL32,DWORD,UINT32);
4589 #define     LocalReAlloc WINELIB_NAME(LocalReAlloc)
4590 UINT16      WINAPI LocalShrink16(HGLOBAL16,UINT16);
4591 UINT32      WINAPI LocalShrink32(HGLOBAL32,UINT32);
4592 #define     LocalShrink WINELIB_NAME(LocalShrink)
4593 UINT16      WINAPI LocalSize16(HLOCAL16);
4594 UINT32      WINAPI LocalSize32(HLOCAL32);
4595 #define     LocalSize WINELIB_NAME(LocalSize)
4596 BOOL16      WINAPI LocalUnlock16(HLOCAL16);
4597 BOOL32      WINAPI LocalUnlock32(HLOCAL32);
4598 #define     LocalUnlock WINELIB_NAME(LocalUnlock)
4599 LPVOID      WINAPI LockResource16(HGLOBAL16);
4600 LPVOID      WINAPI LockResource32(HGLOBAL32);
4601 #define     LockResource WINELIB_NAME(LockResource)
4602 HGLOBAL16   WINAPI LockSegment16(HGLOBAL16);
4603 #define     LockSegment32(handle) GlobalFix32((HANDLE32)(handle))
4604 #define     LockSegment WINELIB_NAME(LockSegment)
4605 void        WINAPI LZClose16(HFILE16);
4606 void        WINAPI LZClose32(HFILE32);
4607 #define     LZClose WINELIB_NAME(LZClose)
4608 LONG        WINAPI LZCopy16(HFILE16,HFILE16);
4609 LONG        WINAPI LZCopy32(HFILE32,HFILE32);
4610 #define     LZCopy WINELIB_NAME(LZCopy)
4611 HFILE16     WINAPI LZInit16(HFILE16);
4612 HFILE32     WINAPI LZInit32(HFILE32);
4613 #define     LZInit WINELIB_NAME(LZInit)
4614 LONG        WINAPI LZSeek16(HFILE16,LONG,INT16);
4615 LONG        WINAPI LZSeek32(HFILE32,LONG,INT32);
4616 #define     LZSeek WINELIB_NAME(LZSeek)
4617 FARPROC16   WINAPI MakeProcInstance16(FARPROC16,HANDLE16);
4618 #define     MakeProcInstance32(proc,inst) (proc)
4619 #define     MakeProcInstance WINELIB_NAME(MakeProcInstance)
4620 INT16       WINAPI OemToAnsi16(LPCSTR,LPSTR);
4621 #define     OemToAnsi32A OemToChar32A
4622 #define     OemToAnsi32W OemToChar32W
4623 #define     OemToAnsi WINELIB_NAME_AW(OemToAnsi)
4624 VOID        WINAPI OemToAnsiBuff16(LPCSTR,LPSTR,UINT16);
4625 #define     OemToAnsiBuff32A OemToCharBuff32A
4626 #define     OemToAnsiBuff32W OemToCharBuff32W
4627 #define     OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff)
4628 INT16       WINAPI WideCharToLocal16(LPSTR,LPWSTR,INT16);
4629 INT32       WINAPI WideCharToLocal32(LPSTR,LPWSTR,INT32);
4630 #define                 WideCharToLocal WINELIB_NAME(WideCharToLocal)
4631 INT16       WINAPI LocalToWideChar16(LPWSTR,LPSTR,INT16);
4632 INT32       WINAPI LocalToWideChar32(LPWSTR,LPSTR,INT32);
4633 #define                 LocalToWideChar WINELIB_NAME(LocalToWideChar)
4634 HFILE16     WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
4635 HFILE32     WINAPI OpenFile32(LPCSTR,OFSTRUCT*,UINT32);
4636 #define     OpenFile WINELIB_NAME(OpenFile)
4637 INT16       WINAPI OpenSound16(void);
4638 VOID        WINAPI OpenSound32(void);
4639 #define     OpenSound WINELIB_NAME(OpenSound)
4640 VOID        WINAPI OutputDebugString16(LPCSTR);
4641 VOID        WINAPI OutputDebugString32A(LPCSTR);
4642 VOID        WINAPI OutputDebugString32W(LPCWSTR);
4643 #define     OutputDebugString WINELIB_NAME_AW(OutputDebugString)
4644 DWORD       WINAPI RegCreateKey16(HKEY,LPCSTR,LPHKEY);
4645 DWORD       WINAPI RegCreateKey32A(HKEY,LPCSTR,LPHKEY);
4646 DWORD       WINAPI RegCreateKey32W(HKEY,LPCWSTR,LPHKEY);
4647 #define     RegCreateKey WINELIB_NAME_AW(RegCreateKey)
4648 DWORD       WINAPI RegDeleteKey16(HKEY,LPCSTR);
4649 DWORD       WINAPI RegDeleteKey32A(HKEY,LPCSTR);
4650 DWORD       WINAPI RegDeleteKey32W(HKEY,LPWSTR);
4651 #define     RegDeleteKey WINELIB_NAME_AW(RegDeleteKey)
4652 DWORD       WINAPI RegDeleteValue16(HKEY,LPSTR);
4653 DWORD       WINAPI RegDeleteValue32A(HKEY,LPSTR);
4654 DWORD       WINAPI RegDeleteValue32W(HKEY,LPWSTR);
4655 #define     RegDeleteValue WINELIB_NAME_AW(RegDeleteValue)
4656 DWORD       WINAPI RegEnumKey16(HKEY,DWORD,LPSTR,DWORD);
4657 DWORD       WINAPI RegEnumKey32A(HKEY,DWORD,LPSTR,DWORD);
4658 DWORD       WINAPI RegEnumKey32W(HKEY,DWORD,LPWSTR,DWORD);
4659 #define     RegEnumKey WINELIB_NAME_AW(RegEnumKey)
4660 DWORD       WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
4661 DWORD       WINAPI RegEnumValue32A(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
4662 DWORD       WINAPI RegEnumValue32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
4663 #define     RegEnumValue WINELIB_NAME_AW(RegEnumValue)
4664 HRESULT     WINAPI RegisterDragDrop16(HWND16,LPVOID);
4665 HRESULT     WINAPI RegisterDragDrop32(HWND32,LPVOID);
4666 #define     RegisterDragDrop WINELIB_NAME(RegisterDragDrop)
4667 DWORD       WINAPI RegOpenKey16(HKEY,LPCSTR,LPHKEY);
4668 DWORD       WINAPI RegOpenKey32A(HKEY,LPCSTR,LPHKEY);
4669 DWORD       WINAPI RegOpenKey32W(HKEY,LPCWSTR,LPHKEY);
4670 #define     RegOpenKey WINELIB_NAME_AW(RegOpenKey)
4671 DWORD       WINAPI RegQueryValue16(HKEY,LPSTR,LPSTR,LPDWORD);
4672 DWORD       WINAPI RegQueryValue32A(HKEY,LPSTR,LPSTR,LPDWORD);
4673 DWORD       WINAPI RegQueryValue32W(HKEY,LPWSTR,LPWSTR,LPDWORD);
4674 #define     RegQueryValue WINELIB_NAME_AW(RegQueryValue)
4675 DWORD       WINAPI RegQueryValueEx16(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
4676 DWORD       WINAPI RegQueryValueEx32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
4677 DWORD       WINAPI RegQueryValueEx32W(HKEY,LPWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
4678 #define     RegQueryValueEx WINELIB_NAME_AW(RegQueryValueEx)
4679 DWORD       WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
4680 DWORD       WINAPI RegSetValue32A(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
4681 DWORD       WINAPI RegSetValue32W(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
4682 #define     RegSetValue WINELIB_NAME_AW(RegSetValue)
4683 DWORD       WINAPI RegSetValueEx16(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD);
4684 DWORD       WINAPI RegSetValueEx32A(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD);
4685 DWORD       WINAPI RegSetValueEx32W(HKEY,LPWSTR,DWORD,DWORD,LPBYTE,DWORD);
4686 #define     RegSetValueEx WINELIB_NAME_AW(RegSetValueEx)
4687 BOOL16      WINAPI RemoveDirectory16(LPCSTR);
4688 BOOL32      WINAPI RemoveDirectory32A(LPCSTR);
4689 BOOL32      WINAPI RemoveDirectory32W(LPCWSTR);
4690 #define     RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
4691 HRESULT     WINAPI RevokeDragDrop16(HWND16);
4692 HRESULT     WINAPI RevokeDragDrop32(HWND32);
4693 #define     RevokeDragDrop WINELIB_NAME(RevokeDragDrop)
4694 BOOL16      WINAPI SetCurrentDirectory16(LPCSTR);
4695 BOOL32      WINAPI SetCurrentDirectory32A(LPCSTR);
4696 BOOL32      WINAPI SetCurrentDirectory32W(LPCWSTR);
4697 #define     SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory)
4698 UINT16      WINAPI SetErrorMode16(UINT16);
4699 UINT32      WINAPI SetErrorMode32(UINT32);
4700 #define     SetErrorMode WINELIB_NAME(SetErrorMode)
4701 BOOL16      WINAPI SetFileAttributes16(LPCSTR,DWORD);
4702 BOOL32      WINAPI SetFileAttributes32A(LPCSTR,DWORD);
4703 BOOL32      WINAPI SetFileAttributes32W(LPCWSTR,DWORD);
4704 #define     SetFileAttributes WINELIB_NAME_AW(SetFileAttributes)
4705 UINT16      WINAPI SetHandleCount16(UINT16);
4706 UINT32      WINAPI SetHandleCount32(UINT32);
4707 #define     SetHandleCount WINELIB_NAME(SetHandleCount)
4708 INT16       WINAPI SetSoundNoise16(INT16,INT16);
4709 DWORD       WINAPI SetSoundNoise32(DWORD,DWORD);
4710 #define     SetSoundNoise WINELIB_NAME(SetSoundNoise)
4711 LONG        WINAPI SetSwapAreaSize16(WORD);
4712 #define     SetSwapAreaSize32(w) (w)
4713 #define     SetSwapAreaSize WINELIB_NAME(SetSwapAreaSize)
4714 INT16       WINAPI SetVoiceAccent16(INT16,INT16,INT16,INT16,INT16);
4715 DWORD       WINAPI SetVoiceAccent32(DWORD,DWORD,DWORD,DWORD,DWORD);
4716 #define     SetVoiceAccent WINELIB_NAME(SetVoiceAccent)
4717 INT16       WINAPI SetVoiceEnvelope16(INT16,INT16,INT16);
4718 DWORD       WINAPI SetVoiceEnvelope32(DWORD,DWORD,DWORD);
4719 #define     SetVoiceEnvelope WINELIB_NAME(SetVoiceEnvelope)
4720 INT16       WINAPI SetVoiceNote16(INT16,INT16,INT16,INT16);
4721 DWORD       WINAPI SetVoiceNote32(DWORD,DWORD,DWORD,DWORD);
4722 #define     SetVoiceNote WINELIB_NAME(SetVoiceNote)
4723 INT16       WINAPI SetVoiceQueueSize16(INT16,INT16);
4724 DWORD       WINAPI SetVoiceQueueSize32(DWORD,DWORD);
4725 #define     SetVoiceQueueSize WINELIB_NAME(SetVoiceQueueSize)
4726 INT16       WINAPI SetVoiceSound16(INT16,DWORD,INT16);
4727 DWORD       WINAPI SetVoiceSound32(DWORD,DWORD,DWORD);
4728 #define     SetVoiceSound WINELIB_NAME(SetVoiceSound)
4729 INT16       WINAPI SetVoiceThreshold16(INT16,INT16);
4730 DWORD       WINAPI SetVoiceThreshold32(DWORD,DWORD);
4731 #define     SetVoiceThreshold WINELIB_NAME(SetVoiceThreshold)
4732 BOOL16      WINAPI ShellAbout16(HWND16,LPCSTR,LPCSTR,HICON16);
4733 BOOL32      WINAPI ShellAbout32A(HWND32,LPCSTR,LPCSTR,HICON32);
4734 BOOL32      WINAPI ShellAbout32W(HWND32,LPCWSTR,LPCWSTR,HICON32);
4735 #define     ShellAbout WINELIB_NAME_AW(ShellAbout)
4736 HINSTANCE16 WINAPI ShellExecute16(HWND16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT16);
4737 HINSTANCE32 WINAPI ShellExecute32A(HWND32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT32);
4738 HINSTANCE32 WINAPI ShellExecute32W(HWND32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT32);
4739 #define     ShellExecute WINELIB_NAME_AW(ShellExecute)
4740 DWORD       WINAPI SizeofResource16(HMODULE16,HRSRC16);
4741 DWORD       WINAPI SizeofResource32(HMODULE32,HRSRC32);
4742 #define     SizeofResource WINELIB_NAME(SizeofResource)
4743 INT16       WINAPI StartSound16(void);
4744 VOID        WINAPI StartSound32(void);
4745 #define     StartSound WINELIB_NAME(StartSound)
4746 INT16       WINAPI StopSound16(void);
4747 VOID        WINAPI StopSound32(void);
4748 #define     StopSound WINELIB_NAME(StopSound)
4749 INT16       WINAPI SyncAllVoices16(void);
4750 DWORD       WINAPI SyncAllVoices32(void);
4751 #define     SyncAllVoices WINELIB_NAME(SyncAllVoices)
4752 void        WINAPI UnlockSegment16(HGLOBAL16);
4753 #define     UnlockSegment32(handle) GlobalUnfix((HANDLE32)(handle))
4754 #define     UnlockSegment WINELIB_NAME(UnlockSegment)
4755 DWORD       WINAPI VerFindFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*,LPSTR,UINT16*);
4756 DWORD       WINAPI VerFindFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*,LPSTR,UINT32*);
4757 DWORD       WINAPI VerFindFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*,LPWSTR,UINT32*);
4758 #define     VerFindFile WINELIB_NAME_AW(VerFindFile)
4759 DWORD       WINAPI VerInstallFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*);
4760 DWORD       WINAPI VerInstallFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*);
4761 DWORD       WINAPI VerInstallFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*);
4762 #define     VerInstallFile WINELIB_NAME_AW(VerInstallFile)
4763 DWORD       WINAPI VerLanguageName16(UINT16,LPSTR,UINT16);
4764 DWORD       WINAPI VerLanguageName32A(UINT32,LPSTR,UINT32);
4765 DWORD       WINAPI VerLanguageName32W(UINT32,LPWSTR,UINT32);
4766 #define     VerLanguageName WINELIB_NAME_AW(VerLanguageName)
4767 DWORD       WINAPI VerQueryValue16(SEGPTR,LPCSTR,SEGPTR*,UINT16*);
4768 DWORD       WINAPI VerQueryValue32A(LPVOID,LPCSTR,LPVOID*,UINT32*);
4769 DWORD       WINAPI VerQueryValue32W(LPVOID,LPCWSTR,LPVOID*,UINT32*);
4770 #define     VerQueryValue WINELIB_NAME_AW(VerQueryValue)
4771 INT16       WINAPI WaitSoundState16(INT16);
4772 DWORD       WINAPI WaitSoundState32(DWORD);
4773 #define     WaitSoundState WINELIB_NAME(WaitSoundState)
4774 BOOL16      WINAPI WritePrivateProfileSection16(LPCSTR,LPCSTR,LPCSTR);
4775 BOOL32      WINAPI WritePrivateProfileSection32A(LPCSTR,LPCSTR,LPCSTR);
4776 BOOL32      WINAPI WritePrivateProfileSection32W(LPCWSTR,LPCWSTR,LPCWSTR);
4777 #define     WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
4778 BOOL16      WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
4779 BOOL32      WINAPI WritePrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
4780 BOOL32      WINAPI WritePrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
4781 BOOL32       WINAPI WriteProfileSection32A(LPCSTR,LPCSTR);
4782 BOOL32       WINAPI WriteProfileSection32W(LPCWSTR,LPCWSTR);
4783 #define     WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString)
4784 BOOL16      WINAPI WritePrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
4785 BOOL32      WINAPI WritePrivateProfileStruct32A(LPCSTR,LPCSTR,LPVOID,UINT32,LPCSTR);
4786 BOOL32      WINAPI WritePrivateProfileStruct32W(LPCWSTR,LPCWSTR,LPVOID,UINT32,LPCWSTR);
4787 #define     WritePrivateProfileStruct WINELIB_NAME_AW(WritePrivateProfileStruct)
4788 BOOL16      WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR);
4789 BOOL32      WINAPI WriteProfileString32A(LPCSTR,LPCSTR,LPCSTR);
4790 BOOL32      WINAPI WriteProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR);
4791 #define     WriteProfileString WINELIB_NAME_AW(WriteProfileString)
4792 VOID        WINAPI Yield16(void);
4793 #define     Yield32()
4794 #define     Yield WINELIB_NAME(Yield)
4795 SEGPTR      WINAPI lstrcat16(SEGPTR,LPCSTR);
4796 LPSTR       WINAPI lstrcat32A(LPSTR,LPCSTR);
4797 LPWSTR      WINAPI lstrcat32W(LPWSTR,LPCWSTR);
4798 #define     lstrcat WINELIB_NAME_AW(lstrcat)
4799 SEGPTR      WINAPI lstrcatn16(SEGPTR,LPCSTR,INT16);
4800 LPSTR       WINAPI lstrcatn32A(LPSTR,LPCSTR,INT32);
4801 LPWSTR      WINAPI lstrcatn32W(LPWSTR,LPCWSTR,INT32);
4802 #define     lstrcatn WINELIB_NAME_AW(lstrcatn)
4803 SEGPTR      WINAPI lstrcpy16(SEGPTR,LPCSTR);
4804 LPSTR       WINAPI lstrcpy32A(LPSTR,LPCSTR);
4805 LPWSTR      WINAPI lstrcpy32W(LPWSTR,LPCWSTR);
4806 #define     lstrcpy WINELIB_NAME_AW(lstrcpy)
4807 SEGPTR      WINAPI lstrcpyn16(SEGPTR,LPCSTR,INT16);
4808 LPSTR       WINAPI lstrcpyn32A(LPSTR,LPCSTR,INT32);
4809 LPWSTR      WINAPI lstrcpyn32W(LPWSTR,LPCWSTR,INT32);
4810 #define     lstrcpyn WINELIB_NAME_AW(lstrcpyn)
4811 INT16       WINAPI lstrlen16(LPCSTR);
4812 INT32       WINAPI lstrlen32A(LPCSTR);
4813 INT32       WINAPI lstrlen32W(LPCWSTR);
4814 #define     lstrlen WINELIB_NAME_AW(lstrlen)
4815 HINSTANCE16 WINAPI WinExec16(LPCSTR,UINT16);
4816 HINSTANCE32 WINAPI WinExec32(LPCSTR,UINT32);
4817 #define     WinExec WINELIB_NAME(WinExec)
4818 LONG        WINAPI _hread16(HFILE16,LPVOID,LONG);
4819 LONG        WINAPI _hread32(HFILE32,LPVOID,LONG);
4820 #define     _hread WINELIB_NAME(_hread)
4821 LONG        WINAPI _hwrite16(HFILE16,LPCSTR,LONG);
4822 LONG        WINAPI _hwrite32(HFILE32,LPCSTR,LONG);
4823 #define     _hwrite WINELIB_NAME(_hwrite)
4824 HFILE16     WINAPI _lcreat16(LPCSTR,INT16);
4825 HFILE32     WINAPI _lcreat32(LPCSTR,INT32);
4826 #define     _lcreat WINELIB_NAME(_lcreat)
4827 HFILE16     WINAPI _lclose16(HFILE16);
4828 HFILE32     WINAPI _lclose32(HFILE32);
4829 #define     _lclose WINELIB_NAME(_lclose)
4830 LONG        WINAPI _llseek16(HFILE16,LONG,INT16);
4831 LONG        WINAPI _llseek32(HFILE32,LONG,INT32);
4832 #define     _llseek WINELIB_NAME(_llseek)
4833 HFILE16     WINAPI _lopen16(LPCSTR,INT16);
4834 HFILE32     WINAPI _lopen32(LPCSTR,INT32);
4835 #define     _lopen WINELIB_NAME(_lopen)
4836 UINT16      WINAPI _lread16(HFILE16,LPVOID,UINT16);
4837 UINT32      WINAPI _lread32(HFILE32,LPVOID,UINT32);
4838 #define     _lread WINELIB_NAME(_lread)
4839 UINT16      WINAPI _lwrite16(HFILE16,LPCSTR,UINT16);
4840 UINT32      WINAPI _lwrite32(HFILE32,LPCSTR,UINT32);
4841 #define     _lwrite WINELIB_NAME(_lwrite)
4842
4843 /* Extra functions that don't exist in the Windows API */
4844
4845 HPEN16      WINAPI GetSysColorPen16(INT16);
4846 HPEN32      WINAPI GetSysColorPen32(INT32);
4847 INT32       WINAPI LoadMessage32A(HMODULE32,UINT32,WORD,LPSTR,INT32);
4848 INT32       WINAPI LoadMessage32W(HMODULE32,UINT32,WORD,LPWSTR,INT32);
4849 UINT32      WINAPI WIN16_GetTempDrive(BYTE);
4850 SEGPTR      WINAPI WIN16_GlobalLock16(HGLOBAL16);
4851 SEGPTR      WINAPI WIN16_LockResource16(HGLOBAL16);
4852 LONG        WINAPI WIN16_hread(HFILE16,SEGPTR,LONG);
4853 UINT16      WINAPI WIN16_lread(HFILE16,SEGPTR,UINT16);
4854 INT32       WINAPI lstrncmp32A(LPCSTR,LPCSTR,INT32);
4855 INT32       WINAPI lstrncmp32W(LPCWSTR,LPCWSTR,INT32);
4856 INT32       WINAPI lstrncmpi32A(LPCSTR,LPCSTR,INT32);
4857 INT32       WINAPI lstrncmpi32W(LPCWSTR,LPCWSTR,INT32);
4858 LPWSTR      WINAPI lstrcpyAtoW(LPWSTR,LPCSTR);
4859 LPSTR       WINAPI lstrcpyWtoA(LPSTR,LPCWSTR);
4860 LPWSTR      WINAPI lstrcpynAtoW(LPWSTR,LPCSTR,INT32);
4861 LPSTR       WINAPI lstrcpynWtoA(LPSTR,LPCWSTR,INT32);
4862 INT16       WINAPI lstrcmp16(LPCSTR,LPCSTR);
4863 INT32       WINAPI lstrcmp32A(LPCSTR,LPCSTR);
4864 INT32       WINAPI lstrcmp32W(LPCWSTR,LPCWSTR);
4865 #define     lstrcmp WINELIB_NAME_AW(lstrcmp)
4866 INT16       WINAPI lstrcmpi16(LPCSTR,LPCSTR);
4867 INT32       WINAPI lstrcmpi32A(LPCSTR,LPCSTR);
4868 INT32       WINAPI lstrcmpi32W(LPCWSTR,LPCWSTR);
4869 #define     lstrcmpi WINELIB_NAME_AW(lstrcmpi)
4870
4871
4872 #ifdef __cplusplus
4873 }
4874 #endif
4875
4876 #endif  /* __WINE_WINDOWS_H */