Adapted to separation between KERNEL and USER.
[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
14 #pragma pack(1)
15
16 /* The SIZE structure */
17
18 typedef struct
19 {
20     INT16  cx;
21     INT16  cy;
22 } SIZE16, *LPSIZE16;
23
24 typedef struct
25 {
26     INT32  cx;
27     INT32  cy;
28 } SIZE32, *LPSIZE32;
29
30 DECL_WINELIB_TYPE(SIZE)
31 DECL_WINELIB_TYPE(LPSIZE)
32
33 #define CONV_SIZE16TO32(s16,s32) \
34             ((s32)->cx = (INT32)(s16)->cx, (s32)->cy = (INT32)(s16)->cy)
35 #define CONV_SIZE32TO16(s32,s16) \
36             ((s16)->cx = (INT16)(s32)->cx, (s16)->cy = (INT16)(s32)->cy)
37
38 /* The POINT structure */
39
40 typedef struct
41 {
42     INT16  x;
43     INT16  y;
44 } POINT16, *LPPOINT16;
45
46 typedef struct
47 {
48     INT32  x;
49     INT32  y;
50 } POINT32, *LPPOINT32;
51
52 DECL_WINELIB_TYPE(POINT)
53 DECL_WINELIB_TYPE(LPPOINT)
54
55 #define CONV_POINT16TO32(p16,p32) \
56             ((p32)->x = (INT32)(p16)->x, (p32)->y = (INT32)(p16)->y)
57 #define CONV_POINT32TO16(p32,p16) \
58             ((p16)->x = (INT16)(p32)->x, (p16)->y = (INT16)(p32)->y)
59
60 #define MAKEPOINT16(l) (*((POINT16 *)&(l)))
61 #define MAKEPOINT WINELIB_NAME(MAKEPOINT)
62
63 /* The RECT structure */
64
65 typedef struct
66 {
67     INT16  left;
68     INT16  top;
69     INT16  right;
70     INT16  bottom;
71 } RECT16, *LPRECT16;
72
73 typedef struct
74 {
75     INT32  left;
76     INT32  top;
77     INT32  right;
78     INT32  bottom;
79 } RECT32, *LPRECT32;
80
81 DECL_WINELIB_TYPE(RECT)
82 DECL_WINELIB_TYPE(LPRECT)
83
84 #define CONV_RECT16TO32(r16,r32) \
85     ((r32)->left  = (INT32)(r16)->left,  (r32)->top    = (INT32)(r16)->top, \
86      (r32)->right = (INT32)(r16)->right, (r32)->bottom = (INT32)(r16)->bottom)
87 #define CONV_RECT32TO16(r32,r16) \
88     ((r16)->left  = (INT16)(r32)->left,  (r16)->top    = (INT16)(r32)->top, \
89      (r16)->right = (INT16)(r32)->right, (r16)->bottom = (INT16)(r32)->bottom)
90
91
92 typedef struct tagCOORD {
93     INT16 x;
94     INT16 y;
95 } COORD, *LPCOORD;
96
97
98 typedef struct
99 {
100     WORD   wFirst;
101     WORD   wSecond;
102     INT16  iKernAmount;
103 } KERNINGPAIR16, *LPKERNINGPAIR16;
104
105 typedef struct
106 {
107     WORD   wFirst;
108     WORD   wSecond;
109     INT32  iKernAmount;
110 } KERNINGPAIR32, *LPKERNINGPAIR32;
111
112 DECL_WINELIB_TYPE(KERNINGPAIR)
113 DECL_WINELIB_TYPE(LPKERNINGPAIR)
114
115 typedef struct
116 {
117     HDC16   hdc;
118     BOOL16  fErase;
119     RECT16  rcPaint;
120     BOOL16  fRestore;
121     BOOL16  fIncUpdate;
122     BYTE    rgbReserved[16];
123 } PAINTSTRUCT16, *LPPAINTSTRUCT16;
124
125 typedef struct
126 {
127     HDC32   hdc;
128     BOOL32  fErase;
129     RECT32  rcPaint;
130     BOOL32  fRestore;
131     BOOL32  fIncUpdate;
132     BYTE    rgbReserved[32];
133 } PAINTSTRUCT32, *LPPAINTSTRUCT32;
134
135 DECL_WINELIB_TYPE(PAINTSTRUCT)
136 DECL_WINELIB_TYPE(LPPAINTSTRUCT)
137
138
139 typedef struct tagPIXELFORMATDESCRIPTOR {
140     WORD  nSize;
141     WORD  nVersion;
142     DWORD dwFlags;
143     BYTE  iPixelType;
144     BYTE  cColorBits;
145     BYTE  cRedBits;
146     BYTE  cRedShift;
147     BYTE  cGreenBits;
148     BYTE  cGreenShift;
149     BYTE  cBlueBits;
150     BYTE  cBlueShift;
151     BYTE  cAlphaBits;
152     BYTE  cAlphaShift;
153     BYTE  cAccumBits;
154     BYTE  cAccumRedBits;
155     BYTE  cAccumGreenBits;
156     BYTE  cAccumBlueBits;
157     BYTE  cAccumAlphaBits;
158     BYTE  cDepthBits;
159     BYTE  cStencilBits;
160     BYTE  cAuxBuffers;
161     BYTE  iLayerType;
162     BYTE  bReserved;
163     DWORD dwLayerMask;
164     DWORD dwVisibleMask;
165     DWORD dwDamageMask;
166 } PIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
167
168   /* Windows */
169
170 typedef struct
171 {
172     LPVOID      lpCreateParams;
173     HINSTANCE16 hInstance;
174     HMENU16     hMenu;
175     HWND16      hwndParent;
176     INT16       cy;
177     INT16       cx;
178     INT16       y;
179     INT16       x;
180     LONG        style WINE_PACKED;
181     SEGPTR      lpszName WINE_PACKED;
182     SEGPTR      lpszClass WINE_PACKED;
183     DWORD       dwExStyle WINE_PACKED;
184 } CREATESTRUCT16, *LPCREATESTRUCT16;
185
186 typedef struct
187 {
188     LPVOID      lpCreateParams;
189     HINSTANCE32 hInstance;
190     HMENU32     hMenu;
191     HWND32      hwndParent;
192     INT32       cy;
193     INT32       cx;
194     INT32       y;
195     INT32       x;
196     LONG        style;
197     LPCSTR      lpszName;
198     LPCSTR      lpszClass;
199     DWORD       dwExStyle;
200 } CREATESTRUCT32A, *LPCREATESTRUCT32A;
201
202 typedef struct
203 {
204     LPVOID      lpCreateParams;
205     HINSTANCE32 hInstance;
206     HMENU32     hMenu;
207     HWND32      hwndParent;
208     INT32       cy;
209     INT32       cx;
210     INT32       y;
211     INT32       x;
212     LONG        style;
213     LPCWSTR     lpszName;
214     LPCWSTR     lpszClass;
215     DWORD       dwExStyle;
216 } CREATESTRUCT32W, *LPCREATESTRUCT32W;
217
218 DECL_WINELIB_TYPE_AW(CREATESTRUCT)
219 DECL_WINELIB_TYPE_AW(LPCREATESTRUCT)
220
221 typedef struct 
222 {
223     HMENU16   hWindowMenu;
224     UINT16    idFirstChild;
225 } CLIENTCREATESTRUCT16, *LPCLIENTCREATESTRUCT16;
226
227 typedef struct 
228 {
229     HMENU32   hWindowMenu;
230     UINT32    idFirstChild;
231 } CLIENTCREATESTRUCT32, *LPCLIENTCREATESTRUCT32;
232
233 DECL_WINELIB_TYPE(CLIENTCREATESTRUCT)
234 DECL_WINELIB_TYPE(LPCLIENTCREATESTRUCT)
235
236 typedef struct
237 {
238     SEGPTR       szClass;
239     SEGPTR       szTitle;
240     HINSTANCE16  hOwner;
241     INT16        x;
242     INT16        y;
243     INT16        cx;
244     INT16        cy;
245     DWORD        style WINE_PACKED;
246     LPARAM       lParam WINE_PACKED;
247 } MDICREATESTRUCT16, *LPMDICREATESTRUCT16;
248
249 typedef struct
250 {
251     LPCSTR       szClass;
252     LPCSTR       szTitle;
253     HINSTANCE32  hOwner;
254     INT32        x;
255     INT32        y;
256     INT32        cx;
257     INT32        cy;
258     DWORD        style;
259     LPARAM       lParam;
260 } MDICREATESTRUCT32A, *LPMDICREATESTRUCT32A;
261
262 typedef struct
263 {
264     LPCWSTR      szClass;
265     LPCWSTR      szTitle;
266     HINSTANCE32  hOwner;
267     INT32        x;
268     INT32        y;
269     INT32        cx;
270     INT32        cy;
271     DWORD        style;
272     LPARAM       lParam;
273 } MDICREATESTRUCT32W, *LPMDICREATESTRUCT32W;
274
275 DECL_WINELIB_TYPE_AW(MDICREATESTRUCT)
276 DECL_WINELIB_TYPE_AW(LPMDICREATESTRUCT)
277
278 #define MDITILE_VERTICAL     0x0000   
279 #define MDITILE_HORIZONTAL   0x0001
280 #define MDITILE_SKIPDISABLED 0x0002
281
282 #define MDIS_ALLCHILDSTYLES  0x0001
283
284 typedef struct {
285     DWORD   styleOld;
286     DWORD   styleNew;
287 } STYLESTRUCT, *LPSTYLESTRUCT;
288
289   /* Offsets for GetWindowLong() and GetWindowWord() */
290 #define GWL_USERDATA        (-21)
291 #define GWL_EXSTYLE         (-20)
292 #define GWL_STYLE           (-16)
293 #define GWW_ID              (-12)
294 #define GWL_ID              GWW_ID
295 #define GWW_HWNDPARENT      (-8)
296 #define GWL_HWNDPARENT      GWW_HWNDPARENT
297 #define GWW_HINSTANCE       (-6)
298 #define GWL_HINSTANCE       GWW_HINSTANCE
299 #define GWL_WNDPROC         (-4)
300 #define DWL_MSGRESULT       0
301 #define DWL_DLGPROC         4
302 #define DWL_USER            8
303
304   /* GetWindow() constants */
305 #define GW_HWNDFIRST    0
306 #define GW_HWNDLAST     1
307 #define GW_HWNDNEXT     2
308 #define GW_HWNDPREV     3
309 #define GW_OWNER        4
310 #define GW_CHILD        5
311
312   /* WM_GETMINMAXINFO struct */
313 typedef struct
314 {
315     POINT16   ptReserved;
316     POINT16   ptMaxSize;
317     POINT16   ptMaxPosition;
318     POINT16   ptMinTrackSize;
319     POINT16   ptMaxTrackSize;
320 } MINMAXINFO16;
321
322 typedef struct
323 {
324     POINT32   ptReserved;
325     POINT32   ptMaxSize;
326     POINT32   ptMaxPosition;
327     POINT32   ptMinTrackSize;
328     POINT32   ptMaxTrackSize;
329 } MINMAXINFO32;
330
331 DECL_WINELIB_TYPE(MINMAXINFO)
332
333   /* RedrawWindow() flags */
334 #define RDW_INVALIDATE       0x0001
335 #define RDW_INTERNALPAINT    0x0002
336 #define RDW_ERASE            0x0004
337 #define RDW_VALIDATE         0x0008
338 #define RDW_NOINTERNALPAINT  0x0010
339 #define RDW_NOERASE          0x0020
340 #define RDW_NOCHILDREN       0x0040
341 #define RDW_ALLCHILDREN      0x0080
342 #define RDW_UPDATENOW        0x0100
343 #define RDW_ERASENOW         0x0200
344 #define RDW_FRAME            0x0400
345 #define RDW_NOFRAME          0x0800
346
347 /* debug flags */
348 #define DBGFILL_ALLOC  0xfd
349 #define DBGFILL_FREE   0xfb
350 #define DBGFILL_BUFFER 0xf9
351 #define DBGFILL_STACK  0xf7
352
353   /* WM_WINDOWPOSCHANGING/CHANGED struct */
354 typedef struct
355 {
356     HWND16  hwnd;
357     HWND16  hwndInsertAfter;
358     INT16   x;
359     INT16   y;
360     INT16   cx;
361     INT16   cy;
362     UINT16  flags;
363 } WINDOWPOS16;
364
365 typedef struct
366 {
367     HWND32  hwnd;
368     HWND32  hwndInsertAfter;
369     INT32   x;
370     INT32   y;
371     INT32   cx;
372     INT32   cy;
373     UINT32  flags;
374 } WINDOWPOS32;
375
376 DECL_WINELIB_TYPE(WINDOWPOS)
377
378   /* SetWindowPlacement() struct */
379 typedef struct
380 {
381     UINT16   length;
382     UINT16   flags;
383     UINT16   showCmd;
384     POINT16  ptMinPosition WINE_PACKED;
385     POINT16  ptMaxPosition WINE_PACKED;
386     RECT16   rcNormalPosition WINE_PACKED;
387 } WINDOWPLACEMENT16, *LPWINDOWPLACEMENT16;
388
389 typedef struct
390 {
391     UINT32   length;
392     UINT32   flags;
393     UINT32   showCmd;
394     POINT32  ptMinPosition WINE_PACKED;
395     POINT32  ptMaxPosition WINE_PACKED;
396     RECT32   rcNormalPosition WINE_PACKED;
397 } WINDOWPLACEMENT32, *LPWINDOWPLACEMENT32;
398
399 DECL_WINELIB_TYPE(WINDOWPLACEMENT)
400 DECL_WINELIB_TYPE(LPWINDOWPLACEMENT)
401
402   /* WINDOWPLACEMENT flags */
403 #define WPF_SETMINPOSITION      0x0001
404 #define WPF_RESTORETOMAXIMIZED  0x0002
405
406   /* WM_MOUSEACTIVATE return values */
407 #define MA_ACTIVATE             1
408 #define MA_ACTIVATEANDEAT       2
409 #define MA_NOACTIVATE           3
410 #define MA_NOACTIVATEANDEAT     4
411
412   /* WM_ACTIVATE wParam values */
413 #define WA_INACTIVE             0
414 #define WA_ACTIVE               1
415 #define WA_CLICKACTIVE          2
416
417   /* WM_NCCALCSIZE parameter structure */
418 typedef struct
419 {
420     RECT16  rgrc[3];
421     SEGPTR  lppos;
422 } NCCALCSIZE_PARAMS16, *LPNCCALCSIZE_PARAMS16;
423
424 typedef struct
425 {
426     RECT32       rgrc[3];
427     WINDOWPOS32 *lppos;
428 } NCCALCSIZE_PARAMS32, *LPNCCALCSIZE_PARAMS32;
429
430 DECL_WINELIB_TYPE(NCCALCSIZE_PARAMS)
431 DECL_WINELIB_TYPE(LPNCCALCSIZE_PARAMS)
432
433   /* WM_NCCALCSIZE return flags */
434 #define WVR_ALIGNTOP        0x0010
435 #define WVR_ALIGNLEFT       0x0020
436 #define WVR_ALIGNBOTTOM     0x0040
437 #define WVR_ALIGNRIGHT      0x0080
438 #define WVR_HREDRAW         0x0100
439 #define WVR_VREDRAW         0x0200
440 #define WVR_REDRAW          (WVR_HREDRAW | WVR_VREDRAW)
441 #define WVR_VALIDRECTS      0x0400
442
443   /* WM_NCHITTEST return codes */
444 #define HTERROR             (-2)
445 #define HTTRANSPARENT       (-1)
446 #define HTNOWHERE           0
447 #define HTCLIENT            1
448 #define HTCAPTION           2
449 #define HTSYSMENU           3
450 #define HTSIZE              4
451 #define HTMENU              5
452 #define HTHSCROLL           6
453 #define HTVSCROLL           7
454 #define HTMINBUTTON         8
455 #define HTMAXBUTTON         9
456 #define HTLEFT              10
457 #define HTRIGHT             11
458 #define HTTOP               12
459 #define HTTOPLEFT           13
460 #define HTTOPRIGHT          14
461 #define HTBOTTOM            15
462 #define HTBOTTOMLEFT        16
463 #define HTBOTTOMRIGHT       17
464 #define HTBORDER            18
465 #define HTGROWBOX           HTSIZE
466 #define HTREDUCE            HTMINBUTTON
467 #define HTZOOM              HTMAXBUTTON
468 #define HTOBJECT            19
469 #define HTCLOSE             20
470 #define HTHELP              21
471
472   /* WM_SYSCOMMAND parameters */
473 #ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */
474 #undef SC_SIZE
475 #endif
476 #define SC_SIZE         0xf000
477 #define SC_MOVE         0xf010
478 #define SC_MINIMIZE     0xf020
479 #define SC_MAXIMIZE     0xf030
480 #define SC_NEXTWINDOW   0xf040
481 #define SC_PREVWINDOW   0xf050
482 #define SC_CLOSE        0xf060
483 #define SC_VSCROLL      0xf070
484 #define SC_HSCROLL      0xf080
485 #define SC_MOUSEMENU    0xf090
486 #define SC_KEYMENU      0xf100
487 #define SC_ARRANGE      0xf110
488 #define SC_RESTORE      0xf120
489 #define SC_TASKLIST     0xf130
490 #define SC_SCREENSAVE   0xf140
491 #define SC_HOTKEY       0xf150
492
493 /****** Window classes ******/
494
495 typedef struct
496 {
497     UINT16      style;
498     WNDPROC16   lpfnWndProc WINE_PACKED;
499     INT16       cbClsExtra;
500     INT16       cbWndExtra;
501     HANDLE16    hInstance;
502     HICON16     hIcon;
503     HCURSOR16   hCursor;
504     HBRUSH16    hbrBackground;
505     SEGPTR      lpszMenuName WINE_PACKED;
506     SEGPTR      lpszClassName WINE_PACKED;
507 } WNDCLASS16, *LPWNDCLASS16;
508
509 typedef struct
510 {
511     UINT32      style;
512     WNDPROC32   lpfnWndProc;
513     INT32       cbClsExtra;
514     INT32       cbWndExtra;
515     HINSTANCE32 hInstance;
516     HICON32     hIcon;
517     HCURSOR32   hCursor;
518     HBRUSH32    hbrBackground;
519     LPCSTR      lpszMenuName;
520     LPCSTR      lpszClassName;
521 } WNDCLASS32A, *LPWNDCLASS32A;
522
523 typedef struct
524 {
525     UINT32      style;
526     WNDPROC32   lpfnWndProc;
527     INT32       cbClsExtra;
528     INT32       cbWndExtra;
529     HINSTANCE32 hInstance;
530     HICON32     hIcon;
531     HCURSOR32   hCursor;
532     HBRUSH32    hbrBackground;
533     LPCWSTR     lpszMenuName;
534     LPCWSTR     lpszClassName;
535 } WNDCLASS32W, *LPWNDCLASS32W;
536
537 DECL_WINELIB_TYPE_AW(WNDCLASS)
538 DECL_WINELIB_TYPE_AW(LPWNDCLASS)
539
540 typedef struct
541 {
542     UINT32      cbSize;
543     UINT32      style;
544     WNDPROC16   lpfnWndProc;
545     INT16       cbClsExtra;
546     INT16       cbWndExtra;
547     HANDLE16    hInstance;
548     HICON16     hIcon;
549     HCURSOR16   hCursor;
550     HBRUSH16    hbrBackground;
551     SEGPTR      lpszMenuName;
552     SEGPTR      lpszClassName;
553     HICON16     hIconSm;
554 } WNDCLASSEX16, *LPWNDCLASSEX16;
555
556 typedef struct
557 {
558     UINT32      cbSize;
559     UINT32      style;
560     WNDPROC32   lpfnWndProc;
561     INT32       cbClsExtra;
562     INT32       cbWndExtra;
563     HINSTANCE32 hInstance;
564     HICON32     hIcon;
565     HCURSOR32   hCursor;
566     HBRUSH32    hbrBackground;
567     LPCSTR      lpszMenuName;
568     LPCSTR      lpszClassName;
569     HICON32     hIconSm;
570 } WNDCLASSEX32A, *LPWNDCLASSEX32A;
571
572 typedef struct
573 {
574     UINT32      cbSize;
575     UINT32      style;
576     WNDPROC32   lpfnWndProc;
577     INT32       cbClsExtra;
578     INT32       cbWndExtra;
579     HINSTANCE32 hInstance;
580     HICON32     hIcon;
581     HCURSOR32   hCursor;
582     HBRUSH32    hbrBackground;
583     LPCWSTR     lpszMenuName;
584     LPCWSTR     lpszClassName;
585     HICON32     hIconSm;
586 } WNDCLASSEX32W, *LPWNDCLASSEX32W;
587
588 DECL_WINELIB_TYPE_AW(WNDCLASSEX)
589 DECL_WINELIB_TYPE_AW(LPWNDCLASSEX)
590
591 #define CS_VREDRAW          0x0001
592 #define CS_HREDRAW          0x0002
593 #define CS_KEYCVTWINDOW     0x0004
594 #define CS_DBLCLKS          0x0008
595 #define CS_OWNDC            0x0020
596 #define CS_CLASSDC          0x0040
597 #define CS_PARENTDC         0x0080
598 #define CS_NOKEYCVT         0x0100
599 #define CS_NOCLOSE          0x0200
600 #define CS_SAVEBITS         0x0800
601 #define CS_BYTEALIGNCLIENT  0x1000
602 #define CS_BYTEALIGNWINDOW  0x2000
603 #define CS_GLOBALCLASS      0x4000
604
605   /* Offsets for GetClassLong() and GetClassWord() */
606 #define GCL_MENUNAME        (-8)
607 #define GCW_HBRBACKGROUND   (-10)
608 #define GCL_HBRBACKGROUND   GCW_HBRBACKGROUND
609 #define GCW_HCURSOR         (-12)
610 #define GCL_HCURSOR         GCW_HCURSOR
611 #define GCW_HICON           (-14)
612 #define GCL_HICON           GCW_HICON
613 #define GCW_HMODULE         (-16)
614 #define GCL_HMODULE         GCW_HMODULE
615 #define GCW_CBWNDEXTRA      (-18)
616 #define GCL_CBWNDEXTRA      GCW_CBWNDEXTRA
617 #define GCW_CBCLSEXTRA      (-20)
618 #define GCL_CBCLSEXTRA      GCW_CBCLSEXTRA
619 #define GCL_WNDPROC         (-24)
620 #define GCW_STYLE           (-26)
621 #define GCL_STYLE           GCW_STYLE
622 #define GCW_ATOM            (-32)
623 #define GCW_HICONSM         (-34)
624 #define GCL_HICONSM         GCW_HICONSM
625
626 /***** Window hooks *****/
627
628   /* Hook values */
629 #define WH_MIN              (-1)
630 #define WH_MSGFILTER        (-1)
631 #define WH_JOURNALRECORD    0
632 #define WH_JOURNALPLAYBACK  1
633 #define WH_KEYBOARD         2
634 #define WH_GETMESSAGE       3
635 #define WH_CALLWNDPROC      4
636 #define WH_CBT              5
637 #define WH_SYSMSGFILTER     6
638 #define WH_MOUSE            7
639 #define WH_HARDWARE         8
640 #define WH_DEBUG            9
641 #define WH_SHELL            10
642 #define WH_FOREGROUNDIDLE   11
643 #define WH_CALLWNDPROCRET   12
644 #define WH_MAX              12
645
646 #define WH_MINHOOK          WH_MIN
647 #define WH_MAXHOOK          WH_MAX
648 #define WH_NB_HOOKS         (WH_MAXHOOK-WH_MINHOOK+1)
649
650   /* Hook action codes */
651 #define HC_ACTION           0
652 #define HC_GETNEXT          1
653 #define HC_SKIP             2
654 #define HC_NOREMOVE         3
655 #define HC_NOREM            HC_NOREMOVE
656 #define HC_SYSMODALON       4
657 #define HC_SYSMODALOFF      5
658
659   /* CallMsgFilter() values */
660 #define MSGF_DIALOGBOX      0
661 #define MSGF_MESSAGEBOX     1
662 #define MSGF_MENU           2
663 #define MSGF_MOVE           3
664 #define MSGF_SIZE           4
665 #define MSGF_SCROLLBAR      5
666 #define MSGF_NEXTWINDOW     6
667 #define MSGF_MAINLOOP       8
668 #define MSGF_USER        4096
669
670   /* Windows Exit Procedure flag values */
671 #define WEP_FREE_DLL        0
672 #define WEP_SYSTEM_EXIT     1
673
674   /* Journalling hook structure */
675
676 typedef struct
677 {
678     UINT16  message;
679     UINT16  paramL;
680     UINT16  paramH;
681     DWORD   time WINE_PACKED;
682 } EVENTMSG16, *LPEVENTMSG16;
683
684 typedef struct
685 {
686     UINT32  message;
687     UINT32  paramL;
688     UINT32  paramH;
689     DWORD   time;
690     HWND32  hwnd;
691 } EVENTMSG32, *LPEVENTMSG32;
692
693 DECL_WINELIB_TYPE(EVENTMSG)
694 DECL_WINELIB_TYPE(LPEVENTMSG)
695
696   /* Mouse hook structure */
697
698 typedef struct
699 {
700     POINT16 pt;
701     HWND16  hwnd;
702     UINT16  wHitTestCode;
703     DWORD   dwExtraInfo;
704 } MOUSEHOOKSTRUCT16, *LPMOUSEHOOKSTRUCT16;
705
706 typedef struct
707 {
708     POINT32 pt;
709     HWND32  hwnd;
710     UINT32  wHitTestCode;
711     DWORD   dwExtraInfo;
712 } MOUSEHOOKSTRUCT32, *LPMOUSEHOOKSTRUCT32;
713
714 DECL_WINELIB_TYPE(MOUSEHOOKSTRUCT)
715 DECL_WINELIB_TYPE(LPMOUSEHOOKSTRUCT)
716
717   /* Hardware hook structure */
718
719 typedef struct
720 {
721     HWND16    hWnd;
722     UINT16    wMessage;
723     WPARAM16  wParam;
724     LPARAM    lParam WINE_PACKED;
725 } HARDWAREHOOKSTRUCT16, *LPHARDWAREHOOKSTRUCT16;
726
727 typedef struct
728 {
729     HWND32    hWnd;
730     UINT32    wMessage;
731     WPARAM32  wParam;
732     LPARAM    lParam;
733 } HARDWAREHOOKSTRUCT32, *LPHARDWAREHOOKSTRUCT32;
734
735 DECL_WINELIB_TYPE(HARDWAREHOOKSTRUCT)
736 DECL_WINELIB_TYPE(LPHARDWAREHOOKSTRUCT)
737
738   /* CBT hook values */
739 #define HCBT_MOVESIZE       0
740 #define HCBT_MINMAX         1
741 #define HCBT_QS             2
742 #define HCBT_CREATEWND      3
743 #define HCBT_DESTROYWND     4
744 #define HCBT_ACTIVATE       5
745 #define HCBT_CLICKSKIPPED   6
746 #define HCBT_KEYSKIPPED     7
747 #define HCBT_SYSCOMMAND     8
748 #define HCBT_SETFOCUS       9
749
750   /* CBT hook structures */
751
752 typedef struct
753 {
754     CREATESTRUCT16  *lpcs;
755     HWND16           hwndInsertAfter;
756 } CBT_CREATEWND16, *LPCBT_CREATEWND16;
757
758 typedef struct
759 {
760     CREATESTRUCT32A *lpcs;
761     HWND32           hwndInsertAfter;
762 } CBT_CREATEWND32A, *LPCBT_CREATEWND32A;
763
764 typedef struct
765 {
766     CREATESTRUCT32W *lpcs;
767     HWND32           hwndInsertAfter;
768 } CBT_CREATEWND32W, *LPCBT_CREATEWND32W;
769
770 DECL_WINELIB_TYPE_AW(CBT_CREATEWND)
771 DECL_WINELIB_TYPE_AW(LPCBT_CREATEWND)
772
773 typedef struct
774 {
775     BOOL16    fMouse;
776     HWND16    hWndActive;
777 } CBTACTIVATESTRUCT16, *LPCBTACTIVATESTRUCT16;
778
779 typedef struct
780 {
781     BOOL32    fMouse;
782     HWND32    hWndActive;
783 } CBTACTIVATESTRUCT32, *LPCBTACTIVATESTRUCT32;
784
785 DECL_WINELIB_TYPE(CBTACTIVATESTRUCT)
786 DECL_WINELIB_TYPE(LPCBTACTIVATESTRUCT)
787
788   /* Shell hook values */
789 #define HSHELL_WINDOWCREATED       1
790 #define HSHELL_WINDOWDESTROYED     2
791 #define HSHELL_ACTIVATESHELLWINDOW 3
792
793   /* Debug hook structure */
794
795 typedef struct
796 {
797     HMODULE16   hModuleHook;
798     LPARAM      reserved WINE_PACKED;
799     LPARAM      lParam WINE_PACKED;
800     WPARAM16    wParam;
801     INT16       code;
802 } DEBUGHOOKINFO16, *LPDEBUGHOOKINFO16;
803
804 typedef struct
805 {
806     DWORD       idThread;
807     DWORD       idThreadInstaller;
808     LPARAM      lParam;
809     WPARAM32    wParam;
810     INT32       code;
811 } DEBUGHOOKINFO32, *LPDEBUGHOOKINFO32;
812
813 DECL_WINELIB_TYPE(DEBUGHOOKINFO)
814 DECL_WINELIB_TYPE(LPDEBUGHOOKINFO)
815
816 typedef DWORD (CALLBACK *LPTHREAD_START_ROUTINE)(LPVOID);
817
818 /* This is also defined in winnt.h */
819 /* typedef struct _EXCEPTION_RECORD {
820     DWORD   ExceptionCode;
821     DWORD   ExceptionFlags;
822     struct  _EXCEPTION_RECORD *ExceptionRecord;
823     LPVOID  ExceptionAddress;
824     DWORD   NumberParameters;
825     DWORD   ExceptionInformation[15];
826 } EXCEPTION_RECORD; */
827
828 typedef struct _EXCEPTION_DEBUG_INFO {
829 /*    EXCEPTION_RECORD ExceptionRecord; */
830     DWORD dwFirstChange;
831 } EXCEPTION_DEBUG_INFO;
832
833 typedef struct _CREATE_THREAD_DEBUG_INFO {
834     HANDLE32 hThread;
835     LPVOID lpThreadLocalBase;
836     LPTHREAD_START_ROUTINE lpStartAddress;
837 } CREATE_THREAD_DEBUG_INFO;
838
839 typedef struct _CREATE_PROCESS_DEBUG_INFO {
840     HANDLE32 hFile;
841     HANDLE32 hProcess;
842     HANDLE32 hThread;
843     LPVOID lpBaseOfImage;
844     DWORD dwDebugInfoFileOffset;
845     DWORD nDebugInfoSize;
846     LPVOID lpThreadLocalBase;
847     LPTHREAD_START_ROUTINE lpStartAddress;
848     LPVOID lpImageName;
849     WORD fUnicode;
850 } CREATE_PROCESS_DEBUG_INFO;
851
852 typedef struct _EXIT_THREAD_DEBUG_INFO {
853     DWORD dwExitCode;
854 } EXIT_THREAD_DEBUG_INFO;
855
856 typedef struct _EXIT_PROCESS_DEBUG_INFO {
857     DWORD dwExitCode;
858 } EXIT_PROCESS_DEBUG_INFO;
859
860 typedef struct _LOAD_DLL_DEBUG_INFO {
861     HANDLE32 hFile;
862     LPVOID   lpBaseOfDll;
863     DWORD    dwDebugInfoFileOffset;
864     DWORD    nDebugInfoSize;
865     LPVOID   lpImageName;
866     WORD     fUnicode;
867 } LOAD_DLL_DEBUG_INFO;
868
869 typedef struct _UNLOAD_DLL_DEBUG_INFO {
870     LPVOID lpBaseOfDll;
871 } UNLOAD_DLL_DEBUG_INFO;
872
873 typedef struct _OUTPUT_DEBUG_STRING_INFO {
874     LPSTR lpDebugStringData;
875     WORD  fUnicode;
876     WORD  nDebugStringLength;
877 } OUTPUT_DEBUG_STRING_INFO;
878
879 typedef struct _RIP_INFO {
880     DWORD dwError;
881     DWORD dwType;
882 } RIP_INFO;
883
884 typedef struct _DEBUG_EVENT {
885     DWORD dwDebugEventCode;
886     DWORD dwProcessId;
887     DWORD dwThreadId;
888     union {
889         EXCEPTION_DEBUG_INFO      Exception;
890         CREATE_THREAD_DEBUG_INFO  CreateThread;
891         CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
892         EXIT_THREAD_DEBUG_INFO    ExitThread;
893         EXIT_PROCESS_DEBUG_INFO   ExitProcess;
894         LOAD_DLL_DEBUG_INFO       LoadDll;
895         UNLOAD_DLL_DEBUG_INFO     UnloadDll;
896         OUTPUT_DEBUG_STRING_INFO  DebugString;
897         RIP_INFO                  RipInfo;
898     } u;
899 } DEBUG_EVENT, *LPDEBUG_EVENT;
900
901
902 /***** Dialogs *****/
903
904   /* cbWndExtra bytes for dialog class */
905 #define DLGWINDOWEXTRA      30
906
907   /* Dialog styles */
908 #define DS_ABSALIGN             0x0001
909 #define DS_SYSMODAL             0x0002
910 #define DS_3DLOOK               0x0004  /* win95 */
911 #define DS_FIXEDSYS             0x0008  /* win95 */
912 #define DS_NOFAILCREATE         0x0010  /* win95 */
913 #define DS_LOCALEDIT            0x0020
914 #define DS_SETFONT              0x0040
915 #define DS_MODALFRAME           0x0080
916 #define DS_NOIDLEMSG            0x0100
917 #define DS_SETFOREGROUND        0x0200  /* win95 */
918 #define DS_CONTROL              0x0400  /* win95 */
919 #define DS_CENTER               0x0800  /* win95 */
920 #define DS_CENTERMOUSE          0x1000  /* win95 */
921 #define DS_CONTEXTHELP          0x2000  /* win95 */
922
923
924   /* Dialog messages */
925 #define DM_GETDEFID         (WM_USER+0)
926 #define DM_SETDEFID         (WM_USER+1)
927
928 #define DC_HASDEFID         0x534b
929
930   /* WM_GETDLGCODE values */
931 #define DLGC_WANTARROWS      0x0001
932 #define DLGC_WANTTAB         0x0002
933 #define DLGC_WANTALLKEYS     0x0004
934 #define DLGC_WANTMESSAGE     0x0004
935 #define DLGC_HASSETSEL       0x0008
936 #define DLGC_DEFPUSHBUTTON   0x0010
937 #define DLGC_UNDEFPUSHBUTTON 0x0020
938 #define DLGC_RADIOBUTTON     0x0040
939 #define DLGC_WANTCHARS       0x0080
940 #define DLGC_STATIC          0x0100
941 #define DLGC_BUTTON          0x2000
942
943 /* Standard dialog button IDs */
944 #define IDOK                1
945 #define IDCANCEL            2
946 #define IDABORT             3
947 #define IDRETRY             4
948 #define IDIGNORE            5
949 #define IDYES               6
950 #define IDNO                7
951 #define IDCLOSE             8
952 #define IDHELP              9      
953
954
955 typedef struct
956 {
957     HWND16    hwnd;
958     UINT16    message;
959     WPARAM16  wParam;
960     LPARAM    lParam WINE_PACKED;
961     DWORD     time WINE_PACKED;
962     POINT16   pt WINE_PACKED;
963 } MSG16, *LPMSG16;
964
965 typedef struct
966 {
967     HWND32    hwnd;
968     UINT32    message;
969     WPARAM32  wParam;
970     LPARAM    lParam;
971     DWORD     time;
972     POINT32   pt;
973 } MSG32, *LPMSG32;
974
975 DECL_WINELIB_TYPE(MSG)
976 DECL_WINELIB_TYPE(LPMSG)
977         
978   /* Raster operations */
979
980 #define R2_BLACK         1
981 #define R2_NOTMERGEPEN   2
982 #define R2_MASKNOTPEN    3
983 #define R2_NOTCOPYPEN    4
984 #define R2_MASKPENNOT    5
985 #define R2_NOT           6
986 #define R2_XORPEN        7
987 #define R2_NOTMASKPEN    8
988 #define R2_MASKPEN       9
989 #define R2_NOTXORPEN    10
990 #define R2_NOP          11
991 #define R2_MERGENOTPEN  12
992 #define R2_COPYPEN      13
993 #define R2_MERGEPENNOT  14
994 #define R2_MERGEPEN     15
995 #define R2_WHITE        16
996
997 #define SRCCOPY         0xcc0020
998 #define SRCPAINT        0xee0086
999 #define SRCAND          0x8800c6
1000 #define SRCINVERT       0x660046
1001 #define SRCERASE        0x440328
1002 #define NOTSRCCOPY      0x330008
1003 #define NOTSRCERASE     0x1100a6
1004 #define MERGECOPY       0xc000ca
1005 #define MERGEPAINT      0xbb0226
1006 #define PATCOPY         0xf00021
1007 #define PATPAINT        0xfb0a09
1008 #define PATINVERT       0x5a0049
1009 #define DSTINVERT       0x550009
1010 #define BLACKNESS       0x000042
1011 #define WHITENESS       0xff0062
1012
1013   /* StretchBlt() modes */
1014 #define BLACKONWHITE         1
1015 #define WHITEONBLACK         2
1016 #define COLORONCOLOR         3
1017
1018 #define STRETCH_ANDSCANS     BLACKONWHITE
1019 #define STRETCH_ORSCANS      WHITEONBLACK
1020 #define STRETCH_DELETESCANS  COLORONCOLOR
1021
1022
1023   /* Colors */
1024
1025 typedef DWORD COLORREF;
1026
1027 #define RGB(r,g,b)          ((COLORREF)((r) | ((g) << 8) | ((b) << 16)))
1028 #define PALETTERGB(r,g,b)   (0x02000000 | RGB(r,g,b))
1029 #define PALETTEINDEX(i)     ((COLORREF)(0x01000000 | (WORD)(i)))
1030
1031 #define GetRValue(rgb)      ((rgb) & 0xff)
1032 #define GetGValue(rgb)      (((rgb) >> 8) & 0xff)
1033 #define GetBValue(rgb)      (((rgb) >> 16) & 0xff)
1034
1035 #define COLOR_SCROLLBAR             0
1036 #define COLOR_BACKGROUND            1
1037 #define COLOR_ACTIVECAPTION         2
1038 #define COLOR_INACTIVECAPTION       3
1039 #define COLOR_MENU                  4
1040 #define COLOR_WINDOW                5
1041 #define COLOR_WINDOWFRAME           6
1042 #define COLOR_MENUTEXT              7
1043 #define COLOR_WINDOWTEXT            8
1044 #define COLOR_CAPTIONTEXT           9
1045 #define COLOR_ACTIVEBORDER         10
1046 #define COLOR_INACTIVEBORDER       11
1047 #define COLOR_APPWORKSPACE         12
1048 #define COLOR_HIGHLIGHT            13
1049 #define COLOR_HIGHLIGHTTEXT        14
1050 #define COLOR_BTNFACE              15
1051 #define COLOR_BTNSHADOW            16
1052 #define COLOR_GRAYTEXT             17
1053 #define COLOR_BTNTEXT              18
1054 #define COLOR_INACTIVECAPTIONTEXT  19
1055 #define COLOR_BTNHIGHLIGHT         20
1056 /* win95 colors */
1057 #define COLOR_3DDKSHADOW           21
1058 #define COLOR_3DLIGHT              22
1059 #define COLOR_INFOTEXT             23
1060 #define COLOR_INFOBK               24
1061 #define COLOR_DESKTOP              COLOR_BACKGROUND
1062 #define COLOR_3DFACE               COLOR_BTNFACE
1063 #define COLOR_3DSHADOW             COLOR_BTNSHADOW
1064 #define COLOR_3DHIGHLIGHT          COLOR_BTNHIGHLIGHT
1065 #define COLOR_3DHILIGHT            COLOR_BTNHIGHLIGHT
1066 #define COLOR_BTNHILIGHT           COLOR_BTNHIGHLIGHT
1067 /* win98 colors */
1068 #define COLOR_ALTERNATEBTNFACE         25  /* undocumented, constant's name unknown */
1069 #define COLOR_HOTLIGHT                 26
1070 #define COLOR_GRADIENTACTIVECAPTION    27
1071 #define COLOR_GRADIENTINACTIVECAPTION  28
1072
1073   /* WM_CTLCOLOR values */
1074 #define CTLCOLOR_MSGBOX             0
1075 #define CTLCOLOR_EDIT               1
1076 #define CTLCOLOR_LISTBOX            2
1077 #define CTLCOLOR_BTN                3
1078 #define CTLCOLOR_DLG                4
1079 #define CTLCOLOR_SCROLLBAR          5
1080 #define CTLCOLOR_STATIC             6
1081
1082 #define ICM_OFF   1
1083 #define ICM_ON    2
1084 #define ICM_QUERY 3
1085
1086   /* Bounds Accumulation APIs */
1087 #define DCB_RESET       0x0001
1088 #define DCB_ACCUMULATE  0x0002
1089 #define DCB_DIRTY       DCB_ACCUMULATE
1090 #define DCB_SET         (DCB_RESET | DCB_ACCUMULATE)
1091 #define DCB_ENABLE      0x0004
1092 #define DCB_DISABLE     0x0008
1093
1094
1095   /* Bitmaps */
1096
1097 typedef struct
1098 {
1099     INT16  bmType;
1100     INT16  bmWidth;
1101     INT16  bmHeight;
1102     INT16  bmWidthBytes;
1103     BYTE   bmPlanes;
1104     BYTE   bmBitsPixel;
1105     SEGPTR bmBits WINE_PACKED;
1106 } BITMAP16, *LPBITMAP16;
1107
1108 typedef struct
1109 {
1110     INT32  bmType;
1111     INT32  bmWidth;
1112     INT32  bmHeight;
1113     INT32  bmWidthBytes;
1114     WORD   bmPlanes;
1115     WORD   bmBitsPixel;
1116     LPVOID bmBits WINE_PACKED;
1117 } BITMAP32, *LPBITMAP32;
1118
1119 DECL_WINELIB_TYPE(BITMAP)
1120 DECL_WINELIB_TYPE(LPBITMAP)
1121
1122   /* Brushes */
1123
1124 typedef struct
1125
1126     UINT16     lbStyle;
1127     COLORREF   lbColor WINE_PACKED;
1128     INT16      lbHatch;
1129 } LOGBRUSH16, *LPLOGBRUSH16;
1130
1131 typedef struct
1132
1133     UINT32     lbStyle;
1134     COLORREF   lbColor;
1135     INT32      lbHatch;
1136 } LOGBRUSH32, *LPLOGBRUSH32;
1137
1138 DECL_WINELIB_TYPE(LOGBRUSH)
1139 DECL_WINELIB_TYPE(LPLOGBRUSH)
1140
1141   /* Brush styles */
1142 #define BS_SOLID            0
1143 #define BS_NULL             1
1144 #define BS_HOLLOW           1
1145 #define BS_HATCHED          2
1146 #define BS_PATTERN          3
1147 #define BS_INDEXED          4
1148 #define BS_DIBPATTERN       5
1149 #define BS_DIBPATTERNPT     6
1150 #define BS_PATTERN8X8       7
1151 #define BS_DIBPATTERN8X8    8
1152 #define BS_MONOPATTERN      9
1153
1154   /* Hatch styles */
1155 #define HS_HORIZONTAL       0
1156 #define HS_VERTICAL         1
1157 #define HS_FDIAGONAL        2
1158 #define HS_BDIAGONAL        3
1159 #define HS_CROSS            4
1160 #define HS_DIAGCROSS        5
1161
1162   /* Fonts */
1163
1164 #define LF_FACESIZE     32
1165 #define LF_FULLFACESIZE 64
1166
1167 #define RASTER_FONTTYPE     0x0001
1168 #define DEVICE_FONTTYPE     0x0002
1169 #define TRUETYPE_FONTTYPE   0x0004
1170
1171 typedef struct
1172 {
1173     INT16  lfHeight;
1174     INT16  lfWidth;
1175     INT16  lfEscapement;
1176     INT16  lfOrientation;
1177     INT16  lfWeight;
1178     BYTE   lfItalic;
1179     BYTE   lfUnderline;
1180     BYTE   lfStrikeOut;
1181     BYTE   lfCharSet;
1182     BYTE   lfOutPrecision;
1183     BYTE   lfClipPrecision;
1184     BYTE   lfQuality;
1185     BYTE   lfPitchAndFamily;
1186     CHAR   lfFaceName[LF_FACESIZE] WINE_PACKED;
1187 } LOGFONT16, *LPLOGFONT16;
1188
1189 typedef struct
1190 {
1191     INT32  lfHeight;
1192     INT32  lfWidth;
1193     INT32  lfEscapement;
1194     INT32  lfOrientation;
1195     INT32  lfWeight;
1196     BYTE   lfItalic;
1197     BYTE   lfUnderline;
1198     BYTE   lfStrikeOut;
1199     BYTE   lfCharSet;
1200     BYTE   lfOutPrecision;
1201     BYTE   lfClipPrecision;
1202     BYTE   lfQuality;
1203     BYTE   lfPitchAndFamily;
1204     CHAR   lfFaceName[LF_FACESIZE];
1205 } LOGFONT32A, *LPLOGFONT32A;
1206
1207 typedef struct
1208 {
1209     INT32  lfHeight;
1210     INT32  lfWidth;
1211     INT32  lfEscapement;
1212     INT32  lfOrientation;
1213     INT32  lfWeight;
1214     BYTE   lfItalic;
1215     BYTE   lfUnderline;
1216     BYTE   lfStrikeOut;
1217     BYTE   lfCharSet;
1218     BYTE   lfOutPrecision;
1219     BYTE   lfClipPrecision;
1220     BYTE   lfQuality;
1221     BYTE   lfPitchAndFamily;
1222     WCHAR  lfFaceName[LF_FACESIZE];
1223 } LOGFONT32W, *LPLOGFONT32W;
1224
1225 DECL_WINELIB_TYPE_AW(LOGFONT)
1226 DECL_WINELIB_TYPE_AW(LPLOGFONT)
1227
1228 typedef struct
1229 {
1230   LOGFONT16  elfLogFont;
1231   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
1232   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
1233 } ENUMLOGFONT16, *LPENUMLOGFONT16;
1234
1235 typedef struct
1236 {
1237   LOGFONT32A elfLogFont;
1238   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
1239   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
1240 } ENUMLOGFONT32A, *LPENUMLOGFONT32A;
1241
1242 typedef struct
1243 {
1244   LOGFONT32W elfLogFont;
1245   WCHAR      elfFullName[LF_FULLFACESIZE] WINE_PACKED;
1246   WCHAR      elfStyle[LF_FACESIZE] WINE_PACKED;
1247 } ENUMLOGFONT32W, *LPENUMLOGFONT32W;
1248
1249 typedef struct
1250 {
1251   LOGFONT16  elfLogFont;
1252   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
1253   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
1254   BYTE       elfScript[LF_FACESIZE] WINE_PACKED;
1255 } ENUMLOGFONTEX16, *LPENUMLOGFONTEX16;
1256
1257 typedef struct
1258 {
1259   LOGFONT32A elfLogFont;
1260   BYTE       elfFullName[LF_FULLFACESIZE] WINE_PACKED;
1261   BYTE       elfStyle[LF_FACESIZE] WINE_PACKED;
1262   BYTE       elfScript[LF_FACESIZE] WINE_PACKED;
1263 } ENUMLOGFONTEX32A,*LPENUMLOGFONTEX32A;
1264
1265 typedef struct
1266 {
1267   LOGFONT32W elfLogFont;
1268   WCHAR      elfFullName[LF_FULLFACESIZE] WINE_PACKED;
1269   WCHAR      elfStyle[LF_FACESIZE] WINE_PACKED;
1270   WCHAR      elfScript[LF_FACESIZE] WINE_PACKED;
1271 } ENUMLOGFONTEX32W,*LPENUMLOGFONTEX32W;
1272
1273 DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
1274 DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
1275 DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
1276
1277 typedef struct
1278 {
1279   DWORD fsUsb[4];
1280   DWORD fsCsb[2];
1281 } FONTSIGNATURE,*LPFONTSIGNATURE;
1282
1283 typedef struct 
1284 {
1285   UINT32        ciCharset;
1286   UINT32        ciACP;
1287   FONTSIGNATURE fs;
1288 } CHARSETINFO,*LPCHARSETINFO;
1289
1290 /* Flags for ModifyWorldTransform */
1291 #define MWT_IDENTITY      1
1292 #define MWT_LEFTMULTIPLY  2
1293 #define MWT_RIGHTMULTIPLY 3
1294
1295 typedef struct
1296 {
1297     FLOAT  eM11;
1298     FLOAT  eM12;
1299     FLOAT  eM21;
1300     FLOAT  eM22;
1301     FLOAT  eDx;
1302     FLOAT  eDy;
1303 } XFORM, *LPXFORM;
1304
1305 typedef struct 
1306 {
1307     INT16  txfHeight;
1308     INT16  txfWidth;
1309     INT16  txfEscapement;
1310     INT16  txfOrientation;
1311     INT16  txfWeight;
1312     CHAR   txfItalic;
1313     CHAR   txfUnderline;
1314     CHAR   txfStrikeOut;
1315     CHAR   txfOutPrecision;
1316     CHAR   txfClipPrecision;
1317     INT16  txfAccelerator WINE_PACKED;
1318     INT16  txfOverhang WINE_PACKED;
1319 } TEXTXFORM16, *LPTEXTXFORM16;
1320
1321 typedef struct
1322 {
1323     INT16 dfType;
1324     INT16 dfPoints;
1325     INT16 dfVertRes;
1326     INT16 dfHorizRes;
1327     INT16 dfAscent;
1328     INT16 dfInternalLeading;
1329     INT16 dfExternalLeading;
1330     CHAR  dfItalic;
1331     CHAR  dfUnderline;
1332     CHAR  dfStrikeOut;
1333     INT16 dfWeight;
1334     CHAR  dfCharSet;
1335     INT16 dfPixWidth;
1336     INT16 dfPixHeight;
1337     CHAR  dfPitchAndFamily;
1338     INT16 dfAvgWidth;
1339     INT16 dfMaxWidth;
1340     CHAR  dfFirstChar;
1341     CHAR  dfLastChar;
1342     CHAR  dfDefaultChar;
1343     CHAR  dfBreakChar;
1344     INT16 dfWidthBytes;
1345     LONG  dfDevice;
1346     LONG  dfFace;
1347     LONG  dfBitsPointer;
1348     LONG  dfBitsOffset;
1349     CHAR  dfReserved;
1350     LONG  dfFlags;
1351     INT16 dfAspace;
1352     INT16 dfBspace;
1353     INT16 dfCspace;
1354     LONG  dfColorPointer;
1355     LONG  dfReserved1[4];
1356 } FONTINFO16, *LPFONTINFO16;
1357
1358   /* lfWeight values */
1359 #define FW_DONTCARE         0
1360 #define FW_THIN             100
1361 #define FW_EXTRALIGHT       200
1362 #define FW_ULTRALIGHT       200
1363 #define FW_LIGHT            300
1364 #define FW_NORMAL           400
1365 #define FW_REGULAR          400
1366 #define FW_MEDIUM           500
1367 #define FW_SEMIBOLD         600
1368 #define FW_DEMIBOLD         600
1369 #define FW_BOLD             700
1370 #define FW_EXTRABOLD        800
1371 #define FW_ULTRABOLD        800
1372 #define FW_HEAVY            900
1373 #define FW_BLACK            900
1374
1375   /* lfCharSet values */
1376 #define ANSI_CHARSET          0
1377 #define DEFAULT_CHARSET       1
1378 #define SYMBOL_CHARSET        2
1379 #define SHIFTJIS_CHARSET      128
1380 #define HANGEUL_CHARSET       129
1381 #define GB2313_CHARSET        134
1382 #define CHINESEBIG5_CHARSET   136
1383 #define GREEK_CHARSET         161       /* CP1253 */
1384 #define TURKISH_CHARSET       162       /* CP1254, -iso8859-9 */
1385 #define HEBREW_CHARSET        177       /* CP1255 */
1386 #define ARABIC_CHARSET        178       /* CP1256 */
1387 #define BALTIC_CHARSET        186       /* CP1257 */
1388 #define RUSSIAN_CHARSET       204       /* CP1251 */
1389 #define EE_CHARSET            238       /* CP1250, -iso8859-2 */
1390 #define OEM_CHARSET           255
1391
1392   /* lfOutPrecision values */
1393 #define OUT_DEFAULT_PRECIS      0
1394 #define OUT_STRING_PRECIS       1
1395 #define OUT_CHARACTER_PRECIS    2
1396 #define OUT_STROKE_PRECIS       3
1397 #define OUT_TT_PRECIS           4
1398 #define OUT_DEVICE_PRECIS       5
1399 #define OUT_RASTER_PRECIS       6
1400 #define OUT_TT_ONLY_PRECIS      7
1401
1402   /* lfClipPrecision values */
1403 #define CLIP_DEFAULT_PRECIS     0x00
1404 #define CLIP_CHARACTER_PRECIS   0x01
1405 #define CLIP_STROKE_PRECIS      0x02
1406 #define CLIP_MASK               0x0F
1407 #define CLIP_LH_ANGLES          0x10
1408 #define CLIP_TT_ALWAYS          0x20
1409 #define CLIP_EMBEDDED           0x80
1410
1411   /* lfQuality values */
1412 #define DEFAULT_QUALITY     0
1413 #define DRAFT_QUALITY       1
1414 #define PROOF_QUALITY       2
1415
1416   /* lfPitchAndFamily pitch values */
1417 #define DEFAULT_PITCH       0x00
1418 #define FIXED_PITCH         0x01
1419 #define VARIABLE_PITCH      0x02
1420 #define FF_DONTCARE         0x00
1421 #define FF_ROMAN            0x10
1422 #define FF_SWISS            0x20
1423 #define FF_MODERN           0x30
1424 #define FF_SCRIPT           0x40
1425 #define FF_DECORATIVE       0x50
1426
1427 typedef struct
1428 {
1429     INT16     tmHeight;
1430     INT16     tmAscent;
1431     INT16     tmDescent;
1432     INT16     tmInternalLeading;
1433     INT16     tmExternalLeading;
1434     INT16     tmAveCharWidth;
1435     INT16     tmMaxCharWidth;
1436     INT16     tmWeight;
1437     BYTE      tmItalic;
1438     BYTE      tmUnderlined;
1439     BYTE      tmStruckOut;
1440     BYTE      tmFirstChar;
1441     BYTE      tmLastChar;
1442     BYTE      tmDefaultChar;
1443     BYTE      tmBreakChar;
1444     BYTE      tmPitchAndFamily;
1445     BYTE      tmCharSet;
1446     INT16     tmOverhang WINE_PACKED;
1447     INT16     tmDigitizedAspectX WINE_PACKED;
1448     INT16     tmDigitizedAspectY WINE_PACKED;
1449 } TEXTMETRIC16, *LPTEXTMETRIC16;
1450
1451 typedef struct
1452 {
1453     INT32     tmHeight;
1454     INT32     tmAscent;
1455     INT32     tmDescent;
1456     INT32     tmInternalLeading;
1457     INT32     tmExternalLeading;
1458     INT32     tmAveCharWidth;
1459     INT32     tmMaxCharWidth;
1460     INT32     tmWeight;
1461     INT32     tmOverhang;
1462     INT32     tmDigitizedAspectX;
1463     INT32     tmDigitizedAspectY;
1464     BYTE      tmFirstChar;
1465     BYTE      tmLastChar;
1466     BYTE      tmDefaultChar;
1467     BYTE      tmBreakChar;
1468     BYTE      tmItalic;
1469     BYTE      tmUnderlined;
1470     BYTE      tmStruckOut;
1471     BYTE      tmPitchAndFamily;
1472     BYTE      tmCharSet;
1473 } TEXTMETRIC32A, *LPTEXTMETRIC32A;
1474
1475 typedef struct
1476 {
1477     INT32     tmHeight;
1478     INT32     tmAscent;
1479     INT32     tmDescent;
1480     INT32     tmInternalLeading;
1481     INT32     tmExternalLeading;
1482     INT32     tmAveCharWidth;
1483     INT32     tmMaxCharWidth;
1484     INT32     tmWeight;
1485     INT32     tmOverhang;
1486     INT32     tmDigitizedAspectX;
1487     INT32     tmDigitizedAspectY;
1488     WCHAR     tmFirstChar;
1489     WCHAR     tmLastChar;
1490     WCHAR     tmDefaultChar;
1491     WCHAR     tmBreakChar;
1492     BYTE      tmItalic;
1493     BYTE      tmUnderlined;
1494     BYTE      tmStruckOut;
1495     BYTE      tmPitchAndFamily;
1496     BYTE      tmCharSet;
1497 } TEXTMETRIC32W, *LPTEXTMETRIC32W;
1498
1499 DECL_WINELIB_TYPE_AW(TEXTMETRIC)
1500 DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
1501
1502
1503 typedef struct tagPANOSE
1504 {
1505     BYTE bFamilyType;
1506     BYTE bSerifStyle;
1507     BYTE bWeight;
1508     BYTE bProportion;
1509     BYTE bContrast;
1510     BYTE bStrokeVariation;
1511     BYTE bArmStyle;
1512     BYTE bLetterform;
1513     BYTE bMidline;
1514     BYTE bXHeight;
1515 } PANOSE;
1516
1517
1518 typedef struct _OUTLINETEXTMETRIC32A
1519 {
1520     UINT32          otmSize;
1521     TEXTMETRIC32A   otmTextMetrics;
1522     BYTE            otmFilter;
1523     PANOSE          otmPanoseNumber;
1524     UINT32          otmfsSelection;
1525     UINT32          otmfsType;
1526     INT32           otmsCharSlopeRise;
1527     INT32           otmsCharSlopeRun;
1528     INT32           otmItalicAngle;
1529     UINT32          otmEMSquare;
1530     INT32           otmAscent;
1531     INT32           otmDescent;
1532     UINT32          otmLineGap;
1533     UINT32          otmsCapEmHeight;
1534     UINT32          otmsXHeight;
1535     RECT32          otmrcFontBox;
1536     INT32           otmMacAscent;
1537     INT32           otmMacDescent;
1538     UINT32          otmMacLineGap;
1539     UINT32          otmusMinimumPPEM;
1540     POINT32         otmptSubscriptSize;
1541     POINT32         otmptSubscriptOffset;
1542     POINT32         otmptSuperscriptSize;
1543     POINT32         otmptSuperscriptOffset;
1544     UINT32          otmsStrikeoutSize;
1545     INT32           otmsStrikeoutPosition;
1546     INT32           otmsUnderscoreSize;
1547     INT32           otmsUnderscorePosition;
1548     LPSTR           otmpFamilyName;
1549     LPSTR           otmpFaceName;
1550     LPSTR           otmpStyleName;
1551     LPSTR           otmpFullName;
1552 } OUTLINETEXTMETRIC32A, *LPOUTLINETEXTMETRIC32A;
1553
1554 typedef struct _OUTLINETEXTMETRIC32W
1555 {
1556     UINT32          otmSize;
1557     TEXTMETRIC32W   otmTextMetrics;
1558     BYTE            otmFilter;
1559     PANOSE          otmPanoseNumber;
1560     UINT32          otmfsSelection;
1561     UINT32          otmfsType;
1562     INT32           otmsCharSlopeRise;
1563     INT32           otmsCharSlopeRun;
1564     INT32           otmItalicAngle;
1565     UINT32          otmEMSquare;
1566     INT32           otmAscent;
1567     INT32           otmDescent;
1568     UINT32          otmLineGap;
1569     UINT32          otmsCapEmHeight;
1570     UINT32          otmsXHeight;
1571     RECT32          otmrcFontBox;
1572     INT32           otmMacAscent;
1573     INT32           otmMacDescent;
1574     UINT32          otmMacLineGap;
1575     UINT32          otmusMinimumPPEM;
1576     POINT32         otmptSubscriptSize;
1577     POINT32         otmptSubscriptOffset;
1578     POINT32         otmptSuperscriptSize;
1579     POINT32         otmptSuperscriptOffset;
1580     UINT32          otmsStrikeoutSize;
1581     INT32           otmsStrikeoutPosition;
1582     INT32           otmsUnderscoreSize;
1583     INT32           otmsUnderscorePosition;
1584     LPSTR           otmpFamilyName;
1585     LPSTR           otmpFaceName;
1586     LPSTR           otmpStyleName;
1587     LPSTR           otmpFullName;
1588 } OUTLINETEXTMETRIC32W, *LPOUTLINETEXTMETRIC32W;
1589
1590 typedef struct _OUTLINETEXTMETRIC16
1591 {
1592     UINT16          otmSize;
1593     TEXTMETRIC16    otmTextMetrics;
1594     BYTE            otmFilter;
1595     PANOSE          otmPanoseNumber;
1596     UINT16          otmfsSelection;
1597     UINT16          otmfsType;
1598     INT16           otmsCharSlopeRise;
1599     INT16           otmsCharSlopeRun;
1600     INT16           otmItalicAngle;
1601     UINT16          otmEMSquare;
1602     INT16           otmAscent;
1603     INT16           otmDescent;
1604     UINT16          otmLineGap;
1605     UINT16          otmsCapEmHeight;
1606     UINT16          otmsXHeight;
1607     RECT16          otmrcFontBox;
1608     INT16           otmMacAscent;
1609     INT16           otmMacDescent;
1610     UINT16          otmMacLineGap;
1611     UINT16          otmusMinimumPPEM;
1612     POINT16         otmptSubscriptSize;
1613     POINT16         otmptSubscriptOffset;
1614     POINT16         otmptSuperscriptSize;
1615     POINT16         otmptSuperscriptOffset;
1616     UINT16          otmsStrikeoutSize;
1617     INT16           otmsStrikeoutPosition;
1618     INT16           otmsUnderscoreSize;
1619     INT32           otmsUnderscorePosition;
1620     LPSTR           otmpFamilyName;
1621     LPSTR           otmpFaceName;
1622     LPSTR           otmpStyleName;
1623     LPSTR           otmpFullName;
1624 } OUTLINETEXTMETRIC16,*LPOUTLINETEXTMETRIC16;
1625
1626 DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
1627 DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
1628
1629
1630
1631 /* ntmFlags field flags */
1632 #define NTM_REGULAR     0x00000040L
1633 #define NTM_BOLD        0x00000020L
1634 #define NTM_ITALIC      0x00000001L
1635
1636 typedef struct
1637 {
1638     INT16     tmHeight;
1639     INT16     tmAscent;
1640     INT16     tmDescent;
1641     INT16     tmInternalLeading;
1642     INT16     tmExternalLeading;
1643     INT16     tmAveCharWidth;
1644     INT16     tmMaxCharWidth;
1645     INT16     tmWeight;
1646     BYTE      tmItalic;
1647     BYTE      tmUnderlined;
1648     BYTE      tmStruckOut;
1649     BYTE      tmFirstChar;
1650     BYTE      tmLastChar;
1651     BYTE      tmDefaultChar;
1652     BYTE      tmBreakChar;
1653     BYTE      tmPitchAndFamily;
1654     BYTE      tmCharSet;
1655     INT16     tmOverhang WINE_PACKED;
1656     INT16     tmDigitizedAspectX WINE_PACKED;
1657     INT16     tmDigitizedAspectY WINE_PACKED;
1658     DWORD     ntmFlags;
1659     UINT16    ntmSizeEM;
1660     UINT16    ntmCellHeight;
1661     UINT16    ntmAvgWidth;
1662 } NEWTEXTMETRIC16,*LPNEWTEXTMETRIC16;
1663
1664 typedef struct
1665 {
1666     INT32     tmHeight;
1667     INT32     tmAscent;
1668     INT32     tmDescent;
1669     INT32     tmInternalLeading;
1670     INT32     tmExternalLeading;
1671     INT32     tmAveCharWidth;
1672     INT32     tmMaxCharWidth;
1673     INT32     tmWeight;
1674     INT32     tmOverhang;
1675     INT32     tmDigitizedAspectX;
1676     INT32     tmDigitizedAspectY;
1677     BYTE      tmFirstChar;
1678     BYTE      tmLastChar;
1679     BYTE      tmDefaultChar;
1680     BYTE      tmBreakChar;
1681     BYTE      tmItalic;
1682     BYTE      tmUnderlined;
1683     BYTE      tmStruckOut;
1684     BYTE      tmPitchAndFamily;
1685     BYTE      tmCharSet;
1686     DWORD     ntmFlags;
1687     UINT32    ntmSizeEM;
1688     UINT32    ntmCellHeight;
1689     UINT32    ntmAvgWidth;
1690 } NEWTEXTMETRIC32A, *LPNEWTEXTMETRIC32A;
1691
1692 typedef struct
1693 {
1694     INT32     tmHeight;
1695     INT32     tmAscent;
1696     INT32     tmDescent;
1697     INT32     tmInternalLeading;
1698     INT32     tmExternalLeading;
1699     INT32     tmAveCharWidth;
1700     INT32     tmMaxCharWidth;
1701     INT32     tmWeight;
1702     INT32     tmOverhang;
1703     INT32     tmDigitizedAspectX;
1704     INT32     tmDigitizedAspectY;
1705     WCHAR     tmFirstChar;
1706     WCHAR     tmLastChar;
1707     WCHAR     tmDefaultChar;
1708     WCHAR     tmBreakChar;
1709     BYTE      tmItalic;
1710     BYTE      tmUnderlined;
1711     BYTE      tmStruckOut;
1712     BYTE      tmPitchAndFamily;
1713     BYTE      tmCharSet;
1714     DWORD     ntmFlags;
1715     UINT32    ntmSizeEM;
1716     UINT32    ntmCellHeight;
1717     UINT32    ntmAvgWidth;
1718 } NEWTEXTMETRIC32W, *LPNEWTEXTMETRIC32W;
1719
1720 DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
1721 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
1722
1723 typedef struct
1724 {
1725     NEWTEXTMETRIC16     ntmetm;
1726     FONTSIGNATURE       ntmeFontSignature;
1727 } NEWTEXTMETRICEX16,*LPNEWTEXTMETRICEX16;
1728
1729 typedef struct
1730 {
1731     NEWTEXTMETRIC32A    ntmetm;
1732     FONTSIGNATURE       ntmeFontSignature;
1733 } NEWTEXTMETRICEX32A,*LPNEWTEXTMETRICEX32A;
1734
1735 typedef struct
1736 {
1737     NEWTEXTMETRIC32W    ntmetm;
1738     FONTSIGNATURE       ntmeFontSignature;
1739 } NEWTEXTMETRICEX32W,*LPNEWTEXTMETRICEX32W;
1740
1741 DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
1742 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRICEX)
1743
1744
1745 typedef INT16 (CALLBACK *FONTENUMPROC16)(SEGPTR,SEGPTR,UINT16,LPARAM);
1746 typedef INT32 (CALLBACK *FONTENUMPROC32A)(LPENUMLOGFONT32A,LPNEWTEXTMETRIC32A,
1747                                           UINT32,LPARAM);
1748 typedef INT32 (CALLBACK *FONTENUMPROC32W)(LPENUMLOGFONT32W,LPNEWTEXTMETRIC32W,
1749                                           UINT32,LPARAM);
1750 DECL_WINELIB_TYPE_AW(FONTENUMPROC)
1751
1752 typedef INT16 (CALLBACK *FONTENUMPROCEX16)(SEGPTR,SEGPTR,UINT16,LPARAM);
1753 typedef INT32 (CALLBACK *FONTENUMPROCEX32A)(LPENUMLOGFONTEX32A,LPNEWTEXTMETRICEX32A,UINT32,LPARAM);
1754 typedef INT32 (CALLBACK *FONTENUMPROCEX32W)(LPENUMLOGFONTEX32W,LPNEWTEXTMETRICEX32W,UINT32,LPARAM);
1755 DECL_WINELIB_TYPE_AW(FONTENUMPROCEX)
1756
1757   /* tmPitchAndFamily bits */
1758 #define TMPF_FIXED_PITCH    1           /* means variable pitch */
1759 #define TMPF_VECTOR         2
1760 #define TMPF_TRUETYPE       4
1761 #define TMPF_DEVICE         8
1762
1763   /* Text alignment */
1764 #define TA_NOUPDATECP       0x00
1765 #define TA_UPDATECP         0x01
1766 #define TA_LEFT             0x00
1767 #define TA_RIGHT            0x02
1768 #define TA_CENTER           0x06
1769 #define TA_TOP              0x00
1770 #define TA_BOTTOM           0x08
1771 #define TA_BASELINE         0x18
1772
1773   /* ExtTextOut() parameters */
1774 #define ETO_GRAYED          0x01
1775 #define ETO_OPAQUE          0x02
1776 #define ETO_CLIPPED         0x04
1777
1778 typedef struct
1779 {
1780     UINT16      gmBlackBoxX;
1781     UINT16      gmBlackBoxY;
1782     POINT16     gmptGlyphOrigin;
1783     INT16       gmCellIncX;
1784     INT16       gmCellIncY;
1785 } GLYPHMETRICS16, *LPGLYPHMETRICS16;
1786
1787 typedef struct
1788 {
1789     UINT32      gmBlackBoxX;
1790     UINT32      gmBlackBoxY;
1791     POINT32     gmptGlyphOrigin;
1792     INT16       gmCellIncX;
1793     INT16       gmCellIncY;
1794 } GLYPHMETRICS32, *LPGLYPHMETRICS32;
1795
1796 DECL_WINELIB_TYPE(GLYPHMETRICS)
1797 DECL_WINELIB_TYPE(LPGLYPHMETRICS)
1798
1799 #define GGO_METRICS         0
1800 #define GGO_BITMAP          1
1801 #define GGO_NATIVE          2
1802
1803 typedef struct
1804 {
1805     UINT16  fract;
1806     INT16   value;
1807 } FIXED;
1808
1809 typedef struct
1810 {
1811      FIXED  eM11;
1812      FIXED  eM12;
1813      FIXED  eM21;
1814      FIXED  eM22;
1815 } MAT2, *LPMAT2;
1816
1817   /* for GetCharABCWidths() */
1818 typedef struct
1819 {
1820     INT16   abcA;
1821     UINT16  abcB;
1822     INT16   abcC;
1823 } ABC16, *LPABC16;
1824
1825 typedef struct
1826 {
1827     INT32   abcA;
1828     UINT32  abcB;
1829     INT32   abcC;
1830 } ABC32, *LPABC32;
1831
1832 DECL_WINELIB_TYPE(ABC)
1833 DECL_WINELIB_TYPE(LPABC)
1834
1835   /* for GetCharacterPlacement () */
1836 typedef struct tagGCP_RESULTS32A
1837 {
1838     DWORD  lStructSize;
1839     LPSTR  lpOutString;
1840     UINT32 *lpOrder;
1841     INT32  *lpDx;
1842     INT32  *lpCaretPos;
1843     LPSTR  lpClass;
1844     UINT32 *lpGlyphs;
1845     UINT32 nGlyphs;
1846     UINT32 nMaxFit;
1847 } GCP_RESULTS32A;
1848
1849 typedef struct tagGCP_RESULTS32W
1850 {
1851     DWORD  lStructSize;
1852     LPWSTR lpOutString;
1853     UINT32 *lpOrder;
1854     INT32  *lpDx;
1855     INT32  *lpCaretPos;
1856     LPWSTR lpClass;
1857     UINT32 *lpGlyphs;
1858     UINT32 nGlyphs;
1859     UINT32 nMaxFit;
1860 } GCP_RESULTS32W;
1861
1862 DECL_WINELIB_TYPE_AW(GCP_RESULTS)
1863
1864   /* Rasterizer status */
1865 typedef struct
1866 {
1867     INT16 nSize;
1868     INT16 wFlags;
1869     INT16 nLanguageID;
1870 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
1871
1872 #define TT_AVAILABLE        0x0001
1873 #define TT_ENABLED          0x0002
1874
1875 /* Get/SetSystemPaletteUse() values */
1876 #define SYSPAL_STATIC   1
1877 #define SYSPAL_NOSTATIC 2
1878
1879 typedef struct tagPALETTEENTRY
1880 {
1881         BYTE peRed, peGreen, peBlue, peFlags;
1882 } PALETTEENTRY, *LPPALETTEENTRY;
1883
1884 /* Logical palette entry flags */
1885 #define PC_RESERVED     0x01
1886 #define PC_EXPLICIT     0x02
1887 #define PC_NOCOLLAPSE   0x04
1888
1889 typedef struct
1890
1891     WORD           palVersion;
1892     WORD           palNumEntries;
1893     PALETTEENTRY   palPalEntry[1] WINE_PACKED;
1894 } LOGPALETTE, *LPLOGPALETTE;
1895
1896   /* Pens */
1897
1898 typedef struct
1899 {
1900     UINT16   lopnStyle; 
1901     POINT16  lopnWidth WINE_PACKED;
1902     COLORREF lopnColor WINE_PACKED;
1903 } LOGPEN16, *LPLOGPEN16;
1904
1905 typedef struct
1906 {
1907     UINT32   lopnStyle; 
1908     POINT32  lopnWidth WINE_PACKED;
1909     COLORREF lopnColor WINE_PACKED;
1910 } LOGPEN32, *LPLOGPEN32;
1911
1912 DECL_WINELIB_TYPE(LOGPEN)
1913 DECL_WINELIB_TYPE(LPLOGPEN)
1914
1915 #define PS_SOLID         0x00000000
1916 #define PS_DASH          0x00000001
1917 #define PS_DOT           0x00000002
1918 #define PS_DASHDOT       0x00000003
1919 #define PS_DASHDOTDOT    0x00000004
1920 #define PS_NULL          0x00000005
1921 #define PS_INSIDEFRAME   0x00000006
1922 #define PS_USERSTYLE     0x00000007
1923 #define PS_ALTERNATE     0x00000008
1924 #define PS_STYLE_MASK    0x0000000f
1925
1926 #define PS_ENDCAP_ROUND  0x00000000
1927 #define PS_ENDCAP_SQUARE 0x00000100
1928 #define PS_ENDCAP_FLAT   0x00000200
1929 #define PS_ENDCAP_MASK   0x00000f00
1930
1931 #define PS_JOIN_ROUND    0x00000000
1932 #define PS_JOIN_BEVEL    0x00001000
1933 #define PS_JOIN_MITER    0x00002000
1934 #define PS_JOIN_MASK     0x0000f000
1935
1936 #define PS_COSMETIC      0x00000000
1937 #define PS_GEOMETRIC     0x00010000
1938 #define PS_TYPE_MASK     0x000f0000
1939
1940   /* Regions */
1941
1942 #define ERROR             0
1943 #define NULLREGION        1
1944 #define SIMPLEREGION      2
1945 #define COMPLEXREGION     3
1946
1947 #define RGN_AND           1
1948 #define RGN_OR            2
1949 #define RGN_XOR           3
1950 #define RGN_DIFF          4
1951 #define RGN_COPY          5
1952
1953   /* Device contexts */
1954
1955 /* GetDCEx flags */
1956 #define DCX_WINDOW           0x00000001
1957 #define DCX_CACHE            0x00000002
1958 #define DCX_CLIPCHILDREN     0x00000008
1959 #define DCX_CLIPSIBLINGS     0x00000010
1960 #define DCX_PARENTCLIP       0x00000020
1961 #define DCX_EXCLUDERGN       0x00000040
1962 #define DCX_INTERSECTRGN     0x00000080
1963 #define DCX_LOCKWINDOWUPDATE 0x00000400
1964 #define DCX_USESTYLE         0x00010000
1965
1966   /* Polygon modes */
1967 #define ALTERNATE         1
1968 #define WINDING           2
1969
1970   /* Background modes */
1971 #ifdef TRANSPARENT  /*Apparently some broken svr4 includes define TRANSPARENT*/
1972 #undef TRANSPARENT
1973 #endif
1974 #define TRANSPARENT       1
1975 #define OPAQUE            2
1976
1977
1978   /* Graphics Modes */
1979 #define GM_COMPATIBLE     1
1980 #define GM_ADVANCED       2
1981 #define GM_LAST           2
1982
1983   /* Arc direction modes */
1984 #define AD_COUNTERCLOCKWISE 1
1985 #define AD_CLOCKWISE        2
1986
1987   /* Map modes */
1988 #define MM_TEXT           1
1989 #define MM_LOMETRIC       2
1990 #define MM_HIMETRIC       3
1991 #define MM_LOENGLISH      4
1992 #define MM_HIENGLISH      5
1993 #define MM_TWIPS          6
1994 #define MM_ISOTROPIC      7
1995 #define MM_ANISOTROPIC    8
1996
1997   /* Coordinate modes */
1998 #define ABSOLUTE          1
1999 #define RELATIVE          2
2000
2001   /* Flood fill modes */
2002 #define FLOODFILLBORDER   0
2003 #define FLOODFILLSURFACE  1
2004
2005   /* Device parameters for GetDeviceCaps() */
2006 #define DRIVERVERSION     0
2007 #define TECHNOLOGY        2
2008 #define HORZSIZE          4
2009 #define VERTSIZE          6
2010 #define HORZRES           8
2011 #define VERTRES           10
2012 #define BITSPIXEL         12
2013 #define PLANES            14
2014 #define NUMBRUSHES        16
2015 #define NUMPENS           18
2016 #define NUMMARKERS        20
2017 #define NUMFONTS          22
2018 #define NUMCOLORS         24
2019 #define PDEVICESIZE       26
2020 #define CURVECAPS         28
2021 #define LINECAPS          30
2022 #define POLYGONALCAPS     32
2023 #define TEXTCAPS          34
2024 #define CLIPCAPS          36
2025 #define RASTERCAPS        38
2026 #define ASPECTX           40
2027 #define ASPECTY           42
2028 #define ASPECTXY          44
2029 #define LOGPIXELSX        88
2030 #define LOGPIXELSY        90
2031 #define SIZEPALETTE       104
2032 #define NUMRESERVED       106
2033 #define COLORRES          108
2034
2035 /* TECHNOLOGY */
2036 #define DT_PLOTTER        0
2037 #define DT_RASDISPLAY     1
2038 #define DT_RASPRINTER     2
2039 #define DT_RASCAMERA      3
2040 #define DT_CHARSTREAM     4
2041 #define DT_METAFILE       5
2042 #define DT_DISPFILE       6
2043
2044 /* CURVECAPS */
2045 #define CC_NONE           0x0000
2046 #define CC_CIRCLES        0x0001
2047 #define CC_PIE            0x0002
2048 #define CC_CHORD          0x0004
2049 #define CC_ELLIPSES       0x0008
2050 #define CC_WIDE           0x0010
2051 #define CC_STYLED         0x0020
2052 #define CC_WIDESTYLED     0x0040
2053 #define CC_INTERIORS      0x0080
2054 #define CC_ROUNDRECT      0x0100
2055
2056 /* LINECAPS */
2057 #define LC_NONE           0x0000
2058 #define LC_POLYLINE       0x0002
2059 #define LC_MARKER         0x0004
2060 #define LC_POLYMARKER     0x0008
2061 #define LC_WIDE           0x0010
2062 #define LC_STYLED         0x0020
2063 #define LC_WIDESTYLED     0x0040
2064 #define LC_INTERIORS      0x0080
2065
2066 /* POLYGONALCAPS */
2067 #define PC_NONE           0x0000
2068 #define PC_POLYGON        0x0001
2069 #define PC_RECTANGLE      0x0002
2070 #define PC_WINDPOLYGON    0x0004
2071 #define PC_SCANLINE       0x0008
2072 #define PC_WIDE           0x0010
2073 #define PC_STYLED         0x0020
2074 #define PC_WIDESTYLED     0x0040
2075 #define PC_INTERIORS      0x0080
2076
2077 /* TEXTCAPS */
2078 #define TC_OP_CHARACTER   0x0001
2079 #define TC_OP_STROKE      0x0002
2080 #define TC_CP_STROKE      0x0004
2081 #define TC_CR_90          0x0008
2082 #define TC_CR_ANY         0x0010
2083 #define TC_SF_X_YINDEP    0x0020
2084 #define TC_SA_DOUBLE      0x0040
2085 #define TC_SA_INTEGER     0x0080
2086 #define TC_SA_CONTIN      0x0100
2087 #define TC_EA_DOUBLE      0x0200
2088 #define TC_IA_ABLE        0x0400
2089 #define TC_UA_ABLE        0x0800
2090 #define TC_SO_ABLE        0x1000
2091 #define TC_RA_ABLE        0x2000
2092 #define TC_VA_ABLE        0x4000
2093 #define TC_RESERVED       0x8000
2094
2095 /* CLIPCAPS */
2096 #define CP_NONE           0x0000
2097 #define CP_RECTANGLE      0x0001
2098 #define CP_REGION         0x0002
2099
2100 /* RASTERCAPS */
2101 #define RC_NONE           0x0000
2102 #define RC_BITBLT         0x0001
2103 #define RC_BANDING        0x0002
2104 #define RC_SCALING        0x0004
2105 #define RC_BITMAP64       0x0008
2106 #define RC_GDI20_OUTPUT   0x0010
2107 #define RC_GDI20_STATE    0x0020
2108 #define RC_SAVEBITMAP     0x0040
2109 #define RC_DI_BITMAP      0x0080
2110 #define RC_PALETTE        0x0100
2111 #define RC_DIBTODEV       0x0200
2112 #define RC_BIGFONT        0x0400
2113 #define RC_STRETCHBLT     0x0800
2114 #define RC_FLOODFILL      0x1000
2115 #define RC_STRETCHDIB     0x2000
2116 #define RC_OP_DX_OUTPUT   0x4000
2117 #define RC_DEVBITS        0x8000
2118
2119   /* GetSystemMetrics() codes */
2120 #define SM_CXSCREEN            0
2121 #define SM_CYSCREEN            1
2122 #define SM_CXVSCROLL           2
2123 #define SM_CYHSCROLL           3
2124 #define SM_CYCAPTION           4
2125 #define SM_CXBORDER            5
2126 #define SM_CYBORDER            6
2127 #define SM_CXDLGFRAME          7
2128 #define SM_CYDLGFRAME          8
2129 #define SM_CYVTHUMB            9
2130 #define SM_CXHTHUMB           10
2131 #define SM_CXICON             11
2132 #define SM_CYICON             12
2133 #define SM_CXCURSOR           13
2134 #define SM_CYCURSOR           14
2135 #define SM_CYMENU             15
2136 #define SM_CXFULLSCREEN       16
2137 #define SM_CYFULLSCREEN       17
2138 #define SM_CYKANJIWINDOW      18
2139 #define SM_MOUSEPRESENT       19
2140 #define SM_CYVSCROLL          20
2141 #define SM_CXHSCROLL          21
2142 #define SM_DEBUG              22
2143 #define SM_SWAPBUTTON         23
2144 #define SM_RESERVED1          24
2145 #define SM_RESERVED2          25
2146 #define SM_RESERVED3          26
2147 #define SM_RESERVED4          27
2148 #define SM_CXMIN              28
2149 #define SM_CYMIN              29
2150 #define SM_CXSIZE             30
2151 #define SM_CYSIZE             31
2152 #define SM_CXFRAME            32
2153 #define SM_CYFRAME            33
2154 #define SM_CXMINTRACK         34
2155 #define SM_CYMINTRACK         35
2156 #define SM_CXDOUBLECLK        36
2157 #define SM_CYDOUBLECLK        37
2158 #define SM_CXICONSPACING      38
2159 #define SM_CYICONSPACING      39
2160 #define SM_MENUDROPALIGNMENT  40
2161 #define SM_PENWINDOWS         41
2162 #define SM_DBCSENABLED        42
2163 #define SM_CMOUSEBUTTONS      43
2164 #define SM_CXFIXEDFRAME       SM_CXDLGFRAME
2165 #define SM_CYFIXEDFRAME       SM_CYDLGFRAME
2166 #define SM_CXSIZEFRAME        SM_CXFRAME
2167 #define SM_CYSIZEFRAME        SM_CYFRAME
2168 #define SM_SECURE             44
2169 #define SM_CXEDGE             45
2170 #define SM_CYEDGE             46
2171 #define SM_CXMINSPACING       47
2172 #define SM_CYMINSPACING       48
2173 #define SM_CXSMICON           49
2174 #define SM_CYSMICON           50
2175 #define SM_CYSMCAPTION        51
2176 #define SM_CXSMSIZE           52
2177 #define SM_CYSMSIZE           53
2178 #define SM_CXMENUSIZE         54
2179 #define SM_CYMENUSIZE         55
2180 #define SM_ARRANGE            56
2181 #define SM_CXMINIMIZED        57
2182 #define SM_CYMINIMIZED        58
2183 #define SM_CXMAXTRACK         59
2184 #define SM_CYMAXTRACK         60
2185 #define SM_CXMAXIMIZED        61
2186 #define SM_CYMAXIMIZED        62
2187 #define SM_NETWORK            63
2188 #define SM_CLEANBOOT          67
2189 #define SM_CXDRAG             68
2190 #define SM_CYDRAG             69
2191 #define SM_SHOWSOUNDS         70
2192 #define SM_CXMENUCHECK        71
2193 #define SM_CYMENUCHECK        72
2194 #define SM_SLOWMACHINE        73
2195 #define SM_MIDEASTENABLED     74
2196 #define SM_MOUSEWHEELPRESENT  75
2197 #define SM_XVIRTUALSCREEN     76
2198 #define SM_YVIRTUALSCREEN     77
2199 #define SM_CXVIRTUALSCREEN    78
2200 #define SM_CYVIRTUALSCREEN    79
2201 #define SM_CMONITORS          80
2202 #define SM_SAMEDISPLAYFORMAT  81
2203 #define SM_CMETRICS           83
2204
2205
2206   /* Device-independent bitmaps */
2207
2208 typedef struct { BYTE rgbBlue, rgbGreen, rgbRed, rgbReserved; } RGBQUAD;
2209 typedef struct { BYTE rgbtBlue, rgbtGreen, rgbtRed; } RGBTRIPLE;
2210
2211 typedef struct
2212 {
2213     UINT16  bfType;
2214     DWORD   bfSize WINE_PACKED;
2215     UINT16  bfReserved1 WINE_PACKED;
2216     UINT16  bfReserved2 WINE_PACKED;
2217     DWORD   bfOffBits WINE_PACKED;
2218 } BITMAPFILEHEADER;
2219
2220 typedef struct
2221 {
2222     DWORD       biSize;
2223     LONG        biWidth;
2224     LONG        biHeight;
2225     WORD        biPlanes;
2226     WORD        biBitCount;
2227     DWORD       biCompression;
2228     DWORD       biSizeImage;
2229     LONG        biXPelsPerMeter;
2230     LONG        biYPelsPerMeter;
2231     DWORD       biClrUsed;
2232     DWORD       biClrImportant;
2233 } BITMAPINFOHEADER, *LPBITMAPINFOHEADER;
2234
2235   /* biCompression */
2236 #define BI_RGB           0
2237 #define BI_RLE8          1
2238 #define BI_RLE4          2
2239
2240 typedef struct {
2241         BITMAPINFOHEADER bmiHeader;
2242         RGBQUAD bmiColors[1];
2243 } BITMAPINFO;
2244 typedef BITMAPINFO *LPBITMAPINFO;
2245 typedef BITMAPINFO *NPBITMAPINFO;
2246 typedef BITMAPINFO *PBITMAPINFO;
2247
2248 typedef struct
2249 {
2250     DWORD   bcSize;
2251     UINT16  bcWidth;
2252     UINT16  bcHeight;
2253     UINT16  bcPlanes;
2254     UINT16  bcBitCount;
2255 } BITMAPCOREHEADER;
2256
2257 typedef struct
2258 {
2259     BITMAPCOREHEADER bmciHeader;
2260     RGBTRIPLE        bmciColors[1];
2261 } BITMAPCOREINFO, *LPBITMAPCOREINFO;
2262
2263 #define DIB_RGB_COLORS   0
2264 #define DIB_PAL_COLORS   1
2265 #define CBM_INIT         4
2266
2267 typedef struct 
2268 {
2269         BITMAP32                dsBm;
2270         BITMAPINFOHEADER        dsBmih;
2271         DWORD                   dsBitfields[3];
2272         HANDLE32                dshSection;
2273         DWORD                   dsOffset;
2274 } DIBSECTION,*LPDIBSECTION;
2275
2276
2277 /* Cursors / Icons */
2278
2279 typedef struct
2280 {
2281     POINT16 ptHotSpot;
2282     WORD    nWidth;
2283     WORD    nHeight;
2284     WORD    nWidthBytes;
2285     BYTE    bPlanes;
2286     BYTE    bBitsPerPixel;
2287 } CURSORICONINFO;
2288
2289 /* only used by Win32 functions */
2290 typedef struct {
2291         BOOL32          fIcon;
2292         DWORD           xHotspot;
2293         DWORD           yHotspot;
2294         HBITMAP32       hbmMask;
2295         HBITMAP32       hbmColor;
2296 } ICONINFO,*LPICONINFO;
2297
2298 #ifdef FSHIFT
2299 /* Gcc on Solaris has a version of this that we don't care about.  */
2300 #undef FSHIFT
2301 #endif
2302
2303 #define FVIRTKEY        TRUE          /* Assumed to be == TRUE */
2304 #define FNOINVERT       0x02
2305 #define FSHIFT          0x04
2306 #define FCONTROL        0x08
2307 #define FALT            0x10
2308
2309 typedef struct
2310 {
2311     BYTE   fVirt;
2312     WORD   key;
2313     WORD   cmd;
2314 } ACCEL16, *LPACCEL16;
2315
2316 typedef struct
2317 {
2318     BYTE   fVirt;
2319     BYTE   pad0;
2320     WORD   key;
2321     WORD   cmd;
2322     WORD   pad1;
2323 } ACCEL32, *LPACCEL32;
2324
2325 DECL_WINELIB_TYPE(ACCEL)
2326 DECL_WINELIB_TYPE(LPACCEL)
2327
2328 /* modifiers for RegisterHotKey */
2329 #define MOD_ALT         0x0001
2330 #define MOD_CONTROL     0x0002
2331 #define MOD_SHIFT       0x0004
2332 #define MOD_WIN         0x0008
2333
2334 /* ids for RegisterHotKey */
2335 #define IDHOT_SNAPWINDOW        (-1)    /* SHIFT-PRINTSCRN  */
2336 #define IDHOT_SNAPDESKTOP       (-2)    /* PRINTSCRN        */
2337
2338 /* Flags for DrawIconEx.  */
2339 #define DI_MASK                 1
2340 #define DI_IMAGE                2
2341 #define DI_NORMAL               (DI_MASK | DI_IMAGE)
2342 #define DI_COMPAT               4
2343 #define DI_DEFAULTSIZE          8
2344
2345 typedef struct {
2346         BYTE i;  /* much more .... */
2347 } KANJISTRUCT;
2348 typedef KANJISTRUCT *LPKANJISTRUCT;
2349 typedef KANJISTRUCT *NPKANJISTRUCT;
2350 typedef KANJISTRUCT *PKANJISTRUCT;
2351
2352 #define OFS_MAXPATHNAME 128
2353 typedef struct
2354 {
2355     BYTE cBytes;
2356     BYTE fFixedDisk;
2357     WORD nErrCode;
2358     BYTE reserved[4];
2359     BYTE szPathName[OFS_MAXPATHNAME];
2360 } OFSTRUCT, *LPOFSTRUCT;
2361
2362 #define OF_READ               0x0000
2363 #define OF_WRITE              0x0001
2364 #define OF_READWRITE          0x0002
2365 #define OF_SHARE_COMPAT       0x0000
2366 #define OF_SHARE_EXCLUSIVE    0x0010
2367 #define OF_SHARE_DENY_WRITE   0x0020
2368 #define OF_SHARE_DENY_READ    0x0030
2369 #define OF_SHARE_DENY_NONE    0x0040
2370 #define OF_PARSE              0x0100
2371 #define OF_DELETE             0x0200
2372 #define OF_VERIFY             0x0400   /* Used with OF_REOPEN */
2373 #define OF_SEARCH             0x0400   /* Used without OF_REOPEN */
2374 #define OF_CANCEL             0x0800
2375 #define OF_CREATE             0x1000
2376 #define OF_PROMPT             0x2000
2377 #define OF_EXIST              0x4000
2378 #define OF_REOPEN             0x8000
2379
2380 /* SetErrorMode values */
2381 #define SEM_FAILCRITICALERRORS      0x0001
2382 #define SEM_NOGPFAULTERRORBOX       0x0002
2383 #define SEM_NOALIGNMENTFAULTEXCEPT  0x0004
2384 #define SEM_NOOPENFILEERRORBOX      0x8000
2385
2386 /* GetTempFileName() Flags */
2387 #define TF_FORCEDRIVE           0x80
2388
2389 #define DRIVE_CANNOTDETERMINE      0
2390 #define DRIVE_DOESNOTEXIST         1
2391 #define DRIVE_REMOVABLE            2
2392 #define DRIVE_FIXED                3
2393 #define DRIVE_REMOTE               4
2394 /* Win32 additions */
2395 #define DRIVE_CDROM                5
2396 #define DRIVE_RAMDISK              6
2397
2398 #define HFILE_ERROR16   ((HFILE16)-1)
2399 #define HFILE_ERROR32   ((HFILE32)-1)
2400 #define HFILE_ERROR     WINELIB_NAME(HFILE_ERROR)
2401
2402 #define DDL_READWRITE   0x0000
2403 #define DDL_READONLY    0x0001
2404 #define DDL_HIDDEN      0x0002
2405 #define DDL_SYSTEM      0x0004
2406 #define DDL_DIRECTORY   0x0010
2407 #define DDL_ARCHIVE     0x0020
2408
2409 #define DDL_POSTMSGS    0x2000
2410 #define DDL_DRIVES      0x4000
2411 #define DDL_EXCLUSIVE   0x8000
2412
2413 typedef struct _ACL {
2414     BYTE AclRevision;
2415     BYTE Sbz1;
2416     WORD AclSize;
2417     WORD AceCount;
2418     WORD Sbz2;
2419 } ACL, *LPACL;
2420
2421 typedef struct {
2422     BYTE Value[6];
2423 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;
2424
2425 typedef struct _SID {
2426     BYTE Revision;
2427     BYTE SubAuthorityCount;
2428     SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
2429     DWORD SubAuthority[1];
2430 } SID,*PSID,*LPSID;
2431
2432 /* The security attributes structure */
2433 typedef struct
2434 {
2435     DWORD   nLength;
2436     LPVOID  lpSecurityDescriptor;
2437     BOOL32  bInheritHandle;
2438 } SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
2439
2440 typedef WORD SECURITY_DESCRIPTOR_CONTROL;
2441
2442 /* The security descriptor structure */
2443 typedef struct {
2444     BYTE Revision;
2445     BYTE Sbz1;
2446     SECURITY_DESCRIPTOR_CONTROL Control;
2447     LPSID Owner;
2448     LPSID Group;
2449     LPACL Sacl;
2450     LPACL Dacl;
2451 } SECURITY_DESCRIPTOR, *LPSECURITY_DESCRIPTOR;
2452
2453 typedef DWORD   SECURITY_INFORMATION;
2454
2455
2456 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
2457 typedef struct
2458 {
2459   DWORD  dwLowDateTime;
2460   DWORD  dwHighDateTime;
2461 } FILETIME, *LPFILETIME;
2462
2463 /* Find* structures */
2464 typedef struct
2465 {
2466     DWORD     dwFileAttributes;
2467     FILETIME  ftCreationTime;
2468     FILETIME  ftLastAccessTime;
2469     FILETIME  ftLastWriteTime;
2470     DWORD     nFileSizeHigh;
2471     DWORD     nFileSizeLow;
2472     DWORD     dwReserved0;
2473     DWORD     dwReserved1;
2474     CHAR      cFileName[260];
2475     CHAR      cAlternateFileName[14];
2476 } WIN32_FIND_DATA32A, *LPWIN32_FIND_DATA32A;
2477
2478 typedef struct
2479 {
2480     DWORD     dwFileAttributes;
2481     FILETIME  ftCreationTime;
2482     FILETIME  ftLastAccessTime;
2483     FILETIME  ftLastWriteTime;
2484     DWORD     nFileSizeHigh;
2485     DWORD     nFileSizeLow;
2486     DWORD     dwReserved0;
2487     DWORD     dwReserved1;
2488     WCHAR     cFileName[260];
2489     WCHAR     cAlternateFileName[14];
2490 } WIN32_FIND_DATA32W, *LPWIN32_FIND_DATA32W;
2491
2492 DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA)
2493 DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA)
2494
2495 #define INVALID_HANDLE_VALUE16  ((HANDLE16) -1)
2496 #define INVALID_HANDLE_VALUE32  ((HANDLE32) -1)
2497 #define INVALID_HANDLE_VALUE WINELIB_NAME(INVALID_HANDLE_VALUE)
2498
2499 /* comm */
2500
2501 #define CBR_110 0xFF10
2502 #define CBR_300 0xFF11
2503 #define CBR_600 0xFF12
2504 #define CBR_1200        0xFF13
2505 #define CBR_2400        0xFF14
2506 #define CBR_4800        0xFF15
2507 #define CBR_9600        0xFF16
2508 #define CBR_14400       0xFF17
2509 #define CBR_19200       0xFF18
2510 #define CBR_38400       0xFF1B
2511 #define CBR_56000       0xFF1F
2512 #define CBR_128000      0xFF23
2513 #define CBR_256000      0xFF27
2514
2515 #define NOPARITY        0
2516 #define ODDPARITY       1
2517 #define EVENPARITY      2
2518 #define MARKPARITY      3
2519 #define SPACEPARITY     4
2520 #define ONESTOPBIT      0
2521 #define ONE5STOPBITS    1
2522 #define TWOSTOPBITS     2
2523
2524 #define IGNORE          0
2525 #define INFINITE16      0xFFFF
2526 #define INFINITE32      0xFFFFFFFF
2527 #define INFINITE WINELIB_NAME(INFINITE)
2528
2529 #define CE_RXOVER       0x0001
2530 #define CE_OVERRUN      0x0002
2531 #define CE_RXPARITY     0x0004
2532 #define CE_FRAME        0x0008
2533 #define CE_BREAK        0x0010
2534 #define CE_CTSTO        0x0020
2535 #define CE_DSRTO        0x0040
2536 #define CE_RLSDTO       0x0080
2537 #define CE_TXFULL       0x0100
2538 #define CE_PTO          0x0200
2539 #define CE_IOE          0x0400
2540 #define CE_DNS          0x0800
2541 #define CE_OOP          0x1000
2542 #define CE_MODE 0x8000
2543
2544 #define IE_BADID        -1
2545 #define IE_OPEN -2
2546 #define IE_NOPEN        -3
2547 #define IE_MEMORY       -4
2548 #define IE_DEFAULT      -5
2549 #define IE_HARDWARE     -10
2550 #define IE_BYTESIZE     -11
2551 #define IE_BAUDRATE     -12
2552
2553 #define EV_RXCHAR       0x0001
2554 #define EV_RXFLAG       0x0002
2555 #define EV_TXEMPTY      0x0004
2556 #define EV_CTS          0x0008
2557 #define EV_DSR          0x0010
2558 #define EV_RLSD 0x0020
2559 #define EV_BREAK        0x0040
2560 #define EV_ERR          0x0080
2561 #define EV_RING 0x0100
2562 #define EV_PERR 0x0200
2563 #define EV_CTSS 0x0400
2564 #define EV_DSRS 0x0800
2565 #define EV_RLSDS        0x1000
2566 #define EV_RINGTE       0x2000
2567 #define EV_RingTe       EV_RINGTE
2568
2569 #define SETXOFF 1
2570 #define SETXON          2
2571 #define SETRTS          3
2572 #define CLRRTS          4
2573 #define SETDTR          5
2574 #define CLRDTR          6
2575 #define RESETDEV        7
2576 /* win16 only */
2577 #define GETMAXLPT       8
2578 #define GETMAXCOM       9
2579 /* win32 only */
2580 #define SETBREAK        8
2581 #define CLRBREAK        9
2582
2583 #define GETBASEIRQ      10
2584
2585 #define CN_RECEIVE      0x0001
2586 #define CN_TRANSMIT     0x0002
2587 #define CN_EVENT        0x0004
2588
2589 typedef struct tagDCB16
2590 {
2591     BYTE   Id;
2592     UINT16 BaudRate WINE_PACKED;
2593     BYTE   ByteSize;
2594     BYTE   Parity;
2595     BYTE   StopBits;
2596     UINT16 RlsTimeout;
2597     UINT16 CtsTimeout;
2598     UINT16 DsrTimeout;
2599
2600     UINT16 fBinary        :1;
2601     UINT16 fRtsDisable    :1;
2602     UINT16 fParity        :1;
2603     UINT16 fOutxCtsFlow   :1;
2604     UINT16 fOutxDsrFlow   :1;
2605     UINT16 fDummy         :2;
2606     UINT16 fDtrDisable    :1;
2607
2608     UINT16 fOutX          :1;
2609     UINT16 fInX           :1;
2610     UINT16 fPeChar        :1;
2611     UINT16 fNull          :1;
2612     UINT16 fChEvt         :1;
2613     UINT16 fDtrflow       :1;
2614     UINT16 fRtsflow       :1;
2615     UINT16 fDummy2        :1;
2616
2617     CHAR   XonChar;
2618     CHAR   XoffChar;
2619     UINT16 XonLim;
2620     UINT16 XoffLim;
2621     CHAR   PeChar;
2622     CHAR   EofChar;
2623     CHAR   EvtChar;
2624     UINT16 TxDelay WINE_PACKED;
2625 } DCB16, *LPDCB16;
2626
2627 typedef struct tagDCB32
2628 {
2629     DWORD DCBlength;
2630     DWORD BaudRate;
2631     DWORD fBinary               :1;
2632     DWORD fParity               :1;
2633     DWORD fOutxCtsFlow          :1;
2634     DWORD fOutxDsrFlow          :1;
2635     DWORD fDtrControl           :2;
2636     DWORD fDsrSensitivity       :1;
2637     DWORD fTXContinueOnXoff     :1;
2638     DWORD fOutX                 :1;
2639     DWORD fInX                  :1;
2640     DWORD fErrorChar            :1;
2641     DWORD fNull                 :1;
2642     DWORD fRtsControl           :2;
2643     DWORD fAbortOnError         :1;
2644     DWORD fDummy2               :17;
2645     WORD wReserved;
2646     WORD XonLim;
2647     WORD XoffLim;
2648     BYTE ByteSize;
2649     BYTE Parity;
2650     BYTE StopBits;
2651     char XonChar;
2652     char XoffChar;
2653     char ErrorChar;
2654     char EofChar;
2655     char EvtChar;
2656 } DCB32, *LPDCB32;
2657
2658 DECL_WINELIB_TYPE(DCB)
2659 DECL_WINELIB_TYPE(LPDCB)
2660
2661 #define RTS_CONTROL_DISABLE     0
2662 #define RTS_CONTROL_ENABLE      1
2663 #define RTS_CONTROL_HANDSHAKE   2
2664 #define RTS_CONTROL_TOGGLE      3
2665
2666 #define DTR_CONTROL_DISABLE     0
2667 #define DTR_CONTROL_ENABLE      1
2668 #define DTR_CONTROL_HANDSHAKE   2
2669
2670 typedef struct tagCOMMTIMEOUTS {
2671         DWORD   ReadIntervalTimeout;
2672         DWORD   ReadTotalTimeoutMultiplier;
2673         DWORD   ReadTotalTimeoutConstant;
2674         DWORD   WriteTotalTimeoutMultiplier;
2675         DWORD   WriteTotalTimeoutConstant;
2676 } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
2677
2678 typedef struct tagCOMSTAT
2679 {
2680     BYTE   status;
2681     UINT16 cbInQue WINE_PACKED;
2682     UINT16 cbOutQue WINE_PACKED;
2683 } COMSTAT,*LPCOMSTAT;
2684
2685 #define CSTF_CTSHOLD    0x01
2686 #define CSTF_DSRHOLD    0x02
2687 #define CSTF_RLSDHOLD   0x04
2688 #define CSTF_XOFFHOLD   0x08
2689 #define CSTF_XOFFSENT   0x10
2690 #define CSTF_EOF        0x20
2691 #define CSTF_TXIM       0x40
2692
2693 /* SystemParametersInfo */
2694 /* defines below are for all win versions */
2695 #define SPI_GETBEEP               1
2696 #define SPI_SETBEEP               2
2697 #define SPI_GETMOUSE              3
2698 #define SPI_SETMOUSE              4
2699 #define SPI_GETBORDER             5
2700 #define SPI_SETBORDER             6
2701 #define SPI_GETKEYBOARDSPEED      10
2702 #define SPI_SETKEYBOARDSPEED      11
2703 #define SPI_LANGDRIVER            12
2704 #define SPI_ICONHORIZONTALSPACING 13
2705 #define SPI_GETSCREENSAVETIMEOUT  14
2706 #define SPI_SETSCREENSAVETIMEOUT  15
2707 #define SPI_GETSCREENSAVEACTIVE   16
2708 #define SPI_SETSCREENSAVEACTIVE   17
2709 #define SPI_GETGRIDGRANULARITY    18
2710 #define SPI_SETGRIDGRANULARITY    19
2711 #define SPI_SETDESKWALLPAPER      20
2712 #define SPI_SETDESKPATTERN        21
2713 #define SPI_GETKEYBOARDDELAY      22
2714 #define SPI_SETKEYBOARDDELAY      23
2715 #define SPI_ICONVERTICALSPACING   24
2716 #define SPI_GETICONTITLEWRAP      25
2717 #define SPI_SETICONTITLEWRAP      26
2718 #define SPI_GETMENUDROPALIGNMENT  27
2719 #define SPI_SETMENUDROPALIGNMENT  28
2720 #define SPI_SETDOUBLECLKWIDTH     29
2721 #define SPI_SETDOUBLECLKHEIGHT    30
2722 #define SPI_GETICONTITLELOGFONT   31
2723 #define SPI_SETDOUBLECLICKTIME    32
2724 #define SPI_SETMOUSEBUTTONSWAP    33
2725 #define SPI_SETICONTITLELOGFONT   34
2726 #define SPI_GETFASTTASKSWITCH     35
2727 #define SPI_SETFASTTASKSWITCH     36
2728
2729 #define SPI_GETFILTERKEYS         50
2730 #define SPI_SETFILTERKEYS         51
2731 #define SPI_GETTOGGLEKEYS         52
2732 #define SPI_SETTOGGLEKEYS         53
2733 #define SPI_GETMOUSEKEYS          54
2734 #define SPI_SETMOUSEKEYS          55
2735 #define SPI_GETSHOWSOUNDS         56
2736 #define SPI_SETSHOWSOUNDS         57
2737 #define SPI_GETSTICKYKEYS         58
2738 #define SPI_SETSTICKYKEYS         59
2739 #define SPI_GETACCESSTIMEOUT      60
2740 #define SPI_SETACCESSTIMEOUT      61
2741
2742 #define SPI_GETSOUNDSENTRY        64
2743 #define SPI_SETSOUNDSENTRY        65
2744
2745 /* defines below are for all win versions WINVER >= 0x0400 */
2746 #define SPI_SETDRAGFULLWINDOWS    37
2747 #define SPI_GETDRAGFULLWINDOWS    38
2748 #define SPI_GETNONCLIENTMETRICS   41
2749 #define SPI_SETNONCLIENTMETRICS   42
2750 #define SPI_GETMINIMIZEDMETRICS   43
2751 #define SPI_SETMINIMIZEDMETRICS   44
2752 #define SPI_GETICONMETRICS        45
2753 #define SPI_SETICONMETRICS        46
2754 #define SPI_SETWORKAREA           47
2755 #define SPI_GETWORKAREA           48
2756 #define SPI_SETPENWINDOWS         49
2757
2758 #define SPI_GETSERIALKEYS         62
2759 #define SPI_SETSERIALKEYS         63
2760 #define SPI_GETHIGHCONTRAST       66
2761 #define SPI_SETHIGHCONTRAST       67
2762 #define SPI_GETKEYBOARDPREF       68
2763 #define SPI_SETKEYBOARDPREF       69
2764 #define SPI_GETSCREENREADER       70
2765 #define SPI_SETSCREENREADER       71
2766 #define SPI_GETANIMATION          72
2767 #define SPI_SETANIMATION          73
2768 #define SPI_GETFONTSMOOTHING      74
2769 #define SPI_SETFONTSMOOTHING      75
2770 #define SPI_SETDRAGWIDTH          76
2771 #define SPI_SETDRAGHEIGHT         77
2772 #define SPI_SETHANDHELD           78
2773 #define SPI_GETLOWPOWERTIMEOUT    79
2774 #define SPI_GETPOWEROFFTIMEOUT    80
2775 #define SPI_SETLOWPOWERTIMEOUT    81
2776 #define SPI_SETPOWEROFFTIMEOUT    82
2777 #define SPI_GETLOWPOWERACTIVE     83
2778 #define SPI_GETPOWEROFFACTIVE     84
2779 #define SPI_SETLOWPOWERACTIVE     85
2780 #define SPI_SETPOWEROFFACTIVE     86
2781 #define SPI_SETCURSORS            87
2782 #define SPI_SETICONS              88
2783 #define SPI_GETDEFAULTINPUTLANG   89
2784 #define SPI_SETDEFAULTINPUTLANG   90
2785 #define SPI_SETLANGTOGGLE         91
2786 #define SPI_GETWINDOWSEXTENSION   92
2787 #define SPI_SETMOUSETRAILS        93
2788 #define SPI_GETMOUSETRAILS        94
2789 #define SPI_SETSCREENSAVERRUNNING 97
2790 #define SPI_SCREENSAVERRUNNING    SPI_SETSCREENSAVERRUNNING
2791
2792 /* defines below are for all win versions (_WIN32_WINNT >= 0x0400) ||
2793  *                                        (_WIN32_WINDOWS > 0x0400) */
2794 #define SPI_GETMOUSEHOVERWIDTH    98
2795 #define SPI_SETMOUSEHOVERWIDTH    99
2796 #define SPI_GETMOUSEHOVERHEIGHT   100
2797 #define SPI_SETMOUSEHOVERHEIGHT   101
2798 #define SPI_GETMOUSEHOVERTIME     102
2799 #define SPI_SETMOUSEHOVERTIME     103
2800 #define SPI_GETWHEELSCROLLLINES   104
2801 #define SPI_SETWHEELSCROLLLINES   105
2802
2803 #define SPI_GETSHOWIMEUI          110
2804 #define SPI_SETSHOWIMEUI          111
2805
2806 /* defines below are for all win versions WINVER >= 0x0500 */
2807 #define SPI_GETMOUSESPEED         112
2808 #define SPI_SETMOUSESPEED         113
2809 #define SPI_GETSCREENSAVERRUNNING 114
2810
2811 #define SPI_GETACTIVEWINDOWTRACKING    0x1000
2812 #define SPI_SETACTIVEWINDOWTRACKING    0x1001
2813 #define SPI_GETMENUANIMATION           0x1002
2814 #define SPI_SETMENUANIMATION           0x1003
2815 #define SPI_GETCOMBOBOXANIMATION       0x1004
2816 #define SPI_SETCOMBOBOXANIMATION       0x1005
2817 #define SPI_GETLISTBOXSMOOTHSCROLLING  0x1006
2818 #define SPI_SETLISTBOXSMOOTHSCROLLING  0x1007
2819 #define SPI_GETGRADIENTCAPTIONS        0x1008
2820 #define SPI_SETGRADIENTCAPTIONS        0x1009
2821 #define SPI_GETMENUUNDERLINES          0x100A
2822 #define SPI_SETMENUUNDERLINES          0x100B
2823 #define SPI_GETACTIVEWNDTRKZORDER      0x100C
2824 #define SPI_SETACTIVEWNDTRKZORDER      0x100D
2825 #define SPI_GETHOTTRACKING             0x100E
2826 #define SPI_SETHOTTRACKING             0x100F
2827 #define SPI_GETFOREGROUNDLOCKTIMEOUT   0x2000
2828 #define SPI_SETFOREGROUNDLOCKTIMEOUT   0x2001
2829 #define SPI_GETACTIVEWNDTRKTIMEOUT     0x2002
2830 #define SPI_SETACTIVEWNDTRKTIMEOUT     0x2003
2831 #define SPI_GETFOREGROUNDFLASHCOUNT    0x2004
2832 #define SPI_SETFOREGROUNDFLASHCOUNT    0x2005
2833
2834 /* SystemParametersInfo flags */
2835
2836 #define SPIF_UPDATEINIFILE              1
2837 #define SPIF_SENDWININICHANGE           2
2838 #define SPIF_SENDCHANGE                 SPIF_SENDWININICHANGE
2839
2840 /* flags for HIGHCONTRAST dwFlags field */
2841 #define HCF_HIGHCONTRASTON  0x00000001
2842 #define HCF_AVAILABLE       0x00000002
2843 #define HCF_HOTKEYACTIVE    0x00000004
2844 #define HCF_CONFIRMHOTKEY   0x00000008
2845 #define HCF_HOTKEYSOUND     0x00000010
2846 #define HCF_INDICATOR       0x00000020
2847 #define HCF_HOTKEYAVAILABLE 0x00000040
2848 typedef struct tagHIGHCONTRASTA
2849 {
2850     UINT32  cbSize;
2851     DWORD   dwFlags;
2852     LPSTR   lpszDefaultScheme;
2853 }   HIGHCONTRASTA, *LPHIGHCONTRASTA;
2854
2855 typedef struct tagHIGHCONTRASTW
2856 {
2857     UINT32  cbSize;
2858     DWORD   dwFlags;
2859     LPWSTR  lpszDefaultScheme;
2860 }   HIGHCONTRASTW, *LPHIGHCONTRASTW;
2861
2862 /* GetFreeSystemResources() parameters */
2863
2864 #define GFSR_SYSTEMRESOURCES   0x0000
2865 #define GFSR_GDIRESOURCES      0x0001
2866 #define GFSR_USERRESOURCES     0x0002
2867
2868 /* GetWinFlags */
2869
2870 #define WF_PMODE        0x0001
2871 #define WF_CPU286       0x0002
2872 #define WF_CPU386       0x0004
2873 #define WF_CPU486       0x0008
2874 #define WF_STANDARD     0x0010
2875 #define WF_WIN286       0x0010
2876 #define WF_ENHANCED     0x0020
2877 #define WF_WIN386       0x0020
2878 #define WF_CPU086       0x0040
2879 #define WF_CPU186       0x0080
2880 #define WF_LARGEFRAME   0x0100
2881 #define WF_SMALLFRAME   0x0200
2882 #define WF_80x87        0x0400
2883 #define WF_PAGING       0x0800
2884 #define WF_HASCPUID     0x2000
2885 #define WF_WIN32WOW     0x4000  /* undoc */
2886 #define WF_WLO          0x8000
2887
2888 #define MAKEINTRESOURCE16(i)  (SEGPTR)((DWORD)((WORD)(i)))
2889 #define MAKEINTRESOURCE32A(i) (LPSTR)((DWORD)((WORD)(i)))
2890 #define MAKEINTRESOURCE32W(i) (LPWSTR)((DWORD)((WORD)(i)))
2891 #define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE)
2892
2893 /* Predefined resource types */
2894 #define RT_CURSOR16          MAKEINTRESOURCE16(1)
2895 #define RT_CURSOR32A         MAKEINTRESOURCE32A(1)
2896 #define RT_CURSOR32W         MAKEINTRESOURCE32W(1)
2897 #define RT_CURSOR            WINELIB_NAME_AW(RT_CURSOR)
2898 #define RT_BITMAP16          MAKEINTRESOURCE16(2)
2899 #define RT_BITMAP32A         MAKEINTRESOURCE32A(2)
2900 #define RT_BITMAP32W         MAKEINTRESOURCE32W(2)
2901 #define RT_BITMAP            WINELIB_NAME_AW(RT_BITMAP)
2902 #define RT_ICON16            MAKEINTRESOURCE16(3)
2903 #define RT_ICON32A           MAKEINTRESOURCE32A(3)
2904 #define RT_ICON32W           MAKEINTRESOURCE32W(3)
2905 #define RT_ICON              WINELIB_NAME_AW(RT_ICON)
2906 #define RT_MENU16            MAKEINTRESOURCE16(4)
2907 #define RT_MENU32A           MAKEINTRESOURCE32A(4)
2908 #define RT_MENU32W           MAKEINTRESOURCE32W(4)
2909 #define RT_MENU              WINELIB_NAME_AW(RT_MENU)
2910 #define RT_DIALOG16          MAKEINTRESOURCE16(5)
2911 #define RT_DIALOG32A         MAKEINTRESOURCE32A(5)
2912 #define RT_DIALOG32W         MAKEINTRESOURCE32W(5)
2913 #define RT_DIALOG            WINELIB_NAME_AW(RT_DIALOG)
2914 #define RT_STRING16          MAKEINTRESOURCE16(6)
2915 #define RT_STRING32A         MAKEINTRESOURCE32A(6)
2916 #define RT_STRING32W         MAKEINTRESOURCE32W(6)
2917 #define RT_STRING            WINELIB_NAME_AW(RT_STRING)
2918 #define RT_FONTDIR16         MAKEINTRESOURCE16(7)
2919 #define RT_FONTDIR32A        MAKEINTRESOURCE32A(7)
2920 #define RT_FONTDIR32W        MAKEINTRESOURCE32W(7)
2921 #define RT_FONTDIR           WINELIB_NAME_AW(RT_FONTDIR)
2922 #define RT_FONT16            MAKEINTRESOURCE16(8)
2923 #define RT_FONT32A           MAKEINTRESOURCE32A(8)
2924 #define RT_FONT32W           MAKEINTRESOURCE32W(8)
2925 #define RT_FONT              WINELIB_NAME_AW(RT_FONT)
2926 #define RT_ACCELERATOR16     MAKEINTRESOURCE16(9)
2927 #define RT_ACCELERATOR32A    MAKEINTRESOURCE32A(9)
2928 #define RT_ACCELERATOR32W    MAKEINTRESOURCE32W(9)
2929 #define RT_ACCELERATOR       WINELIB_NAME_AW(RT_ACCELERATOR)
2930 #define RT_RCDATA16          MAKEINTRESOURCE16(10)
2931 #define RT_RCDATA32A         MAKEINTRESOURCE32A(10)
2932 #define RT_RCDATA32W         MAKEINTRESOURCE32W(10)
2933 #define RT_RCDATA            WINELIB_NAME_AW(RT_RCDATA)
2934 #define RT_MESSAGELIST16     MAKEINTRESOURCE16(11)
2935 #define RT_MESSAGELIST32A    MAKEINTRESOURCE32A(11)
2936 #define RT_MESSAGELIST32W    MAKEINTRESOURCE32W(11)
2937 #define RT_MESSAGELIST       WINELIB_NAME_AW(RT_MESSAGELIST)
2938 #define RT_GROUP_CURSOR16    MAKEINTRESOURCE16(12)
2939 #define RT_GROUP_CURSOR32A   MAKEINTRESOURCE32A(12)
2940 #define RT_GROUP_CURSOR32W   MAKEINTRESOURCE32W(12)
2941 #define RT_GROUP_CURSOR      WINELIB_NAME_AW(RT_GROUP_CURSOR)
2942 #define RT_GROUP_ICON16      MAKEINTRESOURCE16(14)
2943 #define RT_GROUP_ICON32A     MAKEINTRESOURCE32A(14)
2944 #define RT_GROUP_ICON32W     MAKEINTRESOURCE32W(14)
2945 #define RT_GROUP_ICON        WINELIB_NAME_AW(RT_GROUP_ICON)
2946
2947 /* Predefined resources */
2948 #define IDI_APPLICATION16  MAKEINTRESOURCE16(32512)
2949 #define IDI_APPLICATION32A MAKEINTRESOURCE32A(32512)
2950 #define IDI_APPLICATION32W MAKEINTRESOURCE32W(32512)
2951 #define IDI_APPLICATION    WINELIB_NAME_AW(IDI_APPLICATION)
2952 #define IDI_HAND16         MAKEINTRESOURCE16(32513)
2953 #define IDI_HAND32A        MAKEINTRESOURCE32A(32513)
2954 #define IDI_HAND32W        MAKEINTRESOURCE32W(32513)
2955 #define IDI_HAND           WINELIB_NAME_AW(IDI_HAND)
2956 #define IDI_QUESTION16     MAKEINTRESOURCE16(32514)
2957 #define IDI_QUESTION32A    MAKEINTRESOURCE32A(32514)
2958 #define IDI_QUESTION32W    MAKEINTRESOURCE32W(32514)
2959 #define IDI_QUESTION       WINELIB_NAME_AW(IDI_QUESTION)
2960 #define IDI_EXCLAMATION16  MAKEINTRESOURCE16(32515)
2961 #define IDI_EXCLAMATION32A MAKEINTRESOURCE32A(32515)
2962 #define IDI_EXCLAMATION32W MAKEINTRESOURCE32W(32515)
2963 #define IDI_EXCLAMATION    WINELIB_NAME_AW(IDI_EXCLAMATION)
2964 #define IDI_ASTERISK16     MAKEINTRESOURCE16(32516)
2965 #define IDI_ASTERISK32A    MAKEINTRESOURCE32A(32516)
2966 #define IDI_ASTERISK32W    MAKEINTRESOURCE32W(32516)
2967 #define IDI_ASTERISK       WINELIB_NAME_AW(IDI_ASTERISK)
2968
2969 #define IDC_BUMMER16       MAKEINTRESOURCE16(100)
2970 #define IDC_BUMMER32A      MAKEINTRESOURCE32A(100)
2971 #define IDC_BUMMER32W      MAKEINTRESOURCE32W(100)
2972 #define IDC_BUMMER         WINELIB_NAME_AW(IDC_BUMMER)
2973 #define IDC_ARROW16        MAKEINTRESOURCE16(32512)
2974 #define IDC_ARROW32A       MAKEINTRESOURCE32A(32512)
2975 #define IDC_ARROW32W       MAKEINTRESOURCE32W(32512)
2976 #define IDC_ARROW          WINELIB_NAME_AW(IDC_ARROW)
2977 #define IDC_IBEAM16        MAKEINTRESOURCE16(32513)
2978 #define IDC_IBEAM32A       MAKEINTRESOURCE32A(32513)
2979 #define IDC_IBEAM32W       MAKEINTRESOURCE32W(32513)
2980 #define IDC_IBEAM          WINELIB_NAME_AW(IDC_IBEAM)
2981 #define IDC_WAIT16         MAKEINTRESOURCE16(32514)
2982 #define IDC_WAIT32A        MAKEINTRESOURCE32A(32514)
2983 #define IDC_WAIT32W        MAKEINTRESOURCE32W(32514)
2984 #define IDC_WAIT           WINELIB_NAME_AW(IDC_WAIT)
2985 #define IDC_CROSS16        MAKEINTRESOURCE16(32515)
2986 #define IDC_CROSS32A       MAKEINTRESOURCE32A(32515)
2987 #define IDC_CROSS32W       MAKEINTRESOURCE32W(32515)
2988 #define IDC_CROSS          WINELIB_NAME_AW(IDC_CROSS)
2989 #define IDC_UPARROW16      MAKEINTRESOURCE16(32516)
2990 #define IDC_UPARROW32A     MAKEINTRESOURCE32A(32516)
2991 #define IDC_UPARROW32W     MAKEINTRESOURCE32W(32516)
2992 #define IDC_UPARROW        WINELIB_NAME_AW(IDC_UPARROW)
2993 #define IDC_SIZE16         MAKEINTRESOURCE16(32640)
2994 #define IDC_SIZE32A        MAKEINTRESOURCE32A(32640)
2995 #define IDC_SIZE32W        MAKEINTRESOURCE32W(32640)
2996 #define IDC_SIZE           WINELIB_NAME_AW(IDC_SIZE)
2997 #define IDC_ICON16         MAKEINTRESOURCE16(32641)
2998 #define IDC_ICON32A        MAKEINTRESOURCE32A(32641)
2999 #define IDC_ICON32W        MAKEINTRESOURCE32W(32641)
3000 #define IDC_ICON           WINELIB_NAME_AW(IDC_ICON)
3001 #define IDC_SIZENWSE16     MAKEINTRESOURCE16(32642)
3002 #define IDC_SIZENWSE32A    MAKEINTRESOURCE32A(32642)
3003 #define IDC_SIZENWSE32W    MAKEINTRESOURCE32W(32642)
3004 #define IDC_SIZENWSE       WINELIB_NAME_AW(IDC_SIZENWSE)
3005 #define IDC_SIZENESW16     MAKEINTRESOURCE16(32643)
3006 #define IDC_SIZENESW32A    MAKEINTRESOURCE32A(32643)
3007 #define IDC_SIZENESW32W    MAKEINTRESOURCE32W(32643)
3008 #define IDC_SIZENESW       WINELIB_NAME_AW(IDC_SIZENESW)
3009 #define IDC_SIZEWE16       MAKEINTRESOURCE16(32644)
3010 #define IDC_SIZEWE32A      MAKEINTRESOURCE32A(32644)
3011 #define IDC_SIZEWE32W      MAKEINTRESOURCE32W(32644)
3012 #define IDC_SIZEWE         WINELIB_NAME_AW(IDC_SIZEWE)
3013 #define IDC_SIZENS16       MAKEINTRESOURCE16(32645)
3014 #define IDC_SIZENS32A      MAKEINTRESOURCE32A(32645)
3015 #define IDC_SIZENS32W      MAKEINTRESOURCE32W(32645)
3016 #define IDC_SIZENS         WINELIB_NAME_AW(IDC_SIZENS)
3017 #define IDC_NO16           MAKEINTRESOURCE16(32648)
3018 #define IDC_NO32A          MAKEINTRESOURCE32A(32648)
3019 #define IDC_NO32W          MAKEINTRESOURCE32W(32648)
3020 #define IDC_NO             WINELIB_NAME_AW(IDC_NO)
3021 #define IDC_APPSTARTING16  MAKEINTRESOURCE16(32650)
3022 #define IDC_APPSTARTING32A MAKEINTRESOURCE32A(32650)
3023 #define IDC_APPSTARTING32W MAKEINTRESOURCE32W(32650)
3024 #define IDC_APPSTARTING    WINELIB_NAME_AW(IDC_APPSTARTING)
3025 #define IDC_HELP16         MAKEINTRESOURCE16(32651)
3026 #define IDC_HELP32A        MAKEINTRESOURCE32A(32651)
3027 #define IDC_HELP32W        MAKEINTRESOURCE32W(32651)
3028 #define IDC_HELP           WINELIB_NAME_AW(IDC_HELP)
3029
3030 /* OEM Resource Ordinal Numbers */
3031 #define OBM_CLOSE           32754
3032 #define OBM_UPARROW         32753
3033 #define OBM_DNARROW         32752
3034 #define OBM_RGARROW         32751
3035 #define OBM_LFARROW         32750
3036 #define OBM_REDUCE          32749
3037 #define OBM_ZOOM            32748
3038 #define OBM_RESTORE         32747
3039 #define OBM_REDUCED         32746
3040 #define OBM_ZOOMD           32745
3041 #define OBM_RESTORED        32744
3042 #define OBM_UPARROWD        32743
3043 #define OBM_DNARROWD        32742
3044 #define OBM_RGARROWD        32741
3045 #define OBM_LFARROWD        32740
3046 #define OBM_MNARROW         32739
3047 #define OBM_COMBO           32738
3048 #define OBM_UPARROWI        32737
3049 #define OBM_DNARROWI        32736
3050 #define OBM_RGARROWI        32735
3051 #define OBM_LFARROWI        32734
3052
3053 #define OBM_FOLDER          32733
3054 #define OBM_FOLDER2         32732
3055 #define OBM_FLOPPY          32731
3056 #define OBM_HDISK           32730
3057 #define OBM_CDROM           32729
3058 #define OBM_TRTYPE          32728
3059
3060 /* Wine extension, I think.  */
3061 #define OBM_RADIOCHECK      32727
3062
3063 #define OBM_OLD_CLOSE       32767
3064 #define OBM_SIZE            32766
3065 #define OBM_OLD_UPARROW     32765
3066 #define OBM_OLD_DNARROW     32764
3067 #define OBM_OLD_RGARROW     32763
3068 #define OBM_OLD_LFARROW     32762
3069 #define OBM_BTSIZE          32761
3070 #define OBM_CHECK           32760
3071 #define OBM_CHECKBOXES      32759
3072 #define OBM_BTNCORNERS      32758
3073 #define OBM_OLD_REDUCE      32757
3074 #define OBM_OLD_ZOOM        32756
3075 #define OBM_OLD_RESTORE     32755
3076
3077 #define OCR_BUMMER          100
3078 #define OCR_DRAGOBJECT      101
3079
3080 #define OCR_NORMAL          32512
3081 #define OCR_IBEAM           32513
3082 #define OCR_WAIT            32514
3083 #define OCR_CROSS           32515
3084 #define OCR_UP              32516
3085 #define OCR_SIZE            32640
3086 #define OCR_ICON            32641
3087 #define OCR_SIZENWSE        32642
3088 #define OCR_SIZENESW        32643
3089 #define OCR_SIZEWE          32644
3090 #define OCR_SIZENS          32645
3091 #define OCR_SIZEALL         32646
3092 #define OCR_ICOCUR          32647
3093 #define OCR_NO              32648
3094 #define OCR_APPSTARTING     32650
3095 #define OCR_HELP            32651  /* only defined in wine */
3096
3097 #define OIC_SAMPLE          32512
3098 #define OIC_HAND            32513
3099 #define OIC_QUES            32514
3100 #define OIC_BANG            32515
3101 #define OIC_NOTE            32516
3102 #define OIC_PORTRAIT        32517
3103 #define OIC_LANDSCAPE       32518
3104 #define OIC_WINEICON        32519
3105
3106   /* Stock GDI objects for GetStockObject() */
3107
3108 #define WHITE_BRUSH         0
3109 #define LTGRAY_BRUSH        1
3110 #define GRAY_BRUSH          2
3111 #define DKGRAY_BRUSH        3
3112 #define BLACK_BRUSH         4
3113 #define NULL_BRUSH          5
3114 #define HOLLOW_BRUSH        5
3115 #define WHITE_PEN           6
3116 #define BLACK_PEN           7
3117 #define NULL_PEN            8
3118 #define OEM_FIXED_FONT      10
3119 #define ANSI_FIXED_FONT     11
3120 #define ANSI_VAR_FONT       12
3121 #define SYSTEM_FONT         13
3122 #define DEVICE_DEFAULT_FONT 14
3123 #define DEFAULT_PALETTE     15
3124 #define SYSTEM_FIXED_FONT   16
3125 #define DEFAULT_GUI_FONT    17
3126
3127 /* DragObject stuff */
3128
3129 typedef struct
3130 {
3131     HWND16     hWnd;
3132     HANDLE16   hScope;
3133     WORD       wFlags;
3134     HANDLE16   hList;
3135     HANDLE16   hOfStruct;
3136     POINT16 pt WINE_PACKED;
3137     LONG       l WINE_PACKED;
3138 } DRAGINFO, *LPDRAGINFO;
3139
3140 #define DRAGOBJ_PROGRAM         0x0001
3141 #define DRAGOBJ_DATA            0x0002
3142 #define DRAGOBJ_DIRECTORY       0x0004
3143 #define DRAGOBJ_MULTIPLE        0x0008
3144 #define DRAGOBJ_EXTERNAL        0x8000
3145
3146 #define DRAG_PRINT              0x544E5250
3147 #define DRAG_FILE               0x454C4946
3148
3149 /* Messages */
3150
3151 #define WM_NULL                 0x0000
3152 #define WM_CREATE               0x0001
3153 #define WM_DESTROY              0x0002
3154 #define WM_MOVE                 0x0003
3155 #define WM_SIZEWAIT             0x0004
3156 #define WM_SIZE                 0x0005
3157 #define WM_ACTIVATE             0x0006
3158 #define WM_SETFOCUS             0x0007
3159 #define WM_KILLFOCUS            0x0008
3160 #define WM_SETVISIBLE           0x0009
3161 #define WM_ENABLE               0x000a
3162 #define WM_SETREDRAW            0x000b
3163 #define WM_SETTEXT              0x000c
3164 #define WM_GETTEXT              0x000d
3165 #define WM_GETTEXTLENGTH        0x000e
3166 #define WM_PAINT                0x000f
3167 #define WM_CLOSE                0x0010
3168 #define WM_QUERYENDSESSION      0x0011
3169 #define WM_QUIT                 0x0012
3170 #define WM_QUERYOPEN            0x0013
3171 #define WM_ERASEBKGND           0x0014
3172 #define WM_SYSCOLORCHANGE       0x0015
3173 #define WM_ENDSESSION           0x0016
3174 #define WM_SYSTEMERROR          0x0017
3175 #define WM_SHOWWINDOW           0x0018
3176 #define WM_CTLCOLOR             0x0019
3177 #define WM_WININICHANGE         0x001a
3178 #define WM_DEVMODECHANGE        0x001b
3179 #define WM_ACTIVATEAPP          0x001c
3180 #define WM_FONTCHANGE           0x001d
3181 #define WM_TIMECHANGE           0x001e
3182 #define WM_CANCELMODE           0x001f
3183 #define WM_SETCURSOR            0x0020
3184 #define WM_MOUSEACTIVATE        0x0021
3185 #define WM_CHILDACTIVATE        0x0022
3186 #define WM_QUEUESYNC            0x0023
3187 #define WM_GETMINMAXINFO        0x0024
3188
3189 #define WM_PAINTICON            0x0026
3190 #define WM_ICONERASEBKGND       0x0027
3191 #define WM_NEXTDLGCTL           0x0028
3192 #define WM_ALTTABACTIVE         0x0029
3193 #define WM_SPOOLERSTATUS        0x002a
3194 #define WM_DRAWITEM             0x002b
3195 #define WM_MEASUREITEM          0x002c
3196 #define WM_DELETEITEM           0x002d
3197 #define WM_VKEYTOITEM           0x002e
3198 #define WM_CHARTOITEM           0x002f
3199 #define WM_SETFONT              0x0030
3200 #define WM_GETFONT              0x0031
3201 #define WM_SETHOTKEY            0x0032
3202 #define WM_GETHOTKEY            0x0033
3203 #define WM_FILESYSCHANGE        0x0034
3204 #define WM_ISACTIVEICON         0x0035
3205 #define WM_QUERYPARKICON        0x0036
3206 #define WM_QUERYDRAGICON        0x0037
3207 #define WM_QUERYSAVESTATE       0x0038
3208 #define WM_COMPAREITEM          0x0039
3209 #define WM_TESTING              0x003a
3210
3211 #define WM_OTHERWINDOWCREATED   0x003c
3212 #define WM_OTHERWINDOWDESTROYED 0x003d
3213 #define WM_ACTIVATESHELLWINDOW  0x003e
3214
3215 #define WM_COMPACTING           0x0041
3216
3217 #define WM_COMMNOTIFY           0x0044
3218 #define WM_WINDOWPOSCHANGING    0x0046
3219 #define WM_WINDOWPOSCHANGED     0x0047
3220 #define WM_POWER                0x0048
3221
3222   /* Win32 4.0 messages */
3223 #define WM_COPYDATA             0x004a
3224 #define WM_CANCELJOURNAL        0x004b
3225 #define WM_NOTIFY               0x004e
3226 #define WM_HELP                 0x0053
3227 #define WM_NOTIFYFORMAT         0x0055
3228
3229 #define WM_CONTEXTMENU          0x007b
3230 #define WM_STYLECHANGING        0x007c
3231 #define WM_STYLECHANGED         0x007d
3232
3233 #define WM_GETICON              0x007f
3234 #define WM_SETICON              0x0080
3235
3236   /* Non-client system messages */
3237 #define WM_NCCREATE         0x0081
3238 #define WM_NCDESTROY        0x0082
3239 #define WM_NCCALCSIZE       0x0083
3240 #define WM_NCHITTEST        0x0084
3241 #define WM_NCPAINT          0x0085
3242 #define WM_NCACTIVATE       0x0086
3243
3244 #define WM_GETDLGCODE       0x0087
3245 #define WM_SYNCPAINT        0x0088
3246 #define WM_SYNCTASK         0x0089
3247
3248   /* Non-client mouse messages */
3249 #define WM_NCMOUSEMOVE      0x00a0
3250 #define WM_NCLBUTTONDOWN    0x00a1
3251 #define WM_NCLBUTTONUP      0x00a2
3252 #define WM_NCLBUTTONDBLCLK  0x00a3
3253 #define WM_NCRBUTTONDOWN    0x00a4
3254 #define WM_NCRBUTTONUP      0x00a5
3255 #define WM_NCRBUTTONDBLCLK  0x00a6
3256 #define WM_NCMBUTTONDOWN    0x00a7
3257 #define WM_NCMBUTTONUP      0x00a8
3258 #define WM_NCMBUTTONDBLCLK  0x00a9
3259
3260   /* Keyboard messages */
3261 #define WM_KEYDOWN          0x0100
3262 #define WM_KEYUP            0x0101
3263 #define WM_CHAR             0x0102
3264 #define WM_DEADCHAR         0x0103
3265 #define WM_SYSKEYDOWN       0x0104
3266 #define WM_SYSKEYUP         0x0105
3267 #define WM_SYSCHAR          0x0106
3268 #define WM_SYSDEADCHAR      0x0107
3269 #define WM_KEYFIRST         WM_KEYDOWN
3270 #define WM_KEYLAST          0x0108
3271
3272 #define WM_INITDIALOG       0x0110 
3273 #define WM_COMMAND          0x0111
3274 #define WM_SYSCOMMAND       0x0112
3275 #define WM_TIMER            0x0113
3276 #define WM_SYSTIMER         0x0118
3277
3278   /* scroll messages */
3279 #define WM_HSCROLL          0x0114
3280 #define WM_VSCROLL          0x0115
3281
3282 /* Menu messages */
3283 #define WM_INITMENU         0x0116
3284 #define WM_INITMENUPOPUP    0x0117
3285
3286 #define WM_MENUSELECT       0x011F
3287 #define WM_MENUCHAR         0x0120
3288 #define WM_ENTERIDLE        0x0121
3289
3290 #define WM_LBTRACKPOINT     0x0131
3291
3292   /* Win32 CTLCOLOR messages */
3293 #define WM_CTLCOLORMSGBOX    0x0132
3294 #define WM_CTLCOLOREDIT      0x0133
3295 #define WM_CTLCOLORLISTBOX   0x0134
3296 #define WM_CTLCOLORBTN       0x0135
3297 #define WM_CTLCOLORDLG       0x0136
3298 #define WM_CTLCOLORSCROLLBAR 0x0137
3299 #define WM_CTLCOLORSTATIC    0x0138
3300
3301   /* Mouse messages */
3302 #define WM_MOUSEMOVE        0x0200
3303 #define WM_LBUTTONDOWN      0x0201
3304 #define WM_LBUTTONUP        0x0202
3305 #define WM_LBUTTONDBLCLK    0x0203
3306 #define WM_RBUTTONDOWN      0x0204
3307 #define WM_RBUTTONUP        0x0205
3308 #define WM_RBUTTONDBLCLK    0x0206
3309 #define WM_MBUTTONDOWN      0x0207
3310 #define WM_MBUTTONUP        0x0208
3311 #define WM_MBUTTONDBLCLK    0x0209
3312 #define WM_MOUSEFIRST       WM_MOUSEMOVE
3313 #define WM_MOUSELAST        WM_MBUTTONDBLCLK
3314
3315 #define WM_PARENTNOTIFY     0x0210
3316 #define WM_ENTERMENULOOP    0x0211
3317 #define WM_EXITMENULOOP     0x0212
3318 #define WM_NEXTMENU         0x0213
3319
3320   /* Win32 4.0 messages */
3321 #define WM_SIZING           0x0214
3322 #define WM_CAPTURECHANGED   0x0215
3323 #define WM_MOVING           0x0216
3324
3325   /* MDI messages */
3326 #define WM_MDICREATE        0x0220
3327 #define WM_MDIDESTROY       0x0221
3328 #define WM_MDIACTIVATE      0x0222
3329 #define WM_MDIRESTORE       0x0223
3330 #define WM_MDINEXT          0x0224
3331 #define WM_MDIMAXIMIZE      0x0225
3332 #define WM_MDITILE          0x0226
3333 #define WM_MDICASCADE       0x0227
3334 #define WM_MDIICONARRANGE   0x0228
3335 #define WM_MDIGETACTIVE     0x0229
3336 #define WM_MDIREFRESHMENU   0x0234
3337
3338   /* D&D messages */
3339 #define WM_DROPOBJECT       0x022A
3340 #define WM_QUERYDROPOBJECT  0x022B
3341 #define WM_BEGINDRAG        0x022C
3342 #define WM_DRAGLOOP         0x022D
3343 #define WM_DRAGSELECT       0x022E
3344 #define WM_DRAGMOVE         0x022F
3345 #define WM_MDISETMENU       0x0230
3346
3347 #define WM_ENTERSIZEMOVE    0x0231
3348 #define WM_EXITSIZEMOVE     0x0232
3349 #define WM_DROPFILES        0x0233
3350
3351 #define WM_CUT               0x0300
3352 #define WM_COPY              0x0301
3353 #define WM_PASTE             0x0302
3354 #define WM_CLEAR             0x0303
3355 #define WM_UNDO              0x0304
3356 #define WM_RENDERFORMAT      0x0305
3357 #define WM_RENDERALLFORMATS  0x0306
3358 #define WM_DESTROYCLIPBOARD  0x0307
3359 #define WM_DRAWCLIPBOARD     0x0308
3360 #define WM_PAINTCLIPBOARD    0x0309
3361 #define WM_VSCROLLCLIPBOARD  0x030A
3362 #define WM_SIZECLIPBOARD     0x030B
3363 #define WM_ASKCBFORMATNAME   0x030C
3364 #define WM_CHANGECBCHAIN     0x030D
3365 #define WM_HSCROLLCLIPBOARD  0x030E
3366 #define WM_QUERYNEWPALETTE   0x030F
3367 #define WM_PALETTEISCHANGING 0x0310
3368 #define WM_PALETTECHANGED    0x0311
3369 #define WM_HOTKEY            0x0312
3370
3371 #define WM_PRINT             0x0317
3372 #define WM_PRINTCLIENT       0x0318
3373
3374   /* MFC messages [370-37f] */
3375
3376 #define WM_QUERYAFXWNDPROC  0x0360
3377 #define WM_SIZEPARENT       0x0361
3378 #define WM_SETMESSAGESTRING 0x0362
3379 #define WM_IDLEUPDATECMDUI  0x0363 
3380 #define WM_INITIALUPDATE    0x0364
3381 #define WM_COMMANDHELP      0x0365
3382 #define WM_HELPHITTEST      0x0366
3383 #define WM_EXITHELPMODE     0x0367
3384 #define WM_RECALCPARENT     0x0368
3385 #define WM_SIZECHILD        0x0369
3386 #define WM_KICKIDLE         0x036A 
3387 #define WM_QUERYCENTERWND   0x036B
3388 #define WM_DISABLEMODAL     0x036C
3389 #define WM_FLOATSTATUS      0x036D 
3390 #define WM_ACTIVATETOPLEVEL 0x036E 
3391 #define WM_QUERY3DCONTROLS  0x036F 
3392 #define WM_SOCKET_NOTIFY    0x0373
3393 #define WM_SOCKET_DEAD      0x0374
3394 #define WM_POPMESSAGESTRING 0x0375
3395 #define WM_OCC_LOADFROMSTREAM           0x0376
3396 #define WM_OCC_LOADFROMSTORAGE          0x0377
3397 #define WM_OCC_INITNEW                  0x0378
3398 #define WM_OCC_LOADFROMSTREAM_EX        0x037A
3399 #define WM_OCC_LOADFROMSTORAGE_EX       0x037B
3400 #define WM_QUEUE_SENTINEL   0x0379
3401
3402 /* end of MFC messages */
3403
3404 #define WM_COALESCE_FIRST    0x0390
3405 #define WM_COALESCE_LAST     0x039F
3406
3407   /* misc messages */
3408 #define WM_NULL             0x0000
3409 #define WM_USER             0x0400
3410 #define WM_CPL_LAUNCH       (WM_USER + 1000)
3411 #define WM_CPL_LAUNCHED     (WM_USER + 1001)
3412
3413   /* Key status flags for mouse events */
3414 #define MK_LBUTTON          0x0001
3415 #define MK_RBUTTON          0x0002
3416 #define MK_SHIFT            0x0004
3417 #define MK_CONTROL          0x0008
3418 #define MK_MBUTTON          0x0010
3419
3420   /* Mouse_Event flags */
3421 #define ME_MOVE             0x01
3422 #define ME_LDOWN            0x02
3423 #define ME_LUP              0x04
3424 #define ME_RDOWN            0x08
3425 #define ME_RUP              0x10
3426
3427   /* Queue status flags */
3428 #define QS_KEY          0x0001
3429 #define QS_MOUSEMOVE    0x0002
3430 #define QS_MOUSEBUTTON  0x0004
3431 #define QS_MOUSE        (QS_MOUSEMOVE | QS_MOUSEBUTTON)
3432 #define QS_POSTMESSAGE  0x0008
3433 #define QS_TIMER        0x0010
3434 #define QS_PAINT        0x0020
3435 #define QS_SENDMESSAGE  0x0040
3436 #define QS_ALLINPUT     0x007f
3437
3438   /* PeekMessage() options */
3439 #define PM_NOREMOVE     0x0000
3440 #define PM_REMOVE       0x0001
3441 #define PM_NOYIELD      0x0002
3442
3443 #define WM_SHOWWINDOW       0x0018
3444
3445 /* WM_SHOWWINDOW wParam codes */
3446 #define SW_PARENTCLOSING    1
3447 #define SW_OTHERMAXIMIZED   2
3448 #define SW_PARENTOPENING    3
3449 #define SW_OTHERRESTORED    4
3450
3451   /* ShowWindow() codes */
3452 #define SW_HIDE             0
3453 #define SW_SHOWNORMAL       1
3454 #define SW_NORMAL           1
3455 #define SW_SHOWMINIMIZED    2
3456 #define SW_SHOWMAXIMIZED    3
3457 #define SW_MAXIMIZE         3
3458 #define SW_SHOWNOACTIVATE   4
3459 #define SW_SHOW             5
3460 #define SW_MINIMIZE         6
3461 #define SW_SHOWMINNOACTIVE  7
3462 #define SW_SHOWNA           8
3463 #define SW_RESTORE          9
3464 #define SW_SHOWDEFAULT      10
3465 #define SW_MAX              10
3466 #define SW_NORMALNA         0xCC        /* undoc. flag in MinMaximize */
3467
3468   /* WM_SIZE message wParam values */
3469 #define SIZE_RESTORED        0
3470 #define SIZE_MINIMIZED       1
3471 #define SIZE_MAXIMIZED       2
3472 #define SIZE_MAXSHOW         3
3473 #define SIZE_MAXHIDE         4
3474 #define SIZENORMAL           SIZE_RESTORED
3475 #define SIZEICONIC           SIZE_MINIMIZED
3476 #define SIZEFULLSCREEN       SIZE_MAXIMIZED
3477 #define SIZEZOOMSHOW         SIZE_MAXSHOW
3478 #define SIZEZOOMHIDE         SIZE_MAXHIDE
3479
3480 /* SetWindowPos() and WINDOWPOS flags */
3481 #define SWP_NOSIZE          0x0001
3482 #define SWP_NOMOVE          0x0002
3483 #define SWP_NOZORDER        0x0004
3484 #define SWP_NOREDRAW        0x0008
3485 #define SWP_NOACTIVATE      0x0010
3486 #define SWP_FRAMECHANGED    0x0020  /* The frame changed: send WM_NCCALCSIZE */
3487 #define SWP_SHOWWINDOW      0x0040
3488 #define SWP_HIDEWINDOW      0x0080
3489 #define SWP_NOCOPYBITS      0x0100
3490 #define SWP_NOOWNERZORDER   0x0200  /* Don't do owner Z ordering */
3491
3492 #define SWP_DRAWFRAME       SWP_FRAMECHANGED
3493 #define SWP_NOREPOSITION    SWP_NOOWNERZORDER
3494
3495 #define SWP_NOSENDCHANGING  0x0400
3496 #define SWP_DEFERERASE      0x2000
3497
3498 #define HWND_DESKTOP        ((HWND32)0)
3499 #define HWND_BROADCAST      ((HWND32)0xffff)
3500
3501 /* SetWindowPos() hwndInsertAfter field values */
3502 #define HWND_TOP            ((HWND32)0)
3503 #define HWND_BOTTOM         ((HWND32)1)
3504 #define HWND_TOPMOST        ((HWND32)-1)
3505 #define HWND_NOTOPMOST      ((HWND32)-2)
3506
3507 /* Flags for TrackPopupMenu */
3508 #define TPM_LEFTBUTTON    0x0000
3509 #define TPM_RIGHTBUTTON   0x0002
3510 #define TPM_LEFTALIGN     0x0000
3511 #define TPM_CENTERALIGN   0x0004
3512 #define TPM_RIGHTALIGN    0x0008
3513 #define TPM_TOPALIGN      0x0000
3514 #define TPM_VCENTERALIGN  0x0010
3515 #define TPM_BOTTOMALIGN   0x0020
3516 #define TPM_HORIZONTAL    0x0000
3517 #define TPM_VERTICAL      0x0040
3518 #define TPM_NONOTIFY      0x0080
3519 #define TPM_RETURNCMD     0x0100
3520
3521 typedef struct 
3522 {
3523     UINT32   cbSize;
3524     RECT32   rcExclude;
3525 } TPMPARAMS, *LPTPMPARAMS;
3526
3527
3528 #define MF_INSERT          0x0000
3529 #define MF_CHANGE          0x0080
3530 #define MF_APPEND          0x0100
3531 #define MF_DELETE          0x0200
3532 #define MF_REMOVE          0x1000
3533 #define MF_END             0x0080
3534
3535 #define MF_ENABLED         0x0000
3536 #define MF_GRAYED          0x0001
3537 #define MF_DISABLED        0x0002
3538 #define MF_STRING          0x0000
3539 #define MF_BITMAP          0x0004
3540 #define MF_UNCHECKED       0x0000
3541 #define MF_CHECKED         0x0008
3542 #define MF_POPUP           0x0010
3543 #define MF_MENUBARBREAK    0x0020
3544 #define MF_MENUBREAK       0x0040
3545 #define MF_UNHILITE        0x0000
3546 #define MF_HILITE          0x0080
3547 #define MF_OWNERDRAW       0x0100
3548 #define MF_USECHECKBITMAPS 0x0200
3549 #define MF_BYCOMMAND       0x0000
3550 #define MF_BYPOSITION      0x0400
3551 #define MF_SEPARATOR       0x0800
3552 #define MF_DEFAULT         0x1000
3553 #define MF_SYSMENU         0x2000
3554 #define MF_HELP            0x4000
3555 #define MF_RIGHTJUSTIFY    0x4000
3556 #define MF_MOUSESELECT     0x8000
3557
3558 /* Flags for extended menu item types.  */
3559 #define MFT_STRING         MF_STRING
3560 #define MFT_BITMAP         MF_BITMAP
3561 #define MFT_MENUBARBREAK   MF_MENUBARBREAK
3562 #define MFT_MENUBREAK      MF_MENUBREAK
3563 #define MFT_OWNERDRAW      MF_OWNERDRAW
3564 #define MFT_RADIOCHECK     0x00000200L
3565 #define MFT_SEPARATOR      MF_SEPARATOR
3566 #define MFT_RIGHTORDER     0x00002000L
3567 #define MFT_RIGHTJUSTIFY   MF_RIGHTJUSTIFY
3568
3569 /* Flags for extended menu item states.  */
3570 #define MFS_GRAYED          0x00000003L
3571 #define MFS_DISABLED        MFS_GRAYED
3572 #define MFS_CHECKED         MF_CHECKED
3573 #define MFS_HILITE          MF_HILITE
3574 #define MFS_ENABLED         MF_ENABLED
3575 #define MFS_UNCHECKED       MF_UNCHECKED
3576 #define MFS_UNHILITE        MF_UNHILITE
3577 #define MFS_DEFAULT         MF_DEFAULT
3578
3579 /* FIXME: not sure this one is correct */
3580 typedef struct {
3581   UINT16    cbSize;
3582   UINT16    fMask;
3583   UINT16    fType;
3584   UINT16    fState;
3585   UINT16    wID;
3586   HMENU16   hSubMenu;
3587   HBITMAP16 hbmpChecked;
3588   HBITMAP16 hbmpUnchecked;
3589   DWORD     dwItemData;
3590   LPSTR     dwTypeData;
3591   UINT16    cch;
3592 } MENUITEMINFO16, *LPMENUITEMINFO16;
3593
3594 typedef struct {
3595   UINT32    cbSize;
3596   UINT32    fMask;
3597   UINT32    fType;
3598   UINT32    fState;
3599   UINT32    wID;
3600   HMENU32   hSubMenu;
3601   HBITMAP32 hbmpChecked;
3602   HBITMAP32 hbmpUnchecked;
3603   DWORD     dwItemData;
3604   LPSTR     dwTypeData;
3605   UINT32    cch;
3606 } MENUITEMINFO32A, *LPMENUITEMINFO32A;
3607
3608 typedef struct {
3609   UINT32    cbSize;
3610   UINT32    fMask;
3611   UINT32    fType;
3612   UINT32    fState;
3613   UINT32    wID;
3614   HMENU32   hSubMenu;
3615   HBITMAP32 hbmpChecked;
3616   HBITMAP32 hbmpUnchecked;
3617   DWORD     dwItemData;
3618   LPWSTR    dwTypeData;
3619   UINT32    cch;
3620 } MENUITEMINFO32W, *LPMENUITEMINFO32W;
3621
3622 DECL_WINELIB_TYPE_AW(MENUITEMINFO)
3623 DECL_WINELIB_TYPE_AW(LPMENUITEMINFO)
3624
3625 /* Field specifiers for MENUITEMINFO[AW] type.  */
3626 #define MIIM_STATE       0x00000001
3627 #define MIIM_ID          0x00000002
3628 #define MIIM_SUBMENU     0x00000004
3629 #define MIIM_CHECKMARKS  0x00000008
3630 #define MIIM_TYPE        0x00000010
3631 #define MIIM_DATA        0x00000020
3632
3633
3634 #ifndef NOWINOFFSETS
3635 #define GCW_HBRBACKGROUND (-10)
3636 #endif
3637
3638 #define MB_OK                   0x00000000
3639 #define MB_OKCANCEL             0x00000001
3640 #define MB_ABORTRETRYIGNORE     0x00000002
3641 #define MB_YESNOCANCEL          0x00000003
3642 #define MB_YESNO                0x00000004
3643 #define MB_RETRYCANCEL          0x00000005
3644 #define MB_TYPEMASK             0x0000000F
3645
3646 #define MB_ICONHAND             0x00000010
3647 #define MB_ICONQUESTION         0x00000020
3648 #define MB_ICONEXCLAMATION      0x00000030
3649 #define MB_ICONASTERISK         0x00000040
3650 #define MB_USERICON             0x00000080
3651 #define MB_ICONMASK             0x000000F0
3652
3653 #define MB_ICONINFORMATION      MB_ICONASTERISK
3654 #define MB_ICONSTOP             MB_ICONHAND
3655 #define MB_ICONWARNING          MB_ICONEXCLAMATION
3656 #define MB_ICONERROR            MB_ICONHAND
3657
3658 #define MB_DEFBUTTON1           0x00000000
3659 #define MB_DEFBUTTON2           0x00000100
3660 #define MB_DEFBUTTON3           0x00000200
3661 #define MB_DEFBUTTON4           0x00000300
3662 #define MB_DEFMASK              0x00000F00
3663
3664 #define MB_APPLMODAL            0x00000000
3665 #define MB_SYSTEMMODAL          0x00001000
3666 #define MB_TASKMODAL            0x00002000
3667 #define MB_MODEMASK             0x00003000
3668
3669 #define MB_HELP                 0x00004000
3670 #define MB_NOFOCUS              0x00008000
3671 #define MB_MISCMASK             0x0000C000
3672
3673 #define MB_SETFOREGROUND        0x00010000
3674 #define MB_DEFAULT_DESKTOP_ONLY 0x00020000
3675 #define MB_SERVICE_NOTIFICATION 0x00040000
3676 #define MB_TOPMOST              0x00040000
3677 #define MB_RIGHT                0x00080000
3678 #define MB_RTLREADING           0x00100000
3679
3680
3681 #define DT_TOP 0
3682 #define DT_LEFT 0
3683 #define DT_CENTER 1
3684 #define DT_RIGHT 2
3685 #define DT_VCENTER 4
3686 #define DT_BOTTOM 8
3687 #define DT_WORDBREAK 16
3688 #define DT_SINGLELINE 32
3689 #define DT_EXPANDTABS 64
3690 #define DT_TABSTOP 128
3691 #define DT_NOCLIP 256
3692 #define DT_EXTERNALLEADING 512
3693 #define DT_CALCRECT 1024
3694 #define DT_NOPREFIX 2048
3695 #define DT_INTERNAL 4096
3696
3697 /* DrawCaption()/DrawCaptionTemp() flags */
3698 #define DC_ACTIVE               0x0001
3699 #define DC_SMALLCAP             0x0002
3700 #define DC_ICON                 0x0004
3701 #define DC_TEXT                 0x0008
3702 #define DC_INBUTTON             0x0010
3703
3704 /* DrawEdge() flags */
3705 #define BDR_RAISEDOUTER    0x0001
3706 #define BDR_SUNKENOUTER    0x0002
3707 #define BDR_RAISEDINNER    0x0004
3708 #define BDR_SUNKENINNER    0x0008
3709
3710 #define BDR_OUTER          0x0003
3711 #define BDR_INNER          0x000c
3712 #define BDR_RAISED         0x0005
3713 #define BDR_SUNKEN         0x000a
3714
3715 #define EDGE_RAISED        (BDR_RAISEDOUTER | BDR_RAISEDINNER)
3716 #define EDGE_SUNKEN        (BDR_SUNKENOUTER | BDR_SUNKENINNER)
3717 #define EDGE_ETCHED        (BDR_SUNKENOUTER | BDR_RAISEDINNER)
3718 #define EDGE_BUMP          (BDR_RAISEDOUTER | BDR_SUNKENINNER)
3719
3720 /* border flags */
3721 #define BF_LEFT            0x0001
3722 #define BF_TOP             0x0002
3723 #define BF_RIGHT           0x0004
3724 #define BF_BOTTOM          0x0008
3725 #define BF_DIAGONAL        0x0010
3726 #define BF_MIDDLE          0x0800  /* Fill in the middle */
3727 #define BF_SOFT            0x1000  /* For softer buttons */
3728 #define BF_ADJUST          0x2000  /* Calculate the space left over */
3729 #define BF_FLAT            0x4000  /* For flat rather than 3D borders */
3730 #define BF_MONO            0x8000  /* For monochrome borders */
3731 #define BF_TOPLEFT         (BF_TOP | BF_LEFT)
3732 #define BF_TOPRIGHT        (BF_TOP | BF_RIGHT)
3733 #define BF_BOTTOMLEFT      (BF_BOTTOM | BF_LEFT)
3734 #define BF_BOTTOMRIGHT     (BF_BOTTOM | BF_RIGHT)
3735 #define BF_RECT            (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
3736 #define BF_DIAGONAL_ENDTOPRIGHT     (BF_DIAGONAL | BF_TOP | BF_RIGHT)
3737 #define BF_DIAGONAL_ENDTOPLEFT      (BF_DIAGONAL | BF_TOP | BF_LEFT)
3738 #define BF_DIAGONAL_ENDBOTTOMLEFT   (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
3739 #define BF_DIAGONAL_ENDBOTTOMRIGHT  (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
3740
3741 /* DrawFrameControl() uType's */
3742
3743 #define DFC_CAPTION             1
3744 #define DFC_MENU                2
3745 #define DFC_SCROLL              3
3746 #define DFC_BUTTON              4
3747
3748 /* uState's */
3749
3750 #define DFCS_CAPTIONCLOSE       0x0000
3751 #define DFCS_CAPTIONMIN         0x0001
3752 #define DFCS_CAPTIONMAX         0x0002
3753 #define DFCS_CAPTIONRESTORE     0x0003
3754 #define DFCS_CAPTIONHELP        0x0004          /* Windows 95 only */
3755
3756 #define DFCS_MENUARROW          0x0000
3757 #define DFCS_MENUCHECK          0x0001
3758 #define DFCS_MENUBULLET         0x0002
3759 #define DFCS_MENUARROWRIGHT     0x0004
3760
3761 #define DFCS_SCROLLUP            0x0000
3762 #define DFCS_SCROLLDOWN          0x0001
3763 #define DFCS_SCROLLLEFT          0x0002
3764 #define DFCS_SCROLLRIGHT         0x0003
3765 #define DFCS_SCROLLCOMBOBOX      0x0005
3766 #define DFCS_SCROLLSIZEGRIP      0x0008
3767 #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
3768
3769 #define DFCS_BUTTONCHECK        0x0000
3770 #define DFCS_BUTTONRADIOIMAGE   0x0001
3771 #define DFCS_BUTTONRADIOMASK    0x0002          /* to draw nonsquare button */
3772 #define DFCS_BUTTONRADIO        0x0004
3773 #define DFCS_BUTTON3STATE       0x0008
3774 #define DFCS_BUTTONPUSH         0x0010
3775
3776 /* additional state of the control */
3777
3778 #define DFCS_INACTIVE           0x0100
3779 #define DFCS_PUSHED             0x0200
3780 #define DFCS_CHECKED            0x0400
3781 #define DFCS_ADJUSTRECT         0x2000          /* exclude surrounding edge */
3782 #define DFCS_FLAT               0x4000
3783 #define DFCS_MONO               0x8000
3784
3785 /* DrawState defines ... */
3786 typedef BOOL16 (CALLBACK *DRAWSTATEPROC16)(HDC16,LPARAM,WPARAM16,INT16,INT16);
3787 typedef BOOL32 (CALLBACK *DRAWSTATEPROC32)(HDC32,LPARAM,WPARAM32,INT32,INT32);
3788 DECL_WINELIB_TYPE(DRAWSTATEPROC)
3789
3790 /* Image type */
3791 #define DST_COMPLEX     0x0000
3792 #define DST_TEXT        0x0001
3793 #define DST_PREFIXTEXT  0x0002
3794 #define DST_ICON        0x0003
3795 #define DST_BITMAP      0x0004
3796
3797 /* State type */
3798 #define DSS_NORMAL      0x0000
3799 #define DSS_UNION       0x0010  /* Gray string appearance */
3800 #define DSS_DISABLED    0x0020
3801 #define DSS_DEFAULT     0x0040  /* Make it bold */
3802 #define DSS_MONO        0x0080
3803 #define DSS_RIGHT       0x8000
3804
3805 /* Window Styles */
3806 #define WS_OVERLAPPED    0x00000000L
3807 #define WS_POPUP         0x80000000L
3808 #define WS_CHILD         0x40000000L
3809 #define WS_MINIMIZE      0x20000000L
3810 #define WS_VISIBLE       0x10000000L
3811 #define WS_DISABLED      0x08000000L
3812 #define WS_CLIPSIBLINGS  0x04000000L
3813 #define WS_CLIPCHILDREN  0x02000000L
3814 #define WS_MAXIMIZE      0x01000000L
3815 #define WS_CAPTION       0x00C00000L
3816 #define WS_BORDER        0x00800000L
3817 #define WS_DLGFRAME      0x00400000L
3818 #define WS_VSCROLL       0x00200000L
3819 #define WS_HSCROLL       0x00100000L
3820 #define WS_SYSMENU       0x00080000L
3821 #define WS_THICKFRAME    0x00040000L
3822 #define WS_GROUP         0x00020000L
3823 #define WS_TABSTOP       0x00010000L
3824 #define WS_MINIMIZEBOX   0x00020000L
3825 #define WS_MAXIMIZEBOX   0x00010000L
3826 #define WS_TILED         WS_OVERLAPPED
3827 #define WS_ICONIC        WS_MINIMIZE
3828 #define WS_SIZEBOX       WS_THICKFRAME
3829 #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
3830 #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
3831 #define WS_CHILDWINDOW (WS_CHILD)
3832 #define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW)
3833
3834 /* Window extended styles */
3835 #define WS_EX_DLGMODALFRAME    0x00000001L
3836 #define WS_EX_DRAGDETECT       0x00000002L
3837 #define WS_EX_NOPARENTNOTIFY   0x00000004L
3838 #define WS_EX_TOPMOST          0x00000008L
3839 #define WS_EX_ACCEPTFILES      0x00000010L
3840 #define WS_EX_TRANSPARENT      0x00000020L
3841
3842 /* New Win95/WinNT4 styles */
3843 #define WS_EX_MDICHILD         0x00000040L
3844 #define WS_EX_TOOLWINDOW       0x00000080L
3845 #define WS_EX_WINDOWEDGE       0x00000100L
3846 #define WS_EX_CLIENTEDGE       0x00000200L
3847 #define WS_EX_CONTEXTHELP      0x00000400L
3848 #define WS_EX_RIGHT            0x00001000L
3849 #define WS_EX_LEFT             0x00000000L
3850 #define WS_EX_RTLREADING       0x00002000L
3851 #define WS_EX_LTRREADING       0x00000000L
3852 #define WS_EX_LEFTSCROLLBAR    0x00004000L
3853 #define WS_EX_RIGHTSCROLLBAR   0x00000000L
3854 #define WS_EX_CONTROLPARENT    0x00010000L
3855 #define WS_EX_STATICEDGE       0x00020000L
3856 #define WS_EX_APPWINDOW        0x00040000L
3857
3858 #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE|WS_EX_CLIENTEDGE)
3859 #define WS_EX_PALETTEWINDOW    (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST)
3860
3861 /* Window scrolling */
3862 #define SW_SCROLLCHILDREN      0x0001
3863 #define SW_INVALIDATE          0x0002
3864 #define SW_ERASE               0x0004
3865
3866 /* CreateWindow() coordinates */
3867 #define CW_USEDEFAULT16 ((INT16)0x8000)
3868 #define CW_USEDEFAULT32 ((INT32)0x80000000)
3869 #define CW_USEDEFAULT   WINELIB_NAME(CW_USEDEFAULT)
3870
3871 /* Button control styles */
3872 #define BS_PUSHBUTTON          0x00000000L
3873 #define BS_DEFPUSHBUTTON       0x00000001L
3874 #define BS_CHECKBOX            0x00000002L
3875 #define BS_AUTOCHECKBOX        0x00000003L
3876 #define BS_RADIOBUTTON         0x00000004L
3877 #define BS_3STATE              0x00000005L
3878 #define BS_AUTO3STATE          0x00000006L
3879 #define BS_GROUPBOX            0x00000007L
3880 #define BS_USERBUTTON          0x00000008L
3881 #define BS_AUTORADIOBUTTON     0x00000009L
3882 #define BS_OWNERDRAW           0x0000000BL
3883 #define BS_LEFTTEXT            0x00000020L
3884
3885 /* Win16 button control messages */
3886 #define BM_GETCHECK16          (WM_USER+0)
3887 #define BM_SETCHECK16          (WM_USER+1)
3888 #define BM_GETSTATE16          (WM_USER+2)
3889 #define BM_SETSTATE16          (WM_USER+3)
3890 #define BM_SETSTYLE16          (WM_USER+4)
3891 #define BM_CLICK16             WM_NULL  /* Does not exist in Win16 */
3892 #define BM_GETIMAGE16          WM_NULL  /* Does not exist in Win16 */
3893 #define BM_SETIMAGE16          WM_NULL  /* Does not exist in Win16 */
3894 /* Win32 button control messages */
3895 #define BM_GETCHECK32          0x00f0
3896 #define BM_SETCHECK32          0x00f1
3897 #define BM_GETSTATE32          0x00f2
3898 #define BM_SETSTATE32          0x00f3
3899 #define BM_SETSTYLE32          0x00f4
3900 #define BM_CLICK32             0x00f5
3901 #define BM_GETIMAGE32          0x00f6
3902 #define BM_SETIMAGE32          0x00f7
3903 /* Winelib button control messages */
3904 #define BM_GETCHECK            WINELIB_NAME(BM_GETCHECK)
3905 #define BM_SETCHECK            WINELIB_NAME(BM_SETCHECK)
3906 #define BM_GETSTATE            WINELIB_NAME(BM_GETSTATE)
3907 #define BM_SETSTATE            WINELIB_NAME(BM_SETSTATE)
3908 #define BM_SETSTYLE            WINELIB_NAME(BM_SETSTYLE)
3909 #define BM_CLICK               WINELIB_NAME(BM_CLICK)
3910 #define BM_GETIMAGE            WINELIB_NAME(BM_GETIMAGE)
3911 #define BM_SETIMAGE            WINELIB_NAME(BM_SETIMAGE)
3912
3913 /* Button notification codes */
3914 #define BN_CLICKED             0
3915 #define BN_PAINT               1
3916 #define BN_HILITE              2
3917 #define BN_UNHILITE            3
3918 #define BN_DISABLE             4
3919 #define BN_DOUBLECLICKED       5
3920
3921 /* Static Control Styles */
3922 #define SS_LEFT             0x00000000L
3923 #define SS_CENTER           0x00000001L
3924 #define SS_RIGHT            0x00000002L
3925 #define SS_ICON             0x00000003L
3926 #define SS_BLACKRECT        0x00000004L
3927 #define SS_GRAYRECT         0x00000005L
3928 #define SS_WHITERECT        0x00000006L
3929 #define SS_BLACKFRAME       0x00000007L
3930 #define SS_GRAYFRAME        0x00000008L
3931 #define SS_WHITEFRAME       0x00000009L
3932
3933 #define SS_SIMPLE           0x0000000BL
3934 #define SS_LEFTNOWORDWRAP   0x0000000CL
3935
3936 #define SS_OWNERDRAW        0x0000000DL
3937 #define SS_BITMAP           0x0000000EL
3938 #define SS_ENHMETAFILE      0x0000000FL
3939
3940 #define SS_ETCHEDHORZ       0x00000010L
3941 #define SS_ETCHEDVERT       0x00000011L
3942 #define SS_ETCHEDFRAME      0x00000012L
3943 #define SS_TYPEMASK         0x0000001FL
3944
3945 #define SS_NOPREFIX         0x00000080L
3946 #define SS_NOTIFY           0x00000100L
3947 #define SS_CENTERIMAGE      0x00000200L
3948 #define SS_RIGHTJUST        0x00000400L
3949 #define SS_REALSIZEIMAGE    0x00000800L
3950 #define SS_SUNKEN           0x00001000L
3951
3952 /* Static Control Messages */
3953 #define STM_SETICON16       (WM_USER+0)
3954 #define STM_SETICON32       0x0170
3955 #define STM_SETICON         WINELIB_NAME(STM_SETICON)
3956 #define STM_GETICON16       (WM_USER+1)
3957 #define STM_GETICON32       0x0171
3958 #define STM_GETICON         WINELIB_NAME(STM_GETICON)
3959 #define STM_SETIMAGE        0x0172
3960 #define STM_GETIMAGE        0x0173
3961
3962 /* WM_H/VSCROLL commands */
3963 #define SB_LINEUP           0
3964 #define SB_LINELEFT         0
3965 #define SB_LINEDOWN         1
3966 #define SB_LINERIGHT        1
3967 #define SB_PAGEUP           2
3968 #define SB_PAGELEFT         2
3969 #define SB_PAGEDOWN         3
3970 #define SB_PAGERIGHT        3
3971 #define SB_THUMBPOSITION    4
3972 #define SB_THUMBTRACK       5
3973 #define SB_TOP              6
3974 #define SB_LEFT             6
3975 #define SB_BOTTOM           7
3976 #define SB_RIGHT            7
3977 #define SB_ENDSCROLL        8
3978
3979 /* Scroll bar selection constants */
3980 #define SB_HORZ             0
3981 #define SB_VERT             1
3982 #define SB_CTL              2
3983 #define SB_BOTH             3
3984
3985 /* Scrollbar styles */
3986 #define SBS_HORZ                    0x0000L
3987 #define SBS_VERT                    0x0001L
3988 #define SBS_TOPALIGN                0x0002L
3989 #define SBS_LEFTALIGN               0x0002L
3990 #define SBS_BOTTOMALIGN             0x0004L
3991 #define SBS_RIGHTALIGN              0x0004L
3992 #define SBS_SIZEBOXTOPLEFTALIGN     0x0002L
3993 #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
3994 #define SBS_SIZEBOX                 0x0008L
3995
3996 /* EnableScrollBar() flags */
3997 #define ESB_ENABLE_BOTH     0x0000
3998 #define ESB_DISABLE_BOTH    0x0003
3999
4000 #define ESB_DISABLE_LEFT    0x0001
4001 #define ESB_DISABLE_RIGHT   0x0002
4002
4003 #define ESB_DISABLE_UP      0x0001
4004 #define ESB_DISABLE_DOWN    0x0002
4005
4006 #define ESB_DISABLE_LTUP    ESB_DISABLE_LEFT
4007 #define ESB_DISABLE_RTDN    ESB_DISABLE_RIGHT
4008
4009 /* Scrollbar messages */
4010 #define SBM_SETPOS16             (WM_USER+0)
4011 #define SBM_SETPOS32             0x00e0
4012 #define SBM_SETPOS               WINELIB_NAME(SBM_SETPOS)
4013 #define SBM_GETPOS16             (WM_USER+1)
4014 #define SBM_GETPOS32             0x00e1
4015 #define SBM_GETPOS               WINELIB_NAME(SBM_GETPOS)
4016 #define SBM_SETRANGE16           (WM_USER+2)
4017 #define SBM_SETRANGE32           0x00e2
4018 #define SBM_SETRANGE             WINELIB_NAME(SBM_SETRANGE)
4019 #define SBM_GETRANGE16           (WM_USER+3)
4020 #define SBM_GETRANGE32           0x00e3
4021 #define SBM_GETRANGE             WINELIB_NAME(SBM_GETRANGE)
4022 #define SBM_ENABLE_ARROWS16      (WM_USER+4)
4023 #define SBM_ENABLE_ARROWS32      0x00e4
4024 #define SBM_ENABLE_ARROWS        WINELIB_NAME(SBM_ENABLE_ARROWS)
4025 #define SBM_SETRANGEREDRAW16     WM_NULL  /* Not in Win16 */
4026 #define SBM_SETRANGEREDRAW32     0x00e6
4027 #define SBM_SETRANGEREDRAW       WINELIB_NAME(SBM_SETRANGEREDRAW)
4028 #define SBM_SETSCROLLINFO16      WM_NULL  /* Not in Win16 */
4029 #define SBM_SETSCROLLINFO32      0x00e9
4030 #define SBM_SETSCROLLINFO        WINELIB_NAME(SBM_SETSCROLLINFO)
4031 #define SBM_GETSCROLLINFO16      WM_NULL  /* Not in Win16 */
4032 #define SBM_GETSCROLLINFO32      0x00ea
4033 #define SBM_GETSCROLLINFO        WINELIB_NAME(SBM_GETSCROLLINFO)
4034
4035 /* Scrollbar info */
4036 typedef struct
4037 {
4038     UINT32    cbSize;
4039     UINT32    fMask;
4040     INT32     nMin;
4041     INT32     nMax;
4042     UINT32    nPage;
4043     INT32     nPos;
4044     INT32     nTrackPos;
4045 } SCROLLINFO, *LPSCROLLINFO;
4046  
4047 /* GetScrollInfo() flags */ 
4048 #define SIF_RANGE           0x0001
4049 #define SIF_PAGE            0x0002
4050 #define SIF_POS             0x0004
4051 #define SIF_DISABLENOSCROLL 0x0008
4052 #define SIF_TRACKPOS        0x0010
4053 #define SIF_ALL             (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
4054
4055 /* Listbox styles */
4056 #define LBS_NOTIFY               0x0001
4057 #define LBS_SORT                 0x0002
4058 #define LBS_NOREDRAW             0x0004
4059 #define LBS_MULTIPLESEL          0x0008
4060 #define LBS_OWNERDRAWFIXED       0x0010
4061 #define LBS_OWNERDRAWVARIABLE    0x0020
4062 #define LBS_HASSTRINGS           0x0040
4063 #define LBS_USETABSTOPS          0x0080
4064 #define LBS_NOINTEGRALHEIGHT     0x0100
4065 #define LBS_MULTICOLUMN          0x0200
4066 #define LBS_WANTKEYBOARDINPUT    0x0400
4067 #define LBS_EXTENDEDSEL          0x0800
4068 #define LBS_DISABLENOSCROLL      0x1000
4069 #define LBS_NODATA               0x2000
4070 #define LBS_NOSEL                0x4000
4071 #define LBS_STANDARD  (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
4072
4073 /* Listbox messages */
4074 #define LB_ADDSTRING16           (WM_USER+1)
4075 #define LB_ADDSTRING32           0x0180
4076 #define LB_ADDSTRING             WINELIB_NAME(LB_ADDSTRING)
4077 #define LB_INSERTSTRING16        (WM_USER+2)
4078 #define LB_INSERTSTRING32        0x0181
4079 #define LB_INSERTSTRING          WINELIB_NAME(LB_INSERTSTRING)
4080 #define LB_DELETESTRING16        (WM_USER+3)
4081 #define LB_DELETESTRING32        0x0182
4082 #define LB_DELETESTRING          WINELIB_NAME(LB_DELETESTRING)
4083 #define LB_SELITEMRANGEEX16      (WM_USER+4)
4084 #define LB_SELITEMRANGEEX32      0x0183
4085 #define LB_SELITEMRANGEEX        WINELIB_NAME(LB_SELITEMRANGEEX)
4086 #define LB_RESETCONTENT16        (WM_USER+5)
4087 #define LB_RESETCONTENT32        0x0184
4088 #define LB_RESETCONTENT          WINELIB_NAME(LB_RESETCONTENT)
4089 #define LB_SETSEL16              (WM_USER+6)
4090 #define LB_SETSEL32              0x0185
4091 #define LB_SETSEL                WINELIB_NAME(LB_SETSEL)
4092 #define LB_SETCURSEL16           (WM_USER+7)
4093 #define LB_SETCURSEL32           0x0186
4094 #define LB_SETCURSEL             WINELIB_NAME(LB_SETCURSEL)
4095 #define LB_GETSEL16              (WM_USER+8)
4096 #define LB_GETSEL32              0x0187
4097 #define LB_GETSEL                WINELIB_NAME(LB_GETSEL)
4098 #define LB_GETCURSEL16           (WM_USER+9)
4099 #define LB_GETCURSEL32           0x0188
4100 #define LB_GETCURSEL             WINELIB_NAME(LB_GETCURSEL)
4101 #define LB_GETTEXT16             (WM_USER+10)
4102 #define LB_GETTEXT32             0x0189
4103 #define LB_GETTEXT               WINELIB_NAME(LB_GETTEXT)
4104 #define LB_GETTEXTLEN16          (WM_USER+11)
4105 #define LB_GETTEXTLEN32          0x018a
4106 #define LB_GETTEXTLEN            WINELIB_NAME(LB_GETTEXTLEN)
4107 #define LB_GETCOUNT16            (WM_USER+12)
4108 #define LB_GETCOUNT32            0x018b
4109 #define LB_GETCOUNT              WINELIB_NAME(LB_GETCOUNT)
4110 #define LB_SELECTSTRING16        (WM_USER+13)
4111 #define LB_SELECTSTRING32        0x018c
4112 #define LB_SELECTSTRING          WINELIB_NAME(LB_SELECTSTRING)
4113 #define LB_DIR16                 (WM_USER+14)
4114 #define LB_DIR32                 0x018d
4115 #define LB_DIR                   WINELIB_NAME(LB_DIR)
4116 #define LB_GETTOPINDEX16         (WM_USER+15)
4117 #define LB_GETTOPINDEX32         0x018e
4118 #define LB_GETTOPINDEX           WINELIB_NAME(LB_GETTOPINDEX)
4119 #define LB_FINDSTRING16          (WM_USER+16)
4120 #define LB_FINDSTRING32          0x018f
4121 #define LB_FINDSTRING            WINELIB_NAME(LB_FINDSTRING)
4122 #define LB_GETSELCOUNT16         (WM_USER+17)
4123 #define LB_GETSELCOUNT32         0x0190
4124 #define LB_GETSELCOUNT           WINELIB_NAME(LB_GETSELCOUNT)
4125 #define LB_GETSELITEMS16         (WM_USER+18)
4126 #define LB_GETSELITEMS32         0x0191
4127 #define LB_GETSELITEMS           WINELIB_NAME(LB_GETSELITEMS)
4128 #define LB_SETTABSTOPS16         (WM_USER+19)
4129 #define LB_SETTABSTOPS32         0x0192
4130 #define LB_SETTABSTOPS           WINELIB_NAME(LB_SETTABSTOPS)
4131 #define LB_GETHORIZONTALEXTENT16 (WM_USER+20)
4132 #define LB_GETHORIZONTALEXTENT32 0x0193
4133 #define LB_GETHORIZONTALEXTENT   WINELIB_NAME(LB_GETHORIZONTALEXTENT)
4134 #define LB_SETHORIZONTALEXTENT16 (WM_USER+21)
4135 #define LB_SETHORIZONTALEXTENT32 0x0194
4136 #define LB_SETHORIZONTALEXTENT   WINELIB_NAME(LB_SETHORIZONTALEXTENT)
4137 #define LB_SETCOLUMNWIDTH16      (WM_USER+22)
4138 #define LB_SETCOLUMNWIDTH32      0x0195
4139 #define LB_SETCOLUMNWIDTH        WINELIB_NAME(LB_SETCOLUMNWIDTH)
4140 #define LB_ADDFILE16             (WM_USER+23)
4141 #define LB_ADDFILE32             0x0196
4142 #define LB_ADDFILE               WINELIB_NAME(LB_ADDFILE)
4143 #define LB_SETTOPINDEX16         (WM_USER+24)
4144 #define LB_SETTOPINDEX32         0x0197
4145 #define LB_SETTOPINDEX           WINELIB_NAME(LB_SETTOPINDEX)
4146 #define LB_GETITEMRECT16         (WM_USER+25)
4147 #define LB_GETITEMRECT32         0x0198
4148 #define LB_GETITEMRECT           WINELIB_NAME(LB_GETITEMRECT)
4149 #define LB_GETITEMDATA16         (WM_USER+26)
4150 #define LB_GETITEMDATA32         0x0199
4151 #define LB_GETITEMDATA           WINELIB_NAME(LB_GETITEMDATA)
4152 #define LB_SETITEMDATA16         (WM_USER+27)
4153 #define LB_SETITEMDATA32         0x019a
4154 #define LB_SETITEMDATA           WINELIB_NAME(LB_SETITEMDATA)
4155 #define LB_SELITEMRANGE16        (WM_USER+28)
4156 #define LB_SELITEMRANGE32        0x019b
4157 #define LB_SELITEMRANGE          WINELIB_NAME(LB_SELITEMRANGE)
4158 #define LB_SETANCHORINDEX16      (WM_USER+29)
4159 #define LB_SETANCHORINDEX32      0x019c
4160 #define LB_SETANCHORINDEX        WINELIB_NAME(LB_SETANCHORINDEX)
4161 #define LB_GETANCHORINDEX16      (WM_USER+30)
4162 #define LB_GETANCHORINDEX32      0x019d
4163 #define LB_GETANCHORINDEX        WINELIB_NAME(LB_GETANCHORINDEX)
4164 #define LB_SETCARETINDEX16       (WM_USER+31)
4165 #define LB_SETCARETINDEX32       0x019e
4166 #define LB_SETCARETINDEX         WINELIB_NAME(LB_SETCARETINDEX)
4167 #define LB_GETCARETINDEX16       (WM_USER+32)
4168 #define LB_GETCARETINDEX32       0x019f
4169 #define LB_GETCARETINDEX         WINELIB_NAME(LB_GETCARETINDEX)
4170 #define LB_SETITEMHEIGHT16       (WM_USER+33)
4171 #define LB_SETITEMHEIGHT32       0x01a0
4172 #define LB_SETITEMHEIGHT         WINELIB_NAME(LB_SETITEMHEIGHT)
4173 #define LB_GETITEMHEIGHT16       (WM_USER+34)
4174 #define LB_GETITEMHEIGHT32       0x01a1
4175 #define LB_GETITEMHEIGHT         WINELIB_NAME(LB_GETITEMHEIGHT)
4176 #define LB_FINDSTRINGEXACT16     (WM_USER+35)
4177 #define LB_FINDSTRINGEXACT32     0x01a2
4178 #define LB_FINDSTRINGEXACT       WINELIB_NAME(LB_FINDSTRINGEXACT)
4179 #define LB_CARETON16             (WM_USER+36)
4180 #define LB_CARETON32             0x01a3
4181 #define LB_CARETON               WINELIB_NAME(LB_CARETON)
4182 #define LB_CARETOFF16            (WM_USER+37)
4183 #define LB_CARETOFF32            0x01a4
4184 #define LB_CARETOFF              WINELIB_NAME(LB_CARETOFF)
4185 #define LB_SETLOCALE16           WM_NULL  /* Not in Win16 */
4186 #define LB_SETLOCALE32           0x01a5
4187 #define LB_SETLOCALE             WINELIB_NAME(LB_SETLOCALE)
4188 #define LB_GETLOCALE16           WM_NULL  /* Not in Win16 */
4189 #define LB_GETLOCALE32           0x01a6
4190 #define LB_GETLOCALE             WINELIB_NAME(LB_GETLOCALE)
4191 #define LB_SETCOUNT16            WM_NULL  /* Not in Win16 */
4192 #define LB_SETCOUNT32            0x01a7
4193 #define LB_SETCOUNT              WINELIB_NAME(LB_SETCOUNT)
4194 #define LB_INITSTORAGE16         WM_NULL  /* Not in Win16 */
4195 #define LB_INITSTORAGE32         0x01a8
4196 #define LB_INITSTORAGE           WINELIB_NAME(LB_INITSTORAGE)
4197 #define LB_ITEMFROMPOINT16       WM_NULL  /* Not in Win16 */
4198 #define LB_ITEMFROMPOINT32       0x01a9
4199 #define LB_ITEMFROMPOINT         WINELIB_NAME(LB_ITEMFROMPOINT)
4200
4201 /* Listbox notification codes */
4202 #define LBN_ERRSPACE        (-2)
4203 #define LBN_SELCHANGE       1
4204 #define LBN_DBLCLK          2
4205 #define LBN_SELCANCEL       3
4206 #define LBN_SETFOCUS        4
4207 #define LBN_KILLFOCUS       5
4208
4209 /* Listbox message return values */
4210 #define LB_OKAY             0
4211 #define LB_ERR              (-1)
4212 #define LB_ERRSPACE         (-2)
4213
4214 #define LB_CTLCODE          0L
4215
4216 /* Combo box styles */
4217 #define CBS_SIMPLE            0x0001L
4218 #define CBS_DROPDOWN          0x0002L
4219 #define CBS_DROPDOWNLIST      0x0003L
4220 #define CBS_OWNERDRAWFIXED    0x0010L
4221 #define CBS_OWNERDRAWVARIABLE 0x0020L
4222 #define CBS_AUTOHSCROLL       0x0040L
4223 #define CBS_OEMCONVERT        0x0080L
4224 #define CBS_SORT              0x0100L
4225 #define CBS_HASSTRINGS        0x0200L
4226 #define CBS_NOINTEGRALHEIGHT  0x0400L
4227 #define CBS_DISABLENOSCROLL   0x0800L
4228
4229 #define CBS_UPPERCASE         0x2000L
4230 #define CBS_LOWERCASE         0x4000L
4231
4232
4233 /* Combo box messages */
4234 #define CB_GETEDITSEL16            (WM_USER+0)
4235 #define CB_GETEDITSEL32            0x0140
4236 #define CB_GETEDITSEL              WINELIB_NAME(CB_GETEDITSEL)
4237 #define CB_LIMITTEXT16             (WM_USER+1)
4238 #define CB_LIMITTEXT32             0x0141
4239 #define CB_LIMITTEXT               WINELIB_NAME(CB_LIMITTEXT)
4240 #define CB_SETEDITSEL16            (WM_USER+2)
4241 #define CB_SETEDITSEL32            0x0142
4242 #define CB_SETEDITSEL              WINELIB_NAME(CB_SETEDITSEL)
4243 #define CB_ADDSTRING16             (WM_USER+3)
4244 #define CB_ADDSTRING32             0x0143
4245 #define CB_ADDSTRING               WINELIB_NAME(CB_ADDSTRING)
4246 #define CB_DELETESTRING16          (WM_USER+4)
4247 #define CB_DELETESTRING32          0x0144
4248 #define CB_DELETESTRING            WINELIB_NAME(CB_DELETESTRING)
4249 #define CB_DIR16                   (WM_USER+5)
4250 #define CB_DIR32                   0x0145
4251 #define CB_DIR                     WINELIB_NAME(CB_DIR)
4252 #define CB_GETCOUNT16              (WM_USER+6)
4253 #define CB_GETCOUNT32              0x0146
4254 #define CB_GETCOUNT                WINELIB_NAME(CB_GETCOUNT)
4255 #define CB_GETCURSEL16             (WM_USER+7)
4256 #define CB_GETCURSEL32             0x0147
4257 #define CB_GETCURSEL               WINELIB_NAME(CB_GETCURSEL)
4258 #define CB_GETLBTEXT16             (WM_USER+8)
4259 #define CB_GETLBTEXT32             0x0148
4260 #define CB_GETLBTEXT               WINELIB_NAME(CB_GETLBTEXT)
4261 #define CB_GETLBTEXTLEN16          (WM_USER+9)
4262 #define CB_GETLBTEXTLEN32          0x0149
4263 #define CB_GETLBTEXTLEN            WINELIB_NAME(CB_GETLBTEXTLEN)
4264 #define CB_INSERTSTRING16          (WM_USER+10)
4265 #define CB_INSERTSTRING32          0x014a
4266 #define CB_INSERTSTRING            WINELIB_NAME(CB_INSERTSTRING)
4267 #define CB_RESETCONTENT16          (WM_USER+11)
4268 #define CB_RESETCONTENT32          0x014b
4269 #define CB_RESETCONTENT            WINELIB_NAME(CB_RESETCONTENT)
4270 #define CB_FINDSTRING16            (WM_USER+12)
4271 #define CB_FINDSTRING32            0x014c
4272 #define CB_FINDSTRING              WINELIB_NAME(CB_FINDSTRING)
4273 #define CB_SELECTSTRING16          (WM_USER+13)
4274 #define CB_SELECTSTRING32          0x014d
4275 #define CB_SELECTSTRING            WINELIB_NAME(CB_SELECTSTRING)
4276 #define CB_SETCURSEL16             (WM_USER+14)
4277 #define CB_SETCURSEL32             0x014e
4278 #define CB_SETCURSEL               WINELIB_NAME(CB_SETCURSEL)
4279 #define CB_SHOWDROPDOWN16          (WM_USER+15)
4280 #define CB_SHOWDROPDOWN32          0x014f
4281 #define CB_SHOWDROPDOWN            WINELIB_NAME(CB_SHOWDROPDOWN)
4282 #define CB_GETITEMDATA16           (WM_USER+16)
4283 #define CB_GETITEMDATA32           0x0150
4284 #define CB_GETITEMDATA             WINELIB_NAME(CB_GETITEMDATA)
4285 #define CB_SETITEMDATA16           (WM_USER+17)
4286 #define CB_SETITEMDATA32           0x0151
4287 #define CB_SETITEMDATA             WINELIB_NAME(CB_SETITEMDATA)
4288 #define CB_GETDROPPEDCONTROLRECT16 (WM_USER+18)
4289 #define CB_GETDROPPEDCONTROLRECT32 0x0152
4290 #define CB_GETDROPPEDCONTROLRECT   WINELIB_NAME(CB_GETDROPPEDCONTROLRECT)
4291 #define CB_SETITEMHEIGHT16         (WM_USER+19)
4292 #define CB_SETITEMHEIGHT32         0x0153
4293 #define CB_SETITEMHEIGHT           WINELIB_NAME(CB_SETITEMHEIGHT)
4294 #define CB_GETITEMHEIGHT16         (WM_USER+20)
4295 #define CB_GETITEMHEIGHT32         0x0154
4296 #define CB_GETITEMHEIGHT           WINELIB_NAME(CB_GETITEMHEIGHT)
4297 #define CB_SETEXTENDEDUI16         (WM_USER+21)
4298 #define CB_SETEXTENDEDUI32         0x0155
4299 #define CB_SETEXTENDEDUI           WINELIB_NAME(CB_SETEXTENDEDUI)
4300 #define CB_GETEXTENDEDUI16         (WM_USER+22)
4301 #define CB_GETEXTENDEDUI32         0x0156
4302 #define CB_GETEXTENDEDUI           WINELIB_NAME(CB_GETEXTENDEDUI)
4303 #define CB_GETDROPPEDSTATE16       (WM_USER+23)
4304 #define CB_GETDROPPEDSTATE32       0x0157
4305 #define CB_GETDROPPEDSTATE         WINELIB_NAME(CB_GETDROPPEDSTATE)
4306 #define CB_FINDSTRINGEXACT16       (WM_USER+24)
4307 #define CB_FINDSTRINGEXACT32       0x0158
4308 #define CB_FINDSTRINGEXACT         WINELIB_NAME(CB_FINDSTRINGEXACT)
4309 #define CB_SETLOCALE16             WM_NULL  /* Not in Win16 */
4310 #define CB_SETLOCALE32             0x0159
4311 #define CB_SETLOCALE               WINELIB_NAME(CB_SETLOCALE)
4312 #define CB_GETLOCALE16             WM_NULL  /* Not in Win16 */
4313 #define CB_GETLOCALE32             0x015a
4314 #define CB_GETLOCALE               WINELIB_NAME(CB_GETLOCALE)
4315 #define CB_GETTOPINDEX16           WM_NULL  /* Not in Win16 */
4316 #define CB_GETTOPINDEX32           0x015b
4317 #define CB_GETTOPINDEX             WINELIB_NAME(CB_GETTOPINDEX)
4318 #define CB_SETTOPINDEX16           WM_NULL  /* Not in Win16 */
4319 #define CB_SETTOPINDEX32           0x015c
4320 #define CB_SETTOPINDEX             WINELIB_NAME(CB_SETTOPINDEX)
4321 #define CB_GETHORIZONTALEXTENT16   WM_NULL  /* Not in Win16 */
4322 #define CB_GETHORIZONTALEXTENT32   0x015d
4323 #define CB_GETHORIZONTALEXTENT     WINELIB_NAME(CB_GETHORIZONTALEXTENT)
4324 #define CB_SETHORIZONTALEXTENT16   WM_NULL  /* Not in Win16 */
4325 #define CB_SETHORIZONTALEXTENT32   0x015e
4326 #define CB_SETHORIZONTALEXTENT     WINELIB_NAME(CB_SETHORIZONTALEXTENT)
4327 #define CB_GETDROPPEDWIDTH16       WM_NULL  /* Not in Win16 */
4328 #define CB_GETDROPPEDWIDTH32       0x015f
4329 #define CB_GETDROPPEDWIDTH         WINELIB_NAME(CB_GETDROPPEDWIDTH)
4330 #define CB_SETDROPPEDWIDTH16       WM_NULL  /* Not in Win16 */
4331 #define CB_SETDROPPEDWIDTH32       0x0160
4332 #define CB_SETDROPPEDWIDTH         WINELIB_NAME(CB_SETDROPPEDWIDTH)
4333 #define CB_INITSTORAGE16           WM_NULL  /* Not in Win16 */
4334 #define CB_INITSTORAGE32           0x0161
4335 #define CB_INITSTORAGE             WINELIB_NAME(CB_INITSTORAGE)
4336
4337 /* Combo box notification codes */
4338 #define CBN_ERRSPACE        (-1)
4339 #define CBN_SELCHANGE       1
4340 #define CBN_DBLCLK          2
4341 #define CBN_SETFOCUS        3
4342 #define CBN_KILLFOCUS       4
4343 #define CBN_EDITCHANGE      5
4344 #define CBN_EDITUPDATE      6
4345 #define CBN_DROPDOWN        7
4346 #define CBN_CLOSEUP         8
4347 #define CBN_SELENDOK        9
4348 #define CBN_SELENDCANCEL    10
4349
4350 /* Combo box message return values */
4351 #define CB_OKAY             0
4352 #define CB_ERR              (-1)
4353 #define CB_ERRSPACE         (-2)
4354
4355
4356 /* Owner draw control types */
4357 #define ODT_MENU        1
4358 #define ODT_LISTBOX     2
4359 #define ODT_COMBOBOX    3
4360 #define ODT_BUTTON      4
4361
4362 /* Owner draw actions */
4363 #define ODA_DRAWENTIRE  0x0001
4364 #define ODA_SELECT      0x0002
4365 #define ODA_FOCUS       0x0004
4366
4367 /* Owner draw state */
4368 #define ODS_SELECTED    0x0001
4369 #define ODS_GRAYED      0x0002
4370 #define ODS_DISABLED    0x0004
4371 #define ODS_CHECKED     0x0008
4372 #define ODS_FOCUS       0x0010
4373
4374 /* Edit control styles */
4375 #define ES_LEFT         0x00000000
4376 #define ES_CENTER       0x00000001
4377 #define ES_RIGHT        0x00000002
4378 #define ES_MULTILINE    0x00000004
4379 #define ES_UPPERCASE    0x00000008
4380 #define ES_LOWERCASE    0x00000010
4381 #define ES_PASSWORD     0x00000020
4382 #define ES_AUTOVSCROLL  0x00000040
4383 #define ES_AUTOHSCROLL  0x00000080
4384 #define ES_NOHIDESEL    0x00000100
4385 #define ES_OEMCONVERT   0x00000400
4386 #define ES_READONLY     0x00000800
4387 #define ES_WANTRETURN   0x00001000
4388 #define ES_NUMBER       0x00002000
4389
4390 /* Edit control messages */
4391 #define EM_GETSEL16                (WM_USER+0)
4392 #define EM_GETSEL32                0x00b0
4393 #define EM_GETSEL                  WINELIB_NAME(EM_GETSEL)
4394 #define EM_SETSEL16                (WM_USER+1)
4395 #define EM_SETSEL32                0x00b1
4396 #define EM_SETSEL                  WINELIB_NAME(EM_SETSEL)
4397 #define EM_GETRECT16               (WM_USER+2)
4398 #define EM_GETRECT32               0x00b2
4399 #define EM_GETRECT                 WINELIB_NAME(EM_GETRECT)
4400 #define EM_SETRECT16               (WM_USER+3)
4401 #define EM_SETRECT32               0x00b3
4402 #define EM_SETRECT                 WINELIB_NAME(EM_SETRECT)
4403 #define EM_SETRECTNP16             (WM_USER+4)
4404 #define EM_SETRECTNP32             0x00b4
4405 #define EM_SETRECTNP               WINELIB_NAME(EM_SETRECTNP)
4406 #define EM_SCROLL16                (WM_USER+5)
4407 #define EM_SCROLL32                0x00b5
4408 #define EM_SCROLL                  WINELIB_NAME(EM_SCROLL)
4409 #define EM_LINESCROLL16            (WM_USER+6)
4410 #define EM_LINESCROLL32            0x00b6
4411 #define EM_LINESCROLL              WINELIB_NAME(EM_LINESCROLL)
4412 #define EM_SCROLLCARET16           (WM_USER+7)
4413 #define EM_SCROLLCARET32           0x00b7
4414 #define EM_SCROLLCARET             WINELIB_NAME(EM_SCROLLCARET)
4415 #define EM_GETMODIFY16             (WM_USER+8)
4416 #define EM_GETMODIFY32             0x00b8
4417 #define EM_GETMODIFY               WINELIB_NAME(EM_GETMODIFY)
4418 #define EM_SETMODIFY16             (WM_USER+9)
4419 #define EM_SETMODIFY32             0x00b9
4420 #define EM_SETMODIFY               WINELIB_NAME(EM_SETMODIFY)
4421 #define EM_GETLINECOUNT16          (WM_USER+10)
4422 #define EM_GETLINECOUNT32          0x00ba
4423 #define EM_GETLINECOUNT            WINELIB_NAME(EM_GETLINECOUNT)
4424 #define EM_LINEINDEX16             (WM_USER+11)
4425 #define EM_LINEINDEX32             0x00bb
4426 #define EM_LINEINDEX               WINELIB_NAME(EM_LINEINDEX)
4427 #define EM_SETHANDLE16             (WM_USER+12)
4428 #define EM_SETHANDLE32             0x00bc
4429 #define EM_SETHANDLE               WINELIB_NAME(EM_SETHANDLE)
4430 #define EM_GETHANDLE16             (WM_USER+13)
4431 #define EM_GETHANDLE32             0x00bd
4432 #define EM_GETHANDLE               WINELIB_NAME(EM_GETHANDLE)
4433 #define EM_GETTHUMB16              (WM_USER+14)
4434 #define EM_GETTHUMB32              0x00be
4435 #define EM_GETTHUMB                WINELIB_NAME(EM_GETTHUMB)
4436 /* FIXME : missing from specs 0x00bf and 0x00c0 */
4437 #define EM_LINELENGTH16            (WM_USER+17)
4438 #define EM_LINELENGTH32            0x00c1
4439 #define EM_LINELENGTH              WINELIB_NAME(EM_LINELENGTH)
4440 #define EM_REPLACESEL16            (WM_USER+18)
4441 #define EM_REPLACESEL32            0x00c2
4442 #define EM_REPLACESEL              WINELIB_NAME(EM_REPLACESEL)
4443 /* FIXME : missing from specs 0x00c3 */
4444 #define EM_GETLINE16               (WM_USER+20)
4445 #define EM_GETLINE32               0x00c4
4446 #define EM_GETLINE                 WINELIB_NAME(EM_GETLINE)
4447 #define EM_LIMITTEXT16             (WM_USER+21)
4448 #define EM_LIMITTEXT32             0x00c5
4449 #define EM_LIMITTEXT               WINELIB_NAME(EM_LIMITTEXT)
4450 #define EM_CANUNDO16               (WM_USER+22)
4451 #define EM_CANUNDO32               0x00c6
4452 #define EM_CANUNDO                 WINELIB_NAME(EM_CANUNDO)
4453 #define EM_UNDO16                  (WM_USER+23)
4454 #define EM_UNDO32                  0x00c7
4455 #define EM_UNDO                    WINELIB_NAME(EM_UNDO)
4456 #define EM_FMTLINES16              (WM_USER+24)
4457 #define EM_FMTLINES32              0x00c8
4458 #define EM_FMTLINES                WINELIB_NAME(EM_FMTLINES)
4459 #define EM_LINEFROMCHAR16          (WM_USER+25)
4460 #define EM_LINEFROMCHAR32          0x00c9
4461 #define EM_LINEFROMCHAR            WINELIB_NAME(EM_LINEFROMCHAR)
4462 /* FIXME : missing from specs 0x00ca */
4463 #define EM_SETTABSTOPS16           (WM_USER+27)
4464 #define EM_SETTABSTOPS32           0x00cb
4465 #define EM_SETTABSTOPS             WINELIB_NAME(EM_SETTABSTOPS)
4466 #define EM_SETPASSWORDCHAR16       (WM_USER+28)
4467 #define EM_SETPASSWORDCHAR32       0x00cc
4468 #define EM_SETPASSWORDCHAR         WINELIB_NAME(EM_SETPASSWORDCHAR)
4469 #define EM_EMPTYUNDOBUFFER16       (WM_USER+29)
4470 #define EM_EMPTYUNDOBUFFER32       0x00cd
4471 #define EM_EMPTYUNDOBUFFER         WINELIB_NAME(EM_EMPTYUNDOBUFFER)
4472 #define EM_GETFIRSTVISIBLELINE16   (WM_USER+30)
4473 #define EM_GETFIRSTVISIBLELINE32   0x00ce
4474 #define EM_GETFIRSTVISIBLELINE     WINELIB_NAME(EM_GETFIRSTVISIBLELINE)
4475 #define EM_SETREADONLY16           (WM_USER+31)
4476 #define EM_SETREADONLY32           0x00cf
4477 #define EM_SETREADONLY             WINELIB_NAME(EM_SETREADONLY)
4478 #define EM_SETWORDBREAKPROC16      (WM_USER+32)
4479 #define EM_SETWORDBREAKPROC32      0x00d0
4480 #define EM_SETWORDBREAKPROC        WINELIB_NAME(EM_SETWORDBREAKPROC)
4481 #define EM_GETWORDBREAKPROC16      (WM_USER+33)
4482 #define EM_GETWORDBREAKPROC32      0x00d1
4483 #define EM_GETWORDBREAKPROC        WINELIB_NAME(EM_GETWORDBREAKPROC)
4484 #define EM_GETPASSWORDCHAR16       (WM_USER+34)
4485 #define EM_GETPASSWORDCHAR32       0x00d2
4486 #define EM_GETPASSWORDCHAR         WINELIB_NAME(EM_GETPASSWORDCHAR)
4487 #define EM_SETMARGINS16            WM_NULL /* not in win16 */
4488 #define EM_SETMARGINS32            0x00d3
4489 #define EM_SETMARGINS              WINELIB_NAME(EM_SETMARGINS)
4490 #define EM_GETMARGINS16            WM_NULL /* not in win16 */
4491 #define EM_GETMARGINS32            0x00d4
4492 #define EM_GETMARGINS              WINELIB_NAME(EM_GETMARGINS)
4493 #define EM_GETLIMITTEXT16          WM_NULL /* not in win16 */
4494 #define EM_GETLIMITTEXT32          0x00d5
4495 #define EM_GETLIMITTEXT            WINELIB_NAME(EM_GETLIMITTEXT)
4496 #define EM_POSFROMCHAR16           WM_NULL /* not in win16 */
4497 #define EM_POSFROMCHAR32           0x00d6
4498 #define EM_POSFROMCHAR             WINELIB_NAME(EM_POSFROMCHAR)
4499 #define EM_CHARFROMPOS16           WM_NULL /* not in win16 */
4500 #define EM_CHARFROMPOS32           0x00d7
4501 #define EM_CHARFROMPOS             WINELIB_NAME(EM_CHARFROMPOS)
4502 /* a name change since win95 */
4503 #define EM_SETLIMITTEXT16          WM_NULL /* no name change in win16 */
4504 #define EM_SETLIMITTEXT32          EM_LIMITTEXT32
4505 #define EM_SETLIMITTEXT            WINELIB_NAME(EM_SETLIMITTEXT)
4506
4507 /* EDITWORDBREAKPROC code values */
4508 #define WB_LEFT         0
4509 #define WB_RIGHT        1
4510 #define WB_ISDELIMITER  2
4511
4512 /* Edit control notification codes */
4513 #define EN_SETFOCUS     0x0100
4514 #define EN_KILLFOCUS    0x0200
4515 #define EN_CHANGE       0x0300
4516 #define EN_UPDATE       0x0400
4517 #define EN_ERRSPACE     0x0500
4518 #define EN_MAXTEXT      0x0501
4519 #define EN_HSCROLL      0x0601
4520 #define EN_VSCROLL      0x0602
4521
4522 /* New since win95 : EM_SETMARGIN parameters */
4523 #define EC_LEFTMARGIN   0x0001
4524 #define EC_RIGHTMARGIN  0x0002
4525 #define EC_USEFONTINFO  0xffff
4526
4527
4528 typedef struct
4529 {
4530     UINT16      CtlType;
4531     UINT16      CtlID;
4532     UINT16      itemID;
4533     UINT16      itemAction;
4534     UINT16      itemState;
4535     HWND16      hwndItem;
4536     HDC16       hDC;
4537     RECT16      rcItem WINE_PACKED;
4538     DWORD       itemData WINE_PACKED;
4539 } DRAWITEMSTRUCT16, *PDRAWITEMSTRUCT16, *LPDRAWITEMSTRUCT16;
4540
4541 typedef struct
4542 {
4543     UINT32      CtlType;
4544     UINT32      CtlID;
4545     UINT32      itemID;
4546     UINT32      itemAction;
4547     UINT32      itemState;
4548     HWND32      hwndItem;
4549     HDC32       hDC;
4550     RECT32      rcItem WINE_PACKED;
4551     DWORD       itemData WINE_PACKED;
4552 } DRAWITEMSTRUCT32, *PDRAWITEMSTRUCT32, *LPDRAWITEMSTRUCT32;
4553
4554 DECL_WINELIB_TYPE(DRAWITEMSTRUCT)
4555 DECL_WINELIB_TYPE(PDRAWITEMSTRUCT)
4556 DECL_WINELIB_TYPE(LPDRAWITEMSTRUCT)
4557
4558 typedef struct
4559 {
4560     UINT16      CtlType;
4561     UINT16      CtlID;
4562     UINT16      itemID;
4563     UINT16      itemWidth;
4564     UINT16      itemHeight;
4565     DWORD       itemData WINE_PACKED;
4566 } MEASUREITEMSTRUCT16, *PMEASUREITEMSTRUCT16, *LPMEASUREITEMSTRUCT16;
4567
4568 typedef struct
4569 {
4570     UINT32      CtlType;
4571     UINT32      CtlID;
4572     UINT32      itemID;
4573     UINT32      itemWidth;
4574     UINT32      itemHeight;
4575     DWORD       itemData;
4576 } MEASUREITEMSTRUCT32, *PMEASUREITEMSTRUCT32, *LPMEASUREITEMSTRUCT32;
4577
4578 DECL_WINELIB_TYPE(MEASUREITEMSTRUCT)
4579 DECL_WINELIB_TYPE(PMEASUREITEMSTRUCT)
4580 DECL_WINELIB_TYPE(LPMEASUREITEMSTRUCT)
4581
4582 typedef struct
4583 {
4584     UINT16     CtlType;
4585     UINT16     CtlID;
4586     UINT16     itemID;
4587     HWND16     hwndItem;
4588     DWORD      itemData;
4589 } DELETEITEMSTRUCT16, *LPDELETEITEMSTRUCT16;
4590
4591 typedef struct
4592 {
4593     UINT32     CtlType;
4594     UINT32     CtlID;
4595     UINT32     itemID;
4596     HWND32     hwndItem;
4597     DWORD      itemData;
4598 } DELETEITEMSTRUCT32, *LPDELETEITEMSTRUCT32;
4599
4600 DECL_WINELIB_TYPE(DELETEITEMSTRUCT)
4601 DECL_WINELIB_TYPE(LPDELETEITEMSTRUCT)
4602
4603 typedef struct
4604 {
4605     UINT16      CtlType;
4606     UINT16      CtlID;
4607     HWND16      hwndItem;
4608     UINT16      itemID1;
4609     DWORD       itemData1;
4610     UINT16      itemID2;
4611     DWORD       itemData2 WINE_PACKED;
4612 } COMPAREITEMSTRUCT16, *LPCOMPAREITEMSTRUCT16;
4613
4614 typedef struct
4615 {
4616     UINT32      CtlType;
4617     UINT32      CtlID;
4618     HWND32      hwndItem;
4619     UINT32      itemID1;
4620     DWORD       itemData1;
4621     UINT32      itemID2;
4622     DWORD       itemData2;
4623     DWORD       dwLocaleId;
4624 } COMPAREITEMSTRUCT32, *LPCOMPAREITEMSTRUCT32;
4625
4626 DECL_WINELIB_TYPE(COMPAREITEMSTRUCT)
4627 DECL_WINELIB_TYPE(LPCOMPAREITEMSTRUCT)
4628
4629 /* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */
4630 #define KF_EXTENDED         0x0100
4631 #define KF_DLGMODE          0x0800
4632 #define KF_MENUMODE         0x1000
4633 #define KF_ALTDOWN          0x2000
4634 #define KF_REPEAT           0x4000
4635 #define KF_UP               0x8000
4636
4637 /* Virtual key codes */
4638 #define VK_LBUTTON          0x01
4639 #define VK_RBUTTON          0x02
4640 #define VK_CANCEL           0x03
4641 #define VK_MBUTTON          0x04
4642 /*                          0x05-0x07  Undefined */
4643 #define VK_BACK             0x08
4644 #define VK_TAB              0x09
4645 /*                          0x0A-0x0B  Undefined */
4646 #define VK_CLEAR            0x0C
4647 #define VK_RETURN           0x0D
4648 /*                          0x0E-0x0F  Undefined */
4649 #define VK_SHIFT            0x10
4650 #define VK_CONTROL          0x11
4651 #define VK_MENU             0x12
4652 #define VK_PAUSE            0x13
4653 #define VK_CAPITAL          0x14
4654 /*                          0x15-0x19  Reserved for Kanji systems */
4655 /*                          0x1A       Undefined */
4656 #define VK_ESCAPE           0x1B
4657 /*                          0x1C-0x1F  Reserved for Kanji systems */
4658 #define VK_SPACE            0x20
4659 #define VK_PRIOR            0x21
4660 #define VK_NEXT             0x22
4661 #define VK_END              0x23
4662 #define VK_HOME             0x24
4663 #define VK_LEFT             0x25
4664 #define VK_UP               0x26
4665 #define VK_RIGHT            0x27
4666 #define VK_DOWN             0x28
4667 #define VK_SELECT           0x29
4668 #define VK_PRINT            0x2A /* OEM specific in Windows 3.1 SDK */
4669 #define VK_EXECUTE          0x2B
4670 #define VK_SNAPSHOT         0x2C
4671 #define VK_INSERT           0x2D
4672 #define VK_DELETE           0x2E
4673 #define VK_HELP             0x2F
4674 #define VK_0                0x30
4675 #define VK_1                0x31
4676 #define VK_2                0x32
4677 #define VK_3                0x33
4678 #define VK_4                0x34
4679 #define VK_5                0x35
4680 #define VK_6                0x36
4681 #define VK_7                0x37
4682 #define VK_8                0x38
4683 #define VK_9                0x39
4684 /*                          0x3A-0x40  Undefined */
4685 #define VK_A                0x41
4686 #define VK_B                0x42
4687 #define VK_C                0x43
4688 #define VK_D                0x44
4689 #define VK_E                0x45
4690 #define VK_F                0x46
4691 #define VK_G                0x47
4692 #define VK_H                0x48
4693 #define VK_I                0x49
4694 #define VK_J                0x4A
4695 #define VK_K                0x4B
4696 #define VK_L                0x4C
4697 #define VK_M                0x4D
4698 #define VK_N                0x4E
4699 #define VK_O                0x4F
4700 #define VK_P                0x50
4701 #define VK_Q                0x51
4702 #define VK_R                0x52
4703 #define VK_S                0x53
4704 #define VK_T                0x54
4705 #define VK_U                0x55
4706 #define VK_V                0x56
4707 #define VK_W                0x57
4708 #define VK_X                0x58
4709 #define VK_Y                0x59
4710 #define VK_Z                0x5A
4711
4712 #define VK_LWIN             0x5B
4713 #define VK_RWIN             0x5C
4714 #define VK_APPS             0x5D
4715 /*                          0x5E-0x5F Unassigned */
4716 #define VK_NUMPAD0          0x60
4717 #define VK_NUMPAD1          0x61
4718 #define VK_NUMPAD2          0x62
4719 #define VK_NUMPAD3          0x63
4720 #define VK_NUMPAD4          0x64
4721 #define VK_NUMPAD5          0x65
4722 #define VK_NUMPAD6          0x66
4723 #define VK_NUMPAD7          0x67
4724 #define VK_NUMPAD8          0x68
4725 #define VK_NUMPAD9          0x69
4726 #define VK_MULTIPLY         0x6A
4727 #define VK_ADD              0x6B
4728 #define VK_SEPARATOR        0x6C
4729 #define VK_SUBTRACT         0x6D
4730 #define VK_DECIMAL          0x6E
4731 #define VK_DIVIDE           0x6F
4732 #define VK_F1               0x70
4733 #define VK_F2               0x71
4734 #define VK_F3               0x72
4735 #define VK_F4               0x73
4736 #define VK_F5               0x74
4737 #define VK_F6               0x75
4738 #define VK_F7               0x76
4739 #define VK_F8               0x77
4740 #define VK_F9               0x78
4741 #define VK_F10              0x79
4742 #define VK_F11              0x7A
4743 #define VK_F12              0x7B
4744 #define VK_F13              0x7C
4745 #define VK_F14              0x7D
4746 #define VK_F15              0x7E
4747 #define VK_F16              0x7F
4748 #define VK_F17              0x80
4749 #define VK_F18              0x81
4750 #define VK_F19              0x82
4751 #define VK_F20              0x83
4752 #define VK_F21              0x84
4753 #define VK_F22              0x85
4754 #define VK_F23              0x86
4755 #define VK_F24              0x87
4756 /*                          0x88-0x8F  Unassigned */
4757 #define VK_NUMLOCK          0x90
4758 #define VK_SCROLL           0x91
4759 /*                          0x92-0x9F  Unassigned */
4760 /*
4761  * differencing between right and left shift/control/alt key.
4762  * Used only by GetAsyncKeyState() and GetKeyState().
4763  */
4764 #define VK_LSHIFT           0xA0
4765 #define VK_RSHIFT           0xA1
4766 #define VK_LCONTROL         0xA2
4767 #define VK_RCONTROL         0xA3
4768 #define VK_LMENU            0xA4
4769 #define VK_RMENU            0xA5
4770 /*                          0xA6-0xB9  Unassigned */
4771 #define VK_OEM_1            0xBA
4772 #define VK_OEM_PLUS         0xBB
4773 #define VK_OEM_COMMA        0xBC
4774 #define VK_OEM_MINUS        0xBD
4775 #define VK_OEM_PERIOD       0xBE
4776 #define VK_OEM_2            0xBF
4777 #define VK_OEM_3            0xC0
4778 /*                          0xC1-0xDA  Unassigned */
4779 #define VK_OEM_4            0xDB
4780 #define VK_OEM_5            0xDC
4781 #define VK_OEM_6            0xDD
4782 #define VK_OEM_7            0xDE
4783 /*                          0xDF-0xE4  OEM specific */
4784
4785 #define VK_PROCESSKEY       0xE5
4786
4787 /*                          0xE6       OEM specific */
4788 /*                          0xE7-0xE8  Unassigned */
4789 /*                          0xE9-0xF5  OEM specific */
4790
4791 #define VK_ATTN             0xF6
4792 #define VK_CRSEL            0xF7
4793 #define VK_EXSEL            0xF8
4794 #define VK_EREOF            0xF9
4795 #define VK_PLAY             0xFA
4796 #define VK_ZOOM             0xFB
4797 #define VK_NONAME           0xFC
4798 #define VK_PA1              0xFD
4799 #define VK_OEM_CLEAR        0xFE
4800   
4801 #define LMEM_FIXED          0   
4802 #define LMEM_MOVEABLE       0x0002
4803 #define LMEM_NOCOMPACT      0x0010
4804 #define LMEM_NODISCARD      0x0020
4805 #define LMEM_ZEROINIT       0x0040
4806 #define LMEM_MODIFY         0x0080
4807 #define LMEM_DISCARDABLE    0x0F00
4808 #define LMEM_DISCARDED      0x4000
4809 #define LMEM_LOCKCOUNT      0x00FF
4810
4811 #define GMEM_FIXED          0x0000
4812 #define GMEM_MOVEABLE       0x0002
4813 #define GMEM_NOCOMPACT      0x0010
4814 #define GMEM_NODISCARD      0x0020
4815 #define GMEM_ZEROINIT       0x0040
4816 #define GMEM_MODIFY         0x0080
4817 #define GMEM_DISCARDABLE    0x0100
4818 #define GMEM_NOT_BANKED     0x1000
4819 #define GMEM_SHARE          0x2000
4820 #define GMEM_DDESHARE       0x2000
4821 #define GMEM_NOTIFY         0x4000
4822 #define GMEM_LOWER          GMEM_NOT_BANKED
4823 #define GMEM_DISCARDED      0x4000
4824 #define GMEM_LOCKCOUNT      0x00ff
4825 #define GMEM_INVALID_HANDLE 0x8000
4826
4827 #define GHND                (GMEM_MOVEABLE | GMEM_ZEROINIT)
4828 #define GPTR                (GMEM_FIXED | GMEM_ZEROINIT)
4829
4830
4831 typedef struct tagMEMORYSTATUS
4832 {
4833     DWORD    dwLength;
4834     DWORD    dwMemoryLoad;
4835     DWORD    dwTotalPhys;
4836     DWORD    dwAvailPhys;
4837     DWORD    dwTotalPageFile;
4838     DWORD    dwAvailPageFile;
4839     DWORD    dwTotalVirtual;
4840     DWORD    dwAvailVirtual;
4841 } MEMORYSTATUS, *LPMEMORYSTATUS;
4842
4843 /* Predefined Clipboard Formats */
4844 #define CF_TEXT              1
4845 #define CF_BITMAP            2
4846 #define CF_METAFILEPICT      3
4847 #define CF_SYLK              4
4848 #define CF_DIF               5
4849 #define CF_TIFF              6
4850 #define CF_OEMTEXT           7
4851 #define CF_DIB               8
4852 #define CF_PALETTE           9
4853 #define CF_PENDATA          10
4854 #define CF_RIFF             11
4855 #define CF_WAVE             12
4856 #define CF_ENHMETAFILE      14
4857
4858 #define CF_OWNERDISPLAY     0x0080
4859 #define CF_DSPTEXT          0x0081
4860 #define CF_DSPBITMAP        0x0082
4861 #define CF_DSPMETAFILEPICT  0x0083
4862
4863 /* "Private" formats don't get GlobalFree()'d */
4864 #define CF_PRIVATEFIRST     0x0200
4865 #define CF_PRIVATELAST      0x02FF
4866
4867 /* "GDIOBJ" formats do get DeleteObject()'d */
4868 #define CF_GDIOBJFIRST      0x0300
4869 #define CF_GDIOBJLAST       0x03FF
4870
4871 /* Clipboard command messages */
4872 #define WM_CUT              0x0300
4873 #define WM_COPY             0x0301
4874 #define WM_PASTE            0x0302
4875 #define WM_CLEAR            0x0303
4876 #define WM_UNDO             0x0304
4877
4878 /* Clipboard owner messages */
4879 #define WM_RENDERFORMAT     0x0305
4880 #define WM_RENDERALLFORMATS 0x0306
4881 #define WM_DESTROYCLIPBOARD 0x0307
4882
4883 /* Clipboard viewer messages */
4884 #define WM_DRAWCLIPBOARD    0x0308
4885 #define WM_PAINTCLIPBOARD   0x0309
4886 #define WM_SIZECLIPBOARD    0x030B
4887 #define WM_VSCROLLCLIPBOARD 0x030A
4888 #define WM_HSCROLLCLIPBOARD 0x030E
4889 #define WM_ASKCBFORMATNAME  0x030C
4890 #define WM_CHANGECBCHAIN    0x030D
4891
4892 /* Metafile header structure */
4893 typedef struct
4894 {
4895     WORD       mtType;
4896     WORD       mtHeaderSize;
4897     WORD       mtVersion;
4898     DWORD      mtSize WINE_PACKED;
4899     WORD       mtNoObjects;
4900     DWORD      mtMaxRecord WINE_PACKED;
4901     WORD       mtNoParameters;
4902 } METAHEADER;
4903
4904 /* Metafile typical record structure */
4905 typedef struct
4906 {
4907     DWORD      rdSize;
4908     WORD       rdFunction;
4909     WORD       rdParam[1];
4910 } METARECORD;
4911 typedef METARECORD *PMETARECORD;
4912 typedef METARECORD *LPMETARECORD;
4913
4914 /* Handle table structure */
4915
4916 typedef struct
4917 {
4918     HGDIOBJ16 objectHandle[1];
4919 } HANDLETABLE16, *LPHANDLETABLE16;
4920
4921 typedef struct
4922 {
4923     HGDIOBJ32 objectHandle[1];
4924 } HANDLETABLE32, *LPHANDLETABLE32;
4925
4926 DECL_WINELIB_TYPE(HANDLETABLE)
4927 DECL_WINELIB_TYPE(LPHANDLETABLE)
4928
4929 /* Clipboard metafile picture structure */
4930 typedef struct
4931 {
4932     INT16        mm;
4933     INT16        xExt;
4934     INT16        yExt;
4935     HMETAFILE16  hMF;
4936 } METAFILEPICT16, *LPMETAFILEPICT16;
4937
4938 typedef struct
4939 {
4940     INT32        mm;
4941     INT32        xExt;
4942     INT32        yExt;
4943     HMETAFILE32  hMF;
4944 } METAFILEPICT32, *LPMETAFILEPICT32;
4945
4946 DECL_WINELIB_TYPE(METAFILEPICT)
4947 DECL_WINELIB_TYPE(LPMETAFILEPICT)
4948
4949 /* Metafile functions */
4950 #define META_SETBKCOLOR              0x0201
4951 #define META_SETBKMODE               0x0102
4952 #define META_SETMAPMODE              0x0103
4953 #define META_SETROP2                 0x0104
4954 #define META_SETRELABS               0x0105
4955 #define META_SETPOLYFILLMODE         0x0106
4956 #define META_SETSTRETCHBLTMODE       0x0107
4957 #define META_SETTEXTCHAREXTRA        0x0108
4958 #define META_SETTEXTCOLOR            0x0209
4959 #define META_SETTEXTJUSTIFICATION    0x020A
4960 #define META_SETWINDOWORG            0x020B
4961 #define META_SETWINDOWEXT            0x020C
4962 #define META_SETVIEWPORTORG          0x020D
4963 #define META_SETVIEWPORTEXT          0x020E
4964 #define META_OFFSETWINDOWORG         0x020F
4965 #define META_SCALEWINDOWEXT          0x0410
4966 #define META_OFFSETVIEWPORTORG       0x0211
4967 #define META_SCALEVIEWPORTEXT        0x0412
4968 #define META_LINETO                  0x0213
4969 #define META_MOVETO                  0x0214
4970 #define META_EXCLUDECLIPRECT         0x0415
4971 #define META_INTERSECTCLIPRECT       0x0416
4972 #define META_ARC                     0x0817
4973 #define META_ELLIPSE                 0x0418
4974 #define META_FLOODFILL               0x0419
4975 #define META_PIE                     0x081A
4976 #define META_RECTANGLE               0x041B
4977 #define META_ROUNDRECT               0x061C
4978 #define META_PATBLT                  0x061D
4979 #define META_SAVEDC                  0x001E
4980 #define META_SETPIXEL                0x041F
4981 #define META_OFFSETCLIPRGN           0x0220
4982 #define META_TEXTOUT                 0x0521
4983 #define META_BITBLT                  0x0922
4984 #define META_STRETCHBLT              0x0B23
4985 #define META_POLYGON                 0x0324
4986 #define META_POLYLINE                0x0325
4987 #define META_ESCAPE                  0x0626
4988 #define META_RESTOREDC               0x0127
4989 #define META_FILLREGION              0x0228
4990 #define META_FRAMEREGION             0x0429
4991 #define META_INVERTREGION            0x012A
4992 #define META_PAINTREGION             0x012B
4993 #define META_SELECTCLIPREGION        0x012C
4994 #define META_SELECTOBJECT            0x012D
4995 #define META_SETTEXTALIGN            0x012E
4996 #define META_DRAWTEXT                0x062F
4997 #define META_CHORD                   0x0830
4998 #define META_SETMAPPERFLAGS          0x0231
4999 #define META_EXTTEXTOUT              0x0A32
5000 #define META_SETDIBTODEV             0x0D33
5001 #define META_SELECTPALETTE           0x0234
5002 #define META_REALIZEPALETTE          0x0035
5003 #define META_ANIMATEPALETTE          0x0436
5004 #define META_SETPALENTRIES           0x0037
5005 #define META_POLYPOLYGON             0x0538
5006 #define META_RESIZEPALETTE           0x0139
5007 #define META_DIBBITBLT               0x0940
5008 #define META_DIBSTRETCHBLT           0x0B41
5009 #define META_DIBCREATEPATTERNBRUSH   0x0142
5010 #define META_STRETCHDIB              0x0F43
5011 #define META_EXTFLOODFILL            0x0548
5012 #define META_RESETDC                 0x014C
5013 #define META_STARTDOC                0x014D
5014 #define META_STARTPAGE               0x004F
5015 #define META_ENDPAGE                 0x0050
5016 #define META_ABORTDOC                0x0052
5017 #define META_ENDDOC                  0x005E
5018 #define META_DELETEOBJECT            0x01F0
5019 #define META_CREATEPALETTE           0x00F7
5020 #define META_CREATEBRUSH             0x00F8
5021 #define META_CREATEPATTERNBRUSH      0x01F9
5022 #define META_CREATEPENINDIRECT       0x02FA
5023 #define META_CREATEFONTINDIRECT      0x02FB
5024 #define META_CREATEBRUSHINDIRECT     0x02FC
5025 #define META_CREATEBITMAPINDIRECT    0x02FD
5026 #define META_CREATEBITMAP            0x06FE
5027 #define META_CREATEREGION            0x06FF
5028 #define META_UNKNOWN                 0x0529  /* FIXME: unknown meta magic */
5029
5030 typedef INT16 (CALLBACK *MFENUMPROC16)(HDC16,HANDLETABLE16*,METARECORD*,
5031                                        INT16,LPARAM);
5032 typedef INT32 (CALLBACK *MFENUMPROC32)(HDC32,HANDLETABLE32*,METARECORD*,
5033                                        INT32,LPARAM);
5034 DECL_WINELIB_TYPE(MFENUMPROC)
5035
5036 /* enhanced metafile structures and functions */
5037
5038 /* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
5039    ie. the header is just the first record in the metafile */
5040 typedef struct {
5041     DWORD iType; 
5042     DWORD nSize; 
5043     RECT32 rclBounds; 
5044     RECT32 rclFrame; 
5045     DWORD dSignature; 
5046     DWORD nVersion; 
5047     DWORD nBytes; 
5048     DWORD nRecords; 
5049     WORD  nHandles; 
5050     WORD  sReserved; 
5051     DWORD nDescription; 
5052     DWORD offDescription; 
5053     DWORD nPalEntries; 
5054     SIZE32 szlDevice; 
5055     SIZE32 szlMillimeters;
5056     DWORD cbPixelFormat;
5057     DWORD offPixelFormat;
5058     DWORD bOpenGL;
5059 } ENHMETAHEADER, *LPENHMETAHEADER; 
5060
5061 typedef struct {
5062     DWORD iType; 
5063     DWORD nSize; 
5064     DWORD dParm[1]; 
5065 } ENHMETARECORD, *LPENHMETARECORD; 
5066
5067 typedef INT32 (CALLBACK *ENHMFENUMPROC32)(HDC32, LPHANDLETABLE32, 
5068                                           LPENHMETARECORD, INT32, LPVOID);
5069
5070 #define EMR_HEADER      1
5071 #define EMR_POLYBEZIER  2
5072 #define EMR_POLYGON     3
5073 #define EMR_POLYLINE    4
5074 #define EMR_POLYBEZIERTO        5
5075 #define EMR_POLYLINETO  6
5076 #define EMR_POLYPOLYLINE        7
5077 #define EMR_POLYPOLYGON 8
5078 #define EMR_SETWINDOWEXTEX      9
5079 #define EMR_SETWINDOWORGEX      10
5080 #define EMR_SETVIEWPORTEXTEX    11
5081 #define EMR_SETVIEWPORTORGEX    12
5082 #define EMR_SETBRUSHORGEX       13
5083 #define EMR_EOF 14
5084 #define EMR_SETPIXELV   15
5085 #define EMR_SETMAPPERFLAGS      16
5086 #define EMR_SETMAPMODE  17
5087 #define EMR_SETBKMODE   18
5088 #define EMR_SETPOLYFILLMODE     19
5089 #define EMR_SETROP2     20
5090 #define EMR_SETSTRETCHBLTMODE   21
5091 #define EMR_SETTEXTALIGN        22
5092 #define EMR_SETCOLORADJUSTMENT  23
5093 #define EMR_SETTEXTCOLOR        24
5094 #define EMR_SETBKCOLOR  25
5095 #define EMR_OFFSETCLIPRGN       26
5096 #define EMR_MOVETOEX    27
5097 #define EMR_SETMETARGN  28
5098 #define EMR_EXCLUDECLIPRECT     29
5099 #define EMR_INTERSECTCLIPRECT   30
5100 #define EMR_SCALEVIEWPORTEXTEX  31
5101 #define EMR_SCALEWINDOWEXTEX    32
5102 #define EMR_SAVEDC      33
5103 #define EMR_RESTOREDC   34
5104 #define EMR_SETWORLDTRANSFORM   35
5105 #define EMR_MODIFYWORLDTRANSFORM        36
5106 #define EMR_SELECTOBJECT        37
5107 #define EMR_CREATEPEN   38
5108 #define EMR_CREATEBRUSHINDIRECT 39
5109 #define EMR_DELETEOBJECT        40
5110 #define EMR_ANGLEARC    41
5111 #define EMR_ELLIPSE     42
5112 #define EMR_RECTANGLE   43
5113 #define EMR_ROUNDRECT   44
5114 #define EMR_ARC 45
5115 #define EMR_CHORD       46
5116 #define EMR_PIE 47
5117 #define EMR_SELECTPALETTE       48
5118 #define EMR_CREATEPALETTE       49
5119 #define EMR_SETPALETTEENTRIES   50
5120 #define EMR_RESIZEPALETTE       51
5121 #define EMR_REALIZEPALETTE      52
5122 #define EMR_EXTFLOODFILL        53
5123 #define EMR_LINETO      54
5124 #define EMR_ARCTO       55
5125 #define EMR_POLYDRAW    56
5126 #define EMR_SETARCDIRECTION     57
5127 #define EMR_SETMITERLIMIT       58
5128 #define EMR_BEGINPATH   59
5129 #define EMR_ENDPATH     60
5130 #define EMR_CLOSEFIGURE 61
5131 #define EMR_FILLPATH    62
5132 #define EMR_STROKEANDFILLPATH   63
5133 #define EMR_STROKEPATH  64
5134 #define EMR_FLATTENPATH 65
5135 #define EMR_WIDENPATH   66
5136 #define EMR_SELECTCLIPPATH      67
5137 #define EMR_ABORTPATH   68
5138 #define EMR_GDICOMMENT  70
5139 #define EMR_FILLRGN     71
5140 #define EMR_FRAMERGN    72
5141 #define EMR_INVERTRGN   73
5142 #define EMR_PAINTRGN    74
5143 #define EMR_EXTSELECTCLIPRGN    75
5144 #define EMR_BITBLT      76
5145 #define EMR_STRETCHBLT  77
5146 #define EMR_MASKBLT     78
5147 #define EMR_PLGBLT      79
5148 #define EMR_SETDIBITSTODEVICE   80
5149 #define EMR_STRETCHDIBITS       81
5150 #define EMR_EXTCREATEFONTINDIRECTW      82
5151 #define EMR_EXTTEXTOUTA 83
5152 #define EMR_EXTTEXTOUTW 84
5153 #define EMR_POLYBEZIER16        85
5154 #define EMR_POLYGON16   86
5155 #define EMR_POLYLINE16  87
5156 #define EMR_POLYBEZIERTO16      88
5157 #define EMR_POLYLINETO16        89
5158 #define EMR_POLYPOLYLINE16      90
5159 #define EMR_POLYPOLYGON16       91
5160 #define EMR_POLYDRAW16  92
5161 #define EMR_CREATEMONOBRUSH     93
5162 #define EMR_CREATEDIBPATTERNBRUSHPT     94
5163 #define EMR_EXTCREATEPEN        95
5164 #define EMR_POLYTEXTOUTA        96
5165 #define EMR_POLYTEXTOUTW        97
5166 #define EMR_SETICMMODE  98
5167 #define EMR_CREATECOLORSPACE    99
5168 #define EMR_SETCOLORSPACE       100
5169 #define EMR_DELETECOLORSPACE    101
5170 #define EMR_GLSRECORD   102
5171 #define EMR_GLSBOUNDEDRECORD    103
5172 #define EMR_PIXELFORMAT 104
5173
5174 #define ENHMETA_SIGNATURE       1179469088
5175
5176
5177 #ifndef NOLOGERROR
5178
5179 /* LogParamError and LogError values */
5180
5181 /* Error modifier bits */
5182 #define ERR_WARNING             0x8000
5183 #define ERR_PARAM               0x4000
5184
5185 #define ERR_SIZE_MASK           0x3000
5186 #define ERR_BYTE                0x1000
5187 #define ERR_WORD                0x2000
5188 #define ERR_DWORD               0x3000
5189
5190 /* LogParamError() values */
5191
5192 /* Generic parameter values */
5193 #define ERR_BAD_VALUE           0x6001
5194 #define ERR_BAD_FLAGS           0x6002
5195 #define ERR_BAD_INDEX           0x6003
5196 #define ERR_BAD_DVALUE          0x7004
5197 #define ERR_BAD_DFLAGS          0x7005
5198 #define ERR_BAD_DINDEX          0x7006
5199 #define ERR_BAD_PTR             0x7007
5200 #define ERR_BAD_FUNC_PTR        0x7008
5201 #define ERR_BAD_SELECTOR        0x6009
5202 #define ERR_BAD_STRING_PTR      0x700a
5203 #define ERR_BAD_HANDLE          0x600b
5204
5205 /* KERNEL parameter errors */
5206 #define ERR_BAD_HINSTANCE       0x6020
5207 #define ERR_BAD_HMODULE         0x6021
5208 #define ERR_BAD_GLOBAL_HANDLE   0x6022
5209 #define ERR_BAD_LOCAL_HANDLE    0x6023
5210 #define ERR_BAD_ATOM            0x6024
5211 #define ERR_BAD_HFILE           0x6025
5212
5213 /* USER parameter errors */
5214 #define ERR_BAD_HWND            0x6040
5215 #define ERR_BAD_HMENU           0x6041
5216 #define ERR_BAD_HCURSOR         0x6042
5217 #define ERR_BAD_HICON           0x6043
5218 #define ERR_BAD_HDWP            0x6044
5219 #define ERR_BAD_CID             0x6045
5220 #define ERR_BAD_HDRVR           0x6046
5221
5222 /* GDI parameter errors */
5223 #define ERR_BAD_COORDS          0x7060
5224 #define ERR_BAD_GDI_OBJECT      0x6061
5225 #define ERR_BAD_HDC             0x6062
5226 #define ERR_BAD_HPEN            0x6063
5227 #define ERR_BAD_HFONT           0x6064
5228 #define ERR_BAD_HBRUSH          0x6065
5229 #define ERR_BAD_HBITMAP         0x6066
5230 #define ERR_BAD_HRGN            0x6067
5231 #define ERR_BAD_HPALETTE        0x6068
5232 #define ERR_BAD_HMETAFILE       0x6069
5233
5234
5235 /* LogError() values */
5236
5237 /* KERNEL errors */
5238 #define ERR_GALLOC              0x0001
5239 #define ERR_GREALLOC            0x0002
5240 #define ERR_GLOCK               0x0003
5241 #define ERR_LALLOC              0x0004
5242 #define ERR_LREALLOC            0x0005
5243 #define ERR_LLOCK               0x0006
5244 #define ERR_ALLOCRES            0x0007
5245 #define ERR_LOCKRES             0x0008
5246 #define ERR_LOADMODULE          0x0009
5247
5248 /* USER errors */
5249 #define ERR_CREATEDLG           0x0040
5250 #define ERR_CREATEDLG2          0x0041
5251 #define ERR_REGISTERCLASS       0x0042
5252 #define ERR_DCBUSY              0x0043
5253 #define ERR_CREATEWND           0x0044
5254 #define ERR_STRUCEXTRA          0x0045
5255 #define ERR_LOADSTR             0x0046
5256 #define ERR_LOADMENU            0x0047
5257 #define ERR_NESTEDBEGINPAINT    0x0048
5258 #define ERR_BADINDEX            0x0049
5259 #define ERR_CREATEMENU          0x004a
5260
5261 /* GDI errors */
5262 #define ERR_CREATEDC            0x0080
5263 #define ERR_CREATEMETA          0x0081
5264 #define ERR_DELOBJSELECTED      0x0082
5265 #define ERR_SELBITMAP           0x0083
5266
5267
5268
5269 /* Debugging support (DEBUG SYSTEM ONLY) */
5270 typedef struct
5271 {
5272     UINT16  flags;
5273     DWORD   dwOptions WINE_PACKED;
5274     DWORD   dwFilter WINE_PACKED;
5275     CHAR    achAllocModule[8] WINE_PACKED;
5276     DWORD   dwAllocBreak WINE_PACKED;
5277     DWORD   dwAllocCount WINE_PACKED;
5278 } WINDEBUGINFO, *LPWINDEBUGINFO;
5279
5280 /* WINDEBUGINFO flags values */
5281 #define WDI_OPTIONS         0x0001
5282 #define WDI_FILTER          0x0002
5283 #define WDI_ALLOCBREAK      0x0004
5284
5285 /* dwOptions values */
5286 #define DBO_CHECKHEAP       0x0001
5287 #define DBO_BUFFERFILL      0x0004
5288 #define DBO_DISABLEGPTRAPPING 0x0010
5289 #define DBO_CHECKFREE       0x0020
5290
5291 #define DBO_SILENT          0x8000
5292
5293 #define DBO_TRACEBREAK      0x2000
5294 #define DBO_WARNINGBREAK    0x1000
5295 #define DBO_NOERRORBREAK    0x0800
5296 #define DBO_NOFATALBREAK    0x0400
5297 #define DBO_INT3BREAK       0x0100
5298
5299 /* DebugOutput flags values */
5300 #define DBF_TRACE           0x0000
5301 #define DBF_WARNING         0x4000
5302 #define DBF_ERROR           0x8000
5303 #define DBF_FATAL           0xc000
5304
5305 /* dwFilter values */
5306 #define DBF_KERNEL          0x1000
5307 #define DBF_KRN_MEMMAN      0x0001
5308 #define DBF_KRN_LOADMODULE  0x0002
5309 #define DBF_KRN_SEGMENTLOAD 0x0004
5310 #define DBF_USER            0x0800
5311 #define DBF_GDI             0x0400
5312 #define DBF_MMSYSTEM        0x0040
5313 #define DBF_PENWIN          0x0020
5314 #define DBF_APPLICATION     0x0008
5315 #define DBF_DRIVER          0x0010
5316
5317 #endif /* NOLOGERROR */
5318
5319 /* Win32-specific structures */
5320
5321 typedef struct {
5322     DWORD dwData;
5323     DWORD cbData;
5324     LPVOID lpData;
5325 } COPYDATASTRUCT, *PCOPYDATASTRUCT, *LPCOPYDATASTRUCT;
5326
5327 typedef struct {
5328     HMENU32 hmenuIn;
5329     HMENU32 hmenuNext;
5330     HWND32  hwndNext;
5331 } MDINEXTMENU, *PMDINEXTMENU, *LPMDINEXTMENU;
5332
5333 typedef struct {
5334         WORD wYear;
5335         WORD wMonth;
5336         WORD wDayOfWeek;
5337         WORD wDay;
5338         WORD wHour;
5339         WORD wMinute;
5340         WORD wSecond;
5341         WORD wMilliseconds;
5342 } SYSTEMTIME, *LPSYSTEMTIME;
5343
5344
5345 /* Code page information.
5346  */
5347 #define MAX_LEADBYTES     12
5348 #define MAX_DEFAULTCHAR   2
5349
5350 typedef struct
5351 {
5352     UINT32 MaxCharSize;
5353     BYTE   DefaultChar[MAX_DEFAULTCHAR];
5354     BYTE   LeadByte[MAX_LEADBYTES];
5355 } CPINFO, *LPCPINFO;
5356
5357 /* The 'overlapped' data structure used by async I/O functions.
5358  */
5359 typedef struct {
5360         DWORD Internal;
5361         DWORD InternalHigh;
5362         DWORD Offset;
5363         DWORD OffsetHigh;
5364         HANDLE32 hEvent;
5365 } OVERLAPPED, *LPOVERLAPPED;
5366
5367 /* Process startup information.
5368  */
5369
5370 /* STARTUPINFO.dwFlags */
5371 #define STARTF_USESHOWWINDOW    0x00000001
5372 #define STARTF_USESIZE          0x00000002
5373 #define STARTF_USEPOSITION      0x00000004
5374 #define STARTF_USECOUNTCHARS    0x00000008
5375 #define STARTF_USEFILLATTRIBUTE 0x00000010
5376 #define STARTF_RUNFULLSCREEN    0x00000020
5377 #define STARTF_FORCEONFEEDBACK  0x00000040
5378 #define STARTF_FORCEOFFFEEDBACK 0x00000080
5379 #define STARTF_USESTDHANDLES    0x00000100
5380 #define STARTF_USEHOTKEY        0x00000200
5381
5382 typedef struct {
5383         DWORD cb;               /* 00: size of struct */
5384         LPSTR lpReserved;       /* 04: */
5385         LPSTR lpDesktop;        /* 08: */
5386         LPSTR lpTitle;          /* 0c: */
5387         DWORD dwX;              /* 10: */
5388         DWORD dwY;              /* 14: */
5389         DWORD dwXSize;          /* 18: */
5390         DWORD dwYSize;          /* 1c: */
5391         DWORD dwXCountChars;    /* 20: */
5392         DWORD dwYCountChars;    /* 24: */
5393         DWORD dwFillAttribute;  /* 28: */
5394         DWORD dwFlags;          /* 2c: */
5395         WORD wShowWindow;       /* 30: */
5396         WORD cbReserved2;       /* 32: */
5397         BYTE *lpReserved2;      /* 34: */
5398         HANDLE32 hStdInput;     /* 38: */
5399         HANDLE32 hStdOutput;    /* 3c: */
5400         HANDLE32 hStdError;     /* 40: */
5401 } STARTUPINFO32A, *LPSTARTUPINFO32A;
5402
5403 typedef struct {
5404         DWORD cb;
5405         LPWSTR lpReserved;
5406         LPWSTR lpDesktop;
5407         LPWSTR lpTitle;
5408         DWORD dwX;
5409         DWORD dwY;
5410         DWORD dwXSize;
5411         DWORD dwYSize;
5412         DWORD dwXCountChars;
5413         DWORD dwYCountChars;
5414         DWORD dwFillAttribute;
5415         DWORD dwFlags;
5416         WORD wShowWindow;
5417         WORD cbReserved2;
5418         BYTE *lpReserved2;
5419         HANDLE32 hStdInput;
5420         HANDLE32 hStdOutput;
5421         HANDLE32 hStdError;
5422 } STARTUPINFO32W, *LPSTARTUPINFO32W;
5423
5424 DECL_WINELIB_TYPE_AW(STARTUPINFO)
5425 DECL_WINELIB_TYPE_AW(LPSTARTUPINFO)
5426
5427 typedef struct {
5428         HANDLE32        hProcess;
5429         HANDLE32        hThread;
5430         DWORD           dwProcessId;
5431         DWORD           dwThreadId;
5432 } PROCESS_INFORMATION,*LPPROCESS_INFORMATION;
5433
5434 typedef struct {
5435         LONG Bias;
5436         WCHAR StandardName[32];
5437         SYSTEMTIME StandardDate;
5438         LONG StandardBias;
5439         WCHAR DaylightName[32];
5440         SYSTEMTIME DaylightDate;
5441         LONG DaylightBias;
5442 } TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
5443
5444 #define TIME_ZONE_ID_UNKNOWN    0
5445 #define TIME_ZONE_ID_STANDARD   1
5446 #define TIME_ZONE_ID_DAYLIGHT   2
5447
5448 /*
5449  * Process Entry list as created by CreateToolHelp32Snapshot 
5450  */
5451 #ifndef MAX_PATH
5452 #define MAX_PATH 260
5453 #endif
5454
5455 typedef struct tagPROCESSENTRY32 { 
5456     DWORD dwSize; 
5457     DWORD cntUsage; 
5458     DWORD th32ProcessID; 
5459     DWORD th32DefaultHeapID; 
5460     DWORD th32ModuleID; 
5461     DWORD cntThreads; 
5462     DWORD th32ParentProcessID; 
5463     LONG  pcPriClassBase; 
5464     DWORD dwFlags; 
5465     char szExeFile[MAX_PATH]; 
5466 } PROCESSENTRY32; 
5467 typedef PROCESSENTRY32 *  PPROCESSENTRY32; 
5468 typedef PROCESSENTRY32 *  LPPROCESSENTRY32; 
5469
5470 /* CreateProcess: dwCreationFlag values
5471  */
5472 #define DEBUG_PROCESS               0x00000001
5473 #define DEBUG_ONLY_THIS_PROCESS     0x00000002
5474 #define CREATE_SUSPENDED            0x00000004
5475 #define DETACHED_PROCESS            0x00000008
5476 #define CREATE_NEW_CONSOLE          0x00000010
5477 #define NORMAL_PRIORITY_CLASS       0x00000020
5478 #define IDLE_PRIORITY_CLASS         0x00000040
5479 #define HIGH_PRIORITY_CLASS         0x00000080
5480 #define REALTIME_PRIORITY_CLASS     0x00000100
5481 #define CREATE_NEW_PROCESS_GROUP    0x00000200
5482 #define CREATE_UNICODE_ENVIRONMENT  0x00000400
5483 #define CREATE_SEPARATE_WOW_VDM     0x00000800
5484 #define CREATE_SHARED_WOW_VDM       0x00001000
5485 #define CREATE_DEFAULT_ERROR_MODE   0x04000000
5486 #define CREATE_NO_WINDOW            0x08000000
5487 #define PROFILE_USER                0x10000000
5488 #define PROFILE_KERNEL              0x20000000
5489 #define PROFILE_SERVER              0x40000000
5490
5491
5492 /* File object type definitions
5493  */
5494 #define FILE_TYPE_UNKNOWN       0
5495 #define FILE_TYPE_DISK          1
5496 #define FILE_TYPE_CHAR          2
5497 #define FILE_TYPE_PIPE          3
5498 #define FILE_TYPE_REMOTE        32768
5499
5500 /* File creation flags
5501  */
5502 #define FILE_FLAG_WRITE_THROUGH    0x80000000UL
5503 #define FILE_FLAG_OVERLAPPED       0x40000000L
5504 #define FILE_FLAG_NO_BUFFERING     0x20000000L
5505 #define FILE_FLAG_RANDOM_ACCESS    0x10000000L
5506 #define FILE_FLAG_SEQUENTIAL_SCAN  0x08000000L
5507 #define FILE_FLAG_DELETE_ON_CLOSE  0x04000000L
5508 #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L
5509 #define FILE_FLAG_POSIX_SEMANTICS  0x01000000L
5510 #define CREATE_NEW              1
5511 #define CREATE_ALWAYS           2
5512 #define OPEN_EXISTING           3
5513 #define OPEN_ALWAYS             4
5514 #define TRUNCATE_EXISTING       5
5515
5516 /* Standard handle identifiers
5517  */
5518 #define STD_INPUT_HANDLE        ((DWORD) -10)
5519 #define STD_OUTPUT_HANDLE       ((DWORD) -11)
5520 #define STD_ERROR_HANDLE        ((DWORD) -12)
5521
5522 typedef struct
5523 {
5524   int dwFileAttributes;
5525   FILETIME ftCreationTime;
5526   FILETIME ftLastAccessTime;
5527   FILETIME ftLastWriteTime;
5528   int dwVolumeSerialNumber;
5529   int nFileSizeHigh;
5530   int nFileSizeLow;
5531   int nNumberOfLinks;
5532   int nFileIndexHigh;
5533   int nFileIndexLow;
5534 } BY_HANDLE_FILE_INFORMATION ;
5535
5536 /* File attribute flags
5537  */
5538 #define FILE_SHARE_READ                 0x00000001L
5539 #define FILE_SHARE_WRITE                0x00000002L
5540 #define FILE_SHARE_DELETE               0x00000004L
5541 #define FILE_ATTRIBUTE_READONLY         0x00000001L
5542 #define FILE_ATTRIBUTE_HIDDEN           0x00000002L
5543 #define FILE_ATTRIBUTE_SYSTEM           0x00000004L
5544 #define FILE_ATTRIBUTE_LABEL            0x00000008L  /* Not in Windows API */
5545 #define FILE_ATTRIBUTE_DIRECTORY        0x00000010L
5546 #define FILE_ATTRIBUTE_ARCHIVE          0x00000020L
5547 #define FILE_ATTRIBUTE_NORMAL           0x00000080L
5548 #define FILE_ATTRIBUTE_TEMPORARY        0x00000100L
5549 #define FILE_ATTRIBUTE_ATOMIC_WRITE     0x00000200L
5550 #define FILE_ATTRIBUTE_XACTION_WRITE    0x00000400L
5551 #define FILE_ATTRIBUTE_COMPRESSED       0x00000800L
5552 #define FILE_ATTRIBUTE_OFFLINE          0x00001000L
5553
5554 /* File alignments (NT) */
5555 #define FILE_BYTE_ALIGNMENT             0x00000000
5556 #define FILE_WORD_ALIGNMENT             0x00000001
5557 #define FILE_LONG_ALIGNMENT             0x00000003
5558 #define FILE_QUAD_ALIGNMENT             0x00000007
5559 #define FILE_OCTA_ALIGNMENT             0x0000000f
5560 #define FILE_32_BYTE_ALIGNMENT          0x0000001f
5561 #define FILE_64_BYTE_ALIGNMENT          0x0000003f
5562 #define FILE_128_BYTE_ALIGNMENT         0x0000007f
5563 #define FILE_256_BYTE_ALIGNMENT         0x000000ff
5564 #define FILE_512_BYTE_ALIGNMENT         0x000001ff
5565
5566 /* WinHelp internal structure */
5567 typedef struct {
5568         WORD size;
5569         WORD command;
5570         LONG data;
5571         LONG reserved;
5572         WORD ofsFilename;
5573         WORD ofsData;
5574 } WINHELP,*LPWINHELP;
5575
5576 typedef struct
5577 {
5578     UINT16  mkSize;
5579     BYTE    mkKeyList;
5580     BYTE    szKeyPhrase[1];
5581 } MULTIKEYHELP, *LPMULTIKEYHELP;
5582
5583 typedef struct {
5584         WORD wStructSize;
5585         WORD x;
5586         WORD y;
5587         WORD dx;
5588         WORD dy;
5589         WORD wMax;
5590         char rgchMember[2];
5591 } HELPWININFO, *LPHELPWININFO;
5592
5593 #define HELP_CONTEXT        0x0001
5594 #define HELP_QUIT           0x0002
5595 #define HELP_INDEX          0x0003
5596 #define HELP_CONTENTS       0x0003
5597 #define HELP_HELPONHELP     0x0004
5598 #define HELP_SETINDEX       0x0005
5599 #define HELP_SETCONTENTS    0x0005
5600 #define HELP_CONTEXTPOPUP   0x0008
5601 #define HELP_FORCEFILE      0x0009
5602 #define HELP_KEY            0x0101
5603 #define HELP_COMMAND        0x0102
5604 #define HELP_PARTIALKEY     0x0105
5605 #define HELP_MULTIKEY       0x0201
5606 #define HELP_SETWINPOS      0x0203
5607 #define HELP_CONTEXTMENU    0x000a
5608 #define HELP_FINDER         0x000b
5609 #define HELP_WM_HELP        0x000c
5610 #define HELP_SETPOPUP_POS   0x000d
5611
5612 #define HELP_TCARD          0x8000
5613 #define HELP_TCARD_DATA     0x0010
5614 #define HELP_TCARD_OTHER_CALLER 0x0011
5615
5616
5617 /* ExitWindows() flags */
5618 #define EW_RESTARTWINDOWS   0x0042
5619 #define EW_REBOOTSYSTEM     0x0043
5620 #define EW_EXITANDEXECAPP   0x0044
5621
5622 /* ExitWindowsEx() flags */
5623 #define EWX_LOGOFF           0
5624 #define EWX_SHUTDOWN         1
5625 #define EWX_REBOOT           2
5626 #define EWX_FORCE            4
5627 #define EWX_POWEROFF         8
5628
5629
5630 #define CCHDEVICENAME 32
5631 #define CCHFORMNAME   32
5632
5633 typedef struct
5634 {
5635     BYTE   dmDeviceName[CCHDEVICENAME];
5636     WORD   dmSpecVersion;
5637     WORD   dmDriverVersion;
5638     WORD   dmSize;
5639     WORD   dmDriverExtra;
5640     DWORD  dmFields;
5641     INT16  dmOrientation;
5642     INT16  dmPaperSize;
5643     INT16  dmPaperLength;
5644     INT16  dmPaperWidth;
5645     INT16  dmScale;
5646     INT16  dmCopies;
5647     INT16  dmDefaultSource;
5648     INT16  dmPrintQuality;
5649     INT16  dmColor;
5650     INT16  dmDuplex;
5651     INT16  dmYResolution;
5652     INT16  dmTTOption;
5653     INT16  dmCollate;
5654     BYTE   dmFormName[CCHFORMNAME];
5655     WORD   dmUnusedPadding;
5656     WORD   dmBitsPerPel;
5657     DWORD  dmPelsWidth;
5658     DWORD  dmPelsHeight;
5659     DWORD  dmDisplayFlags;
5660     DWORD  dmDisplayFrequency;
5661 } DEVMODE16, *LPDEVMODE16;
5662
5663 typedef struct
5664 {
5665     BYTE   dmDeviceName[CCHDEVICENAME];
5666     WORD   dmSpecVersion;
5667     WORD   dmDriverVersion;
5668     WORD   dmSize;
5669     WORD   dmDriverExtra;
5670     DWORD  dmFields;
5671     INT16  dmOrientation;
5672     INT16  dmPaperSize;
5673     INT16  dmPaperLength;
5674     INT16  dmPaperWidth;
5675     INT16  dmScale;
5676     INT16  dmCopies;
5677     INT16  dmDefaultSource;
5678     INT16  dmPrintQuality;
5679     INT16  dmColor;
5680     INT16  dmDuplex;
5681     INT16  dmYResolution;
5682     INT16  dmTTOption;
5683     INT16  dmCollate;
5684     BYTE   dmFormName[CCHFORMNAME];
5685     WORD   dmLogPixels;
5686     DWORD  dmBitsPerPel;
5687     DWORD  dmPelsWidth;
5688     DWORD  dmPelsHeight;
5689     DWORD  dmDisplayFlags;
5690     DWORD  dmDisplayFrequency;
5691     DWORD  dmICMMethod;
5692     DWORD  dmICMIntent;
5693     DWORD  dmMediaType;
5694     DWORD  dmDitherType;
5695     DWORD  dmReserved1;
5696     DWORD  dmReserved2;
5697 } DEVMODE32A, *LPDEVMODE32A;
5698
5699 typedef struct
5700 {
5701     WCHAR  dmDeviceName[CCHDEVICENAME];
5702     WORD   dmSpecVersion;
5703     WORD   dmDriverVersion;
5704     WORD   dmSize;
5705     WORD   dmDriverExtra;
5706     DWORD  dmFields;
5707     INT16  dmOrientation;
5708     INT16  dmPaperSize;
5709     INT16  dmPaperLength;
5710     INT16  dmPaperWidth;
5711     INT16  dmScale;
5712     INT16  dmCopies;
5713     INT16  dmDefaultSource;
5714     INT16  dmPrintQuality;
5715     INT16  dmColor;
5716     INT16  dmDuplex;
5717     INT16  dmYResolution;
5718     INT16  dmTTOption;
5719     INT16  dmCollate;
5720     WCHAR  dmFormName[CCHFORMNAME];
5721     WORD   dmLogPixels;
5722     DWORD  dmBitsPerPel;
5723     DWORD  dmPelsWidth;
5724     DWORD  dmPelsHeight;
5725     DWORD  dmDisplayFlags;
5726     DWORD  dmDisplayFrequency;
5727     DWORD  dmICMMethod;
5728     DWORD  dmICMIntent;
5729     DWORD  dmMediaType;
5730     DWORD  dmDitherType;
5731     DWORD  dmReserved1;
5732     DWORD  dmReserved2;
5733 } DEVMODE32W, *LPDEVMODE32W;
5734
5735 DECL_WINELIB_TYPE_AW(DEVMODE)
5736 DECL_WINELIB_TYPE_AW(LPDEVMODE)
5737
5738
5739 #define DM_UPDATE       1
5740 #define DM_COPY         2
5741 #define DM_PROMPT       4
5742 #define DM_MODIFY       8
5743
5744 #define DM_ORIENTATION          0x00000001L
5745 #define DM_PAPERSIZE            0x00000002L
5746 #define DM_PAPERLENGTH          0x00000004L
5747 #define DM_PAPERWIDTH           0x00000008L
5748 #define DM_SCALE                0x00000010L
5749 #define DM_COPIES               0x00000100L
5750 #define DM_DEFAULTSOURCE        0x00000200L
5751 #define DM_PRINTQUALITY         0x00000400L
5752 #define DM_COLOR                0x00000800L
5753 #define DM_DUPLEX               0x00001000L
5754 #define DM_YRESOLUTION          0x00002000L
5755 #define DM_TTOPTION             0x00004000L
5756 #define DM_BITSPERPEL           0x00040000L
5757 #define DM_PELSWIDTH            0x00080000L
5758 #define DM_PELSHEIGHT           0x00100000L
5759 #define DM_DISPLAYFLAGS         0x00200000L
5760 #define DM_DISPLAYFREQUENCY     0x00400000L
5761
5762 /* etc.... */
5763
5764 #define DMORIENT_PORTRAIT       1
5765 #define DMORIENT_LANDSCAPE      2
5766
5767 #define DMPAPER_LETTER          1
5768 #define DMPAPER_LEGAL           5
5769 #define DMPAPER_EXECUTIVE       7
5770 #define DMPAPER_A3              8
5771 #define DMPAPER_A4              9
5772 #define DMPAPER_A5              11
5773 #define DMPAPER_ENV_10          20
5774 #define DMPAPER_ENV_DL          27
5775 #define DMPAPER_ENV_C5          28
5776 #define DMPAPER_ENV_B5          34
5777 #define DMPAPER_ENV_MONARCH     37
5778
5779 #define DMBIN_UPPER             1
5780 #define DMBIN_LOWER             2
5781 #define DMBIN_MIDDLE            3
5782 #define DMBIN_MANUAL            4
5783 #define DMBIN_ENVELOPE          5
5784 #define DMBIN_ENVMANUAL         6
5785 #define DMBIN_AUTO              7
5786 #define DMBIN_LARGECAPACITY     11
5787
5788 #define DMCOLOR_MONOCHROME      1
5789 #define DMCOLOR_COLOR           2
5790
5791 #define DMTT_BITMAP             1
5792 #define DMTT_DOWNLOAD           2
5793 #define DMTT_SUBDEV             3
5794
5795
5796 #define DC_FIELDS               1
5797 #define DC_PAPERS               2
5798 #define DC_PAPERSIZE            3
5799 #define DC_MINEXTENT            4
5800 #define DC_MAXEXTENT            5
5801 #define DC_BINS                 6
5802 #define DC_DUPLEX               7
5803 #define DC_SIZE                 8
5804 #define DC_EXTRA                9
5805 #define DC_VERSION              10
5806 #define DC_DRIVER               11
5807 #define DC_BINNAMES             12
5808 #define DC_ENUMRESOLUTIONS      13
5809 #define DC_FILEDEPENDENCIES     14
5810 #define DC_TRUETYPE             15
5811 #define DC_PAPERNAMES           16
5812 #define DC_ORIENTATION          17
5813 #define DC_COPIES               18
5814
5815
5816 typedef struct _PRINTER_DEFAULTS32A {
5817     LPSTR        pDatatype;
5818     LPDEVMODE32A pDevMode;
5819     ACCESS_MASK  DesiredAccess;
5820 } PRINTER_DEFAULTS32A, *LPPRINTER_DEFAULTS32A;
5821
5822 typedef struct _PRINTER_DEFAULTS32W {
5823     LPWSTR       pDatatype;
5824     LPDEVMODE32W pDevMode;
5825     ACCESS_MASK  DesiredAccess;
5826 } PRINTER_DEFAULTS32W, *LPPRINTER_DEFAULTS32W;
5827
5828 DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS)
5829 DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS)
5830
5831      /* ChangeDisplaySettings return codes */
5832
5833 #define DISP_CHANGE_SUCCESSFUL 0
5834 #define DISP_CHANGE_RESTART    1
5835 #define DISP_CHANGE_FAILED     (-1)
5836 #define DISP_CHANGE_BADMODE    (-2)
5837 #define DISP_CHANGE_NOTUPDATED (-3)
5838 #define DISP_CHANGE_BADFLAGS   (-4)
5839
5840
5841 typedef struct _SYSTEM_POWER_STATUS
5842 {
5843   BOOL16  ACLineStatus;
5844   BYTE    BatteryFlag;
5845   BYTE    BatteryLifePercent;
5846   BYTE    reserved;
5847   DWORD   BatteryLifeTime;
5848   DWORD   BatteryFullLifeTime;
5849 } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
5850
5851 /* flags to FormatMessage */
5852 #define FORMAT_MESSAGE_ALLOCATE_BUFFER  0x00000100
5853 #define FORMAT_MESSAGE_IGNORE_INSERTS   0x00000200
5854 #define FORMAT_MESSAGE_FROM_STRING      0x00000400
5855 #define FORMAT_MESSAGE_FROM_HMODULE     0x00000800
5856 #define FORMAT_MESSAGE_FROM_SYSTEM      0x00001000
5857 #define FORMAT_MESSAGE_ARGUMENT_ARRAY   0x00002000
5858 #define FORMAT_MESSAGE_MAX_WIDTH_MASK   0x000000FF
5859
5860 /* types of LoadImage */
5861 #define IMAGE_BITMAP    0
5862 #define IMAGE_ICON      1
5863 #define IMAGE_CURSOR    2
5864 #define IMAGE_ENHMETA   3
5865
5866 /* loadflags to LoadImage */
5867 #define LR_DEFAULTCOLOR         0x0000
5868 #define LR_MONOCHROME           0x0001
5869 #define LR_COLOR                0x0002
5870 #define LR_COPYRETURNORG        0x0004
5871 #define LR_COPYDELETEORG        0x0008
5872 #define LR_LOADFROMFILE         0x0010
5873 #define LR_LOADTRANSPARENT      0x0020
5874 #define LR_DEFAULTSIZE          0x0040
5875 #define LR_VGA_COLOR            0x0080
5876 #define LR_LOADMAP3DCOLORS      0x1000
5877 #define LR_CREATEDIBSECTION     0x2000
5878 #define LR_COPYFROMRESOURCE     0x4000
5879 #define LR_SHARED               0x8000
5880
5881 /* Flags for PolyDraw and GetPath */
5882 #define PT_CLOSEFIGURE          0x0001
5883 #define PT_LINETO               0x0002
5884 #define PT_BEZIERTO             0x0004
5885 #define PT_MOVETO               0x0006
5886
5887 typedef struct _LARGE_INTEGER
5888 {
5889     DWORD    LowPart;
5890     LONG     HighPart;
5891 } LARGE_INTEGER,*LPLARGE_INTEGER;
5892
5893 typedef struct _ULARGE_INTEGER
5894 {
5895     DWORD    LowPart;
5896     DWORD    HighPart;
5897 } ULARGE_INTEGER,*LPULARGE_INTEGER;
5898
5899 typedef LARGE_INTEGER LUID,*LPLUID; /* locally unique ids */
5900
5901 /* SetLastErrorEx types */
5902 #define SLE_ERROR       0x00000001
5903 #define SLE_MINORERROR  0x00000002
5904 #define SLE_WARNING     0x00000003
5905
5906 /* Argument 1 passed to the DllEntryProc. */
5907 #define DLL_PROCESS_DETACH      0       /* detach process (unload library) */
5908 #define DLL_PROCESS_ATTACH      1       /* attach process (load library) */
5909 #define DLL_THREAD_ATTACH       2       /* attach new thread */
5910 #define DLL_THREAD_DETACH       3       /* detach thread */
5911
5912 typedef struct _MEMORY_BASIC_INFORMATION
5913 {
5914     LPVOID   BaseAddress;
5915     LPVOID   AllocationBase;
5916     DWORD    AllocationProtect;
5917     DWORD    RegionSize;
5918     DWORD    State;
5919     DWORD    Protect;
5920     DWORD    Type;
5921 } MEMORY_BASIC_INFORMATION,*LPMEMORY_BASIC_INFORMATION;
5922
5923
5924 typedef BOOL32 (CALLBACK *CODEPAGE_ENUMPROC32A)(LPSTR);
5925 typedef BOOL32 (CALLBACK *CODEPAGE_ENUMPROC32W)(LPWSTR);
5926 DECL_WINELIB_TYPE_AW(CODEPAGE_ENUMPROC)
5927 typedef BOOL32 (CALLBACK *LOCALE_ENUMPROC32A)(LPSTR);
5928 typedef BOOL32 (CALLBACK *LOCALE_ENUMPROC32W)(LPWSTR);
5929 DECL_WINELIB_TYPE_AW(LOCALE_ENUMPROC)
5930
5931 typedef struct tagSYSTEM_INFO
5932 {
5933     union {
5934         DWORD   dwOemId;
5935         struct {
5936                 WORD wProcessorArchitecture;
5937                 WORD wReserved;
5938         } x;
5939     } u;
5940     DWORD       dwPageSize;
5941     LPVOID      lpMinimumApplicationAddress;
5942     LPVOID      lpMaximumApplicationAddress;
5943     DWORD       dwActiveProcessorMask;
5944     DWORD       dwNumberOfProcessors;
5945     DWORD       dwProcessorType;
5946     DWORD       dwAllocationGranularity;
5947     WORD        wProcessorLevel;
5948     WORD        wProcessorRevision;
5949 } SYSTEM_INFO, *LPSYSTEM_INFO;
5950
5951 /* u.x.wProcessorArchitecture (NT) */
5952 #define PROCESSOR_ARCHITECTURE_INTEL    0
5953 #define PROCESSOR_ARCHITECTURE_MIPS     1
5954 #define PROCESSOR_ARCHITECTURE_ALPHA    2
5955 #define PROCESSOR_ARCHITECTURE_PPC      3
5956 #define PROCESSOR_ARCHITECTURE_UNKNOWN  0xFFFF
5957
5958 /* dwProcessorType */
5959 #define PROCESSOR_INTEL_386     386
5960 #define PROCESSOR_INTEL_486     486
5961 #define PROCESSOR_INTEL_PENTIUM 586
5962 #define PROCESSOR_MIPS_R4000    4000
5963 #define PROCESSOR_ALPHA_21064   21064
5964
5965 /* service main function prototype */
5966 typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTION32A)(DWORD,LPSTR);
5967 typedef VOID (CALLBACK *LPSERVICE_MAIN_FUNCTION32W)(DWORD,LPWSTR);
5968 DECL_WINELIB_TYPE_AW(LPSERVICE_MAIN_FUNCTION)
5969
5970 /* service start table */
5971 typedef struct
5972 {
5973     LPSTR                       lpServiceName;
5974     LPSERVICE_MAIN_FUNCTION32A  lpServiceProc;
5975 } *LPSERVICE_TABLE_ENTRY32A, SERVICE_TABLE_ENTRY32A;
5976
5977 typedef struct
5978 {
5979     LPWSTR                      lpServiceName;
5980     LPSERVICE_MAIN_FUNCTION32W  lpServiceProc;
5981 } *LPSERVICE_TABLE_ENTRY32W, SERVICE_TABLE_ENTRY32W;
5982
5983 DECL_WINELIB_TYPE_AW(SERVICE_TABLE_ENTRY)
5984 DECL_WINELIB_TYPE_AW(LPSERVICE_TABLE_ENTRY)
5985
5986 /* Used by: ControlService */
5987 typedef struct _SERVICE_STATUS {
5988     DWORD dwServiceType;
5989     DWORD dwCurrentState;
5990     DWORD dwControlsAccepted;
5991     DWORD dwWin32ExitCode;
5992     DWORD dwServiceSpecificExitCode;
5993     DWORD dwCheckPoint;
5994     DWORD dwWaitHint;
5995 } SERVICE_STATUS, *LPSERVICE_STATUS;
5996
5997
5998 /* {G,S}etPriorityClass */
5999 #define NORMAL_PRIORITY_CLASS   0x00000020
6000 #define IDLE_PRIORITY_CLASS     0x00000040
6001 #define HIGH_PRIORITY_CLASS     0x00000080
6002 #define REALTIME_PRIORITY_CLASS 0x00000100
6003
6004 /* GDI Escape commands */
6005 #define NEWFRAME                1
6006 #define ABORTDOC                2
6007 #define NEXTBAND                3
6008 #define SETCOLORTABLE           4
6009 #define GETCOLORTABLE           5
6010 #define FLUSHOUTPUT             6
6011 #define DRAFTMODE               7
6012 #define QUERYESCSUPPORT         8
6013 #define SETABORTPROC            9
6014 #define STARTDOC                10
6015 #define ENDDOC                  11
6016 #define GETPHYSPAGESIZE         12
6017 #define GETPRINTINGOFFSET       13
6018 #define GETSCALINGFACTOR        14
6019 #define MFCOMMENT               15
6020 #define GETPENWIDTH             16
6021 #define SETCOPYCOUNT            17
6022 #define SELECTPAPERSOURCE       18
6023 #define DEVICEDATA              19
6024 #define PASSTHROUGH             19
6025 #define GETTECHNOLGY            20
6026 #define GETTECHNOLOGY           20 /* yes, both of them */
6027 #define SETLINECAP              21
6028 #define SETLINEJOIN             22
6029 #define SETMITERLIMIT           23
6030 #define BANDINFO                24
6031 #define DRAWPATTERNRECT         25
6032 #define GETVECTORPENSIZE        26
6033 #define GETVECTORBRUSHSIZE      27
6034 #define ENABLEDUPLEX            28
6035 #define GETSETPAPERBINS         29
6036 #define GETSETPRINTORIENT       30
6037 #define ENUMPAPERBINS           31
6038 #define SETDIBSCALING           32
6039 #define EPSPRINTING             33
6040 #define ENUMPAPERMETRICS        34
6041 #define GETSETPAPERMETRICS      35
6042 #define POSTSCRIPT_DATA         37
6043 #define POSTSCRIPT_IGNORE       38
6044 #define MOUSETRAILS             39
6045 #define GETDEVICEUNITS          42
6046
6047 #define GETEXTENDEDTEXTMETRICS  256
6048 #define GETEXTENTTABLE          257
6049 #define GETPAIRKERNTABLE        258
6050 #define GETTRACKKERNTABLE       259
6051 #define EXTTEXTOUT              512
6052 #define GETFACENAME             513
6053 #define DOWNLOADFACE            514
6054 #define ENABLERELATIVEWIDTHS    768
6055 #define ENABLEPAIRKERNING       769
6056 #define SETKERNTRACK            770
6057 #define SETALLJUSTVALUES        771
6058 #define SETCHARSET              772
6059
6060 #define STRETCHBLT              2048
6061 #define GETSETSCREENPARAMS      3072
6062 #define QUERYDIBSUPPORT         3073
6063 #define BEGIN_PATH              4096
6064 #define CLIP_TO_PATH            4097
6065 #define END_PATH                4098
6066 #define EXT_DEVICE_CAPS         4099
6067 #define RESTORE_CTM             4100
6068 #define SAVE_CTM                4101
6069 #define SET_ARC_DIRECTION       4102
6070 #define SET_BACKGROUND_COLOR    4103
6071 #define SET_POLY_MODE           4104
6072 #define SET_SCREEN_ANGLE        4105
6073 #define SET_SPREAD              4106
6074 #define TRANSFORM_CTM           4107
6075 #define SET_CLIP_BOX            4108
6076 #define SET_BOUNDS              4109
6077 #define SET_MIRROR_MODE         4110
6078 #define OPENCHANNEL             4110
6079 #define DOWNLOADHEADER          4111
6080 #define CLOSECHANNEL            4112
6081 #define POSTSCRIPT_PASSTHROUGH  4115
6082 #define ENCAPSULATED_POSTSCRIPT 4116
6083
6084 /* Flag returned from Escape QUERYDIBSUPPORT */
6085 #define QDI_SETDIBITS           1
6086 #define QDI_GETDIBITS           2
6087 #define QDI_DIBTOSCREEN         4
6088 #define QDI_STRETCHDIB          8
6089
6090 /* Spooler Error Codes */
6091 #define SP_NOTREPORTED  0x4000
6092 #define SP_ERROR        (-1)
6093 #define SP_APPABORT     (-2)
6094 #define SP_USERABORT    (-3)
6095 #define SP_OUTOFDISK    (-4)
6096 #define SP_OUTOFMEMORY  (-5)
6097
6098 #define PR_JOBSTATUS    0x0000
6099
6100 typedef BOOL32 (CALLBACK *ENUMRESTYPEPROC32A)(HMODULE32,LPSTR,LONG);
6101 typedef BOOL32 (CALLBACK *ENUMRESTYPEPROC32W)(HMODULE32,LPWSTR,LONG);
6102 typedef BOOL32 (CALLBACK *ENUMRESNAMEPROC32A)(HMODULE32,LPCSTR,LPSTR,LONG);
6103 typedef BOOL32 (CALLBACK *ENUMRESNAMEPROC32W)(HMODULE32,LPCWSTR,LPWSTR,LONG);
6104 typedef BOOL32 (CALLBACK *ENUMRESLANGPROC32A)(HMODULE32,LPCSTR,LPCSTR,WORD,LONG);
6105 typedef BOOL32 (CALLBACK *ENUMRESLANGPROC32W)(HMODULE32,LPCWSTR,LPCWSTR,WORD,LONG);
6106
6107 DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC)
6108 DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC)
6109 DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC)
6110
6111 /* Character Type Flags */
6112 #define CT_CTYPE1               0x00000001      /* usual ctype */
6113 #define CT_CTYPE2               0x00000002      /* bidirectional layout info */
6114 #define CT_CTYPE3               0x00000004      /* textprocessing info */
6115
6116 /* CType 1 Flag Bits */
6117 #define C1_UPPER                0x0001
6118 #define C1_LOWER                0x0002
6119 #define C1_DIGIT                0x0004
6120 #define C1_SPACE                0x0008
6121 #define C1_PUNCT                0x0010
6122 #define C1_CNTRL                0x0020
6123 #define C1_BLANK                0x0040
6124 #define C1_XDIGIT               0x0080
6125 #define C1_ALPHA                0x0100
6126
6127 /* CType 2 Flag Bits */
6128 #define C2_LEFTTORIGHT          0x0001
6129 #define C2_RIGHTTOLEFT          0x0002
6130 #define C2_EUROPENUMBER         0x0003
6131 #define C2_EUROPESEPARATOR      0x0004
6132 #define C2_EUROPETERMINATOR     0x0005
6133 #define C2_ARABICNUMBER         0x0006
6134 #define C2_COMMONSEPARATOR      0x0007
6135 #define C2_BLOCKSEPARATOR       0x0008
6136 #define C2_SEGMENTSEPARATOR     0x0009
6137 #define C2_WHITESPACE           0x000A
6138 #define C2_OTHERNEUTRAL         0x000B
6139 #define C2_NOTAPPLICABLE        0x0000
6140
6141 /* CType 3 Flag Bits */
6142 #define C3_NONSPACING           0x0001
6143 #define C3_DIACRITIC            0x0002
6144 #define C3_VOWELMARK            0x0004
6145 #define C3_SYMBOL               0x0008
6146 #define C3_KATAKANA             0x0010
6147 #define C3_HIRAGANA             0x0020
6148 #define C3_HALFWIDTH            0x0040
6149 #define C3_FULLWIDTH            0x0080
6150 #define C3_IDEOGRAPH            0x0100
6151 #define C3_KASHIDA              0x0200
6152 #define C3_LEXICAL              0x0400
6153 #define C3_ALPHA                0x8000
6154 #define C3_NOTAPPLICABLE        0x0000
6155
6156 /* flags that can be passed to LoadLibraryEx */
6157 #define DONT_RESOLVE_DLL_REFERENCES     0x00000001
6158 #define LOAD_LIBRARY_AS_DATAFILE        0x00000002
6159 #define LOAD_WITH_ALTERED_SEARCH_PATH   0x00000008
6160
6161 typedef struct 
6162 {
6163     INT16    cbSize;
6164     SEGPTR   lpszDocName WINE_PACKED;
6165     SEGPTR   lpszOutput WINE_PACKED;
6166 } DOCINFO16, *LPDOCINFO16;
6167
6168 typedef struct 
6169 {
6170     INT32    cbSize;
6171     LPCSTR   lpszDocName;
6172     LPCSTR   lpszOutput;
6173     LPCSTR   lpszDatatype;
6174     DWORD    fwType;
6175 } DOCINFO32A, *LPDOCINFO32A;
6176
6177 typedef struct 
6178 {
6179     INT32    cbSize;
6180     LPCWSTR  lpszDocName;
6181     LPCWSTR  lpszOutput;
6182     LPCWSTR  lpszDatatype;
6183     DWORD    fwType;
6184 } DOCINFO32W, *LPDOCINFO32W;
6185
6186 DECL_WINELIB_TYPE_AW(DOCINFO)
6187 DECL_WINELIB_TYPE_AW(LPDOCINFO)
6188
6189 typedef struct {
6190         DWORD   dwScope;
6191         DWORD   dwType;
6192         DWORD   dwDisplayType;
6193         DWORD   dwUsage;
6194         LPSTR   lpLocalName;
6195         LPSTR   lpRemoteName;
6196         LPSTR   lpComment ;
6197         LPSTR   lpProvider;
6198 } NETRESOURCE32A,*LPNETRESOURCE32A;
6199
6200 typedef struct {
6201         DWORD   dwScope;
6202         DWORD   dwType;
6203         DWORD   dwDisplayType;
6204         DWORD   dwUsage;
6205         LPWSTR  lpLocalName;
6206         LPWSTR  lpRemoteName;
6207         LPWSTR  lpComment ;
6208         LPWSTR  lpProvider;
6209 } NETRESOURCE32W,*LPNETRESOURCE32W;
6210
6211 DECL_WINELIB_TYPE_AW(NETRESOURCE)
6212 DECL_WINELIB_TYPE_AW(LPNETRESOURCE)
6213
6214 typedef struct {
6215     DWORD cbStructure;       /* size of this structure in bytes */
6216     HWND32 hwndOwner;          /* owner window for the dialog */
6217     LPNETRESOURCE32A lpConnRes;/* Requested Resource info    */
6218     DWORD dwFlags;           /* flags (see below) */
6219     DWORD dwDevNum;          /* number of devices connected to */
6220 } CONNECTDLGSTRUCT32A, *LPCONNECTDLGSTRUCT32A;
6221 typedef struct {
6222     DWORD cbStructure;       /* size of this structure in bytes */
6223     HWND32 hwndOwner;          /* owner window for the dialog */
6224     LPNETRESOURCE32W lpConnRes;/* Requested Resource info    */
6225     DWORD dwFlags;           /* flags (see below) */
6226     DWORD dwDevNum;          /* number of devices connected to */
6227 } CONNECTDLGSTRUCT32W, *LPCONNECTDLGSTRUCT32W;
6228
6229 DECL_WINELIB_TYPE_AW(CONNECTDLGSTRUCT)
6230 DECL_WINELIB_TYPE_AW(LPCONNECTDLGSTRUCT)
6231
6232 /**/
6233 #define CONNDLG_RO_PATH     0x00000001 /* Resource path should be read-only    */
6234 #define CONNDLG_CONN_POINT  0x00000002 /* Netware -style movable connection point enabled */
6235 #define CONNDLG_USE_MRU     0x00000004 /* Use MRU combobox  */
6236 #define CONNDLG_HIDE_BOX    0x00000008 /* Hide persistent connect checkbox  */
6237 #define CONNDLG_PERSIST     0x00000010 /* Force persistent connection */
6238 #define CONNDLG_NOT_PERSIST 0x00000020 /* Force connection NOT persistent */
6239
6240
6241 typedef struct {
6242         DWORD   cbStructure;
6243         DWORD   dwFlags;
6244         DWORD   dwSpeed;
6245         DWORD   dwDelay;
6246         DWORD   dwOptDataSize;
6247 } NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT;
6248
6249 typedef struct {
6250         UINT16          cbSize;
6251         INT16           iBorderWidth;
6252         INT16           iScrollWidth;
6253         INT16           iScrollHeight;
6254         INT16           iCaptionWidth;
6255         INT16           iCaptionHeight;
6256         LOGFONT16       lfCaptionFont;
6257         INT16           iSmCaptionWidth;
6258         INT16           iSmCaptionHeight;
6259         LOGFONT16       lfSmCaptionFont;
6260         INT16           iMenuWidth;
6261         INT16           iMenuHeight;
6262         LOGFONT16       lfMenuFont;
6263         LOGFONT16       lfStatusFont;
6264         LOGFONT16       lfMessageFont;
6265 } NONCLIENTMETRICS16,*LPNONCLIENTMETRICS16;
6266
6267 typedef struct {
6268         UINT32          cbSize;
6269         INT32           iBorderWidth;
6270         INT32           iScrollWidth;
6271         INT32           iScrollHeight;
6272         INT32           iCaptionWidth;
6273         INT32           iCaptionHeight;
6274         LOGFONT32A      lfCaptionFont;
6275         INT32           iSmCaptionWidth;
6276         INT32           iSmCaptionHeight;
6277         LOGFONT32A      lfSmCaptionFont;
6278         INT32           iMenuWidth;
6279         INT32           iMenuHeight;
6280         LOGFONT32A      lfMenuFont;
6281         LOGFONT32A      lfStatusFont;
6282         LOGFONT32A      lfMessageFont;
6283 } NONCLIENTMETRICS32A,*LPNONCLIENTMETRICS32A;
6284
6285 typedef struct {
6286         UINT32          cbSize;
6287         INT32           iBorderWidth;
6288         INT32           iScrollWidth;
6289         INT32           iScrollHeight;
6290         INT32           iCaptionWidth;
6291         INT32           iCaptionHeight;
6292         LOGFONT32W      lfCaptionFont;
6293         INT32           iSmCaptionWidth;
6294         INT32           iSmCaptionHeight;
6295         LOGFONT32W      lfSmCaptionFont;
6296         INT32           iMenuWidth;
6297         INT32           iMenuHeight;
6298         LOGFONT32W      lfMenuFont;
6299         LOGFONT32W      lfStatusFont;
6300         LOGFONT32W      lfMessageFont;
6301 } NONCLIENTMETRICS32W,*LPNONCLIENTMETRICS32W;
6302
6303 DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
6304 DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
6305
6306 typedef struct tagANIMATIONINFO
6307 {
6308        UINT32          cbSize;
6309        INT32           iMinAnimate;
6310 } ANIMATIONINFO, *LPANIMATIONINFO;
6311
6312 typedef struct tagNMHDR
6313 {
6314     HWND32  hwndFrom;
6315     UINT32  idFrom;
6316     UINT32  code;
6317 } NMHDR, *LPNMHDR;
6318
6319 typedef struct
6320 {
6321         UINT32  cbSize;
6322         INT32   iTabLength;
6323         INT32   iLeftMargin;
6324         INT32   iRightMargin;
6325         UINT32  uiLengthDrawn;
6326 } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
6327
6328 /* ifdef _x86_ ... */
6329 typedef struct _LDT_ENTRY {
6330     WORD        LimitLow;
6331     WORD        BaseLow;
6332     union {
6333         struct {
6334             BYTE        BaseMid;
6335             BYTE        Flags1;/*Declare as bytes to avoid alignment problems */
6336             BYTE        Flags2; 
6337             BYTE        BaseHi;
6338         } Bytes;
6339         struct {
6340             DWORD       BaseMid         : 8;
6341             DWORD       Type            : 5;
6342             DWORD       Dpl             : 2;
6343             DWORD       Pres            : 1;
6344             DWORD       LimitHi         : 4;
6345             DWORD       Sys             : 1;
6346             DWORD       Reserved_0      : 1;
6347             DWORD       Default_Big     : 1;
6348             DWORD       Granularity     : 1;
6349             DWORD       BaseHi          : 8;
6350         } Bits;
6351     } HighWord;
6352 } LDT_ENTRY, *LPLDT_ENTRY;
6353
6354 #define RDH_RECTANGLES  1
6355
6356 typedef struct _RGNDATAHEADER {
6357     DWORD       dwSize;
6358     DWORD       iType;
6359     DWORD       nCount;
6360     DWORD       nRgnSize;
6361     RECT32      rcBound;
6362 } RGNDATAHEADER,*LPRGNDATAHEADER;
6363
6364 typedef struct _RGNDATA {
6365     RGNDATAHEADER       rdh;
6366     char                Buffer[1];
6367 } RGNDATA,*PRGNDATA,*LPRGNDATA;
6368
6369 #define HELPINFO_WINDOW         0x0001
6370 #define HELPINFO_MENUITEM       0x0002
6371 typedef struct                  /* Structure pointed to by lParam of WM_HELP */
6372 {
6373     UINT32      cbSize;         /* Size in bytes of this struct  */
6374     INT32       iContextType;   /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */
6375     INT32       iCtrlId;        /* Control Id or a Menu item Id. */
6376     HANDLE32    hItemHandle;    /* hWnd of control or hMenu.     */
6377     DWORD       dwContextId;    /* Context Id associated with this item */
6378     POINT32     MousePos;       /* Mouse Position in screen co-ordinates */
6379 }  HELPINFO,*LPHELPINFO;
6380
6381 typedef void (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
6382
6383 typedef struct /* not sure if the 16bit version is correct */
6384 {
6385     UINT32      cbSize;
6386     HWND16      hwndOwner;
6387     HINSTANCE16 hInstance;
6388     SEGPTR      lpszText;
6389     SEGPTR      lpszCaption;
6390     DWORD       dwStyle;
6391     SEGPTR      lpszIcon;
6392     DWORD       dwContextHelpId;
6393     MSGBOXCALLBACK      lpfnMsgBoxCallback;
6394     DWORD       dwLanguageId;
6395 } MSGBOXPARAMS16,*LPMSGBOXPARAMS16;
6396
6397 typedef struct
6398 {
6399     UINT32      cbSize;
6400     HWND32      hwndOwner;
6401     HINSTANCE32 hInstance;
6402     LPCSTR      lpszText;
6403     LPCSTR      lpszCaption;
6404     DWORD       dwStyle;
6405     LPCSTR      lpszIcon;
6406     DWORD       dwContextHelpId;
6407     MSGBOXCALLBACK      lpfnMsgBoxCallback;
6408     DWORD       dwLanguageId;
6409 } MSGBOXPARAMS32A,*LPMSGBOXPARAMS32A;
6410
6411 typedef struct
6412 {
6413     UINT32      cbSize;
6414     HWND32      hwndOwner;
6415     HINSTANCE32 hInstance;
6416     LPCWSTR     lpszText;
6417     LPCWSTR     lpszCaption;
6418     DWORD       dwStyle;
6419     LPCWSTR     lpszIcon;
6420     DWORD       dwContextHelpId;
6421     MSGBOXCALLBACK      lpfnMsgBoxCallback;
6422     DWORD       dwLanguageId;
6423 } MSGBOXPARAMS32W,*LPMSGBOXPARAMS32W;
6424
6425 DECL_WINELIB_TYPE_AW(MSGBOXPARAMS)
6426 DECL_WINELIB_TYPE_AW(LPMSGBOXPARAMS)
6427
6428 /* for WOWHandle{16,32} */
6429 typedef enum _WOW_HANDLE_TYPE { /* WOW */
6430     WOW_TYPE_HWND,
6431     WOW_TYPE_HMENU,
6432     WOW_TYPE_HDWP,
6433     WOW_TYPE_HDROP,
6434     WOW_TYPE_HDC,
6435     WOW_TYPE_HFONT,
6436     WOW_TYPE_HMETAFILE,
6437     WOW_TYPE_HRGN,
6438     WOW_TYPE_HBITMAP,
6439     WOW_TYPE_HBRUSH,
6440     WOW_TYPE_HPALETTE,
6441     WOW_TYPE_HPEN,
6442     WOW_TYPE_HACCEL,
6443     WOW_TYPE_HTASK,
6444     WOW_TYPE_FULLHWND
6445 } WOW_HANDLE_TYPE;
6446
6447 /* WOWCallback16Ex defines */
6448 #define WCB16_MAX_CBARGS        16
6449 /* ... dwFlags */
6450 #define WCB16_PASCAL            0x0
6451 #define WCB16_CDECL             0x1
6452
6453 typedef struct _numberfmt32a {
6454     UINT32 NumDigits;
6455     UINT32 LeadingZero;
6456     UINT32 Grouping;
6457     LPCSTR lpDecimalSep;
6458     LPCSTR lpThousandSep;
6459     UINT32 NegativeOrder;
6460 } NUMBERFMT32A;
6461
6462 typedef struct _numberfmt32w {
6463     UINT32 NumDigits;
6464     UINT32 LeadingZero;
6465     UINT32 Grouping;
6466     LPCWSTR lpDecimalSep;
6467     LPCWSTR lpThousandSep;
6468     UINT32 NegativeOrder;
6469 } NUMBERFMT32W;
6470
6471 typedef enum _GET_FILEEX_INFO_LEVELS {
6472     GetFileExInfoStandard
6473 } GET_FILEEX_INFO_LEVELS;
6474
6475 typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
6476     DWORD    dwFileAttributes;
6477     FILETIME ftCreationTime;
6478     FILETIME ftLastAccessTime;
6479     FILETIME ftLastWriteTime;
6480     DWORD    nFileSizeHigh;
6481     DWORD    nFileSizeLow;
6482 } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
6483
6484 typedef struct _DllVersionInfo {
6485     DWORD cbSize;
6486     DWORD dwMajorVersion;
6487     DWORD dwMinorVersion;
6488     DWORD dwBuildNumber;
6489     DWORD dwPlatformID;
6490 } DLLVERSIONINFO;
6491
6492 typedef struct _SEGINFO {
6493     UINT16    offSegment;
6494     UINT16    cbSegment;
6495     UINT16    flags;
6496     UINT16    cbAlloc;
6497     HGLOBAL16 h;
6498     UINT16    alignShift;
6499     UINT16    reserved[2];
6500 } SEGINFO;
6501
6502 #define MONITOR_DEFAULTTONULL       0x00000000
6503 #define MONITOR_DEFAULTTOPRIMARY    0x00000001
6504 #define MONITOR_DEFAULTTONEAREST    0x00000002
6505
6506 #define MONITORINFOF_PRIMARY        0x00000001
6507
6508 typedef struct tagMONITORINFO
6509 {
6510     DWORD   cbSize;
6511     RECT32  rcMonitor;
6512     RECT32  rcWork;
6513     DWORD   dwFlags;
6514 } MONITORINFO, *LPMONITORINFO;
6515
6516 typedef struct tagMONITORINFOEX32A
6517 {
6518     MONITORINFO dummy;
6519     CHAR        szDevice[CCHDEVICENAME];
6520 } MONITORINFOEX32A, *LPMONITORINFOEX32A;
6521
6522 typedef struct tagMONITORINFOEX32W
6523 {
6524     MONITORINFO dummy;
6525     WCHAR       szDevice[CCHDEVICENAME];
6526 } MONITORINFOEX32W, *LPMONITORINFOEX32W;
6527
6528 DECL_WINELIB_TYPE_AW(MONITORINFOEX)
6529 DECL_WINELIB_TYPE_AW(LPMONITORINFOEX)
6530
6531 typedef BOOL32  (CALLBACK *MONITORENUMPROC)(HMONITOR,HDC32,LPRECT32,LPARAM);
6532
6533 #pragma pack(4)
6534
6535 /* Declarations for functions that exist only in Win16 */
6536
6537 #ifdef __WINE__
6538 WORD        WINAPI AllocCStoDSAlias(WORD);
6539 WORD        WINAPI AllocDStoCSAlias(WORD);
6540 HGLOBAL16   WINAPI AllocResource(HINSTANCE16,HRSRC16,DWORD);
6541 WORD        WINAPI AllocSelector(WORD);
6542 WORD        WINAPI AllocSelectorArray(WORD);
6543 VOID        WINAPI CalcChildScroll(HWND16,WORD);
6544 VOID        WINAPI CascadeChildWindows(HWND16,WORD);
6545 INT16       WINAPI CloseComm(INT16);
6546 HGLOBAL16   WINAPI CreateCursorIconIndirect(HINSTANCE16,CURSORICONINFO*,
6547                                             LPCVOID,LPCVOID);
6548 WORD        WINAPI CreateSystemTimer(WORD,FARPROC16);
6549 BOOL16      WINAPI DCHook(HDC16,WORD,DWORD,LPARAM);
6550 VOID        WINAPI DirectedYield(HTASK16);
6551 HGLOBAL16   WINAPI DirectResAlloc(HINSTANCE16,WORD,UINT16);
6552 VOID        WINAPI DisableSystemTimers(void);
6553 BOOL16      WINAPI DlgDirSelect(HWND16,LPSTR,INT16);
6554 BOOL16      WINAPI DlgDirSelectComboBox(HWND16,LPSTR,INT16);
6555 DWORD       WINAPI DumpIcon(SEGPTR,WORD*,SEGPTR*,SEGPTR*);
6556 BOOL16      WINAPI EnableCommNotification(INT16,HWND16,INT16,INT16);
6557 BOOL16      WINAPI EnableHardwareInput(BOOL16);
6558 VOID        WINAPI EnableSystemTimers(void);
6559 INT16       WINAPI ExcludeVisRect(HDC16,INT16,INT16,INT16,INT16);
6560 HANDLE16    WINAPI FarGetOwner(HGLOBAL16);
6561 VOID        WINAPI FarSetOwner(HGLOBAL16,HANDLE16);
6562 BOOL16      WINAPI FastWindowFrame(HDC16,const RECT16*,INT16,INT16,DWORD);
6563 FARPROC16   WINAPI FileCDR(FARPROC16);
6564 VOID        WINAPI FillWindow(HWND16,HWND16,HDC16,HBRUSH16);
6565 INT16       WINAPI FlushComm(INT16,INT16);
6566 WORD        WINAPI FreeSelector(WORD);
6567 UINT16      WINAPI GDIRealizePalette(HDC16);
6568 HPALETTE16  WINAPI GDISelectPalette(HDC16,HPALETTE16,WORD);
6569 HANDLE16    WINAPI GetAtomHandle(ATOM);
6570 DWORD       WINAPI GetBitmapDimension(HBITMAP16);
6571 DWORD       WINAPI GetBrushOrg(HDC16);
6572 HANDLE16    WINAPI GetCodeHandle(FARPROC16);
6573 INT16       WINAPI GetCommError(INT16,LPCOMSTAT);
6574 UINT16      WINAPI GetCommEventMask(INT16,UINT16);
6575 HBRUSH16    WINAPI GetControlBrush(HWND16,HDC16,UINT16);
6576 VOID        WINAPI GetCodeInfo(FARPROC16,SEGINFO*);
6577 HFONT16     WINAPI GetCurLogFont(HDC16);
6578 HANDLE16    WINAPI GetCurrentPDB(void);
6579 DWORD       WINAPI GetCurrentPosition(HDC16);
6580 HTASK16     WINAPI GetCurrentTask(void);
6581 DWORD       WINAPI GetDCHook(HDC16,FARPROC16*);
6582 DWORD       WINAPI GetDCOrg(HDC16);
6583 HDC16       WINAPI GetDCState(HDC16);
6584 HWND16      WINAPI GetDesktopHwnd(void);
6585 SEGPTR      WINAPI GetDOSEnvironment(void);
6586 INT16       WINAPI GetEnvironment(LPCSTR,LPDEVMODE16,UINT16);
6587 HMODULE16   WINAPI GetExePtr(HANDLE16);
6588 WORD        WINAPI GetExeVersion(void);
6589 WORD        WINAPI GetExpWinVer(HMODULE16);
6590 DWORD       WINAPI GetFileResourceSize(LPCSTR,SEGPTR,SEGPTR,LPDWORD);
6591 DWORD       WINAPI GetFileResource(LPCSTR,SEGPTR,SEGPTR,DWORD,DWORD,LPVOID);
6592 DWORD       WINAPI GetHeapSpaces(HMODULE16);
6593 WORD        WINAPI GetIconID(HGLOBAL16,DWORD);
6594 INT16       WINAPI GetInstanceData(HINSTANCE16,WORD,INT16);
6595 HGLOBAL16   WINAPI GetMetaFileBits(HMETAFILE16);
6596 BOOL16      WINAPI GetModuleName(HINSTANCE16,LPSTR,INT16);
6597 INT16       WINAPI GetModuleUsage(HINSTANCE16);
6598 FARPROC16   WINAPI GetMouseEventProc(void);
6599 UINT16      WINAPI GetNumTasks(void);
6600 DWORD       WINAPI GetSelectorBase(WORD);
6601 DWORD       WINAPI GetSelectorLimit(WORD);
6602 FARPROC16   WINAPI GetSetKernelDOSProc(FARPROC16 DosProc);
6603 HINSTANCE16 WINAPI GetTaskDS(void);
6604 HQUEUE16    WINAPI GetTaskQueue(HTASK16);
6605 BYTE        WINAPI GetTempDrive(BYTE);
6606 DWORD       WINAPI GetTextExtent(HDC16,LPCSTR,INT16);
6607 DWORD       WINAPI GetViewportExt(HDC16);
6608 DWORD       WINAPI GetViewportOrg(HDC16);
6609 BOOL16      WINAPI GetWinDebugInfo(LPWINDEBUGINFO,UINT16);
6610 DWORD       WINAPI GetWindowExt(HDC16);
6611 DWORD       WINAPI GetWindowOrg(HDC16);
6612 DWORD       WINAPI GetWinFlags(void);
6613 DWORD       WINAPI GlobalDOSAlloc(DWORD);
6614 WORD        WINAPI GlobalDOSFree(WORD);
6615 void        WINAPI GlobalFreeAll(HGLOBAL16);
6616 DWORD       WINAPI GlobalHandleNoRIP(WORD);
6617 HGLOBAL16   WINAPI GlobalLRUNewest(HGLOBAL16);
6618 HGLOBAL16   WINAPI GlobalLRUOldest(HGLOBAL16);
6619 VOID        WINAPI GlobalNotify(FARPROC16);
6620 WORD        WINAPI GlobalPageLock(HGLOBAL16);
6621 WORD        WINAPI GlobalPageUnlock(HGLOBAL16);
6622 INT16       WINAPI InitApp(HINSTANCE16);
6623 HRGN16      WINAPI InquireVisRgn(HDC16);
6624 INT16       WINAPI IntersectVisRect(HDC16,INT16,INT16,INT16,INT16);
6625 BOOL16      WINAPI IsDCCurrentPalette(HDC16);
6626 BOOL16      WINAPI IsGDIObject(HGDIOBJ16);
6627 BOOL16      WINAPI IsSharedSelector(HANDLE16);
6628 BOOL16      WINAPI IsTask(HTASK16);
6629 HTASK16     WINAPI IsTaskLocked(void);
6630 BOOL16      WINAPI IsUserIdle(void);
6631 BOOL16      WINAPI IsValidMetaFile(HMETAFILE16);
6632 VOID        WINAPI LogError(UINT16, LPVOID);
6633 VOID        WINAPI LogParamError(UINT16,FARPROC16,LPVOID);
6634 HGLOBAL16   WINAPI LoadCursorIconHandler(HGLOBAL16,HMODULE16,HRSRC16);
6635 HGLOBAL16   WINAPI LoadDIBCursorHandler(HGLOBAL16,HMODULE16,HRSRC16);
6636 HGLOBAL16   WINAPI LoadDIBIconHandler(HGLOBAL16,HMODULE16,HRSRC16);
6637 WORD        WINAPI LocalCountFree(void);
6638 WORD        WINAPI LocalHandleDelta(WORD);
6639 WORD        WINAPI LocalHeapSize(void);
6640 HICON16     WINAPI LoadIconHandler(HGLOBAL16,BOOL16);
6641 BOOL16      WINAPI LocalInit(HANDLE16,WORD,WORD);
6642 HMODULE32   WINAPI LoadLibraryEx32W16(LPCSTR,HANDLE16,DWORD);
6643 FARPROC16   WINAPI LocalNotify(FARPROC16);
6644 HTASK16     WINAPI LockCurrentTask(BOOL16);
6645 HMENU16     WINAPI LookupMenuHandle(HMENU16,INT16);
6646 DWORD       WINAPI MoveTo(HDC16,INT16,INT16);
6647 DWORD       WINAPI OffsetViewportOrg(HDC16,INT16,INT16);
6648 INT16       WINAPI OffsetVisRgn(HDC16,INT16,INT16);
6649 DWORD       WINAPI OffsetWindowOrg(HDC16,INT16,INT16);
6650 VOID        WINAPI OldYield(void);
6651 INT16       WINAPI OpenComm(LPCSTR,UINT16,UINT16);
6652 VOID        WINAPI PaintRect(HWND16,HWND16,HDC16,HBRUSH16,const RECT16*);
6653 VOID        WINAPI PostEvent(HTASK16);
6654 WORD        WINAPI PrestoChangoSelector(WORD,WORD);
6655 INT16       WINAPI ReadComm(INT16,LPSTR,INT16);
6656 UINT16      WINAPI RealizeDefaultPalette(HDC16);
6657 BOOL32      WINAPI RegisterShellHook(HWND16,UINT16);
6658 INT16       WINAPI RestoreVisRgn(HDC16);
6659 HRGN16      WINAPI SaveVisRgn(HDC16);
6660 DWORD       WINAPI ScaleViewportExt(HDC16,INT16,INT16,INT16,INT16);
6661 DWORD       WINAPI ScaleWindowExt(HDC16,INT16,INT16,INT16,INT16);
6662 WORD        WINAPI SelectorAccessRights(WORD,WORD,WORD);
6663 INT16       WINAPI SelectVisRgn(HDC16,HRGN16);
6664 DWORD       WINAPI SetBitmapDimension(HBITMAP16,INT16,INT16);
6665 DWORD       WINAPI SetBrushOrg(HDC16,INT16,INT16);
6666 SEGPTR      WINAPI SetCommEventMask(INT16,UINT16);
6667 BOOL16      WINAPI SetDCHook(HDC16,FARPROC16,DWORD);
6668 DWORD       WINAPI SetDCOrg(HDC16,INT16,INT16);
6669 VOID        WINAPI SetDCState(HDC16,HDC16);
6670 BOOL16      WINAPI SetDeskPattern(void);
6671 INT16       WINAPI SetEnvironment(LPCSTR,LPDEVMODE16,UINT16);
6672 WORD        WINAPI SetHookFlags(HDC16,WORD);
6673 HMETAFILE16 WINAPI SetMetaFileBits(HGLOBAL16);
6674 VOID        WINAPI SetPriority(HTASK16,INT16);
6675 FARPROC16   WINAPI SetResourceHandler(HINSTANCE16,SEGPTR,FARPROC16);
6676 WORD        WINAPI SetSelectorBase(WORD,DWORD);
6677 WORD        WINAPI SetSelectorLimit(WORD,DWORD);
6678 HQUEUE16    WINAPI SetTaskQueue(HTASK16,HQUEUE16);
6679 FARPROC16   WINAPI SetTaskSignalProc(HTASK16,FARPROC16);
6680 DWORD       WINAPI SetViewportExt(HDC16,INT16,INT16);
6681 DWORD       WINAPI SetViewportOrg(HDC16,INT16,INT16);
6682 BOOL16      WINAPI SetWinDebugInfo(LPWINDEBUGINFO);
6683 DWORD       WINAPI SetWindowExt(HDC16,INT16,INT16);
6684 DWORD       WINAPI SetWindowOrg(HDC16,INT16,INT16);
6685 VOID        WINAPI SwitchStackTo(WORD,WORD,WORD);
6686 VOID        WINAPI TileChildWindows(HWND16,WORD);
6687 INT16       WINAPI UngetCommChar(INT16,CHAR);
6688 VOID        WINAPI UserYield(void);
6689 BOOL16      WINAPI WaitEvent(HTASK16);
6690 INT16       WINAPI WriteComm(INT16,LPSTR,INT16);
6691 VOID        WINAPI WriteOutProfiles(VOID);
6692 VOID        WINAPI hmemcpy(LPVOID,LPCVOID,LONG);
6693 #endif  /* __WINE__ */
6694
6695 /* Declarations for functions that exist only in Win32 */
6696
6697 BOOL32      WINAPI AllocConsole(void);
6698 BOOL32      WINAPI AreFileApisANSI(void);
6699 BOOL32      WINAPI Beep(DWORD,DWORD);
6700 WORD        WINAPI CascadeWindows (HWND32, UINT32, const LPRECT32,
6701                                    UINT32, const HWND32 *);
6702 BOOL32      WINAPI ClearCommError(INT32,LPDWORD,LPCOMSTAT);
6703 BOOL32      WINAPI CloseHandle(HANDLE32);
6704 BOOL32      WINAPI CloseServiceHandle(HANDLE32);
6705 BOOL32      WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
6706 INT32       WINAPI CopyAcceleratorTable32A(HACCEL32,LPACCEL32,INT32);
6707 INT32       WINAPI CopyAcceleratorTable32W(HACCEL32,LPACCEL32,INT32);
6708 #define     CopyAcceleratorTable WINELIB_NAME_AW(CopyAcceleratorTable)
6709 HENHMETAFILE32 WINAPI CopyEnhMetaFile32A(HENHMETAFILE32,LPCSTR);
6710 HENHMETAFILE32 WINAPI CopyEnhMetaFile32W(HENHMETAFILE32,LPCWSTR);
6711 #define     CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
6712 BOOL32      WINAPI CopyFile32A(LPCSTR,LPCSTR,BOOL32);
6713 BOOL32      WINAPI CopyFile32W(LPCWSTR,LPCWSTR,BOOL32);
6714 #define     CopyFile WINELIB_NAME_AW(CopyFile)
6715 INT32       WINAPI CompareFileTime(LPFILETIME,LPFILETIME);
6716 BOOL32      WINAPI ControlService(HANDLE32,DWORD,LPSERVICE_STATUS);
6717 HANDLE32    WINAPI CreateEvent32A(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCSTR);
6718 HANDLE32    WINAPI CreateEvent32W(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCWSTR);
6719 #define     CreateEvent WINELIB_NAME_AW(CreateEvent)
6720 HFILE32     WINAPI CreateFile32A(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
6721                                  DWORD,DWORD,HANDLE32);
6722 HFILE32     WINAPI CreateFile32W(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
6723                                  DWORD,DWORD,HANDLE32);
6724 #define     CreateFile WINELIB_NAME_AW(CreateFile)
6725 HPALETTE32  WINAPI CreateHalftonePalette(HDC32);
6726 HANDLE32    WINAPI CreateFileMapping32A(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD,
6727                                         DWORD,DWORD,LPCSTR);
6728 HANDLE32    WINAPI CreateFileMapping32W(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD,
6729                                         DWORD,DWORD,LPCWSTR);
6730 #define     CreateFileMapping WINELIB_NAME_AW(CreateFileMapping)
6731 HICON32     WINAPI CreateIconIndirect(LPICONINFO);
6732 HANDLE32    WINAPI CreateMutex32A(LPSECURITY_ATTRIBUTES,BOOL32,LPCSTR);
6733 HANDLE32    WINAPI CreateMutex32W(LPSECURITY_ATTRIBUTES,BOOL32,LPCWSTR);
6734 #define     CreateMutex WINELIB_NAME_AW(CreateMutex)
6735 BOOL32      WINAPI CreateProcess32A(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,
6736                                     LPSECURITY_ATTRIBUTES,BOOL32,DWORD,LPVOID,LPCSTR,
6737                                     LPSTARTUPINFO32A,LPPROCESS_INFORMATION);
6738 BOOL32      WINAPI CreateProcess32W(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,
6739                                     LPSECURITY_ATTRIBUTES,BOOL32,DWORD,LPVOID,LPCWSTR,
6740                                     LPSTARTUPINFO32W,LPPROCESS_INFORMATION);
6741 #define     CreateProcess WINELIB_NAME_AW(CreateProcess)
6742 HANDLE32    WINAPI CreateSemaphore32A(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
6743 HANDLE32    WINAPI CreateSemaphore32W(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
6744 #define     CreateSemaphore WINELIB_NAME_AW(CreateSemaphore)
6745 HANDLE32    WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
6746 BOOL32      WINAPI DeleteEnhMetaFile(HENHMETAFILE32);
6747 BOOL32      WINAPI DeleteService(HANDLE32);
6748 BOOL32      WINAPI DeregisterEventSource(HANDLE32);
6749 BOOL32      WINAPI DestroyAcceleratorTable(HACCEL32);
6750 BOOL32      WINAPI DisableThreadLibraryCalls(HMODULE32);
6751 BOOL32      WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
6752 BOOL32      WINAPI DuplicateHandle(HANDLE32,HANDLE32,HANDLE32,HANDLE32*,DWORD,BOOL32,DWORD);
6753 BOOL32      WINAPI EnumDateFormats32A(DATEFMT_ENUMPROC32A lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
6754 BOOL32      WINAPI EnumDateFormats32W(DATEFMT_ENUMPROC32W lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
6755 #define     EnumDateFormats WINELIB_NAME_AW(EnumDateFormats)
6756 BOOL32      WINAPI EnumDisplayMonitors(HDC32,LPRECT32,MONITORENUMPROC,LPARAM);
6757 INT32       WINAPI EnumPropsEx32A(HWND32,PROPENUMPROCEX32A,LPARAM);
6758 INT32       WINAPI EnumPropsEx32W(HWND32,PROPENUMPROCEX32W,LPARAM);
6759 #define     EnumPropsEx WINELIB_NAME_AW(EnumPropsEx)
6760 BOOL32      WINAPI EnumResourceLanguages32A(HMODULE32,LPCSTR,LPCSTR,
6761                                             ENUMRESLANGPROC32A,LONG);
6762 BOOL32      WINAPI EnumResourceLanguages32W(HMODULE32,LPCWSTR,LPCWSTR,
6763                                             ENUMRESLANGPROC32W,LONG);
6764 #define     EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages)
6765 BOOL32      WINAPI EnumResourceNames32A(HMODULE32,LPCSTR,ENUMRESNAMEPROC32A,
6766                                         LONG);
6767 BOOL32      WINAPI EnumResourceNames32W(HMODULE32,LPCWSTR,ENUMRESNAMEPROC32W,
6768                                         LONG);
6769 #define     EnumResourceNames WINELIB_NAME_AW(EnumResourceNames)
6770 BOOL32      WINAPI EnumResourceTypes32A(HMODULE32,ENUMRESTYPEPROC32A,LONG);
6771 BOOL32      WINAPI EnumResourceTypes32W(HMODULE32,ENUMRESTYPEPROC32W,LONG);
6772 #define     EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes)
6773 BOOL32      WINAPI EnumSystemCodePages32A(CODEPAGE_ENUMPROC32A,DWORD);
6774 BOOL32      WINAPI EnumSystemCodePages32W(CODEPAGE_ENUMPROC32W,DWORD);
6775 #define     EnumSystemCodePages WINELIB_NAME_AW(EnumSystemCodePages)
6776 BOOL32      WINAPI EnumSystemLocales32A(LOCALE_ENUMPROC32A,DWORD);
6777 BOOL32      WINAPI EnumSystemLocales32W(LOCALE_ENUMPROC32W,DWORD);
6778 #define     EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales)
6779 BOOL32      WINAPI EnumThreadWindows(DWORD,WNDENUMPROC32,LPARAM);
6780 BOOL32      WINAPI EnumTimeFormats32A(TIMEFMT_ENUMPROC32A lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
6781 BOOL32      WINAPI EnumTimeFormats32W(TIMEFMT_ENUMPROC32W lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
6782 #define     EnumTimeFormats WINELIB_NAME_AW(EnumTimeFormats)
6783 VOID        WINAPI ExitProcess(DWORD);
6784 VOID        WINAPI ExitThread(DWORD);
6785 BOOL32      WINAPI ExitWindowsEx(UINT32,DWORD);
6786 INT32       WINAPI ExtSelectClipRgn(HDC32,HRGN32,INT32);
6787 DWORD       WINAPI ExpandEnvironmentStrings32A(LPCSTR,LPSTR,DWORD);
6788 DWORD       WINAPI ExpandEnvironmentStrings32W(LPCWSTR,LPWSTR,DWORD);
6789 #define     ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings)
6790 HRGN32      WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
6791 INT32       WINAPI ExtEscape32(HDC32,INT32,INT32,LPCSTR,INT32,LPSTR);
6792 BOOL32      WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD);
6793 BOOL32      WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME);
6794 BOOL32      WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME);
6795 HANDLE32    WINAPI FindFirstChangeNotification32A(LPCSTR,BOOL32,DWORD);
6796 HANDLE32    WINAPI FindFirstChangeNotification32W(LPCWSTR,BOOL32,DWORD);
6797 #define     FindFirstChangeNotification WINELIB_NAME_AW(FindFirstChangeNotification)
6798 BOOL32      WINAPI FindNextChangeNotification(HANDLE32);
6799 BOOL32      WINAPI FindCloseChangeNotification(HANDLE32);
6800 HRSRC32     WINAPI FindResourceEx32A(HMODULE32,LPCSTR,LPCSTR,WORD);
6801 HRSRC32     WINAPI FindResourceEx32W(HMODULE32,LPCWSTR,LPCWSTR,WORD);
6802 #define     FindResourceEx WINELIB_NAME_AW(FindResourceEx)
6803 BOOL32      WINAPI FixBrushOrgEx(HDC32,INT32,INT32,LPPOINT32);
6804 BOOL32      WINAPI FlushConsoleInputBuffer(HANDLE32);
6805 BOOL32      WINAPI FlushFileBuffers(HFILE32);
6806 BOOL32      WINAPI FlushViewOfFile(LPCVOID, DWORD);
6807 DWORD       WINAPI FormatMessage32A(DWORD,LPCVOID,DWORD,DWORD,LPSTR,
6808                                     DWORD,LPDWORD);
6809 #define     FormatMessage WINELIB_NAME_AW(FormatMessage)
6810 BOOL32      WINAPI FreeConsole(void);
6811 BOOL32      WINAPI FreeEnvironmentStrings32A(LPSTR);
6812 BOOL32      WINAPI FreeEnvironmentStrings32W(LPWSTR);
6813 #define     FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings)
6814 UINT32      WINAPI GetACP(void);
6815 LPCSTR      WINAPI GetCommandLine32A(void);
6816 LPCWSTR     WINAPI GetCommandLine32W(void);
6817 #define     GetCommandLine WINELIB_NAME_AW(GetCommandLine)
6818 BOOL32      WINAPI GetCommTimeouts(INT32,LPCOMMTIMEOUTS);
6819 BOOL32      WINAPI GetComputerName32A(LPSTR,LPDWORD);
6820 BOOL32      WINAPI GetComputerName32W(LPWSTR,LPDWORD);
6821 #define     GetComputerName WINELIB_NAME_AW(GetComputerName)
6822 UINT32      WINAPI GetConsoleCP(void);
6823 BOOL32      WINAPI GetConsoleMode(HANDLE32,LPDWORD);
6824 UINT32      WINAPI GetConsoleOutputCP(void);
6825 DWORD       WINAPI GetConsoleTitle32A(LPSTR,DWORD);
6826 DWORD       WINAPI GetConsoleTitle32W(LPWSTR,DWORD);
6827 #define     GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
6828 BOOL32      WINAPI GetCPInfo(UINT32,LPCPINFO);
6829 HANDLE32    WINAPI GetCurrentObject(HDC32,UINT32);
6830 HANDLE32    WINAPI GetCurrentProcess(void);
6831 DWORD       WINAPI GetCurrentProcessId(void);
6832 HANDLE32    WINAPI GetCurrentThread(void);
6833 DWORD       WINAPI GetCurrentThreadId(void);
6834 INT32       WINAPI GetDateFormat32A(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT32);
6835 INT32       WINAPI GetDateFormat32W(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT32);
6836 #define     GetDateFormat WINELIB_NAME_AW(GetDateFormat)
6837 BOOL32      WINAPI GetDCOrgEx(HDC32,LPPOINT32);
6838 HENHMETAFILE32 WINAPI GetEnhMetaFile32A(LPCSTR);
6839 HENHMETAFILE32 WINAPI GetEnhMetaFile32W(LPCWSTR);
6840 #define     GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
6841 UINT32      WINAPI GetEnhMetaFileBits(HENHMETAFILE32,UINT32,LPBYTE);
6842 UINT32      WINAPI GetEnhMetaFileHeader(HENHMETAFILE32,UINT32,LPENHMETAHEADER);
6843 LPSTR       WINAPI GetEnvironmentStrings32A(void);
6844 LPWSTR      WINAPI GetEnvironmentStrings32W(void);
6845 #define     GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings)
6846 DWORD       WINAPI GetEnvironmentVariable32A(LPCSTR,LPSTR,DWORD);
6847 DWORD       WINAPI GetEnvironmentVariable32W(LPCWSTR,LPWSTR,DWORD);
6848 #define     GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable)
6849 BOOL32      WINAPI GetFileAttributesEx32A(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
6850 BOOL32      WINAPI GetFileAttributesEx32W(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
6851 #define     GetFileattributesEx WINELIB_NAME_AW(GetFileAttributesEx)
6852 DWORD       WINAPI GetFileInformationByHandle(HFILE32,BY_HANDLE_FILE_INFORMATION*);
6853 BOOL32      WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD);
6854 BOOL32      WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD);
6855 DWORD       WINAPI GetFileSize(HFILE32,LPDWORD);
6856 BOOL32      WINAPI GetFileTime(HFILE32,LPFILETIME,LPFILETIME,LPFILETIME);
6857 DWORD       WINAPI GetFileType(HFILE32);
6858 DWORD       WINAPI GetFullPathName32A(LPCSTR,DWORD,LPSTR,LPSTR*);
6859 DWORD       WINAPI GetFullPathName32W(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
6860 #define     GetFullPathName WINELIB_NAME_AW(GetFullPathName)
6861 INT32       WINAPI GetGraphicsMode(HDC32);
6862 BOOL32      WINAPI GetHandleInformation(HANDLE32,LPDWORD);
6863 BOOL32      WINAPI GetIconInfo(HICON32,LPICONINFO);
6864 DWORD       WINAPI GetLargestConsoleWindowSize(HANDLE32);
6865 VOID        WINAPI GetLocalTime(LPSYSTEMTIME);
6866 DWORD       WINAPI GetLogicalDrives(void);
6867 DWORD       WINAPI GetLongPathName32A(LPCSTR,LPSTR,DWORD);
6868 DWORD       WINAPI GetLongPathName32W(LPCWSTR,LPWSTR,DWORD);
6869 #define     GetLongPathName WINELIB_NAME_AW(GetLongPathName)
6870 UINT32      WINAPI GetMenuDefaultItem32(HMENU32,UINT32,UINT32);
6871 #define     GetMenuDefaultItem WINELIB_NAME(GetMenuDefaultItem)
6872 BOOL32      WINAPI GetMenuItemInfo32A(HMENU32,UINT32,BOOL32,MENUITEMINFO32A*);
6873 BOOL32      WINAPI GetMenuItemInfo32W(HMENU32,UINT32,BOOL32,MENUITEMINFO32W*);
6874 #define     GetMenuItemInfo WINELIB_NAME_AW(GetMenuItemInfo)
6875 UINT32      WINAPI GetMetaFileBitsEx(HMETAFILE32,UINT32,LPVOID);
6876 BOOL32      WINAPI GetMonitorInfo32A(HMONITOR,LPMONITORINFO);
6877 BOOL32      WINAPI GetMonitorInfo32W(HMONITOR,LPMONITORINFO);
6878 #define     GetMonitorInfo WINELIB_NAME_AW(GetMonitorInfo)
6879 BOOL32      WINAPI GetNumberOfConsoleInputEvents(HANDLE32,LPDWORD);
6880 BOOL32      WINAPI GetNumberOfConsoleMouseButtons(LPDWORD);
6881 DWORD       WINAPI GetObjectType(HANDLE32);
6882 UINT32      WINAPI GetOEMCP(void);
6883 DWORD       WINAPI GetPriorityClass(HANDLE32);
6884 HANDLE32    WINAPI GetProcessHeap(void);
6885 DWORD       WINAPI GetRegionData(HRGN32,DWORD,LPRGNDATA);
6886 DWORD       WINAPI GetShortPathName32A(LPCSTR,LPSTR,DWORD);
6887 DWORD       WINAPI GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
6888 #define     GetShortPathName WINELIB_NAME_AW(GetShortPathName)
6889 HFILE32     WINAPI GetStdHandle(DWORD);
6890 BOOL32      WINAPI GetStringTypeEx32A(LCID,DWORD,LPCSTR,INT32,LPWORD);
6891 BOOL32      WINAPI GetStringTypeEx32W(LCID,DWORD,LPCWSTR,INT32,LPWORD);
6892 #define     GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx)
6893 VOID        WINAPI GetSystemInfo(LPSYSTEM_INFO);
6894 BOOL32      WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
6895 VOID        WINAPI GetSystemTime(LPSYSTEMTIME);
6896 INT32       WINAPI GetTextCharsetInfo(HDC32,LPCHARSETINFO,DWORD);
6897 BOOL32      WINAPI GetTextExtentExPoint32A(HDC32,LPCSTR,INT32,INT32,
6898                                            LPINT32,LPINT32,LPSIZE32);
6899 BOOL32      WINAPI GetTextExtentExPoint32W(HDC32,LPCWSTR,INT32,INT32,
6900                                            LPINT32,LPINT32,LPSIZE32);
6901 #define     GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
6902 INT32       WINAPI GetTimeFormat32A(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT32);
6903 INT32       WINAPI GetTimeFormat32W(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT32);
6904 #define     GetTimeFormat WINELIB_NAME_AW(GetTimeFormat)
6905 LCID        WINAPI GetThreadLocale(void);
6906 INT32       WINAPI GetThreadPriority(HANDLE32);
6907 BOOL32      WINAPI GetThreadSelectorEntry(HANDLE32,DWORD,LPLDT_ENTRY);
6908 BOOL32      WINAPI GetUserName32A(LPSTR,LPDWORD);
6909 BOOL32      WINAPI GetUserName32W(LPWSTR,LPDWORD);
6910 #define     GetUserName WINELIB_NAME_AW(GetUserName)
6911 DWORD       WINAPI GetWindowContextHelpId(HWND32);
6912 DWORD       WINAPI GetWindowThreadProcessId(HWND32,LPDWORD);
6913 BOOL32      WINAPI GetWorldTransform(HDC32,LPXFORM);
6914 VOID        WINAPI GlobalMemoryStatus(LPMEMORYSTATUS);
6915 LPVOID      WINAPI HeapAlloc(HANDLE32,DWORD,DWORD);
6916 DWORD       WINAPI HeapCompact(HANDLE32,DWORD);
6917 HANDLE32    WINAPI HeapCreate(DWORD,DWORD,DWORD);
6918 BOOL32      WINAPI HeapDestroy(HANDLE32);
6919 BOOL32      WINAPI HeapFree(HANDLE32,DWORD,LPVOID);
6920 BOOL32      WINAPI HeapLock(HANDLE32);
6921 LPVOID      WINAPI HeapReAlloc(HANDLE32,DWORD,LPVOID,DWORD);
6922 DWORD       WINAPI HeapSize(HANDLE32,DWORD,LPVOID);
6923 BOOL32      WINAPI HeapUnlock(HANDLE32);
6924 BOOL32      WINAPI HeapValidate(HANDLE32,DWORD,LPCVOID);
6925 LONG        WINAPI InterlockedDecrement(LPLONG);
6926 LONG        WINAPI InterlockedExchange(LPLONG,LONG);
6927 LONG        WINAPI InterlockedIncrement(LPLONG);
6928 BOOL32      WINAPI IsDBCSLeadByteEx(UINT32,BYTE);
6929 BOOL32      WINAPI IsProcessorFeaturePresent(DWORD);
6930 BOOL32      WINAPI IsWindowUnicode(HWND32);
6931 BOOL32      WINAPI IsValidLocale(DWORD,DWORD);
6932 BOOL32      WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
6933 BOOL32      WINAPI LockFile(HFILE32,DWORD,DWORD,DWORD,DWORD);
6934 BOOL32      WINAPI LookupPrivilegeValue32A(LPCSTR,LPCSTR,LPVOID);
6935 BOOL32      WINAPI LookupPrivilegeValue32W(LPCWSTR,LPCWSTR,LPVOID);
6936 #define     LookupPrivilegeValue WINELIB_NAME_AW(LookupPrivilegeValue)
6937 HMODULE32   WINAPI MapHModuleSL(HMODULE16);
6938 HMODULE16   WINAPI MapHModuleLS(HMODULE32);
6939 SEGPTR      WINAPI MapLS(LPVOID);
6940 LPVOID      WINAPI MapSL(SEGPTR);
6941 LPVOID      WINAPI MapViewOfFile(HANDLE32,DWORD,DWORD,DWORD,DWORD);
6942 LPVOID      WINAPI MapViewOfFileEx(HANDLE32,DWORD,DWORD,DWORD,DWORD,LPVOID);
6943 INT32       WINAPI MessageBoxEx32A(HWND32,LPCSTR,LPCSTR,UINT32,WORD);
6944 INT32       WINAPI MessageBoxEx32W(HWND32,LPCWSTR,LPCWSTR,UINT32,WORD);
6945 #define     MessageBoxEx WINELIB_NAME_AW(MessageBoxEx)
6946 BOOL32      WINAPI ModifyWorldTransform(HDC32,const XFORM *, DWORD);
6947 HMONITOR    WINAPI MonitorFromPoint(POINT32,DWORD);
6948 HMONITOR    WINAPI MonitorFromRect(LPRECT32,DWORD);
6949 HMONITOR    WINAPI MonitorFromWindow(HWND32,DWORD);
6950 BOOL32      WINAPI MoveFile32A(LPCSTR,LPCSTR);
6951 BOOL32      WINAPI MoveFile32W(LPCWSTR,LPCWSTR);
6952 #define     MoveFile WINELIB_NAME_AW(MoveFile)
6953 BOOL32      WINAPI MoveFileEx32A(LPCSTR,LPCSTR,DWORD);
6954 BOOL32      WINAPI MoveFileEx32W(LPCWSTR,LPCWSTR,DWORD);
6955 #define     MoveFileEx WINELIB_NAME_AW(MoveFileEx)
6956 DWORD       WINAPI MsgWaitForMultipleObjects(DWORD,HANDLE32*,BOOL32,DWORD,DWORD);
6957 INT32       WINAPI MultiByteToWideChar(UINT32,DWORD,LPCSTR,INT32,LPWSTR,INT32);
6958 INT32       WINAPI WideCharToMultiByte(UINT32,DWORD,LPCWSTR,INT32,LPSTR,INT32,LPCSTR,BOOL32*);
6959 HANDLE32    WINAPI OpenEvent32A(DWORD,BOOL32,LPCSTR);
6960 HANDLE32    WINAPI OpenEvent32W(DWORD,BOOL32,LPCWSTR);
6961 #define     OpenEvent WINELIB_NAME_AW(OpenEvent)
6962 HANDLE32    WINAPI OpenFileMapping32A(DWORD,BOOL32,LPCSTR);
6963 HANDLE32    WINAPI OpenFileMapping32W(DWORD,BOOL32,LPCWSTR);
6964 #define     OpenFileMapping WINELIB_NAME_AW(OpenFileMapping)
6965 HANDLE32    WINAPI OpenMutex32A(DWORD,BOOL32,LPCSTR);
6966 HANDLE32    WINAPI OpenMutex32W(DWORD,BOOL32,LPCWSTR);
6967 #define     OpenMutex WINELIB_NAME_AW(OpenMutex)
6968 HANDLE32    WINAPI OpenProcess(DWORD,BOOL32,DWORD);
6969 BOOL32      WINAPI OpenProcessToken(HANDLE32,DWORD,HANDLE32*);
6970 HANDLE32    WINAPI OpenSCManager32A(LPCSTR,LPCSTR,DWORD);
6971 HANDLE32    WINAPI OpenSCManager32W(LPCWSTR,LPCWSTR,DWORD);
6972 #define     OpenSCManager WINELIB_NAME_AW(OpenSCManager)
6973 HANDLE32    WINAPI OpenSemaphore32A(DWORD,BOOL32,LPCSTR);
6974 HANDLE32    WINAPI OpenSemaphore32W(DWORD,BOOL32,LPCWSTR);
6975 #define     OpenSemaphore WINELIB_NAME_AW(OpenSemaphore)
6976 HANDLE32    WINAPI OpenService32A(HANDLE32,LPCSTR,DWORD);
6977 HANDLE32    WINAPI OpenService32W(HANDLE32,LPCWSTR,DWORD);
6978 #define     OpenService WINELIB_NAME_AW(OpenService)
6979 BOOL32      WINAPI PaintDesktop(HDC32);
6980 BOOL32      WINAPI PlayEnhMetaFile(HDC32,HENHMETAFILE32,const RECT32*);
6981 BOOL32      WINAPI PlayEnhMetaFileRecord(HDC32,LPHANDLETABLE32,const ENHMETARECORD*,UINT32);
6982 BOOL32      WINAPI PolyPolyline32(HDC32,const POINT32*,const DWORD*,DWORD);
6983 BOOL32      WINAPI Process32First(HANDLE32,LPPROCESSENTRY32);
6984 BOOL32      WINAPI Process32Next(HANDLE32,LPPROCESSENTRY32);
6985 BOOL32      WINAPI PulseEvent(HANDLE32);
6986 DWORD       WINAPI QueryDosDevice32A(LPCSTR,LPSTR,DWORD);
6987 DWORD       WINAPI QueryDosDevice32W(LPCWSTR,LPWSTR,DWORD);
6988 #define     QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
6989 BOOL32      WINAPI QueryPerformanceCounter(LPLARGE_INTEGER);
6990 BOOL32      WINAPI ReadConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
6991 BOOL32      WINAPI ReadConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
6992 #define     ReadConsole WINELIB_NAME_AW(ReadConsole)
6993 BOOL32      WINAPI ReadConsoleOutputCharacter32A(HANDLE32,LPSTR,DWORD,
6994                                                  COORD,LPDWORD);
6995 #define     ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter)
6996 BOOL32      WINAPI ReadFile(HANDLE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
6997 LONG        WINAPI RegConnectRegistry32A(LPCSTR,HKEY,LPHKEY);
6998 LONG        WINAPI RegConnectRegistry32W(LPCWSTR,HKEY,LPHKEY);
6999 #define     RegConnectRegistry WINELIB_NAME_AW(RegConnectRegistry)
7000 DWORD       WINAPI RegCreateKeyEx32A(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,
7001                                      LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD);
7002 DWORD       WINAPI RegCreateKeyEx32W(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,
7003                                      LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD);
7004 #define     RegCreateKeyEx WINELIB_NAME_AW(RegCreateKeyEx)
7005 DWORD       WINAPI RegEnumKeyEx32A(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR,
7006                                    LPDWORD,LPFILETIME);
7007 DWORD       WINAPI RegEnumKeyEx32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,
7008                                    LPDWORD,LPFILETIME);
7009 #define     RegEnumKeyEx WINELIB_NAME_AW(RegEnumKeyEx)
7010 LONG        WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,LPDWORD);
7011 HANDLE32    WINAPI RegisterEventSource32A(LPCSTR,LPCSTR);
7012 HANDLE32    WINAPI RegisterEventSource32W(LPCWSTR,LPCWSTR);
7013 #define     RegisterEventSource WINELIB_NAME_AW(RegisterEventSource)
7014 LONG        WINAPI RegLoadKey32A(HKEY,LPCSTR,LPCSTR);
7015 LONG        WINAPI RegLoadKey32W(HKEY,LPCWSTR,LPCWSTR);
7016 #define     RegLoadKey WINELIB_NAME_AW(RegLoadKey)
7017 LONG        WINAPI RegNotifyChangeKeyValue(HKEY,BOOL32,DWORD,HANDLE32,BOOL32);
7018 DWORD       WINAPI RegOpenKeyEx32W(HKEY,LPCWSTR,DWORD,REGSAM,LPHKEY);
7019 DWORD       WINAPI RegOpenKeyEx32A(HKEY,LPCSTR,DWORD,REGSAM,LPHKEY);
7020 #define     RegOpenKeyEx WINELIB_NAME_AW(RegOpenKeyEx)
7021 DWORD       WINAPI RegQueryInfoKey32W(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,
7022                                       LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
7023                                       LPDWORD,LPFILETIME);
7024 DWORD       WINAPI RegQueryInfoKey32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
7025                                       LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
7026                                       LPDWORD,LPFILETIME);
7027 #define     RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey)
7028 LONG        WINAPI RegReplaceKey32A(HKEY,LPCSTR,LPCSTR,LPCSTR);
7029 LONG        WINAPI RegReplaceKey32W(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
7030 #define     RegReplaceKey WINELIB_NAME_AW(RegReplaceKey)
7031 LONG        WINAPI RegRestoreKey32A(HKEY,LPCSTR,DWORD);
7032 LONG        WINAPI RegRestoreKey32W(HKEY,LPCWSTR,DWORD);
7033 #define     RegRestoreKey WINELIB_NAME_AW(RegRestoreKey)
7034 LONG        WINAPI RegSaveKey32A(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
7035 LONG        WINAPI RegSaveKey32W(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
7036 #define     RegSaveKey WINELIB_NAME_AW(RegSaveKey)
7037 LONG        WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR);
7038 LONG        WINAPI RegUnLoadKey32A(HKEY,LPCSTR);
7039 LONG        WINAPI RegUnLoadKey32W(HKEY,LPCWSTR);
7040 #define     RegUnLoadKey WINELIB_NAME_AW(RegUnLoadKey)
7041 BOOL32      WINAPI ReleaseSemaphore(HANDLE32,LONG,LPLONG);
7042 BOOL32      WINAPI ResetEvent(HANDLE32);
7043 DWORD       WINAPI ResumeThread(HANDLE32);
7044 VOID        WINAPI RtlFillMemory(LPVOID,UINT32,UINT32);
7045 VOID        WINAPI RtlMoveMemory(LPVOID,LPCVOID,UINT32);
7046 VOID        WINAPI RtlZeroMemory(LPVOID,UINT32);
7047 DWORD       WINAPI SearchPath32A(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
7048 DWORD       WINAPI SearchPath32W(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
7049 #define     SearchPath WINELIB_NAME(SearchPath)
7050 BOOL32      WINAPI SetBrushOrgEx(HDC32,INT32,INT32,LPPOINT32);
7051 BOOL32      WINAPI SetCommMask(INT32,DWORD);
7052 BOOL32      WINAPI SetCommTimeouts(INT32,LPCOMMTIMEOUTS);
7053 BOOL32      WINAPI SetComputerName32A(LPCSTR);
7054 BOOL32      WINAPI SetComputerName32W(LPCWSTR);
7055 #define     SetComputerName WINELIB_NAME_AW(SetComputerName)
7056 BOOL32      WINAPI SetConsoleCursorPosition(HANDLE32,COORD);
7057 BOOL32      WINAPI SetConsoleMode(HANDLE32,DWORD);
7058 BOOL32      WINAPI SetConsoleTitle32A(LPCSTR);
7059 BOOL32      WINAPI SetConsoleTitle32W(LPCWSTR);
7060 #define     SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
7061 VOID        WINAPI SetDebugErrorLevel(DWORD);
7062 BOOL32      WINAPI SetEndOfFile(HFILE32);
7063 HENHMETAFILE32 WINAPI SetEnhMetaFileBits(UINT32,const BYTE *);
7064 BOOL32      WINAPI SetEnvironmentVariable32A(LPCSTR,LPCSTR);
7065 BOOL32      WINAPI SetEnvironmentVariable32W(LPCWSTR,LPCWSTR);
7066 #define     SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
7067 BOOL32      WINAPI SetEvent(HANDLE32);
7068 VOID        WINAPI SetFileApisToANSI(void);
7069 VOID        WINAPI SetFileApisToOEM(void);
7070 DWORD       WINAPI SetFilePointer(HFILE32,LONG,LPLONG,DWORD);
7071 BOOL32      WINAPI SetFileTime(HFILE32,const FILETIME*,const FILETIME*,
7072                                const FILETIME*);
7073 INT32       WINAPI SetGraphicsMode(HDC32,INT32);
7074 BOOL32      WINAPI SetHandleInformation(HANDLE32,DWORD,DWORD);
7075 VOID        WINAPI SetLastErrorEx(DWORD,DWORD);
7076 BOOL32      WINAPI SetMenuDefaultItem32(HMENU32,UINT32,UINT32);
7077 #define     SetMenuDefaultItem WINELIB_NAME(SetMenuDefaultItem)
7078 BOOL32      WINAPI SetMenuItemInfo32A(HMENU32,UINT32,BOOL32,const MENUITEMINFO32A*);
7079 BOOL32      WINAPI SetMenuItemInfo32W(HMENU32,UINT32,BOOL32,const MENUITEMINFO32W*);
7080 #define     SetMenuItemInfo WINELIB_NAME_AW(SetMenuItemInfo)
7081 HMETAFILE32 WINAPI SetMetaFileBitsEx(UINT32,const BYTE*);
7082 BOOL32      WINAPI SetPriorityClass(HANDLE32,DWORD);
7083 BOOL32      WINAPI SetStdHandle(DWORD,HANDLE32);
7084 BOOL32      WINAPI SetSystemPowerState(BOOL32,BOOL32);
7085 BOOL32      WINAPI SetSystemTime(const SYSTEMTIME*);
7086 BOOL32      WINAPI SetThreadPriority(HANDLE32,INT32);
7087 BOOL32      WINAPI SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION);
7088 BOOL32      WINAPI SetWindowContextHelpId(HWND32,DWORD);
7089 BOOL32      WINAPI SetWorldTransform(HDC32,const XFORM*);
7090 VOID        WINAPI Sleep(DWORD);
7091 DWORD       WINAPI SleepEx(DWORD,BOOL32);
7092 BOOL32      WINAPI StartService32A(HANDLE32,DWORD,LPCSTR*);
7093 BOOL32      WINAPI StartService32W(HANDLE32,DWORD,LPCWSTR*);
7094 #define     StartService WINELIB_NAME_AW(StartService)
7095 DWORD       WINAPI SuspendThread(HANDLE32);
7096 BOOL32      WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
7097 WORD        WINAPI TileWindows (HWND32, UINT32, const LPRECT32,
7098                                 UINT32, const HWND32 *);
7099 BOOL32      WINAPI TrackPopupMenuEx(HMENU32,UINT32,INT32,INT32,HWND32,
7100                                     LPTPMPARAMS);
7101 DWORD       WINAPI TlsAlloc(void);
7102 BOOL32      WINAPI TlsFree(DWORD);
7103 LPVOID      WINAPI TlsGetValue(DWORD);
7104 BOOL32      WINAPI TlsSetValue(DWORD,LPVOID);
7105 BOOL32      WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
7106 VOID        WINAPI UnMapLS(SEGPTR);
7107 BOOL32      WINAPI UnlockFile(HFILE32,DWORD,DWORD,DWORD,DWORD);
7108 BOOL32      WINAPI UnmapViewOfFile(LPVOID);
7109 LPVOID      WINAPI VirtualAlloc(LPVOID,DWORD,DWORD,DWORD);
7110 BOOL32      WINAPI VirtualFree(LPVOID,DWORD,DWORD);
7111 BOOL32      WINAPI VirtualLock(LPVOID,DWORD);
7112 BOOL32      WINAPI VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD);
7113 BOOL32      WINAPI VirtualProtectEx(HANDLE32,LPVOID,DWORD,DWORD,LPDWORD);
7114 DWORD       WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
7115 DWORD       WINAPI VirtualQueryEx(HANDLE32,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
7116 BOOL32      WINAPI VirtualUnlock(LPVOID,DWORD);
7117 BOOL32      WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
7118 DWORD       WINAPI WaitForInputIdle(HANDLE32,DWORD);
7119 DWORD       WINAPI WaitForMultipleObjects(DWORD,const HANDLE32*,BOOL32,DWORD);
7120 DWORD       WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE32*,BOOL32,DWORD,BOOL32);
7121 DWORD       WINAPI WaitForSingleObject(HANDLE32,DWORD);
7122 DWORD       WINAPI WaitForSingleObjectEx(HANDLE32,DWORD,BOOL32);
7123 UINT32      WINAPI WNetAddConnection2_32A(LPNETRESOURCE32A,LPCSTR,LPCSTR,DWORD);
7124 UINT32      WINAPI WNetAddConnection2_32W(LPNETRESOURCE32W,LPCWSTR,LPCWSTR,DWORD);
7125 #define     WNetAddConnection2 WINELIB_NAME_AW(WNetAddConnection2_)
7126 UINT32      WINAPI WNetAddConnection3_32A(HWND32,LPNETRESOURCE32A,LPCSTR,LPCSTR,DWORD);
7127 UINT32      WINAPI WNetAddConnection3_32W(HWND32,LPNETRESOURCE32W,LPCWSTR,LPCWSTR,DWORD);
7128 #define     WNetAddConnection3 WINELIB_NAME_AW(WNetAddConnection3_)
7129 UINT32      WINAPI WNetConnectionDialog1_32(HWND32,DWORD);
7130 UINT32      WINAPI WNetConnectionDialog1_32A(LPCONNECTDLGSTRUCT32A);
7131 UINT32      WINAPI WNetConnectionDialog1_32W(LPCONNECTDLGSTRUCT32W);
7132 #define     WNetConnectionDialog1 WINELIB_NAME_AW(WNetConnectionDialog1_)
7133 UINT32      WINAPI MultinetGetErrorText32A(DWORD,DWORD,DWORD);
7134 UINT32      WINAPI MultinetGetErrorText32W(DWORD,DWORD,DWORD);
7135 #define     MultinetGetErrorText WINELIB_NAME_AW(MultinetGetErrorText_)
7136 SEGPTR      WINAPI WOWGlobalAllocLock16(DWORD,DWORD,HGLOBAL16*);
7137 DWORD       WINAPI WOWCallback16(FARPROC16,DWORD);
7138 BOOL32      WINAPI WOWCallback16Ex(FARPROC16,DWORD,DWORD,LPVOID,LPDWORD);
7139 HANDLE32    WINAPI WOWHandle32(WORD,WOW_HANDLE_TYPE);
7140 WORD        WINAPI WOWHandle16(HANDLE32,WOW_HANDLE_TYPE);
7141 BOOL32      WINAPI WriteConsole32A(HANDLE32,LPCVOID,DWORD,LPDWORD,LPVOID);
7142 BOOL32      WINAPI WriteConsole32W(HANDLE32,LPCVOID,DWORD,LPDWORD,LPVOID);
7143 #define     WriteConsole WINELIB_NAME_AW(WriteConsole)
7144 BOOL32      WINAPI WriteFile(HANDLE32,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
7145 VOID        WINAPI ZeroMemory(LPVOID,UINT32);
7146 #define     ZeroMemory RtlZeroMemory
7147
7148 /* Declarations for functions that are the same in Win16 and Win32 */
7149
7150 VOID        WINAPI CloseSound(VOID);
7151 VOID        WINAPI EndMenu(void);
7152 DWORD       WINAPI GetDialogBaseUnits(void);
7153 VOID        WINAPI GetKeyboardState(LPBYTE);
7154 DWORD       WINAPI GetLastError(void);
7155 DWORD       WINAPI GetMenuCheckMarkDimensions(void);
7156 LONG        WINAPI GetMessageExtraInfo(void);
7157 DWORD       WINAPI GetMessagePos(void);
7158 LONG        WINAPI GetMessageTime(void);
7159 LANGID      WINAPI GetSystemDefaultLangID(void);
7160 LCID        WINAPI GetSystemDefaultLCID(void);
7161 DWORD       WINAPI GetTickCount(void);
7162 LANGID      WINAPI GetUserDefaultLangID(void);
7163 LCID        WINAPI GetUserDefaultLCID(void);
7164 ATOM        WINAPI GlobalDeleteAtom(ATOM);
7165 VOID        WINAPI LZDone(void);
7166 VOID        WINAPI ScreenSwitchEnable(WORD);
7167 DWORD       WINAPI OemKeyScan(WORD);
7168 DWORD       WINAPI RegCloseKey(HKEY);
7169 DWORD       WINAPI RegFlushKey(HKEY);
7170 VOID        WINAPI ReleaseCapture(void);
7171 VOID        WINAPI SetKeyboardState(LPBYTE);
7172 VOID        WINAPI SetLastError(DWORD);
7173 VOID        WINAPI WaitMessage(VOID);
7174
7175
7176 /* Declarations for functions that change between Win16 and Win32 */
7177
7178 BOOL16      WINAPI AbortPath16(HDC16);
7179 BOOL32      WINAPI AbortPath32(HDC32);
7180 #define     AbortPath WINELIB_NAME(AbortPath)
7181 LRESULT     WINAPI AboutDlgProc16(HWND16,UINT16,WPARAM16,LPARAM);
7182 LRESULT     WINAPI AboutDlgProc32(HWND32,UINT32,WPARAM32,LPARAM);
7183 #define     AboutDlgProc WINELIB_NAME(AboutDlgProc)
7184 INT16       WINAPI AccessResource16(HINSTANCE16,HRSRC16);
7185 INT32       WINAPI AccessResource32(HMODULE32,HRSRC32);
7186 #define     AccessResource WINELIB_NAME(AccessResource)
7187 ATOM        WINAPI AddAtom16(SEGPTR);
7188 ATOM        WINAPI AddAtom32A(LPCSTR);
7189 ATOM        WINAPI AddAtom32W(LPCWSTR);
7190 #define     AddAtom WINELIB_NAME_AW(AddAtom)
7191 INT16       WINAPI AddFontResource16(LPCSTR);
7192 INT32       WINAPI AddFontResource32A(LPCSTR);
7193 INT32       WINAPI AddFontResource32W(LPCWSTR);
7194 #define     AddFontResource WINELIB_NAME_AW(AddFontResource)
7195 BOOL16      WINAPI AdjustWindowRect16(LPRECT16,DWORD,BOOL16);
7196 BOOL32      WINAPI AdjustWindowRect32(LPRECT32,DWORD,BOOL32);
7197 #define     AdjustWindowRect WINELIB_NAME(AdjustWindowRect)
7198 BOOL16      WINAPI AdjustWindowRectEx16(LPRECT16,DWORD,BOOL16,DWORD);
7199 BOOL32      WINAPI AdjustWindowRectEx32(LPRECT32,DWORD,BOOL32,DWORD);
7200 #define     AdjustWindowRectEx WINELIB_NAME(AdjustWindowRectEx)
7201 void        WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
7202 BOOL32      WINAPI AnimatePalette32(HPALETTE32,UINT32,UINT32,const PALETTEENTRY*);
7203 #define     AnimatePalette WINELIB_NAME(AnimatePalette)
7204 SEGPTR      WINAPI AnsiLower16(SEGPTR);
7205 #define     AnsiLower32A CharLower32A
7206 #define     AnsiLower32W CharLower32W
7207 #define     AnsiLower WINELIB_NAME_AW(AnsiLower)
7208 UINT16      WINAPI AnsiLowerBuff16(LPSTR,UINT16);
7209 #define     AnsiLowerBuff32A CharLowerBuff32A
7210 #define     AnsiLowerBuff32W CharLowerBuff32W
7211 #define     AnsiLowerBuff WINELIB_NAME_AW(AnsiLowerBuff)
7212 SEGPTR      WINAPI AnsiNext16(SEGPTR);
7213 #define     AnsiNext32A CharNext32A
7214 #define     AnsiNext32W CharNext32W
7215 #define     AnsiNext WINELIB_NAME_AW(AnsiNext)
7216 SEGPTR      WINAPI AnsiPrev16(SEGPTR,SEGPTR);
7217 #define     AnsiPrev32A CharPrev32A
7218 #define     AnsiPrev32W CharPrev32W
7219 #define     AnsiPrev WINELIB_NAME_AW(AnsiPrev)
7220 INT16       WINAPI AnsiToOem16(LPCSTR,LPSTR);
7221 #define     AnsiToOem32A CharToOem32A
7222 #define     AnsiToOem32W CharToOem32W
7223 #define     AnsiToOem WINELIB_NAME_AW(AnsiToOem)
7224 VOID        WINAPI AnsiToOemBuff16(LPCSTR,LPSTR,UINT16);
7225 #define     AnsiToOemBuff32A CharToOemBuff32A
7226 #define     AnsiToOemBuff32W CharToOemBuff32W
7227 #define     AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff)
7228 SEGPTR      WINAPI AnsiUpper16(SEGPTR);
7229 #define     AnsiUpper32A CharUpper32A
7230 #define     AnsiUpper32W CharUpper32W
7231 #define     AnsiUpper WINELIB_NAME_AW(AnsiUpper)
7232 UINT16      WINAPI AnsiUpperBuff16(LPSTR,UINT16);
7233 #define     AnsiUpperBuff32A CharUpperBuff32A
7234 #define     AnsiUpperBuff32W CharUpperBuff32W
7235 #define     AnsiUpperBuff WINELIB_NAME_AW(AnsiUpperBuff)
7236 BOOL16      WINAPI AnyPopup16(void);
7237 BOOL32      WINAPI AnyPopup32(void);
7238 #define     AnyPopup WINELIB_NAME(AnyPopup)
7239 BOOL16      WINAPI AppendMenu16(HMENU16,UINT16,UINT16,SEGPTR);
7240 BOOL32      WINAPI AppendMenu32A(HMENU32,UINT32,UINT32,LPCSTR);
7241 BOOL32      WINAPI AppendMenu32W(HMENU32,UINT32,UINT32,LPCWSTR);
7242 #define     AppendMenu WINELIB_NAME_AW(AppendMenu)
7243 BOOL16      WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
7244 BOOL32      WINAPI Arc32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
7245 #define     Arc WINELIB_NAME(Arc)
7246 UINT16      WINAPI ArrangeIconicWindows16(HWND16);
7247 UINT32      WINAPI ArrangeIconicWindows32(HWND32);
7248 #define     ArrangeIconicWindows WINELIB_NAME(ArrangeIconicWindows)
7249 HDWP16      WINAPI BeginDeferWindowPos16(INT16);
7250 HDWP32      WINAPI BeginDeferWindowPos32(INT32);
7251 #define     BeginDeferWindowPos WINELIB_NAME(BeginDeferWindowPos)
7252 HDC16       WINAPI BeginPaint16(HWND16,LPPAINTSTRUCT16);
7253 HDC32       WINAPI BeginPaint32(HWND32,LPPAINTSTRUCT32);
7254 #define     BeginPaint WINELIB_NAME(BeginPaint)
7255 BOOL16      WINAPI BeginPath16(HDC16);
7256 BOOL32      WINAPI BeginPath32(HDC32);
7257 #define     BeginPath WINELIB_NAME(BeginPath)
7258 BOOL16      WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD);
7259 BOOL32      WINAPI BitBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32,DWORD);
7260 #define     BitBlt WINELIB_NAME(BitBlt)
7261 BOOL16      WINAPI BringWindowToTop16(HWND16);
7262 BOOL32      WINAPI BringWindowToTop32(HWND32);
7263 #define     BringWindowToTop WINELIB_NAME(BringWindowToTop)
7264 BOOL16      WINAPI BuildCommDCB16(LPCSTR,LPDCB16);
7265 BOOL32      WINAPI BuildCommDCB32A(LPCSTR,LPDCB32);
7266 BOOL32      WINAPI BuildCommDCB32W(LPCWSTR,LPDCB32);
7267 #define     BuildCommDCB WINELIB_NAME_AW(BuildCommDCB)
7268 BOOL32      WINAPI BuildCommDCBAndTimeouts32A(LPCSTR,LPDCB32,LPCOMMTIMEOUTS);
7269 BOOL32      WINAPI BuildCommDCBAndTimeouts32W(LPCWSTR,LPDCB32,LPCOMMTIMEOUTS);
7270 #define     BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts)
7271 BOOL16      WINAPI CallMsgFilter16(SEGPTR,INT16);
7272 BOOL32      WINAPI CallMsgFilter32A(LPMSG32,INT32);
7273 BOOL32      WINAPI CallMsgFilter32W(LPMSG32,INT32);
7274 #define     CallMsgFilter WINELIB_NAME_AW(CallMsgFilter)
7275 LRESULT     WINAPI CallNextHookEx16(HHOOK,INT16,WPARAM16,LPARAM);
7276 LRESULT     WINAPI CallNextHookEx32(HHOOK,INT32,WPARAM32,LPARAM);
7277 #define     CallNextHookEx WINELIB_NAME(CallNextHookEx)
7278 LRESULT     WINAPI CallWindowProc16(WNDPROC16,HWND16,UINT16,WPARAM16,LPARAM);
7279 LRESULT     WINAPI CallWindowProc32A(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM);
7280 LRESULT     WINAPI CallWindowProc32W(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM);
7281 #define     CallWindowProc WINELIB_NAME_AW(CallWindowProc)
7282 BOOL16      WINAPI ChangeClipboardChain16(HWND16,HWND16);
7283 BOOL32      WINAPI ChangeClipboardChain32(HWND32,HWND32);
7284 #define     ChangeClipboardChain WINELIB_NAME(ChangeClipboardChain)
7285 BOOL16      WINAPI ChangeMenu16(HMENU16,UINT16,SEGPTR,UINT16,UINT16);
7286 BOOL32      WINAPI ChangeMenu32A(HMENU32,UINT32,LPCSTR,UINT32,UINT32);
7287 BOOL32      WINAPI ChangeMenu32W(HMENU32,UINT32,LPCWSTR,UINT32,UINT32);
7288 #define     ChangeMenu WINELIB_NAME_AW(ChangeMenu)
7289 LPSTR       WINAPI CharLower32A(LPSTR);
7290 LPWSTR      WINAPI CharLower32W(LPWSTR);
7291 #define     CharLower WINELIB_NAME_AW(CharLower)
7292 DWORD       WINAPI CharLowerBuff32A(LPSTR,DWORD);
7293 DWORD       WINAPI CharLowerBuff32W(LPWSTR,DWORD);
7294 #define     CharLowerBuff WINELIB_NAME_AW(CharLowerBuff)
7295 LPSTR       WINAPI CharNext32A(LPCSTR);
7296 LPWSTR      WINAPI CharNext32W(LPCWSTR);
7297 #define     CharNext WINELIB_NAME_AW(CharNext)
7298 LPSTR       WINAPI CharNextEx32A(WORD,LPCSTR,DWORD);
7299 LPWSTR      WINAPI CharNextEx32W(WORD,LPCWSTR,DWORD);
7300 #define     CharNextEx WINELIB_NAME_AW(CharNextEx)
7301 LPSTR       WINAPI CharPrev32A(LPCSTR,LPCSTR);
7302 LPWSTR      WINAPI CharPrev32W(LPCWSTR,LPCWSTR);
7303 #define     CharPrev WINELIB_NAME_AW(CharPrev)
7304 LPSTR       WINAPI CharPrevEx32A(WORD,LPCSTR,LPCSTR,DWORD);
7305 LPWSTR      WINAPI CharPrevEx32W(WORD,LPCWSTR,LPCWSTR,DWORD);
7306 #define     CharPrevEx WINELIB_NAME_AW(CharPrevEx)
7307 LPSTR       WINAPI CharUpper32A(LPSTR);
7308 LPWSTR      WINAPI CharUpper32W(LPWSTR);
7309 #define     CharUpper WINELIB_NAME_AW(CharUpper)
7310 DWORD       WINAPI CharUpperBuff32A(LPSTR,DWORD);
7311 DWORD       WINAPI CharUpperBuff32W(LPWSTR,DWORD);
7312 #define     CharUpperBuff WINELIB_NAME_AW(CharUpperBuff)
7313 BOOL32      WINAPI CharToOem32A(LPCSTR,LPSTR);
7314 BOOL32      WINAPI CharToOem32W(LPCWSTR,LPSTR);
7315 #define     CharToOem WINELIB_NAME_AW(CharToOem)
7316 BOOL32      WINAPI CharToOemBuff32A(LPCSTR,LPSTR,DWORD);
7317 BOOL32      WINAPI CharToOemBuff32W(LPCWSTR,LPSTR,DWORD);
7318 #define     CharToOemBuff WINELIB_NAME_AW(CharToOemBuff)
7319 BOOL16      WINAPI CheckDlgButton16(HWND16,INT16,UINT16);
7320 BOOL32      WINAPI CheckDlgButton32(HWND32,INT32,UINT32);
7321 #define     CheckDlgButton WINELIB_NAME(CheckDlgButton)
7322 BOOL16      WINAPI CheckMenuItem16(HMENU16,UINT16,UINT16);
7323 DWORD       WINAPI CheckMenuItem32(HMENU32,UINT32,UINT32);
7324 #define     CheckMenuItem WINELIB_NAME(CheckMenuItem)
7325 BOOL16      WINAPI CheckMenuRadioButton16(HMENU16,UINT16,UINT16,UINT16,BOOL16);
7326 BOOL32      WINAPI CheckMenuRadioButton32(HMENU32,UINT32,UINT32,UINT32,BOOL32);
7327 #define     CheckMenuRadioButton WINELIB_NAME(CheckMenuRadioButton)
7328 BOOL16      WINAPI CheckMenuRadioItem16(HMENU16,UINT16,UINT16,UINT16,UINT16);
7329 BOOL32      WINAPI CheckMenuRadioItem32(HMENU32,UINT32,UINT32,UINT32,UINT32);
7330 #define     CheckMenuRadioItem WINELIB_NAME(CheckMenuRadioItem)
7331 BOOL16      WINAPI CheckRadioButton16(HWND16,UINT16,UINT16,UINT16);
7332 BOOL32      WINAPI CheckRadioButton32(HWND32,UINT32,UINT32,UINT32);
7333 #define     CheckRadioButton WINELIB_NAME(CheckRadioButton)
7334 HWND16      WINAPI ChildWindowFromPoint16(HWND16,POINT16);
7335 HWND32      WINAPI ChildWindowFromPoint32(HWND32,POINT32);
7336 #define     ChildWindowFromPoint WINELIB_NAME(ChildWindowFromPoint)
7337 INT32       WINAPI ChoosePixelFormat(HDC32,const PIXELFORMATDESCRIPTOR*);
7338 BOOL16      WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
7339 BOOL32      WINAPI Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
7340 #define     Chord WINELIB_NAME(Chord)
7341 INT16       WINAPI ClearCommBreak16(INT16);
7342 BOOL32      WINAPI ClearCommBreak32(INT32);
7343 #define     ClearCommBreak WINELIB_NAME(ClearCommBreak)
7344 VOID        WINAPI ClientToScreen16(HWND16,LPPOINT16);
7345 BOOL32      WINAPI ClientToScreen32(HWND32,LPPOINT32);
7346 #define     ClientToScreen WINELIB_NAME(ClientToScreen)
7347 BOOL16      WINAPI ClipCursor16(const RECT16*);
7348 BOOL32      WINAPI ClipCursor32(const RECT32*);
7349 #define     ClipCursor WINELIB_NAME(ClipCursor)
7350 BOOL16      WINAPI CloseClipboard16(void);
7351 BOOL32      WINAPI CloseClipboard32(void);
7352 #define     CloseClipboard WINELIB_NAME(CloseClipboard)
7353 BOOL16      WINAPI CloseFigure16(HDC16);
7354 BOOL32      WINAPI CloseFigure32(HDC32);
7355 #define     CloseFigure WINELIB_NAME(CloseFigure)
7356 HMETAFILE16 WINAPI CloseMetaFile16(HDC16);
7357 HMETAFILE32 WINAPI CloseMetaFile32(HDC32);
7358 #define     CloseMetaFile WINELIB_NAME(CloseMetaFile)
7359 BOOL16      WINAPI CloseWindow16(HWND16);
7360 BOOL32      WINAPI CloseWindow32(HWND32);
7361 #define     CloseWindow WINELIB_NAME(CloseWindow)
7362 INT16       WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
7363 INT32       WINAPI CombineRgn32(HRGN32,HRGN32,HRGN32,INT32);
7364 #define     CombineRgn WINELIB_NAME(CombineRgn)
7365 UINT16      WINAPI CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
7366 UINT32      WINAPI CompareString32A(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
7367 UINT32      WINAPI CompareString32W(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD);
7368 #define     CompareString WINELIB_NAME_AW(CompareString)
7369 HCURSOR16   WINAPI CopyCursor16(HINSTANCE16,HCURSOR16);
7370 #define     CopyCursor32(cur) ((HCURSOR32)CopyIcon32((HICON32)(cur)))
7371 #define     CopyCursor WINELIB_NAME(CopyCursor)
7372 HICON16     WINAPI CopyIcon16(HINSTANCE16,HICON16);
7373 HICON32     WINAPI CopyIcon32(HICON32);
7374 #define     CopyIcon WINELIB_NAME(CopyIcon)
7375 HICON16     WINAPI CopyImage16(HANDLE16,UINT16,INT16,INT16,UINT16);
7376 HICON32     WINAPI CopyImage32(HANDLE32,UINT32,INT32,INT32,UINT32);
7377 #define     CopyImage WINELIB_NAME(CopyImage)
7378 LONG        WINAPI CopyLZFile16(HFILE16,HFILE16);
7379 LONG        WINAPI CopyLZFile32(HFILE32,HFILE32);
7380 #define     CopyLZFile WINELIB_NAME(CopyLZFile)
7381 HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR);
7382 HMETAFILE32 WINAPI CopyMetaFile32A(HMETAFILE32,LPCSTR);
7383 HMETAFILE32 WINAPI CopyMetaFile32W(HMETAFILE32,LPCWSTR);
7384 #define     CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
7385 BOOL16      WINAPI CopyRect16(RECT16*,const RECT16*);
7386 BOOL32      WINAPI CopyRect32(RECT32*,const RECT32*);
7387 #define     CopyRect WINELIB_NAME(CopyRect)
7388 INT16       WINAPI CountClipboardFormats16(void);
7389 INT32       WINAPI CountClipboardFormats32(void);
7390 #define     CountClipboardFormats WINELIB_NAME(CountClipboardFormats)
7391 INT16       WINAPI CountVoiceNotes16(INT16);
7392 DWORD       WINAPI CountVoiceNotes32(DWORD);
7393 #define     CountVoiceNotes WINELIB_NAME(CountVoiceNotes)
7394 HBITMAP16   WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
7395 HBITMAP32   WINAPI CreateBitmap32(INT32,INT32,UINT32,UINT32,LPCVOID);
7396 #define     CreateBitmap WINELIB_NAME(CreateBitmap)
7397 HBITMAP16   WINAPI CreateBitmapIndirect16(const BITMAP16*);
7398 HBITMAP32   WINAPI CreateBitmapIndirect32(const BITMAP32*);
7399 #define     CreateBitmapIndirect WINELIB_NAME(CreateBitmapIndirect)
7400 HBRUSH16    WINAPI CreateBrushIndirect16(const LOGBRUSH16*);
7401 HBRUSH32    WINAPI CreateBrushIndirect32(const LOGBRUSH32*);
7402 #define     CreateBrushIndirect WINELIB_NAME(CreateBrushIndirect)
7403 VOID        WINAPI CreateCaret16(HWND16,HBITMAP16,INT16,INT16);
7404 BOOL32      WINAPI CreateCaret32(HWND32,HBITMAP32,INT32,INT32);
7405 #define     CreateCaret WINELIB_NAME(CreateCaret)
7406 HBITMAP16   WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16);
7407 HBITMAP32   WINAPI CreateCompatibleBitmap32(HDC32,INT32,INT32);
7408 #define     CreateCompatibleBitmap WINELIB_NAME(CreateCompatibleBitmap)
7409 HDC16       WINAPI CreateCompatibleDC16(HDC16);
7410 HDC32       WINAPI CreateCompatibleDC32(HDC32);
7411 #define     CreateCompatibleDC WINELIB_NAME(CreateCompatibleDC)
7412 HCURSOR16   WINAPI CreateCursor16(HINSTANCE16,INT16,INT16,INT16,INT16,LPCVOID,LPCVOID);
7413 HCURSOR32   WINAPI CreateCursor32(HINSTANCE32,INT32,INT32,INT32,INT32,LPCVOID,LPCVOID);
7414 #define     CreateCursor WINELIB_NAME(CreateCursor)
7415 HDC16       WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
7416 HDC32       WINAPI CreateDC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*);
7417 HDC32       WINAPI CreateDC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
7418 #define     CreateDC WINELIB_NAME_AW(CreateDC)
7419 HWND16      WINAPI CreateDialog16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16);
7420 #define     CreateDialog32A(inst,ptr,hwnd,dlg) \
7421            CreateDialogParam32A(inst,ptr,hwnd,dlg,0)
7422 #define     CreateDialog32W(inst,ptr,hwnd,dlg) \
7423            CreateDialogParam32W(inst,ptr,hwnd,dlg,0)
7424 #define     CreateDialog WINELIB_NAME_AW(CreateDialog)
7425 HWND16      WINAPI CreateDialogIndirect16(HINSTANCE16,LPCVOID,HWND16,DLGPROC16);
7426 #define     CreateDialogIndirect32A(inst,ptr,hwnd,dlg) \
7427            CreateDialogIndirectParam32A(inst,ptr,hwnd,dlg,0)
7428 #define     CreateDialogIndirect32W(inst,ptr,hwnd,dlg) \
7429            CreateDialogIndirectParam32W(inst,ptr,hwnd,dlg,0)
7430 #define     CreateDialogIndirect WINELIB_NAME_AW(CreateDialogIndirect)
7431 HWND16      WINAPI CreateDialogIndirectParam16(HINSTANCE16,LPCVOID,HWND16,
7432                                                DLGPROC16,LPARAM);
7433 HWND32      WINAPI CreateDialogIndirectParam32A(HINSTANCE32,LPCVOID,HWND32,
7434                                                 DLGPROC32,LPARAM);
7435 HWND32      WINAPI CreateDialogIndirectParam32W(HINSTANCE32,LPCVOID,HWND32,
7436                                                 DLGPROC32,LPARAM);
7437 #define     CreateDialogIndirectParam WINELIB_NAME_AW(CreateDialogIndirectParam)
7438 HWND16      WINAPI CreateDialogParam16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16,LPARAM);
7439 HWND32      WINAPI CreateDialogParam32A(HINSTANCE32,LPCSTR,HWND32,DLGPROC32,LPARAM);
7440 HWND32      WINAPI CreateDialogParam32W(HINSTANCE32,LPCWSTR,HWND32,DLGPROC32,LPARAM);
7441 #define     CreateDialogParam WINELIB_NAME_AW(CreateDialogParam)
7442 HBITMAP16   WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,
7443                                     LPCVOID,const BITMAPINFO*,UINT16);
7444 HBITMAP32   WINAPI CreateDIBitmap32(HDC32,const BITMAPINFOHEADER*,DWORD,
7445                                     LPCVOID,const BITMAPINFO*,UINT32);
7446 #define     CreateDIBitmap WINELIB_NAME(CreateDIBitmap)
7447 HBRUSH16    WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16);
7448 HBRUSH32    WINAPI CreateDIBPatternBrush32(HGLOBAL32,UINT32);
7449 #define     CreateDIBPatternBrush WINELIB_NAME(CreateDIBPatternBrush)
7450 HBITMAP16   WINAPI CreateDIBSection16 (HDC16, BITMAPINFO *, UINT16,
7451                                        LPVOID **, HANDLE32, DWORD offset);
7452 HBITMAP32   WINAPI CreateDIBSection32 (HDC32, BITMAPINFO *, UINT32,
7453                                        LPVOID **, HANDLE32, DWORD offset);
7454 #define     CreateDIBSection WINELIB_NAME(CreateDIBSection)
7455 BOOL16      WINAPI CreateDirectory16(LPCSTR,LPVOID);
7456 BOOL32      WINAPI CreateDirectory32A(LPCSTR,LPSECURITY_ATTRIBUTES);
7457 BOOL32      WINAPI CreateDirectory32W(LPCWSTR,LPSECURITY_ATTRIBUTES);
7458 #define     CreateDirectory WINELIB_NAME_AW(CreateDirectory)
7459 BOOL32      WINAPI CreateDirectoryEx32A(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
7460 BOOL32      WINAPI CreateDirectoryEx32W(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
7461 #define     CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx)
7462 HBITMAP16   WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16);
7463 HBITMAP32   WINAPI CreateDiscardableBitmap32(HDC32,INT32,INT32);
7464 #define     CreateDiscardableBitmap WINELIB_NAME(CreateDiscardableBitmap)
7465 HRGN16      WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16);
7466 HRGN32      WINAPI CreateEllipticRgn32(INT32,INT32,INT32,INT32);
7467 #define     CreateEllipticRgn WINELIB_NAME(CreateEllipticRgn)
7468 HRGN16      WINAPI CreateEllipticRgnIndirect16(const RECT16 *);
7469 HRGN32      WINAPI CreateEllipticRgnIndirect32(const RECT32 *);
7470 #define     CreateEllipticRgnIndirect WINELIB_NAME(CreateEllipticRgnIndirect)
7471 HFONT16     WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,
7472                                 BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
7473 HFONT32     WINAPI CreateFont32A(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD,
7474                                  DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
7475 HFONT32     WINAPI CreateFont32W(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD,
7476                                  DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
7477 #define     CreateFont WINELIB_NAME_AW(CreateFont)
7478 HFONT16     WINAPI CreateFontIndirect16(const LOGFONT16*);
7479 HFONT32     WINAPI CreateFontIndirect32A(const LOGFONT32A*);
7480 HFONT32     WINAPI CreateFontIndirect32W(const LOGFONT32W*);
7481 #define     CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
7482 HBRUSH16    WINAPI CreateHatchBrush16(INT16,COLORREF);
7483 HBRUSH32    WINAPI CreateHatchBrush32(INT32,COLORREF);
7484 #define     CreateHatchBrush WINELIB_NAME(CreateHatchBrush)
7485 HDC16       WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*);
7486 HDC32       WINAPI CreateIC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*);
7487 HDC32       WINAPI CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
7488 #define     CreateIC WINELIB_NAME_AW(CreateIC)
7489 HICON16     WINAPI CreateIcon16(HINSTANCE16,INT16,INT16,BYTE,BYTE,LPCVOID,LPCVOID);
7490 HICON32     WINAPI CreateIcon32(HINSTANCE32,INT32,INT32,BYTE,BYTE,LPCVOID,LPCVOID);
7491 #define     CreateIcon WINELIB_NAME(CreateIcon)
7492 HICON16     WINAPI CreateIconFromResource16(LPBYTE,UINT16,BOOL16,DWORD);
7493 HICON32     WINAPI CreateIconFromResource32(LPBYTE,UINT32,BOOL32,DWORD);
7494 #define     CreateIconFromResource WINELIB_NAME(CreateIconFromResource)
7495 HICON16     WINAPI CreateIconFromResourceEx16(LPBYTE,UINT16,BOOL16,DWORD,INT16,INT16,UINT16);
7496 HICON32     WINAPI CreateIconFromResourceEx32(LPBYTE,UINT32,BOOL32,DWORD,INT32,INT32,UINT32);
7497 #define     CreateIconFromResourceEx WINELIB_NAME(CreateIconFromResourceEx)
7498 HMENU16     WINAPI CreateMenu16(void);
7499 HMENU32     WINAPI CreateMenu32(void);
7500 #define     CreateMenu WINELIB_NAME(CreateMenu)
7501 HDC16       WINAPI CreateMetaFile16(LPCSTR);
7502 HDC32       WINAPI CreateMetaFile32A(LPCSTR);
7503 HDC32       WINAPI CreateMetaFile32W(LPCWSTR);
7504 #define     CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
7505 HPALETTE16  WINAPI CreatePalette16(const LOGPALETTE*);
7506 HPALETTE32  WINAPI CreatePalette32(const LOGPALETTE*);
7507 #define     CreatePalette WINELIB_NAME(CreatePalette)
7508 HBRUSH16    WINAPI CreatePatternBrush16(HBITMAP16);
7509 HBRUSH32    WINAPI CreatePatternBrush32(HBITMAP32);
7510 #define     CreatePatternBrush WINELIB_NAME(CreatePatternBrush)
7511 HPEN16      WINAPI CreatePen16(INT16,INT16,COLORREF);
7512 HPEN32      WINAPI CreatePen32(INT32,INT32,COLORREF);
7513 #define     CreatePen WINELIB_NAME(CreatePen)
7514 HPEN16      WINAPI CreatePenIndirect16(const LOGPEN16*);
7515 HPEN32      WINAPI CreatePenIndirect32(const LOGPEN32*);
7516 #define     CreatePenIndirect WINELIB_NAME(CreatePenIndirect)
7517 HRGN16      WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
7518 HRGN32      WINAPI CreatePolyPolygonRgn32(const POINT32*,const INT32*,INT32,INT32);
7519 #define     CreatePolyPolygonRgn WINELIB_NAME(CreatePolyPolygonRgn)
7520 HRGN16      WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16);
7521 HRGN32      WINAPI CreatePolygonRgn32(const POINT32*,INT32,INT32);
7522 #define     CreatePolygonRgn WINELIB_NAME(CreatePolygonRgn)
7523 HMENU16     WINAPI CreatePopupMenu16(void);
7524 HMENU32     WINAPI CreatePopupMenu32(void);
7525 #define     CreatePopupMenu WINELIB_NAME(CreatePopupMenu)
7526 HRGN16      WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16);
7527 HRGN32      WINAPI CreateRectRgn32(INT32,INT32,INT32,INT32);
7528 #define     CreateRectRgn WINELIB_NAME(CreateRectRgn)
7529 HRGN16      WINAPI CreateRectRgnIndirect16(const RECT16*);
7530 HRGN32      WINAPI CreateRectRgnIndirect32(const RECT32*);
7531 #define     CreateRectRgnIndirect WINELIB_NAME(CreateRectRgnIndirect)
7532 HRGN16      WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
7533 HRGN32      WINAPI CreateRoundRectRgn32(INT32,INT32,INT32,INT32,INT32,INT32);
7534 #define     CreateRoundRectRgn WINELIB_NAME(CreateRoundRectRgn)
7535 BOOL16      WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
7536 BOOL32      WINAPI CreateScalableFontResource32A(DWORD,LPCSTR,LPCSTR,LPCSTR);
7537 BOOL32      WINAPI CreateScalableFontResource32W(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
7538 #define     CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
7539 HBRUSH16    WINAPI CreateSolidBrush16(COLORREF);
7540 HBRUSH32    WINAPI CreateSolidBrush32(COLORREF);
7541 #define     CreateSolidBrush WINELIB_NAME(CreateSolidBrush)
7542 HWND16      WINAPI CreateWindow16(LPCSTR,LPCSTR,DWORD,INT16,INT16,INT16,INT16,
7543                                   HWND16,HMENU16,HINSTANCE16,LPVOID);
7544 #define     CreateWindow32A(className,titleName,style,x,y,width,height,\
7545                             parent,menu,instance,param) \
7546             CreateWindowEx32A(0,className,titleName,style,x,y,width,height,\
7547                               parent,menu,instance,param)
7548 #define     CreateWindow32W(className,titleName,style,x,y,width,height,\
7549                             parent,menu,instance,param) \
7550             CreateWindowEx32W(0,className,titleName,style,x,y,width,height,\
7551                               parent,menu,instance,param)
7552 #define     CreateWindow WINELIB_NAME_AW(CreateWindow)
7553 HWND16      WINAPI CreateWindowEx16(DWORD,LPCSTR,LPCSTR,DWORD,INT16,INT16,
7554                                 INT16,INT16,HWND16,HMENU16,HINSTANCE16,LPVOID);
7555 HWND32      WINAPI CreateWindowEx32A(DWORD,LPCSTR,LPCSTR,DWORD,INT32,INT32,
7556                                 INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID);
7557 HWND32      WINAPI CreateWindowEx32W(DWORD,LPCWSTR,LPCWSTR,DWORD,INT32,INT32,
7558                                 INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID);
7559 #define     CreateWindowEx WINELIB_NAME_AW(CreateWindowEx)
7560 HWND32      WINAPI CreateMDIWindow32A(LPCSTR,LPCSTR,DWORD,INT32,INT32,
7561                                 INT32,INT32,HWND32,HINSTANCE32,LPARAM);
7562 HWND32      WINAPI CreateMDIWindow32W(LPCWSTR,LPCWSTR,DWORD,INT32,INT32,
7563                                 INT32,INT32,HWND32,HINSTANCE32,LPARAM);
7564 #define     CreateMDIWindow WINELIB_NAME_AW(CreateMDIWindow)
7565 LRESULT     WINAPI DefDlgProc16(HWND16,UINT16,WPARAM16,LPARAM);
7566 LRESULT     WINAPI DefDlgProc32A(HWND32,UINT32,WPARAM32,LPARAM);
7567 LRESULT     WINAPI DefDlgProc32W(HWND32,UINT32,WPARAM32,LPARAM);
7568 #define     DefDlgProc WINELIB_NAME_AW(DefDlgProc)
7569 HDWP16      WINAPI DeferWindowPos16(HDWP16,HWND16,HWND16,INT16,INT16,INT16,INT16,UINT16);
7570 HDWP32      WINAPI DeferWindowPos32(HDWP32,HWND32,HWND32,INT32,INT32,INT32,INT32,UINT32);
7571 #define     DeferWindowPos WINELIB_NAME(DeferWindowPos)
7572 LRESULT     WINAPI DefFrameProc16(HWND16,HWND16,UINT16,WPARAM16,LPARAM);
7573 LRESULT     WINAPI DefFrameProc32A(HWND32,HWND32,UINT32,WPARAM32,LPARAM);
7574 LRESULT     WINAPI DefFrameProc32W(HWND32,HWND32,UINT32,WPARAM32,LPARAM);
7575 #define     DefFrameProc WINELIB_NAME_AW(DefFrameProc)
7576 LRESULT     WINAPI DefHookProc16(INT16,WPARAM16,LPARAM,HHOOK*);
7577 #define     DefHookProc32(code,wparam,lparam,phhook) \
7578             CallNextHookEx32(*(phhook),code,wparam,lparam)
7579 #define     DefHookProc WINELIB_NAME(DefHookProc)
7580 LRESULT     WINAPI DefMDIChildProc16(HWND16,UINT16,WPARAM16,LPARAM);
7581 LRESULT     WINAPI DefMDIChildProc32A(HWND32,UINT32,WPARAM32,LPARAM);
7582 LRESULT     WINAPI DefMDIChildProc32W(HWND32,UINT32,WPARAM32,LPARAM);
7583 #define     DefMDIChildProc WINELIB_NAME_AW(DefMDIChildProc)
7584 LRESULT     WINAPI DefWindowProc16(HWND16,UINT16,WPARAM16,LPARAM);
7585 LRESULT     WINAPI DefWindowProc32A(HWND32,UINT32,WPARAM32,LPARAM);
7586 LRESULT     WINAPI DefWindowProc32W(HWND32,UINT32,WPARAM32,LPARAM);
7587 #define     DefWindowProc WINELIB_NAME_AW(DefWindowProc)
7588 BOOL16      WINAPI DefineHandleTable16(WORD);
7589 #define     DefineHandleTable32(w) ((w),TRUE)
7590 #define     DefineHandleTable WINELIB_NAME(DefineHandleTable)
7591 ATOM        WINAPI DeleteAtom16(ATOM);
7592 ATOM        WINAPI DeleteAtom32(ATOM);
7593 #define     DeleteAtom WINELIB_NAME(DeleteAtom)
7594 BOOL16      WINAPI DeleteDC16(HDC16);
7595 BOOL32      WINAPI DeleteDC32(HDC32);
7596 #define     DeleteDC WINELIB_NAME(DeleteDC)
7597 BOOL16      WINAPI DeleteFile16(LPCSTR);
7598 BOOL32      WINAPI DeleteFile32A(LPCSTR);
7599 BOOL32      WINAPI DeleteFile32W(LPCWSTR);
7600 #define     DeleteFile WINELIB_NAME_AW(DeleteFile)
7601 BOOL16      WINAPI DeleteMenu16(HMENU16,UINT16,UINT16);
7602 BOOL32      WINAPI DeleteMenu32(HMENU32,UINT32,UINT32);
7603 #define     DeleteMenu WINELIB_NAME(DeleteMenu)
7604 BOOL16      WINAPI DeleteMetaFile16(HMETAFILE16);
7605 BOOL32      WINAPI DeleteMetaFile32(HMETAFILE32);
7606 #define     DeleteMetaFile WINELIB_NAME(DeleteMetaFile)
7607 BOOL16      WINAPI DeleteObject16(HGDIOBJ16);
7608 BOOL32      WINAPI DeleteObject32(HGDIOBJ32);
7609 #define     DeleteObject WINELIB_NAME(DeleteObject)
7610 INT32       WINAPI DescribePixelFormat(HDC32,int,UINT32,
7611                                        LPPIXELFORMATDESCRIPTOR);
7612 VOID        WINAPI DestroyCaret16(void);
7613 BOOL32      WINAPI DestroyCaret32(void);
7614 #define     DestroyCaret WINELIB_NAME(DestroyCaret)
7615 BOOL16      WINAPI DestroyCursor16(HCURSOR16);
7616 BOOL32      WINAPI DestroyCursor32(HCURSOR32);
7617 #define     DestroyCursor WINELIB_NAME(DestroyCursor)
7618 BOOL16      WINAPI DestroyIcon16(HICON16);
7619 BOOL32      WINAPI DestroyIcon32(HICON32);
7620 #define     DestroyIcon WINELIB_NAME(DestroyIcon)
7621 BOOL16      WINAPI DestroyMenu16(HMENU16);
7622 BOOL32      WINAPI DestroyMenu32(HMENU32);
7623 #define     DestroyMenu WINELIB_NAME(DestroyMenu)
7624 BOOL16      WINAPI DestroyWindow16(HWND16);
7625 BOOL32      WINAPI DestroyWindow32(HWND32);
7626 #define     DestroyWindow WINELIB_NAME(DestroyWindow)
7627 INT16       WINAPI DialogBox16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16);
7628 #define     DialogBox32A(inst,template,owner,func) \
7629             DialogBoxParam32A(inst,template,owner,func,0)
7630 #define     DialogBox32W(inst,template,owner,func) \
7631             DialogBoxParam32W(inst,template,owner,func,0)
7632 #define     DialogBox WINELIB_NAME_AW(DialogBox)
7633 INT16       WINAPI DialogBoxIndirect16(HINSTANCE16,HANDLE16,HWND16,DLGPROC16);
7634 #define     DialogBoxIndirect32A(inst,template,owner,func) \
7635             DialogBoxIndirectParam32A(inst,template,owner,func,0)
7636 #define     DialogBoxIndirect32W(inst,template,owner,func) \
7637             DialogBoxIndirectParam32W(inst,template,owner,func,0)
7638 #define     DialogBoxIndirect WINELIB_NAME_AW(DialogBoxIndirect)
7639 INT16       WINAPI DialogBoxIndirectParam16(HINSTANCE16,HANDLE16,HWND16,DLGPROC16,LPARAM);
7640 INT32       WINAPI DialogBoxIndirectParam32A(HINSTANCE32,LPCVOID,HWND32,DLGPROC32,LPARAM);
7641 INT32       WINAPI DialogBoxIndirectParam32W(HINSTANCE32,LPCVOID,HWND32,DLGPROC32,LPARAM);
7642 #define     DialogBoxIndirectParam WINELIB_NAME_AW(DialogBoxIndirectParam)
7643 INT16       WINAPI DialogBoxParam16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16,LPARAM);
7644 INT32       WINAPI DialogBoxParam32A(HINSTANCE32,LPCSTR,HWND32,DLGPROC32,LPARAM);
7645 INT32       WINAPI DialogBoxParam32W(HINSTANCE32,LPCWSTR,HWND32,DLGPROC32,LPARAM);
7646 #define     DialogBoxParam WINELIB_NAME_AW(DialogBoxParam)
7647 LONG        WINAPI DispatchMessage16(const MSG16*);
7648 LONG        WINAPI DispatchMessage32A(const MSG32*);
7649 LONG        WINAPI DispatchMessage32W(const MSG32*);
7650 #define     DispatchMessage WINELIB_NAME_AW(DispatchMessage)
7651 INT16       WINAPI DlgDirList16(HWND16,LPSTR,INT16,INT16,UINT16);
7652 INT32       WINAPI DlgDirList32A(HWND32,LPSTR,INT32,INT32,UINT32);
7653 INT32       WINAPI DlgDirList32W(HWND32,LPWSTR,INT32,INT32,UINT32);
7654 #define     DlgDirList WINELIB_NAME_AW(DlgDirList)
7655 INT16       WINAPI DlgDirListComboBox16(HWND16,LPSTR,INT16,INT16,UINT16);
7656 INT32       WINAPI DlgDirListComboBox32A(HWND32,LPSTR,INT32,INT32,UINT32);
7657 INT32       WINAPI DlgDirListComboBox32W(HWND32,LPWSTR,INT32,INT32,UINT32);
7658 #define     DlgDirListComboBox WINELIB_NAME_AW(DlgDirListComboBox)
7659 BOOL16      WINAPI DlgDirSelectComboBoxEx16(HWND16,LPSTR,INT16,INT16);
7660 BOOL32      WINAPI DlgDirSelectComboBoxEx32A(HWND32,LPSTR,INT32,INT32);
7661 BOOL32      WINAPI DlgDirSelectComboBoxEx32W(HWND32,LPWSTR,INT32,INT32);
7662 #define     DlgDirSelectComboBoxEx WINELIB_NAME_AW(DlgDirSelectComboBoxEx)
7663 BOOL16      WINAPI DlgDirSelectEx16(HWND16,LPSTR,INT16,INT16);
7664 BOOL32      WINAPI DlgDirSelectEx32A(HWND32,LPSTR,INT32,INT32);
7665 BOOL32      WINAPI DlgDirSelectEx32W(HWND32,LPWSTR,INT32,INT32);
7666 #define     DlgDirSelectEx WINELIB_NAME_AW(DlgDirSelectEx)
7667 BOOL16      WINAPI DPtoLP16(HDC16,LPPOINT16,INT16);
7668 BOOL32      WINAPI DPtoLP32(HDC32,LPPOINT32,INT32);
7669 #define     DPtoLP WINELIB_NAME(DPtoLP)
7670 BOOL16      WINAPI DragDetect16(HWND16,POINT16);
7671 BOOL32      WINAPI DragDetect32(HWND32,POINT32);
7672 #define     DragDetect WINELIB_NAME(DragDetect)
7673 DWORD       WINAPI DragObject16(HWND16,HWND16,UINT16,HANDLE16,WORD,HCURSOR16);
7674 DWORD       WINAPI DragObject32(HWND32,HWND32,UINT32,DWORD,HCURSOR32);
7675 #define     DragObject WINELIB_NAME(DragObject)
7676 BOOL32      WINAPI DrawAnimatedRects32(HWND32,int,const RECT32*,const RECT32*);
7677 #define     DrawAnimatedRects WINELIB_NAME(DrawAnimatedRects)
7678 BOOL16      WINAPI DrawCaption16(HWND16,HDC16,const RECT16*,UINT16);
7679 BOOL32      WINAPI DrawCaption32(HWND32,HDC32,const RECT32*,UINT32);
7680 #define     DrawCaption WINELIB_NAME(DrawCaption)
7681 BOOL16      WINAPI DrawCaptionTemp16(HWND16,HDC16, const RECT16*,HFONT16,HICON16,LPCSTR,UINT16);
7682 BOOL32      WINAPI DrawCaptionTemp32A(HWND32,HDC32,const RECT32*,HFONT32,HICON32,LPCSTR,UINT32);
7683 BOOL32      WINAPI DrawCaptionTemp32W(HWND32,HDC32,const RECT32*,HFONT32,HICON32,LPCWSTR,UINT32);
7684 #define     DrawCaptionTemp WINELIB_NAME_AW(DrawCaptionTemp)
7685 BOOL16      WINAPI DrawEdge16(HDC16,LPRECT16,UINT16,UINT16);
7686 BOOL32      WINAPI DrawEdge32(HDC32,LPRECT32,UINT32,UINT32);
7687 #define     DrawEdge WINELIB_NAME(DrawEdge)
7688 void        WINAPI DrawFocusRect16(HDC16,const RECT16*);
7689 void        WINAPI DrawFocusRect32(HDC32,const RECT32*);
7690 #define     DrawFocusRect WINELIB_NAME(DrawFocusRect)
7691 BOOL16      WINAPI DrawFrameControl16(HDC16,LPRECT16,UINT16,UINT16);
7692 BOOL32      WINAPI DrawFrameControl32(HDC32,LPRECT32,UINT32,UINT32);
7693 #define     DrawFrameControl WINELIB_NAME(DrawFrameControl)
7694 BOOL16      WINAPI DrawIcon16(HDC16,INT16,INT16,HICON16);
7695 BOOL32      WINAPI DrawIcon32(HDC32,INT32,INT32,HICON32);
7696 #define     DrawIcon WINELIB_NAME(DrawIcon)
7697 BOOL16      WINAPI DrawIconEx16(HDC16,INT16,INT16,HICON16,INT16,INT16,
7698                                 UINT16,HBRUSH16,UINT16);
7699 BOOL32      WINAPI DrawIconEx32(HDC32,INT32,INT32,HICON32,INT32,INT32,
7700                                 UINT32,HBRUSH32,UINT32);
7701 #define     DrawIconEx WINELIB_NAME(DrawIconEx)
7702 VOID        WINAPI DrawMenuBar16(HWND16);
7703 BOOL32      WINAPI DrawMenuBar32(HWND32);
7704 #define     DrawMenuBar WINELIB_NAME(DrawMenuBar)
7705 BOOL16      WINAPI DrawState16A(HDC16,HBRUSH16,DRAWSTATEPROC16,LPARAM,WPARAM16,INT16,INT16,INT16,INT16,UINT16);
7706 BOOL32      WINAPI DrawState32A(HDC32,HBRUSH32,DRAWSTATEPROC32,LPARAM,WPARAM32,INT32,INT32,INT32,INT32,UINT32);
7707 BOOL32      WINAPI DrawState32W(HDC32,HBRUSH32,DRAWSTATEPROC32,LPARAM,WPARAM32,INT32,INT32,INT32,INT32,UINT32);
7708 #define     DrawState WINELIB_NAME_AW(DrawState)
7709 INT16       WINAPI DrawText16(HDC16,LPCSTR,INT16,LPRECT16,UINT16);
7710 INT32       WINAPI DrawText32A(HDC32,LPCSTR,INT32,LPRECT32,UINT32);
7711 INT32       WINAPI DrawText32W(HDC32,LPCWSTR,INT32,LPRECT32,UINT32);
7712 #define     DrawText WINELIB_NAME_AW(DrawText)
7713 BOOL16      WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16);
7714 BOOL32      WINAPI Ellipse32(HDC32,INT32,INT32,INT32,INT32);
7715 #define     Ellipse WINELIB_NAME(Ellipse)
7716 BOOL16      WINAPI EmptyClipboard16(void);
7717 BOOL32      WINAPI EmptyClipboard32(void);
7718 #define     EmptyClipboard WINELIB_NAME(EmptyClipboard)
7719 UINT16      WINAPI EnableMenuItem16(HMENU16,UINT16,UINT16);
7720 UINT32      WINAPI EnableMenuItem32(HMENU32,UINT32,UINT32);
7721 #define     EnableMenuItem WINELIB_NAME(EnableMenuItem)
7722 BOOL16      WINAPI EnableScrollBar16(HWND16,INT16,UINT16);
7723 BOOL32      WINAPI EnableScrollBar32(HWND32,INT32,UINT32);
7724 #define     EnableScrollBar WINELIB_NAME(EnableScrollBar)
7725 BOOL16      WINAPI EnableWindow16(HWND16,BOOL16);
7726 BOOL32      WINAPI EnableWindow32(HWND32,BOOL32);
7727 #define     EnableWindow WINELIB_NAME(EnableWindow)
7728 BOOL16      WINAPI EndDeferWindowPos16(HDWP16);
7729 BOOL32      WINAPI EndDeferWindowPos32(HDWP32);
7730 #define     EndDeferWindowPos WINELIB_NAME(EndDeferWindowPos)
7731 BOOL16      WINAPI EndDialog16(HWND16,INT16);
7732 BOOL32      WINAPI EndDialog32(HWND32,INT32);
7733 #define     EndDialog WINELIB_NAME(EndDialog)
7734 INT16       WINAPI EndDoc16(HDC16);
7735 INT32       WINAPI EndDoc32(HDC32);
7736 #define     EndDoc WINELIB_NAME(EndDoc)
7737 BOOL16      WINAPI EndPaint16(HWND16,const PAINTSTRUCT16*);
7738 BOOL32      WINAPI EndPaint32(HWND32,const PAINTSTRUCT32*);
7739 #define     EndPaint WINELIB_NAME(EndPaint)
7740 BOOL16      WINAPI EndPath16(HDC16);
7741 BOOL32      WINAPI EndPath32(HDC32);
7742 #define     EndPath WINELIB_NAME(EndPath)
7743 BOOL16      WINAPI EnumChildWindows16(HWND16,WNDENUMPROC16,LPARAM);
7744 BOOL32      WINAPI EnumChildWindows32(HWND32,WNDENUMPROC32,LPARAM);
7745 #define     EnumChildWindows WINELIB_NAME(EnumChildWindows)
7746 UINT16      WINAPI EnumClipboardFormats16(UINT16);
7747 UINT32      WINAPI EnumClipboardFormats32(UINT32);
7748 #define     EnumClipboardFormats WINELIB_NAME(EnumClipboardFormats)
7749 INT16       WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
7750 INT32       WINAPI EnumFontFamilies32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM);
7751 INT32       WINAPI EnumFontFamilies32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM);
7752 #define     EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
7753 INT16       WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROCEX16,LPARAM,DWORD);
7754 INT32       WINAPI EnumFontFamiliesEx32A(HDC32,LPLOGFONT32A,FONTENUMPROCEX32A,LPARAM,DWORD);
7755 INT32       WINAPI EnumFontFamiliesEx32W(HDC32,LPLOGFONT32W,FONTENUMPROCEX32W,LPARAM,DWORD);
7756 #define     EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
7757 INT16       WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
7758 INT32       WINAPI EnumFonts32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM);
7759 INT32       WINAPI EnumFonts32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM);
7760 #define     EnumFonts WINELIB_NAME_AW(EnumFonts)
7761 BOOL16      WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
7762 BOOL32      WINAPI EnumMetaFile32(HDC32,HMETAFILE32,MFENUMPROC32,LPARAM);
7763 #define     EnumMetaFile WINELIB_NAME(EnumMetaFile)
7764 INT16       WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
7765 INT32       WINAPI EnumObjects32(HDC32,INT32,GOBJENUMPROC32,LPARAM);
7766 #define     EnumObjects WINELIB_NAME(EnumObjects)
7767 INT16       WINAPI EnumProps16(HWND16,PROPENUMPROC16);
7768 INT32       WINAPI EnumProps32A(HWND32,PROPENUMPROC32A);
7769 INT32       WINAPI EnumProps32W(HWND32,PROPENUMPROC32W);
7770 #define     EnumProps WINELIB_NAME_AW(EnumProps)
7771 BOOL16      WINAPI EnumTaskWindows16(HTASK16,WNDENUMPROC16,LPARAM);
7772 #define     EnumTaskWindows32(handle,proc,lparam) \
7773             EnumThreadWindows(handle,proc,lparam)
7774 #define     EnumTaskWindows WINELIB_NAME(EnumTaskWindows)
7775 BOOL16      WINAPI EnumWindows16(WNDENUMPROC16,LPARAM);
7776 BOOL32      WINAPI EnumWindows32(WNDENUMPROC32,LPARAM);
7777 #define     EnumWindows WINELIB_NAME(EnumWindows)
7778 BOOL16      WINAPI EqualRect16(const RECT16*,const RECT16*);
7779 BOOL32      WINAPI EqualRect32(const RECT32*,const RECT32*);
7780 #define     EqualRect WINELIB_NAME(EqualRect)
7781 BOOL16      WINAPI EqualRgn16(HRGN16,HRGN16);
7782 BOOL32      WINAPI EqualRgn32(HRGN32,HRGN32);
7783 #define     EqualRgn WINELIB_NAME(EqualRgn)
7784 INT16       WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,SEGPTR);
7785 INT32       WINAPI Escape32(HDC32,INT32,INT32,LPCSTR,LPVOID);
7786 #define     Escape WINELIB_NAME(Escape)
7787 LONG        WINAPI EscapeCommFunction16(UINT16,UINT16);
7788 BOOL32      WINAPI EscapeCommFunction32(INT32,UINT32);
7789 #define     EscapeCommFunction WINELIB_NAME(EscapeCommFunction)
7790 INT16       WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
7791 INT32       WINAPI ExcludeClipRect32(HDC32,INT32,INT32,INT32,INT32);
7792 #define     ExcludeClipRect WINELIB_NAME(ExcludeClipRect)
7793 INT16       WINAPI ExcludeUpdateRgn16(HDC16,HWND16);
7794 INT32       WINAPI ExcludeUpdateRgn32(HDC32,HWND32);
7795 #define     ExcludeUpdateRgn WINELIB_NAME(ExcludeUpdateRgn)
7796 BOOL16      WINAPI ExitWindows16(DWORD,UINT16);
7797 #define     ExitWindows32(a,b) ExitWindowsEx(EWX_LOGOFF,0xffffffff)
7798 #define     ExitWindows WINELIB_NAME(ExitWindows)
7799 HPEN16      WINAPI ExtCreatePen16(DWORD,DWORD,const LOGBRUSH16*,DWORD,const DWORD*);
7800 HPEN32      WINAPI ExtCreatePen32(DWORD,DWORD,const LOGBRUSH32*,DWORD,const DWORD*);
7801 #define     ExtCreatePen WINELIB_NAME(ExtCreatePen)
7802 BOOL16      WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
7803 BOOL32      WINAPI ExtFloodFill32(HDC32,INT32,INT32,COLORREF,UINT32);
7804 #define     ExtFloodFill WINELIB_NAME(ExtFloodFill)
7805 HICON16     WINAPI ExtractIcon16(HINSTANCE16,LPCSTR,UINT16);
7806 HICON32     WINAPI ExtractIcon32A(HINSTANCE32,LPCSTR,UINT32);
7807 HICON32     WINAPI ExtractIcon32W(HINSTANCE32,LPCWSTR,UINT32);
7808 #define     ExtractIcon WINELIB_NAME_AW(ExtractIcon)
7809 HICON16     WINAPI ExtractAssociatedIcon16(HINSTANCE16,LPSTR,LPWORD);
7810 HICON32     WINAPI ExtractAssociatedIcon32A(HINSTANCE32,LPSTR,LPWORD);
7811 HICON32     WINAPI ExtractAssociatedIcon32W(HINSTANCE32,LPWSTR,LPWORD);
7812 #define     ExtractAssociatedIcon WINELIB_NAME_AW(ExtractAssociatedIcon)
7813 BOOL16      WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,
7814                                 LPCSTR,UINT16,const INT16*);
7815 BOOL32      WINAPI ExtTextOut32A(HDC32,INT32,INT32,UINT32,const RECT32*,
7816                                  LPCSTR,UINT32,const INT32*);
7817 BOOL32      WINAPI ExtTextOut32W(HDC32,INT32,INT32,UINT32,const RECT32*,
7818                                  LPCWSTR,UINT32,const INT32*);
7819 #define     ExtTextOut WINELIB_NAME_AW(ExtTextOut)
7820 void        WINAPI FatalAppExit16(UINT16,LPCSTR);
7821 void        WINAPI FatalAppExit32A(UINT32,LPCSTR);
7822 void        WINAPI FatalAppExit32W(UINT32,LPCWSTR);
7823 #define     FatalAppExit WINELIB_NAME_AW(FatalAppExit)
7824 BOOL16      WINAPI FillPath16(HDC16);
7825 BOOL32      WINAPI FillPath32(HDC32);
7826 #define     FillPath WINELIB_NAME(FillPath)
7827 INT16       WINAPI FillRect16(HDC16,const RECT16*,HBRUSH16);
7828 INT32       WINAPI FillRect32(HDC32,const RECT32*,HBRUSH32);
7829 #define     FillRect WINELIB_NAME(FillRect)
7830 BOOL16      WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
7831 BOOL32      WINAPI FillRgn32(HDC32,HRGN32,HBRUSH32);
7832 #define     FillRgn WINELIB_NAME(FillRgn)
7833 ATOM        WINAPI FindAtom16(SEGPTR);
7834 ATOM        WINAPI FindAtom32A(LPCSTR);
7835 ATOM        WINAPI FindAtom32W(LPCWSTR);
7836 #define     FindAtom WINELIB_NAME_AW(FindAtom)
7837 BOOL16      WINAPI FindClose16(HANDLE16);
7838 BOOL32      WINAPI FindClose32(HANDLE32);
7839 #define     FindClose WINELIB_NAME(FindClose)
7840 HINSTANCE16 WINAPI FindExecutable16(LPCSTR,LPCSTR,LPSTR);
7841 HINSTANCE32 WINAPI FindExecutable32A(LPCSTR,LPCSTR,LPSTR);
7842 HINSTANCE32 WINAPI FindExecutable32W(LPCWSTR,LPCWSTR,LPWSTR);
7843 #define     FindExecutable WINELIB_NAME_AW(FindExecutable)
7844 HANDLE16    WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATA32A);
7845 HANDLE32    WINAPI FindFirstFile32A(LPCSTR,LPWIN32_FIND_DATA32A);
7846 HANDLE32    WINAPI FindFirstFile32W(LPCWSTR,LPWIN32_FIND_DATA32W);
7847 #define     FindFirstFile WINELIB_NAME_AW(FindFirstFile)
7848 BOOL16      WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATA32A);
7849 BOOL32      WINAPI FindNextFile32A(HANDLE32,LPWIN32_FIND_DATA32A);
7850 BOOL32      WINAPI FindNextFile32W(HANDLE32,LPWIN32_FIND_DATA32W);
7851 #define     FindNextFile WINELIB_NAME_AW(FindNextFile)
7852 HRSRC16     WINAPI FindResource16(HINSTANCE16,SEGPTR,SEGPTR);
7853 HRSRC32     WINAPI FindResource32A(HMODULE32,LPCSTR,LPCSTR);
7854 HRSRC32     WINAPI FindResource32W(HMODULE32,LPCWSTR,LPCWSTR);
7855 #define     FindResource WINELIB_NAME_AW(FindResource)
7856 HWND16      WINAPI FindWindow16(SEGPTR,LPCSTR);
7857 HWND32      WINAPI FindWindow32A(LPCSTR,LPCSTR);
7858 HWND32      WINAPI FindWindow32W(LPCWSTR,LPCWSTR);
7859 #define     FindWindow WINELIB_NAME_AW(FindWindow)
7860 HWND16      WINAPI FindWindowEx16(HWND16,HWND16,SEGPTR,LPCSTR);
7861 HWND32      WINAPI FindWindowEx32A(HWND32,HWND32,LPCSTR,LPCSTR);
7862 HWND32      WINAPI FindWindowEx32W(HWND32,HWND32,LPCWSTR,LPCWSTR);
7863 #define     FindWindowEx WINELIB_NAME_AW(FindWindowEx)
7864 BOOL16      WINAPI FlashWindow16(HWND16,BOOL16);
7865 BOOL32      WINAPI FlashWindow32(HWND32,BOOL32);
7866 #define     FlashWindow WINELIB_NAME(FlashWindow)
7867 BOOL16      WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
7868 BOOL32      WINAPI FloodFill32(HDC32,INT32,INT32,COLORREF);
7869 #define     FloodFill WINELIB_NAME(FloodFill)
7870 INT16       WINAPI FrameRect16(HDC16,const RECT16*,HBRUSH16);
7871 INT32       WINAPI FrameRect32(HDC32,const RECT32*,HBRUSH32);
7872 #define     FrameRect WINELIB_NAME(FrameRect)
7873 BOOL16      WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
7874 BOOL32      WINAPI FrameRgn32(HDC32,HRGN32,HBRUSH32,INT32,INT32);
7875 #define     FrameRgn WINELIB_NAME(FrameRgn)
7876 VOID        WINAPI FreeLibrary16(HINSTANCE16);
7877 BOOL32      WINAPI FreeLibrary32(HMODULE32);
7878 #define     FreeLibrary WINELIB_NAME(FreeLibrary)
7879 BOOL16      WINAPI FreeModule16(HMODULE16);
7880 #define     FreeModule32(handle) FreeLibrary32(handle)
7881 #define     FreeModule WINELIB_NAME(FreeModule)
7882 void        WINAPI FreeProcInstance16(FARPROC16);
7883 #define     FreeProcInstance32(proc) /*nothing*/
7884 #define     FreeProcInstance WINELIB_NAME(FreeProcInstance)
7885 BOOL16      WINAPI FreeResource16(HGLOBAL16);
7886 BOOL32      WINAPI FreeResource32(HGLOBAL32);
7887 #define     FreeResource WINELIB_NAME(FreeResource)
7888 HWND16      WINAPI GetActiveWindow16(void);
7889 HWND32      WINAPI GetActiveWindow32(void);
7890 #define     GetActiveWindow WINELIB_NAME(GetActiveWindow)
7891 DWORD       WINAPI GetAppCompatFlags16(HTASK16);
7892 DWORD       WINAPI GetAppCompatFlags32(HTASK32);
7893 #define     GetAppCompatFlags WINELIB_NAME(GetAppCompatFlags)
7894 INT16       WINAPI GetArcDirection16(HDC16);
7895 INT32       WINAPI GetArcDirection32(HDC32);
7896 #define     GetArcDirection WINELIB_NAME(GetArcDirection)
7897 WORD        WINAPI GetAsyncKeyState16(INT16);
7898 WORD        WINAPI GetAsyncKeyState32(INT32);
7899 #define     GetAsyncKeyState WINELIB_NAME(GetAsyncKeyState)
7900 UINT16      WINAPI GetAtomName16(ATOM,LPSTR,INT16);
7901 UINT32      WINAPI GetAtomName32A(ATOM,LPSTR,INT32);
7902 UINT32      WINAPI GetAtomName32W(ATOM,LPWSTR,INT32);
7903 #define     GetAtomName WINELIB_NAME_AW(GetAtomName)
7904 BOOL16      WINAPI GetAspectRatioFilterEx16(HDC16,LPSIZE16);
7905 BOOL32      WINAPI GetAspectRatioFilterEx32(HDC32,LPSIZE32);
7906 #define     GetAspectRatioFilterEx WINELIB_NAME(GetAspectRatioFilterEx)
7907 LONG        WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID);
7908 LONG        WINAPI GetBitmapBits32(HBITMAP32,LONG,LPVOID);
7909 #define     GetBitmapBits WINELIB_NAME(GetBitmapBits)
7910 BOOL16      WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
7911 BOOL32      WINAPI GetBitmapDimensionEx32(HBITMAP32,LPSIZE32);
7912 #define     GetBitmapDimensionEx WINELIB_NAME(GetBitmapDimensionEx)
7913 BOOL16      WINAPI GetBrushOrgEx16(HDC16,LPPOINT16);
7914 BOOL32      WINAPI GetBrushOrgEx32(HDC32,LPPOINT32);
7915 #define     GetBrushOrgEx WINELIB_NAME(GetBrushOrgEx)
7916 COLORREF    WINAPI GetBkColor16(HDC16);
7917 COLORREF    WINAPI GetBkColor32(HDC32);
7918 #define     GetBkColor WINELIB_NAME(GetBkColor)
7919 INT16       WINAPI GetBkMode16(HDC16);
7920 INT32       WINAPI GetBkMode32(HDC32);
7921 #define     GetBkMode WINELIB_NAME(GetBkMode)
7922 UINT16      WINAPI GetBoundsRect16(HDC16,LPRECT16,UINT16);
7923 UINT32      WINAPI GetBoundsRect32(HDC32,LPRECT32,UINT32);
7924 #define     GetBoundsRect WINELIB_NAME(GetBoundsRect)
7925 HWND16      WINAPI GetCapture16(void);
7926 HWND32      WINAPI GetCapture32(void);
7927 #define     GetCapture WINELIB_NAME(GetCapture)
7928 UINT16      WINAPI GetCaretBlinkTime16(void);
7929 UINT32      WINAPI GetCaretBlinkTime32(void);
7930 #define     GetCaretBlinkTime WINELIB_NAME(GetCaretBlinkTime)
7931 VOID        WINAPI GetCaretPos16(LPPOINT16);
7932 BOOL32      WINAPI GetCaretPos32(LPPOINT32);
7933 #define     GetCaretPos WINELIB_NAME(GetCaretPos)
7934 BOOL16      WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16);
7935 BOOL32      WINAPI GetCharABCWidths32A(HDC32,UINT32,UINT32,LPABC32);
7936 BOOL32      WINAPI GetCharABCWidths32W(HDC32,UINT32,UINT32,LPABC32);
7937 #define     GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
7938 DWORD       WINAPI GetCharacterPlacement32A(HDC32,LPCSTR,INT32,INT32,GCP_RESULTS32A*,DWORD);
7939 DWORD       WINAPI GetCharacterPlacement32W(HDC32,LPCWSTR,INT32,INT32,GCP_RESULTS32W*,DWORD);
7940 #define     GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
7941 BOOL16      WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16);
7942 BOOL32      WINAPI GetCharWidth32A(HDC32,UINT32,UINT32,LPINT32);
7943 BOOL32      WINAPI GetCharWidth32W(HDC32,UINT32,UINT32,LPINT32);
7944 #define     GetCharWidth WINELIB_NAME_AW(GetCharWidth)
7945 BOOL16      WINAPI GetClassInfo16(HINSTANCE16,SEGPTR,WNDCLASS16 *);
7946 BOOL32      WINAPI GetClassInfo32A(HINSTANCE32,LPCSTR,WNDCLASS32A *);
7947 BOOL32      WINAPI GetClassInfo32W(HINSTANCE32,LPCWSTR,WNDCLASS32W *);
7948 #define     GetClassInfo WINELIB_NAME_AW(GetClassInfo)
7949 BOOL16      WINAPI GetClassInfoEx16(HINSTANCE16,SEGPTR,WNDCLASSEX16 *);
7950 BOOL32      WINAPI GetClassInfoEx32A(HINSTANCE32,LPCSTR,WNDCLASSEX32A *);
7951 BOOL32      WINAPI GetClassInfoEx32W(HINSTANCE32,LPCWSTR,WNDCLASSEX32W *);
7952 #define     GetClassInfoEx WINELIB_NAME_AW(GetClassInfoEx)
7953 LONG        WINAPI GetClassLong16(HWND16,INT16);
7954 LONG        WINAPI GetClassLong32A(HWND32,INT32);
7955 LONG        WINAPI GetClassLong32W(HWND32,INT32);
7956 #define     GetClassLong WINELIB_NAME_AW(GetClassLong)
7957 INT16       WINAPI GetClassName16(HWND16,LPSTR,INT16);
7958 INT32       WINAPI GetClassName32A(HWND32,LPSTR,INT32);
7959 INT32       WINAPI GetClassName32W(HWND32,LPWSTR,INT32);
7960 #define     GetClassName WINELIB_NAME_AW(GetClassName)
7961 WORD        WINAPI GetClassWord16(HWND16,INT16);
7962 WORD        WINAPI GetClassWord32(HWND32,INT32);
7963 #define     GetClassWord WINELIB_NAME(GetClassWord)
7964 void        WINAPI GetClientRect16(HWND16,LPRECT16);
7965 void        WINAPI GetClientRect32(HWND32,LPRECT32);
7966 #define     GetClientRect WINELIB_NAME(GetClientRect)
7967 HANDLE16    WINAPI GetClipboardData16(UINT16);
7968 HANDLE32    WINAPI GetClipboardData32(UINT32);
7969 #define     GetClipboardData WINELIB_NAME(GetClipboardData)
7970 INT16       WINAPI GetClipboardFormatName16(UINT16,LPSTR,INT16);
7971 INT32       WINAPI GetClipboardFormatName32A(UINT32,LPSTR,INT32);
7972 INT32       WINAPI GetClipboardFormatName32W(UINT32,LPWSTR,INT32);
7973 #define     GetClipboardFormatName WINELIB_NAME_AW(GetClipboardFormatName)
7974 HWND16      WINAPI GetClipboardOwner16(void);
7975 HWND32      WINAPI GetClipboardOwner32(void);
7976 #define     GetClipboardOwner WINELIB_NAME(GetClipboardOwner)
7977 HWND16      WINAPI GetClipboardViewer16(void);
7978 HWND32      WINAPI GetClipboardViewer32(void);
7979 #define     GetClipboardViewer WINELIB_NAME(GetClipboardViewer)
7980 INT16       WINAPI GetClipBox16(HDC16,LPRECT16);
7981 INT32       WINAPI GetClipBox32(HDC32,LPRECT32);
7982 #define     GetClipBox WINELIB_NAME(GetClipBox)
7983 void        WINAPI GetClipCursor16(LPRECT16);
7984 void        WINAPI GetClipCursor32(LPRECT32);
7985 #define     GetClipCursor WINELIB_NAME(GetClipCursor)
7986 HRGN16      WINAPI GetClipRgn16(HDC16);
7987 INT32       WINAPI GetClipRgn32(HDC32,HRGN32);
7988 #define     GetClipRgn WINELIB_NAME(GetClipRgn)
7989 INT16       WINAPI GetCommState16(INT16,LPDCB16);
7990 BOOL32      WINAPI GetCommState32(INT32,LPDCB32);
7991 #define     GetCommState WINELIB_NAME(GetCommState)
7992 UINT16      WINAPI GetCurrentDirectory16(UINT16,LPSTR);
7993 UINT32      WINAPI GetCurrentDirectory32A(UINT32,LPSTR);
7994 UINT32      WINAPI GetCurrentDirectory32W(UINT32,LPWSTR);
7995 #define     GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory)
7996 BOOL16      WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16);
7997 BOOL32      WINAPI GetCurrentPositionEx32(HDC32,LPPOINT32);
7998 #define     GetCurrentPositionEx WINELIB_NAME(GetCurrentPositionEx)
7999 DWORD       WINAPI GetCurrentTime16(void);
8000 #define     GetCurrentTime32() GetTickCount()
8001 #define     GetCurrentTime WINELIB_NAME(GetCurrentTime)
8002 HCURSOR16   WINAPI GetCursor16(void);
8003 HCURSOR32   WINAPI GetCursor32(void);
8004 #define     GetCursor WINELIB_NAME(GetCursor)
8005 void        WINAPI GetCursorPos16(LPPOINT16);
8006 void        WINAPI GetCursorPos32(LPPOINT32);
8007 #define     GetCursorPos WINELIB_NAME(GetCursorPos)
8008 HDC16       WINAPI GetDC16(HWND16);
8009 HDC32       WINAPI GetDC32(HWND32);
8010 #define     GetDC WINELIB_NAME(GetDC)
8011 HDC16       WINAPI GetDCEx16(HWND16,HRGN16,DWORD);
8012 HDC32       WINAPI GetDCEx32(HWND32,HRGN32,DWORD);
8013 #define     GetDCEx WINELIB_NAME(GetDCEx)
8014 HWND16      WINAPI GetDesktopWindow16(void);
8015 HWND32      WINAPI GetDesktopWindow32(void);
8016 #define     GetDesktopWindow WINELIB_NAME(GetDesktopWindow)
8017 INT16       WINAPI GetDeviceCaps16(HDC16,INT16);
8018 INT32       WINAPI GetDeviceCaps32(HDC32,INT32);
8019 #define     GetDeviceCaps WINELIB_NAME(GetDeviceCaps)
8020 UINT16      WINAPI GetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
8021 UINT32      WINAPI GetDIBColorTable32(HDC32,UINT32,UINT32,RGBQUAD*);
8022 #define     GetDIBColorTable WINELIB_NAME(GetDIBColorTable)
8023 INT16       WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPSTR,LPBITMAPINFO,UINT16);
8024 INT32       WINAPI GetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPSTR,LPBITMAPINFO,UINT32);
8025 #define     GetDIBits WINELIB_NAME(GetDIBits)
8026 BOOL16      WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
8027 BOOL32      WINAPI GetDiskFreeSpace32A(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
8028 BOOL32      WINAPI GetDiskFreeSpace32W(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
8029 #define     GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace)
8030 BOOL32      WINAPI GetDiskFreeSpaceEx32A(LPCSTR,LPULARGE_INTEGER,LPULARGE_INTEGER,LPULARGE_INTEGER);
8031 BOOL32      WINAPI GetDiskFreeSpaceEx32W(LPCWSTR,LPULARGE_INTEGER,LPULARGE_INTEGER,LPULARGE_INTEGER);
8032 #define     GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx)
8033 INT16       WINAPI GetDlgCtrlID16(HWND16);
8034 INT32       WINAPI GetDlgCtrlID32(HWND32);
8035 #define     GetDlgCtrlID WINELIB_NAME(GetDlgCtrlID)
8036 HWND16      WINAPI GetDlgItem16(HWND16,INT16);
8037 HWND32      WINAPI GetDlgItem32(HWND32,INT32);
8038 #define     GetDlgItem WINELIB_NAME(GetDlgItem)
8039 UINT16      WINAPI GetDlgItemInt16(HWND16,INT16,BOOL16*,BOOL16);
8040 UINT32      WINAPI GetDlgItemInt32(HWND32,INT32,BOOL32*,BOOL32);
8041 #define     GetDlgItemInt WINELIB_NAME(GetDlgItemInt)
8042 INT16       WINAPI GetDlgItemText16(HWND16,INT16,SEGPTR,UINT16);
8043 INT32       WINAPI GetDlgItemText32A(HWND32,INT32,LPSTR,UINT32);
8044 INT32       WINAPI GetDlgItemText32W(HWND32,INT32,LPWSTR,UINT32);
8045 #define     GetDlgItemText WINELIB_NAME_AW(GetDlgItemText)
8046 UINT16      WINAPI GetDoubleClickTime16(void);
8047 UINT32      WINAPI GetDoubleClickTime32(void);
8048 #define     GetDoubleClickTime WINELIB_NAME(GetDoubleClickTime)
8049 UINT16      WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */
8050 UINT32      WINAPI GetDriveType32A(LPCSTR);
8051 UINT32      WINAPI GetDriveType32W(LPCWSTR);
8052 #define     GetDriveType WINELIB_NAME_AW(GetDriveType)
8053 INT16       WINAPI GetExpandedName16(LPCSTR,LPSTR);
8054 INT32       WINAPI GetExpandedName32A(LPCSTR,LPSTR);
8055 INT32       WINAPI GetExpandedName32W(LPCWSTR,LPWSTR);
8056 #define     GetExpandedName WINELIB_NAME_AW(GetExpandedName)
8057 DWORD       WINAPI GetFileAttributes16(LPCSTR);
8058 DWORD       WINAPI GetFileAttributes32A(LPCSTR);
8059 DWORD       WINAPI GetFileAttributes32W(LPCWSTR);
8060 #define     GetFileAttributes WINELIB_NAME_AW(GetFileAttributes)
8061 DWORD       WINAPI GetFileVersionInfoSize16(LPCSTR,LPDWORD);
8062 DWORD       WINAPI GetFileVersionInfoSize32A(LPCSTR,LPDWORD);
8063 DWORD       WINAPI GetFileVersionInfoSize32W(LPCWSTR,LPDWORD);
8064 #define     GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
8065 DWORD       WINAPI GetFileVersionInfo16(LPCSTR,DWORD,DWORD,LPVOID);
8066 DWORD       WINAPI GetFileVersionInfo32A(LPCSTR,DWORD,DWORD,LPVOID);
8067 DWORD       WINAPI GetFileVersionInfo32W(LPCWSTR,DWORD,DWORD,LPVOID);
8068 #define     GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
8069 HWND16      WINAPI GetFocus16(void);
8070 HWND32      WINAPI GetFocus32(void);
8071 #define     GetFocus WINELIB_NAME(GetFocus)
8072 DWORD       WINAPI GetFontData32(HDC32,DWORD,DWORD,LPVOID,DWORD);
8073 #define     GetFontData WINELIB_NAME(GetFontData)
8074 DWORD       WINAPI GetFontLanguageInfo16(HDC16);
8075 DWORD       WINAPI GetFontLanguageInfo32(HDC32);
8076 #define     GetFontLanguageInfo WINELIB_NAME(GetFontLanguageInfo)
8077 HWND16      WINAPI GetForegroundWindow16(void);
8078 HWND32      WINAPI GetForegroundWindow32(void);
8079 #define     GetForegroundWindow WINELIB_NAME(GetForegroundWindow)
8080 DWORD       WINAPI GetFreeSpace16(UINT16);
8081 #define     GetFreeSpace32(w) (0x100000L)
8082 #define     GetFreeSpace WINELIB_NAME(GetFreeSpace)
8083 DWORD       WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
8084 DWORD       WINAPI GetGlyphOutline32A(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*);
8085 DWORD       WINAPI GetGlyphOutline32W(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*);
8086 #define     GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
8087 BOOL16      WINAPI GetInputState16(void);
8088 BOOL32      WINAPI GetInputState32(void);
8089 #define     GetInputState WINELIB_NAME(GetInputState)
8090 UINT16      WINAPI GetInternalWindowPos16(HWND16,LPRECT16,LPPOINT16);
8091 UINT32      WINAPI GetInternalWindowPos32(HWND32,LPRECT32,LPPOINT32);
8092 #define     GetInternalWindowPos WINELIB_NAME(GetInternalWindowPos)
8093 INT16       WINAPI GetKBCodePage16(void);
8094 UINT32      WINAPI GetKBCodePage32(void);
8095 #define     GetKBCodePage WINELIB_NAME(GetKBCodePage)
8096 INT16       WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
8097 DWORD       WINAPI GetKerningPairs32A(HDC32,DWORD,LPKERNINGPAIR32);
8098 DWORD       WINAPI GetKerningPairs32W(HDC32,DWORD,LPKERNINGPAIR32);
8099 #define     GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
8100 INT16       WINAPI GetKeyboardType16(INT16);
8101 INT32       WINAPI GetKeyboardType32(INT32);
8102 #define     GetKeyboardType WINELIB_NAME(GetKeyboardType)
8103 INT16       WINAPI GetKeyNameText16(LONG,LPSTR,INT16);
8104 INT32       WINAPI GetKeyNameText32A(LONG,LPSTR,INT32);
8105 INT32       WINAPI GetKeyNameText32W(LONG,LPWSTR,INT32);
8106 #define     GetKeyNameText WINELIB_NAME_AW(GetKeyNameText)
8107 INT16       WINAPI GetKeyboardLayoutName16(LPSTR);
8108 INT32       WINAPI GetKeyboardLayoutName32A(LPSTR);
8109 INT32       WINAPI GetKeyboardLayoutName32W(LPWSTR);
8110 #define     GetKeyboardLayoutName WINELIB_NAME_AW(GetKeyboardLayoutName)
8111 WORD        WINAPI GetKeyState16(INT16);
8112 WORD        WINAPI GetKeyState32(INT32);
8113 #define     GetKeyState WINELIB_NAME(GetKeyState)
8114 HWND16      WINAPI GetLastActivePopup16(HWND16);
8115 HWND32      WINAPI GetLastActivePopup32(HWND32);
8116 #define     GetLastActivePopup WINELIB_NAME(GetLastActivePopup)
8117 UINT32      WINAPI GetLogicalDriveStrings32A(UINT32,LPSTR);
8118 UINT32      WINAPI GetLogicalDriveStrings32W(UINT32,LPWSTR);
8119 #define     GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings)
8120 INT16       WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16);
8121 INT32       WINAPI GetLocaleInfo32A(LCID,LCTYPE,LPSTR,INT32);
8122 INT32       WINAPI GetLocaleInfo32W(LCID,LCTYPE,LPWSTR,INT32);
8123 #define     GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo)
8124 INT16       WINAPI GetMapMode16(HDC16);
8125 INT32       WINAPI GetMapMode32(HDC32);
8126 #define     GetMapMode WINELIB_NAME(GetMapMode)
8127 HMENU16     WINAPI GetMenu16(HWND16);
8128 HMENU32     WINAPI GetMenu32(HWND32);
8129 #define     GetMenu WINELIB_NAME(GetMenu)
8130 INT16       WINAPI GetMenuItemCount16(HMENU16);
8131 INT32       WINAPI GetMenuItemCount32(HMENU32);
8132 #define     GetMenuItemCount WINELIB_NAME(GetMenuItemCount)
8133 UINT16      WINAPI GetMenuItemID16(HMENU16,INT16);
8134 UINT32      WINAPI GetMenuItemID32(HMENU32,INT32);
8135 #define     GetMenuItemID WINELIB_NAME(GetMenuItemID)
8136 BOOL16      WINAPI GetMenuItemRect16(HWND16,HMENU16,UINT16,LPRECT16);
8137 BOOL32      WINAPI GetMenuItemRect32(HWND32,HMENU32,UINT32,LPRECT32);
8138 #define     GetMenuItemRect WINELIB_NAME(GetMenuItemRect)
8139 UINT16      WINAPI GetMenuState16(HMENU16,UINT16,UINT16);
8140 UINT32      WINAPI GetMenuState32(HMENU32,UINT32,UINT32);
8141 #define     GetMenuState WINELIB_NAME(GetMenuState)
8142 INT16       WINAPI GetMenuString16(HMENU16,UINT16,LPSTR,INT16,UINT16);
8143 INT32       WINAPI GetMenuString32A(HMENU32,UINT32,LPSTR,INT32,UINT32);
8144 INT32       WINAPI GetMenuString32W(HMENU32,UINT32,LPWSTR,INT32,UINT32);
8145 #define     GetMenuString WINELIB_NAME_AW(GetMenuString)
8146 BOOL16      WINAPI GetMessage16(SEGPTR,HWND16,UINT16,UINT16);
8147 BOOL32      WINAPI GetMessage32A(LPMSG32,HWND32,UINT32,UINT32);
8148 BOOL32      WINAPI GetMessage32W(LPMSG32,HWND32,UINT32,UINT32);
8149 #define     GetMessage WINELIB_NAME_AW(GetMessage)
8150 HMETAFILE16 WINAPI GetMetaFile16(LPCSTR);
8151 HMETAFILE32 WINAPI GetMetaFile32A(LPCSTR);
8152 HMETAFILE32 WINAPI GetMetaFile32W(LPCWSTR);
8153 #define     GetMetaFile WINELIB_NAME_AW(GetMetaFile)
8154 INT16       WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
8155 DWORD       WINAPI GetModuleFileName32A(HMODULE32,LPSTR,DWORD);
8156 DWORD       WINAPI GetModuleFileName32W(HMODULE32,LPWSTR,DWORD);
8157 #define     GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
8158 HMODULE16   WINAPI GetModuleHandle16(LPCSTR);
8159 HMODULE32   WINAPI GetModuleHandle32A(LPCSTR);
8160 HMODULE32   WINAPI GetModuleHandle32W(LPCWSTR);
8161 #define     GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
8162 DWORD       WINAPI GetNearestColor16(HDC16,DWORD);
8163 DWORD       WINAPI GetNearestColor32(HDC32,DWORD);
8164 #define     GetNearestColor WINELIB_NAME(GetNearestColor)
8165 UINT16      WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF);
8166 UINT32      WINAPI GetNearestPaletteIndex32(HPALETTE32,COLORREF);
8167 #define     GetNearestPaletteIndex WINELIB_NAME(GetNearestPaletteIndex)
8168 HWND16      WINAPI GetNextDlgGroupItem16(HWND16,HWND16,BOOL16);
8169 HWND32      WINAPI GetNextDlgGroupItem32(HWND32,HWND32,BOOL32);
8170 #define     GetNextDlgGroupItem WINELIB_NAME(GetNextDlgGroupItem)
8171 HWND16      WINAPI GetNextDlgTabItem16(HWND16,HWND16,BOOL16);
8172 HWND32      WINAPI GetNextDlgTabItem32(HWND32,HWND32,BOOL32);
8173 #define     GetNextDlgTabItem WINELIB_NAME(GetNextDlgTabItem)
8174 HWND16      WINAPI GetNextWindow16(HWND16,WORD);
8175 #define     GetNextWindow32 GetWindow32
8176 #define     GetNextWindow WINELIB_NAME(GetNextWindow)
8177 INT16       WINAPI GetObject16(HANDLE16,INT16,LPVOID);
8178 INT32       WINAPI GetObject32A(HANDLE32,INT32,LPVOID);
8179 INT32       WINAPI GetObject32W(HANDLE32,INT32,LPVOID);
8180 #define     GetObject WINELIB_NAME_AW(GetObject)
8181 HWND16      WINAPI GetOpenClipboardWindow16(void);
8182 HWND32      WINAPI GetOpenClipboardWindow32(void);
8183 #define     GetOpenClipboardWindow WINELIB_NAME(GetOpenClipboardWindow)
8184 UINT16      WINAPI GetOutlineTextMetrics16(HDC16,UINT16,LPOUTLINETEXTMETRIC16);
8185 UINT32      WINAPI GetOutlineTextMetrics32A(HDC32,UINT32,LPOUTLINETEXTMETRIC32A);
8186 UINT32      WINAPI GetOutlineTextMetrics32W(HDC32,UINT32,LPOUTLINETEXTMETRIC32W);
8187 #define     GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
8188 UINT16      WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
8189 UINT32      WINAPI GetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY);
8190 #define     GetPaletteEntries WINELIB_NAME(GetPaletteEntries)
8191 HWND16      WINAPI GetParent16(HWND16);
8192 HWND32      WINAPI GetParent32(HWND32);
8193 #define     GetParent WINELIB_NAME(GetParent)
8194 INT16       WINAPI GetPath16(HDC16,LPPOINT16,LPBYTE,INT16);
8195 INT32       WINAPI GetPath32(HDC32,LPPOINT32,LPBYTE,INT32);
8196 #define     GetPath WINELIB_NAME(GetPath)
8197 COLORREF    WINAPI GetPixel16(HDC16,INT16,INT16);
8198 COLORREF    WINAPI GetPixel32(HDC32,INT32,INT32);
8199 #define     GetPixel WINELIB_NAME(GetPixel)
8200 INT32       WINAPI GetPixelFormat(HDC32);
8201 INT16       WINAPI GetPolyFillMode16(HDC16);
8202 INT32       WINAPI GetPolyFillMode32(HDC32);
8203 #define     GetPolyFillMode WINELIB_NAME(GetPolyFillMode)
8204 INT16       WINAPI GetPriorityClipboardFormat16(UINT16*,INT16);
8205 INT32       WINAPI GetPriorityClipboardFormat32(UINT32*,INT32);
8206 #define     GetPriorityClipboardFormat WINELIB_NAME(GetPriorityClipboardFormat)
8207 UINT16      WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
8208 UINT32      WINAPI GetPrivateProfileInt32A(LPCSTR,LPCSTR,INT32,LPCSTR);
8209 UINT32      WINAPI GetPrivateProfileInt32W(LPCWSTR,LPCWSTR,INT32,LPCWSTR);
8210 #define     GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt)
8211 INT16       WINAPI GetPrivateProfileSection16(LPCSTR,LPSTR,UINT16,LPCSTR);
8212 INT32       WINAPI GetPrivateProfileSection32A(LPCSTR,LPSTR,DWORD,LPCSTR);
8213 INT32       WINAPI GetPrivateProfileSection32W(LPCWSTR,LPWSTR,DWORD,LPCWSTR);
8214 #define     GetPrivateProfileSection WINELIB_NAME_AW(GetPrivateProfileSection)
8215 WORD        WINAPI GetPrivateProfileSectionNames16(LPSTR,UINT16,LPCSTR);
8216 DWORD       WINAPI GetPrivateProfileSectionNames32A(LPSTR,DWORD,LPCSTR);
8217 DWORD       WINAPI GetPrivateProfileSectionNames32W(LPWSTR,DWORD,LPCWSTR);
8218 #define     GetPrivateProfileSectionNames WINELIB_NAME_AW(GetPrivateProfileSectionNames)
8219 INT16       WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16,LPCSTR);
8220 INT32       WINAPI GetPrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32,LPCSTR);
8221 INT32       WINAPI GetPrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32,LPCWSTR);
8222 #define     GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString)
8223 BOOL16      WINAPI GetPrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
8224 BOOL32      WINAPI GetPrivateProfileStruct32A(LPCSTR,LPCSTR,LPVOID,UINT32,LPCSTR);
8225 BOOL32      WINAPI GetPrivateProfileStruct32W(LPCWSTR,LPCWSTR,LPVOID,UINT32,LPCWSTR);
8226 #define     GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct)
8227 FARPROC16   WINAPI GetProcAddress16(HMODULE16,SEGPTR);
8228 FARPROC32   WINAPI GetProcAddress32(HMODULE32,LPCSTR);
8229 #define     GetProcAddress WINELIB_NAME(GetProcAddress)
8230 UINT16      WINAPI GetProfileInt16(LPCSTR,LPCSTR,INT16);
8231 UINT32      WINAPI GetProfileInt32A(LPCSTR,LPCSTR,INT32);
8232 UINT32      WINAPI GetProfileInt32W(LPCWSTR,LPCWSTR,INT32);
8233 #define     GetProfileInt WINELIB_NAME_AW(GetProfileInt)
8234 INT16       WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16);
8235 INT32       WINAPI GetProfileSection32A(LPCSTR,LPSTR,DWORD);
8236 INT32       WINAPI GetProfileSection32W(LPCWSTR,LPWSTR,DWORD);
8237 #define     GetProfileSection WINELIB_NAME_AW(GetProfileSection)
8238 INT32       WINAPI GetProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32);
8239 INT32       WINAPI GetProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32);
8240 #define     GetProfileString WINELIB_NAME_AW(GetProfileString)
8241 HANDLE16    WINAPI GetProp16(HWND16,LPCSTR);
8242 HANDLE32    WINAPI GetProp32A(HWND32,LPCSTR);
8243 HANDLE32    WINAPI GetProp32W(HWND32,LPCWSTR);
8244 #define     GetProp WINELIB_NAME_AW(GetProp)
8245 DWORD       WINAPI GetQueueStatus16(UINT16);
8246 DWORD       WINAPI GetQueueStatus32(UINT32);
8247 #define     GetQueueStatus WINELIB_NAME(GetQueueStatus)
8248 BOOL16      WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
8249 BOOL32      WINAPI GetRasterizerCaps32(LPRASTERIZER_STATUS,UINT32);
8250 #define     GetRasterizerCaps WINELIB_NAME(GetRasterizerCaps)
8251 INT16       WINAPI GetRelAbs16(HDC16);
8252 INT32       WINAPI GetRelAbs32(HDC32);
8253 #define     GetRelAbs WINELIB_NAME(GetRelAbs)
8254 INT16       WINAPI GetRgnBox16(HRGN16,LPRECT16);
8255 INT32       WINAPI GetRgnBox32(HRGN32,LPRECT32);
8256 #define     GetRgnBox WINELIB_NAME(GetRgnBox)
8257 INT16       WINAPI GetROP216(HDC16);
8258 INT32       WINAPI GetROP232(HDC32);
8259 #define     GetROP2 WINELIB_NAME(GetROP2)
8260 BOOL16      WINAPI GetScrollInfo16(HWND16,INT16,LPSCROLLINFO);
8261 BOOL32      WINAPI GetScrollInfo32(HWND32,INT32,LPSCROLLINFO);
8262 #define     GetScrollInfo WINELIB_NAME(GetScrollInfo)
8263 INT16       WINAPI GetScrollPos16(HWND16,INT16);
8264 INT32       WINAPI GetScrollPos32(HWND32,INT32);
8265 #define     GetScrollPos WINELIB_NAME(GetScrollPos)
8266 BOOL16      WINAPI GetScrollRange16(HWND16,INT16,LPINT16,LPINT16);
8267 BOOL32      WINAPI GetScrollRange32(HWND32,INT32,LPINT32,LPINT32);
8268 #define     GetScrollRange WINELIB_NAME(GetScrollRange)
8269 HWND16      WINAPI GetShellWindow16(void);
8270 HWND32      WINAPI GetShellWindow32(void);
8271 #define     GetShellWindow WINELIB_NAME(GetShellWindow)
8272 HGDIOBJ16   WINAPI GetStockObject16(INT16);
8273 HGDIOBJ32   WINAPI GetStockObject32(INT32);
8274 #define     GetStockObject WINELIB_NAME(GetStockObject)
8275 INT16       WINAPI GetStretchBltMode16(HDC16);
8276 INT32       WINAPI GetStretchBltMode32(HDC32);
8277 #define     GetStretchBltMode WINELIB_NAME(GetStretchBltMode)
8278 BOOL16      WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
8279 BOOL32      WINAPI GetStringType32A(LCID,DWORD,LPCSTR,INT32,LPWORD);
8280 BOOL32      WINAPI GetStringType32W(DWORD,LPCWSTR,INT32,LPWORD);
8281 #define     GetStringType WINELIB_NAME_AW(GetStringType)
8282 HMENU16     WINAPI GetSubMenu16(HMENU16,INT16);
8283 HMENU32     WINAPI GetSubMenu32(HMENU32,INT32);
8284 #define     GetSubMenu WINELIB_NAME(GetSubMenu)
8285 COLORREF    WINAPI GetSysColor16(INT16);
8286 COLORREF    WINAPI GetSysColor32(INT32);
8287 #define     GetSysColor WINELIB_NAME(GetSysColor)
8288 HBRUSH16    WINAPI GetSysColorBrush16(INT16);
8289 HBRUSH32    WINAPI GetSysColorBrush32(INT32);
8290 #define     GetSysColorBrush WINELIB_NAME(GetSysColorBrush)
8291 HWND16      WINAPI GetSysModalWindow16(void);
8292 #define     GetSysModalWindow32() ((HWND32)0)
8293 #define     GetSysModalWindow WINELIB_NAME(GetSysModalWindow)
8294 UINT16      WINAPI GetSystemDirectory16(LPSTR,UINT16);
8295 UINT32      WINAPI GetSystemDirectory32A(LPSTR,UINT32);
8296 UINT32      WINAPI GetSystemDirectory32W(LPWSTR,UINT32);
8297 #define     GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
8298 HMENU16     WINAPI GetSystemMenu16(HWND16,BOOL16);
8299 HMENU32     WINAPI GetSystemMenu32(HWND32,BOOL32);
8300 #define     GetSystemMenu WINELIB_NAME(GetSystemMenu)
8301 INT16       WINAPI GetSystemMetrics16(INT16);
8302 INT32       WINAPI GetSystemMetrics32(INT32);
8303 #define     GetSystemMetrics WINELIB_NAME(GetSystemMetrics)
8304 UINT16      WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY);
8305 UINT32      WINAPI GetSystemPaletteEntries32(HDC32,UINT32,UINT32,LPPALETTEENTRY);
8306 #define     GetSystemPaletteEntries WINELIB_NAME(GetSystemPaletteEntries)
8307 UINT16      WINAPI GetSystemPaletteUse16(HDC16);
8308 UINT32      WINAPI GetSystemPaletteUse32(HDC32);
8309 #define     GetSystemPaletteUse WINELIB_NAME(GetSystemPaletteUse)
8310 DWORD       WINAPI GetTabbedTextExtent16(HDC16,LPCSTR,INT16,INT16,const INT16*);
8311 DWORD       WINAPI GetTabbedTextExtent32A(HDC32,LPCSTR,INT32,INT32,const INT32*);
8312 DWORD       WINAPI GetTabbedTextExtent32W(HDC32,LPCWSTR,INT32,INT32,const INT32*);
8313 #define     GetTabbedTextExtent WINELIB_NAME_AW(GetTabbedTextExtent)
8314 UINT16      WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
8315 UINT32      WINAPI GetTempFileName32A(LPCSTR,LPCSTR,UINT32,LPSTR);
8316 UINT32      WINAPI GetTempFileName32W(LPCWSTR,LPCWSTR,UINT32,LPWSTR);
8317 #define     GetTempFileName WINELIB_NAME_AW(GetTempFileName)
8318 UINT32      WINAPI GetTempPath32A(UINT32,LPSTR);
8319 UINT32      WINAPI GetTempPath32W(UINT32,LPWSTR);
8320 #define     GetTempPath WINELIB_NAME_AW(GetTempPath)
8321 UINT16      WINAPI GetTextAlign16(HDC16);
8322 UINT32      WINAPI GetTextAlign32(HDC32);
8323 #define     GetTextAlign WINELIB_NAME(GetTextAlign)
8324 INT16       WINAPI GetTextCharacterExtra16(HDC16);
8325 INT32       WINAPI GetTextCharacterExtra32(HDC32);
8326 #define     GetTextCharacterExtra WINELIB_NAME(GetTextCharacterExtra)
8327 INT16       WINAPI GetTextCharset16(HDC16);
8328 INT32       WINAPI GetTextCharset32(HDC32);
8329 #define     GetTextCharset WINELIB_NAME(GetTextCharset)
8330 COLORREF    WINAPI GetTextColor16(HDC16);
8331 COLORREF    WINAPI GetTextColor32(HDC32);
8332 #define     GetTextColor WINELIB_NAME(GetTextColor)
8333 /* this one is different, because Win32 has *both* 
8334  * GetTextExtentPoint and GetTextExtentPoint32 !
8335  */
8336 BOOL16      WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16);
8337 BOOL32      WINAPI GetTextExtentPoint32A(HDC32,LPCSTR,INT32,LPSIZE32);
8338 BOOL32      WINAPI GetTextExtentPoint32W(HDC32,LPCWSTR,INT32,LPSIZE32);
8339 BOOL32      WINAPI GetTextExtentPoint32ABuggy(HDC32,LPCSTR,INT32,LPSIZE32);
8340 BOOL32      WINAPI GetTextExtentPoint32WBuggy(HDC32,LPCWSTR,INT32,LPSIZE32);
8341 #ifdef UNICODE
8342 #define     GetTextExtentPoint GetTextExtentPoint32WBuggy
8343 #define     GetTextExtentPoint32 GetTextExtentPoint32W
8344 #else
8345 #define     GetTextExtentPoint GetTextExtentPoint32ABuggy
8346 #define     GetTextExtentPoint32 GetTextExtentPoint32A
8347 #endif
8348 INT16       WINAPI GetTextFace16(HDC16,INT16,LPSTR);
8349 INT32       WINAPI GetTextFace32A(HDC32,INT32,LPSTR);
8350 INT32       WINAPI GetTextFace32W(HDC32,INT32,LPWSTR);
8351 #define     GetTextFace WINELIB_NAME_AW(GetTextFace)
8352 BOOL16      WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16);
8353 BOOL32      WINAPI GetTextMetrics32A(HDC32,LPTEXTMETRIC32A);
8354 BOOL32      WINAPI GetTextMetrics32W(HDC32,LPTEXTMETRIC32W);
8355 #define     GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
8356 LPINT16     WINAPI GetThresholdEvent16(void);
8357 LPDWORD     WINAPI GetThresholdEvent32(void);
8358 #define     GetThresholdEvent WINELIB_NAME(GetThresholdEvent)
8359 INT16       WINAPI GetThresholdStatus16(void);
8360 DWORD       WINAPI GetThresholdStatus32(void);
8361 #define     GetThresholdStatus WINELIB_NAME(GetThresholdStatus)
8362 HWND16      WINAPI GetTopWindow16(HWND16);
8363 HWND32      WINAPI GetTopWindow32(HWND32);
8364 #define     GetTopWindow WINELIB_NAME(GetTopWindow)
8365 BOOL16      WINAPI GetUpdateRect16(HWND16,LPRECT16,BOOL16);
8366 BOOL32      WINAPI GetUpdateRect32(HWND32,LPRECT32,BOOL32);
8367 #define     GetUpdateRect WINELIB_NAME(GetUpdateRect)
8368 INT16       WINAPI GetUpdateRgn16(HWND16,HRGN16,BOOL16);
8369 INT32       WINAPI GetUpdateRgn32(HWND32,HRGN32,BOOL32);
8370 #define     GetUpdateRgn WINELIB_NAME(GetUpdateRgn)
8371 LONG        WINAPI GetVersion16(void);
8372 LONG        WINAPI GetVersion32(void);
8373 #define     GetVersion WINELIB_NAME(GetVersion)
8374 BOOL16      WINAPI GetViewportExtEx16(HDC16,LPSIZE16);
8375 BOOL32      WINAPI GetViewportExtEx32(HDC32,LPSIZE32);
8376 #define     GetViewportExtEx WINELIB_NAME(GetViewportExtEx)
8377 BOOL16      WINAPI GetViewportOrgEx16(HDC16,LPPOINT16);
8378 BOOL32      WINAPI GetViewportOrgEx32(HDC32,LPPOINT32);
8379 #define     GetViewportOrgEx WINELIB_NAME(GetViewportOrgEx)
8380 BOOL32      WINAPI GetVolumeInformation32A(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
8381 BOOL32      WINAPI GetVolumeInformation32W(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
8382 #define     GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation)
8383 HWND16      WINAPI GetWindow16(HWND16,WORD);
8384 HWND32      WINAPI GetWindow32(HWND32,WORD);
8385 #define     GetWindow WINELIB_NAME(GetWindow)
8386 HDC16       WINAPI GetWindowDC16(HWND16);
8387 HDC32       WINAPI GetWindowDC32(HWND32);
8388 #define     GetWindowDC WINELIB_NAME(GetWindowDC)
8389 BOOL16      WINAPI GetWindowExtEx16(HDC16,LPSIZE16);
8390 BOOL32      WINAPI GetWindowExtEx32(HDC32,LPSIZE32);
8391 #define     GetWindowExtEx WINELIB_NAME(GetWindowExtEx)
8392 LONG        WINAPI GetWindowLong16(HWND16,INT16);
8393 LONG        WINAPI GetWindowLong32A(HWND32,INT32);
8394 LONG        WINAPI GetWindowLong32W(HWND32,INT32);
8395 #define     GetWindowLong WINELIB_NAME_AW(GetWindowLong)
8396 BOOL16      WINAPI GetWindowOrgEx16(HDC16,LPPOINT16);
8397 BOOL32      WINAPI GetWindowOrgEx32(HDC32,LPPOINT32);
8398 #define     GetWindowOrgEx WINELIB_NAME(GetWindowOrgEx)
8399 BOOL16      WINAPI GetWindowPlacement16(HWND16,LPWINDOWPLACEMENT16);
8400 BOOL32      WINAPI GetWindowPlacement32(HWND32,LPWINDOWPLACEMENT32);
8401 #define     GetWindowPlacement WINELIB_NAME(GetWindowPlacement)
8402 void        WINAPI GetWindowRect16(HWND16,LPRECT16);
8403 BOOL32      WINAPI GetWindowRect32(HWND32,LPRECT32);
8404 #define     GetWindowRect WINELIB_NAME(GetWindowRect)
8405 INT16       WINAPI GetWindowRgn16(HWND16,HRGN16);
8406 INT32       WINAPI GetWindowRgn32(HWND32,HRGN32);
8407 #define     GetWindowRgn WINELIB_NAME(GetWindowRgn)
8408 UINT16      WINAPI GetWindowsDirectory16(LPSTR,UINT16);
8409 UINT32      WINAPI GetWindowsDirectory32A(LPSTR,UINT32);
8410 UINT32      WINAPI GetWindowsDirectory32W(LPWSTR,UINT32);
8411 #define     GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory)
8412 HTASK16     WINAPI GetWindowTask16(HWND16);
8413 #define     GetWindowTask32(hwnd) ((HTASK32)GetWindowThreadProcessId(hwnd,NULL))
8414 #define     GetWindowTask WINELIB_NAME(GetWindowTask)
8415 INT16       WINAPI GetWindowText16(HWND16,SEGPTR,INT16);
8416 INT32       WINAPI GetWindowText32A(HWND32,LPSTR,INT32);
8417 INT32       WINAPI GetWindowText32W(HWND32,LPWSTR,INT32);
8418 #define     GetWindowText WINELIB_NAME_AW(GetWindowText)
8419 INT16       WINAPI GetWindowTextLength16(HWND16);
8420 INT32       WINAPI GetWindowTextLength32A(HWND32);
8421 INT32       WINAPI GetWindowTextLength32W(HWND32);
8422 #define     GetWindowTextLength WINELIB_NAME_AW(GetWindowTextLength)
8423 WORD        WINAPI GetWindowWord16(HWND16,INT16);
8424 WORD        WINAPI GetWindowWord32(HWND32,INT32);
8425 #define     GetWindowWord WINELIB_NAME(GetWindowWord)
8426 ATOM        WINAPI GlobalAddAtom16(SEGPTR);
8427 ATOM        WINAPI GlobalAddAtom32A(LPCSTR);
8428 ATOM        WINAPI GlobalAddAtom32W(LPCWSTR);
8429 #define     GlobalAddAtom WINELIB_NAME_AW(GlobalAddAtom)
8430 HGLOBAL16   WINAPI GlobalAlloc16(UINT16,DWORD);
8431 HGLOBAL32   WINAPI GlobalAlloc32(UINT32,DWORD);
8432 #define     GlobalAlloc WINELIB_NAME(GlobalAlloc)
8433 DWORD       WINAPI GlobalCompact16(DWORD);
8434 DWORD       WINAPI GlobalCompact32(DWORD);
8435 #define     GlobalCompact WINELIB_NAME(GlobalCompact)
8436 UINT16      WINAPI GlobalFlags16(HGLOBAL16);
8437 UINT32      WINAPI GlobalFlags32(HGLOBAL32);
8438 #define     GlobalFlags WINELIB_NAME(GlobalFlags)
8439 ATOM        WINAPI GlobalFindAtom16(SEGPTR);
8440 ATOM        WINAPI GlobalFindAtom32A(LPCSTR);
8441 ATOM        WINAPI GlobalFindAtom32W(LPCWSTR);
8442 #define     GlobalFindAtom WINELIB_NAME_AW(GlobalFindAtom)
8443 HGLOBAL16   WINAPI GlobalFree16(HGLOBAL16);
8444 HGLOBAL32   WINAPI GlobalFree32(HGLOBAL32);
8445 #define     GlobalFree WINELIB_NAME(GlobalFree)
8446 UINT16      WINAPI GlobalGetAtomName16(ATOM,LPSTR,INT16);
8447 UINT32      WINAPI GlobalGetAtomName32A(ATOM,LPSTR,INT32);
8448 UINT32      WINAPI GlobalGetAtomName32W(ATOM,LPWSTR,INT32);
8449 #define     GlobalGetAtomName WINELIB_NAME_AW(GlobalGetAtomName)
8450 DWORD       WINAPI GlobalHandle16(WORD);
8451 HGLOBAL32   WINAPI GlobalHandle32(LPCVOID);
8452 #define     GlobalHandle WINELIB_NAME(GlobalHandle)
8453 WORD        WINAPI GlobalFix16(HGLOBAL16);
8454 VOID        WINAPI GlobalFix32(HGLOBAL32);
8455 #define     GlobalFix WINELIB_NAME(GlobalFix)
8456 LPVOID      WINAPI GlobalLock16(HGLOBAL16);
8457 LPVOID      WINAPI GlobalLock32(HGLOBAL32);
8458 #define     GlobalLock WINELIB_NAME(GlobalLock)
8459 HGLOBAL16   WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
8460 HGLOBAL32   WINAPI GlobalReAlloc32(HGLOBAL32,DWORD,UINT32);
8461 #define     GlobalReAlloc WINELIB_NAME(GlobalReAlloc)
8462 DWORD       WINAPI GlobalSize16(HGLOBAL16);
8463 DWORD       WINAPI GlobalSize32(HGLOBAL32);
8464 #define     GlobalSize WINELIB_NAME(GlobalSize)
8465 VOID        WINAPI GlobalUnfix16(HGLOBAL16);
8466 VOID        WINAPI GlobalUnfix32(HGLOBAL32);
8467 #define     GlobalUnfix WINELIB_NAME(GlobalUnfix)
8468 BOOL16      WINAPI GlobalUnlock16(HGLOBAL16);
8469 BOOL32      WINAPI GlobalUnlock32(HGLOBAL32);
8470 #define     GlobalUnlock WINELIB_NAME(GlobalUnlock)
8471 BOOL16      WINAPI GlobalUnWire16(HGLOBAL16);
8472 BOOL32      WINAPI GlobalUnWire32(HGLOBAL32);
8473 #define     GlobalUnWire WINELIB_NAME(GlobalUnWire)
8474 SEGPTR      WINAPI GlobalWire16(HGLOBAL16);
8475 LPVOID      WINAPI GlobalWire32(HGLOBAL32);
8476 #define     GlobalWire WINELIB_NAME(GlobalWire)
8477 BOOL16      WINAPI GrayString16(HDC16,HBRUSH16,GRAYSTRINGPROC16,LPARAM,
8478                                 INT16,INT16,INT16,INT16,INT16);
8479 BOOL32      WINAPI GrayString32A(HDC32,HBRUSH32,GRAYSTRINGPROC32,LPARAM,
8480                                  INT32,INT32,INT32,INT32,INT32);
8481 BOOL32      WINAPI GrayString32W(HDC32,HBRUSH32,GRAYSTRINGPROC32,LPARAM,
8482                                  INT32,INT32,INT32,INT32,INT32);
8483 #define     GrayString WINELIB_NAME_AW(GrayString)
8484 VOID        WINAPI HideCaret16(HWND16);
8485 BOOL32      WINAPI HideCaret32(HWND32);
8486 #define     HideCaret WINELIB_NAME(HideCaret)
8487 BOOL16      WINAPI HiliteMenuItem16(HWND16,HMENU16,UINT16,UINT16);
8488 BOOL32      WINAPI HiliteMenuItem32(HWND32,HMENU32,UINT32,UINT32);
8489 #define     HiliteMenuItem WINELIB_NAME(HiliteMenuItem)
8490 void        WINAPI InflateRect16(LPRECT16,INT16,INT16);
8491 void        WINAPI InflateRect32(LPRECT32,INT32,INT32);
8492 #define     InflateRect WINELIB_NAME(InflateRect)
8493 WORD        WINAPI InitAtomTable16(WORD);
8494 BOOL32      WINAPI InitAtomTable32(DWORD);
8495 #define     InitAtomTable WINELIB_NAME(InitAtomTable)
8496 BOOL16      WINAPI InSendMessage16(void);
8497 BOOL32      WINAPI InSendMessage32(void);
8498 #define     InSendMessage WINELIB_NAME(InSendMessage)
8499 BOOL16      WINAPI InsertMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR);
8500 BOOL32      WINAPI InsertMenu32A(HMENU32,UINT32,UINT32,UINT32,LPCSTR);
8501 BOOL32      WINAPI InsertMenu32W(HMENU32,UINT32,UINT32,UINT32,LPCWSTR);
8502 #define     InsertMenu WINELIB_NAME_AW(InsertMenu)
8503 BOOL16      WINAPI InsertMenuItem16(HMENU16,UINT16,BOOL16,const MENUITEMINFO16*);
8504 BOOL32      WINAPI InsertMenuItem32A(HMENU32,UINT32,BOOL32,const MENUITEMINFO32A*);
8505 BOOL32      WINAPI InsertMenuItem32W(HMENU32,UINT32,BOOL32,const MENUITEMINFO32W*);
8506 #define     InsertMenuItem WINELIB_NAME_AW(InsertMenuItem)
8507 INT16       WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
8508 INT32       WINAPI IntersectClipRect32(HDC32,INT32,INT32,INT32,INT32);
8509 #define     IntersectClipRect WINELIB_NAME(IntersectClipRect)
8510 BOOL16      WINAPI IntersectRect16(LPRECT16,const RECT16*,const RECT16*);
8511 BOOL32      WINAPI IntersectRect32(LPRECT32,const RECT32*,const RECT32*);
8512 #define     IntersectRect WINELIB_NAME(IntersectRect)
8513 void        WINAPI InvalidateRect16(HWND16,const RECT16*,BOOL16);
8514 void        WINAPI InvalidateRect32(HWND32,const RECT32*,BOOL32);
8515 #define     InvalidateRect WINELIB_NAME(InvalidateRect)
8516 void        WINAPI InvalidateRgn16(HWND16,HRGN16,BOOL16);
8517 void        WINAPI InvalidateRgn32(HWND32,HRGN32,BOOL32);
8518 #define     InvalidateRgn WINELIB_NAME(InvalidateRgn)
8519 void        WINAPI InvertRect16(HDC16,const RECT16*);
8520 void        WINAPI InvertRect32(HDC32,const RECT32*);
8521 #define     InvertRect WINELIB_NAME(InvertRect)
8522 BOOL16      WINAPI InvertRgn16(HDC16,HRGN16);
8523 BOOL32      WINAPI InvertRgn32(HDC32,HRGN32);
8524 #define     InvertRgn WINELIB_NAME(InvertRgn)
8525 BOOL16      WINAPI IsBadCodePtr16(SEGPTR);
8526 BOOL32      WINAPI IsBadCodePtr32(FARPROC32);
8527 #define     IsBadCodePtr WINELIB_NAME(IsBadCodePtr)
8528 BOOL16      WINAPI IsBadHugeReadPtr16(SEGPTR,DWORD);
8529 BOOL32      WINAPI IsBadHugeReadPtr32(LPCVOID,UINT32);
8530 #define     IsBadHugeReadPtr WINELIB_NAME(IsBadHugeReadPtr)
8531 BOOL16      WINAPI IsBadHugeWritePtr16(SEGPTR,DWORD);
8532 BOOL32      WINAPI IsBadHugeWritePtr32(LPVOID,UINT32);
8533 #define     IsBadHugeWritePtr WINELIB_NAME(IsBadHugeWritePtr)
8534 BOOL16      WINAPI IsBadReadPtr16(SEGPTR,UINT16);
8535 BOOL32      WINAPI IsBadReadPtr32(LPCVOID,UINT32);
8536 #define     IsBadReadPtr WINELIB_NAME(IsBadReadPtr)
8537 BOOL16      WINAPI IsBadStringPtr16(SEGPTR,UINT16);
8538 BOOL32      WINAPI IsBadStringPtr32A(LPCSTR,UINT32);
8539 BOOL32      WINAPI IsBadStringPtr32W(LPCWSTR,UINT32);
8540 #define     IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr)
8541 BOOL16      WINAPI IsBadWritePtr16(SEGPTR,UINT16);
8542 BOOL32      WINAPI IsBadWritePtr32(LPVOID,UINT32);
8543 #define     IsBadWritePtr WINELIB_NAME(IsBadWritePtr)
8544 BOOL16      WINAPI IsCharAlpha16(CHAR);
8545 BOOL32      WINAPI IsCharAlpha32A(CHAR);
8546 BOOL32      WINAPI IsCharAlpha32W(WCHAR);
8547 #define     IsCharAlpha WINELIB_NAME_AW(IsCharAlpha)
8548 BOOL16      WINAPI IsCharAlphaNumeric16(CHAR);
8549 BOOL32      WINAPI IsCharAlphaNumeric32A(CHAR);
8550 BOOL32      WINAPI IsCharAlphaNumeric32W(WCHAR);
8551 #define     IsCharAlphaNumeric WINELIB_NAME_AW(IsCharAlphaNumeric)
8552 BOOL16      WINAPI IsCharLower16(CHAR);
8553 BOOL32      WINAPI IsCharLower32A(CHAR);
8554 BOOL32      WINAPI IsCharLower32W(WCHAR);
8555 #define     IsCharLower WINELIB_NAME_AW(IsCharLower)
8556 BOOL16      WINAPI IsCharUpper16(CHAR);
8557 BOOL32      WINAPI IsCharUpper32A(CHAR);
8558 BOOL32      WINAPI IsCharUpper32W(WCHAR);
8559 #define     IsCharUpper WINELIB_NAME_AW(IsCharUpper)
8560 BOOL16      WINAPI IsChild16(HWND16,HWND16);
8561 BOOL32      WINAPI IsChild32(HWND32,HWND32);
8562 #define     IsChild WINELIB_NAME(IsChild)
8563 BOOL16      WINAPI IsClipboardFormatAvailable16(UINT16);
8564 BOOL32      WINAPI IsClipboardFormatAvailable32(UINT32);
8565 #define     IsClipboardFormatAvailable WINELIB_NAME(IsClipboardFormatAvailable)
8566 BOOL16      WINAPI IsDBCSLeadByte16(BYTE);
8567 BOOL32      WINAPI IsDBCSLeadByte32(BYTE);
8568 #define     IsDBCSLeadByte WINELIB_NAME(IsDBCSLeadByte)
8569 BOOL16      WINAPI IsDialogMessage16(HWND16,LPMSG16);
8570 BOOL32      WINAPI IsDialogMessage32A(HWND32,LPMSG32);
8571 BOOL32      WINAPI IsDialogMessage32W(HWND32,LPMSG32);
8572 #define     IsDialogMessage WINELIB_NAME(IsDialogMessage)
8573 UINT16      WINAPI IsDlgButtonChecked16(HWND16,UINT16);
8574 UINT32      WINAPI IsDlgButtonChecked32(HWND32,UINT32);
8575 #define     IsDlgButtonChecked WINELIB_NAME(IsDlgButtonChecked)
8576 BOOL16      WINAPI IsIconic16(HWND16);
8577 BOOL32      WINAPI IsIconic32(HWND32);
8578 #define     IsIconic WINELIB_NAME(IsIconic)
8579 BOOL16      WINAPI IsMenu16(HMENU16);
8580 BOOL32      WINAPI IsMenu32(HMENU32);
8581 #define     IsMenu WINELIB_NAME(IsMenu)
8582 BOOL16      WINAPI IsRectEmpty16(const RECT16*);
8583 BOOL32      WINAPI IsRectEmpty32(const RECT32*);
8584 #define     IsRectEmpty WINELIB_NAME(IsRectEmpty)
8585 BOOL16      WINAPI IsWindow16(HWND16);
8586 BOOL32      WINAPI IsWindow32(HWND32);
8587 #define     IsWindow WINELIB_NAME(IsWindow)
8588 BOOL16      WINAPI IsWindowEnabled16(HWND16);
8589 BOOL32      WINAPI IsWindowEnabled32(HWND32);
8590 #define     IsWindowEnabled WINELIB_NAME(IsWindowEnabled)
8591 BOOL16      WINAPI IsWindowVisible16(HWND16);
8592 BOOL32      WINAPI IsWindowVisible32(HWND32);
8593 #define     IsWindowVisible WINELIB_NAME(IsWindowVisible)
8594 BOOL16      WINAPI IsZoomed16(HWND16);
8595 BOOL32      WINAPI IsZoomed32(HWND32);
8596 #define     IsZoomed WINELIB_NAME(IsZoomed)
8597 BOOL16      WINAPI KillSystemTimer16(HWND16,UINT16);
8598 BOOL32      WINAPI KillSystemTimer32(HWND32,UINT32);
8599 #define     KillSystemTimer WINELIB_NAME(KillSystemTimer)
8600 BOOL16      WINAPI KillTimer16(HWND16,UINT16);
8601 BOOL32      WINAPI KillTimer32(HWND32,UINT32);
8602 #define     KillTimer WINELIB_NAME(KillTimer)
8603 HFILE16     WINAPI LZOpenFile16(LPCSTR,LPOFSTRUCT,UINT16);
8604 HFILE32     WINAPI LZOpenFile32A(LPCSTR,LPOFSTRUCT,UINT32);
8605 HFILE32     WINAPI LZOpenFile32W(LPCWSTR,LPOFSTRUCT,UINT32);
8606 #define     LZOpenFile WINELIB_NAME_AW(LZOpenFile)
8607 INT16       WINAPI LZRead16(HFILE16,LPVOID,UINT16); 
8608 INT32       WINAPI LZRead32(HFILE32,LPVOID,UINT32); 
8609 #define     LZRead WINELIB_NAME(LZRead)
8610 INT16       WINAPI LZStart16(void);
8611 INT32       WINAPI LZStart32(void);
8612 #define     LZStart WINELIB_NAME(LZStart)
8613 VOID        WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
8614 BOOL32      WINAPI LineDDA32(INT32,INT32,INT32,INT32,LINEDDAPROC32,LPARAM);
8615 #define     LineDDA WINELIB_NAME(LineDDA)
8616 BOOL16      WINAPI LineTo16(HDC16,INT16,INT16);
8617 BOOL32      WINAPI LineTo32(HDC32,INT32,INT32);
8618 #define     LineTo WINELIB_NAME(LineTo)
8619 HACCEL16    WINAPI LoadAccelerators16(HINSTANCE16,SEGPTR);
8620 HACCEL32    WINAPI LoadAccelerators32A(HINSTANCE32,LPCSTR);
8621 HACCEL32    WINAPI LoadAccelerators32W(HINSTANCE32,LPCWSTR);
8622 #define     LoadAccelerators WINELIB_NAME_AW(LoadAccelerators)
8623 HBITMAP16   WINAPI LoadBitmap16(HANDLE16,SEGPTR);
8624 HBITMAP32   WINAPI LoadBitmap32A(HANDLE32,LPCSTR);
8625 HBITMAP32   WINAPI LoadBitmap32W(HANDLE32,LPCWSTR);
8626 #define     LoadBitmap WINELIB_NAME(LoadBitmap)
8627 HCURSOR16   WINAPI LoadCursor16(HINSTANCE16,SEGPTR);
8628 HCURSOR32   WINAPI LoadCursor32A(HINSTANCE32,LPCSTR);
8629 HCURSOR32   WINAPI LoadCursor32W(HINSTANCE32,LPCWSTR);
8630 #define     LoadCursor WINELIB_NAME_AW(LoadCursor)
8631 HCURSOR32   WINAPI LoadCursorFromFile32A(LPCSTR);
8632 HCURSOR32   WINAPI LoadCursorFromFile32W(LPCWSTR);
8633 #define     LoadCursorFromFile WINELIB_NAME_AW(LoadCursorFromFile)
8634 HICON16     WINAPI LoadIcon16(HINSTANCE16,SEGPTR);
8635 HICON32     WINAPI LoadIcon32A(HINSTANCE32,LPCSTR);
8636 HICON32     WINAPI LoadIcon32W(HINSTANCE32,LPCWSTR);
8637 #define     LoadIcon WINELIB_NAME_AW(LoadIcon)
8638 HANDLE16    WINAPI LoadImage16(HINSTANCE16,LPCSTR,UINT16,INT16,INT16,UINT16);
8639 HANDLE32    WINAPI LoadImage32A(HINSTANCE32,LPCSTR,UINT32,INT32,INT32,UINT32);
8640 HANDLE32    WINAPI LoadImage32W(HINSTANCE32,LPCWSTR,UINT32,INT32,INT32,UINT32);
8641 #define     LoadImage WINELIB_NAME_AW(LoadImage)
8642 HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
8643 HMODULE32   WINAPI LoadLibrary32A(LPCSTR);
8644 HMODULE32   WINAPI LoadLibrary32W(LPCWSTR);
8645 #define     LoadLibrary WINELIB_NAME_AW(LoadLibrary)
8646 HMODULE32   WINAPI LoadLibraryEx32A(LPCSTR,HFILE32,DWORD);
8647 HMODULE32   WINAPI LoadLibraryEx32W(LPCWSTR,HFILE32,DWORD);
8648 #define     LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx)
8649 HMENU16     WINAPI LoadMenu16(HINSTANCE16,SEGPTR);
8650 HMENU32     WINAPI LoadMenu32A(HINSTANCE32,LPCSTR);
8651 HMENU32     WINAPI LoadMenu32W(HINSTANCE32,LPCWSTR);
8652 #define     LoadMenu WINELIB_NAME_AW(LoadMenu)
8653 HMENU16     WINAPI LoadMenuIndirect16(LPCVOID);
8654 HMENU32     WINAPI LoadMenuIndirect32A(LPCVOID);
8655 HMENU32     WINAPI LoadMenuIndirect32W(LPCVOID);
8656 #define     LoadMenuIndirect WINELIB_NAME_AW(LoadMenuIndirect)
8657 HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
8658 HINSTANCE32 WINAPI LoadModule32(LPCSTR,LPVOID);
8659 #define     LoadModule WINELIB_NAME(LoadModule)
8660 HGLOBAL16   WINAPI LoadResource16(HINSTANCE16,HRSRC16);
8661 HGLOBAL32   WINAPI LoadResource32(HMODULE32,HRSRC32);
8662 #define     LoadResource WINELIB_NAME(LoadResource)
8663 INT16       WINAPI LoadString16(HINSTANCE16,UINT16,LPSTR,INT16);
8664 INT32       WINAPI LoadString32A(HINSTANCE32,UINT32,LPSTR,INT32);
8665 INT32       WINAPI LoadString32W(HINSTANCE32,UINT32,LPWSTR,INT32);
8666 #define     LoadString WINELIB_NAME_AW(LoadString)
8667 HLOCAL16    WINAPI LocalAlloc16(UINT16,WORD);
8668 HLOCAL32    WINAPI LocalAlloc32(UINT32,DWORD);
8669 #define     LocalAlloc WINELIB_NAME(LocalAlloc)
8670 UINT16      WINAPI LocalCompact16(UINT16);
8671 UINT32      WINAPI LocalCompact32(UINT32);
8672 #define     LocalCompact WINELIB_NAME(LocalCompact)
8673 UINT16      WINAPI LocalFlags16(HLOCAL16);
8674 UINT32      WINAPI LocalFlags32(HLOCAL32);
8675 #define     LocalFlags WINELIB_NAME(LocalFlags)
8676 HLOCAL16    WINAPI LocalFree16(HLOCAL16);
8677 HLOCAL32    WINAPI LocalFree32(HLOCAL32);
8678 #define     LocalFree WINELIB_NAME(LocalFree)
8679 HLOCAL16    WINAPI LocalHandle16(WORD);
8680 HLOCAL32    WINAPI LocalHandle32(LPCVOID);
8681 #define     LocalHandle WINELIB_NAME(LocalHandle)
8682 SEGPTR      WINAPI LocalLock16(HLOCAL16);
8683 LPVOID      WINAPI LocalLock32(HLOCAL32);
8684 #define     LocalLock WINELIB_NAME(LocalLock)
8685 HLOCAL16    WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16);
8686 HLOCAL32    WINAPI LocalReAlloc32(HLOCAL32,DWORD,UINT32);
8687 #define     LocalReAlloc WINELIB_NAME(LocalReAlloc)
8688 UINT16      WINAPI LocalShrink16(HGLOBAL16,UINT16);
8689 UINT32      WINAPI LocalShrink32(HGLOBAL32,UINT32);
8690 #define     LocalShrink WINELIB_NAME(LocalShrink)
8691 UINT16      WINAPI LocalSize16(HLOCAL16);
8692 UINT32      WINAPI LocalSize32(HLOCAL32);
8693 #define     LocalSize WINELIB_NAME(LocalSize)
8694 BOOL16      WINAPI LocalUnlock16(HLOCAL16);
8695 BOOL32      WINAPI LocalUnlock32(HLOCAL32);
8696 #define     LocalUnlock WINELIB_NAME(LocalUnlock)
8697 LPVOID      WINAPI LockResource16(HGLOBAL16);
8698 LPVOID      WINAPI LockResource32(HGLOBAL32);
8699 #define     LockResource WINELIB_NAME(LockResource)
8700 HGLOBAL16   WINAPI LockSegment16(HGLOBAL16);
8701 #define     LockSegment32(handle) GlobalFix32((HANDLE32)(handle))
8702 #define     LockSegment WINELIB_NAME(LockSegment)
8703 BOOL16      WINAPI LockWindowUpdate16(HWND16);
8704 BOOL32      WINAPI LockWindowUpdate32(HWND32);
8705 #define     LockWindowUpdate WINELIB_NAME(LockWindowUpdate)
8706 INT16       WINAPI LookupIconIdFromDirectory16(LPBYTE,BOOL16);
8707 INT32       WINAPI LookupIconIdFromDirectory32(LPBYTE,BOOL32);
8708 #define     LookupIconIdFromDirectory WINELIB_NAME(LookupIconIdFromDirectory)
8709 INT16       WINAPI LookupIconIdFromDirectoryEx16(LPBYTE,BOOL16,INT16,INT16,UINT16);
8710 INT32       WINAPI LookupIconIdFromDirectoryEx32(LPBYTE,BOOL32,INT32,INT32,UINT32);
8711 #define     LookupIconIdFromDirectoryEx WINELIB_NAME(LookupIconIdFromDirectoryEx)
8712 BOOL16      WINAPI LPtoDP16(HDC16,LPPOINT16,INT16);
8713 BOOL32      WINAPI LPtoDP32(HDC32,LPPOINT32,INT32);
8714 #define     LPtoDP WINELIB_NAME(LPtoDP)
8715 void        WINAPI LZClose16(HFILE16);
8716 void        WINAPI LZClose32(HFILE32);
8717 #define     LZClose WINELIB_NAME(LZClose)
8718 LONG        WINAPI LZCopy16(HFILE16,HFILE16);
8719 LONG        WINAPI LZCopy32(HFILE32,HFILE32);
8720 #define     LZCopy WINELIB_NAME(LZCopy)
8721 HFILE16     WINAPI LZInit16(HFILE16);
8722 HFILE32     WINAPI LZInit32(HFILE32);
8723 #define     LZInit WINELIB_NAME(LZInit)
8724 LONG        WINAPI LZSeek16(HFILE16,LONG,INT16);
8725 LONG        WINAPI LZSeek32(HFILE32,LONG,INT32);
8726 #define     LZSeek WINELIB_NAME(LZSeek)
8727 UINT16      WINAPI MapVirtualKey16(UINT16,UINT16);
8728 UINT32      WINAPI MapVirtualKey32A(UINT32,UINT32);
8729 UINT32      WINAPI MapVirtualKey32W(UINT32,UINT32);
8730 #define     MapVirtualKey WINELIB_NAME_AW(MapVirtualKey)
8731 FARPROC16   WINAPI MakeProcInstance16(FARPROC16,HANDLE16);
8732 #define     MakeProcInstance32(proc,inst) (proc)
8733 #define     MakeProcInstance WINELIB_NAME(MakeProcInstance)
8734 void        WINAPI MapDialogRect16(HWND16,LPRECT16);
8735 void        WINAPI MapDialogRect32(HWND32,LPRECT32);
8736 #define     MapDialogRect WINELIB_NAME(MapDialogRect)
8737 void        WINAPI MapWindowPoints16(HWND16,HWND16,LPPOINT16,UINT16);
8738 void        WINAPI MapWindowPoints32(HWND32,HWND32,LPPOINT32,UINT32);
8739 #define     MapWindowPoints WINELIB_NAME(MapWindowPoints)
8740 VOID        WINAPI MessageBeep16(UINT16);
8741 BOOL32      WINAPI MessageBeep32(UINT32);
8742 #define     MessageBeep WINELIB_NAME(MessageBeep)
8743 INT16       WINAPI MessageBox16(HWND16,LPCSTR,LPCSTR,UINT16);
8744 INT32       WINAPI MessageBox32A(HWND32,LPCSTR,LPCSTR,UINT32);
8745 INT32       WINAPI MessageBox32W(HWND32,LPCWSTR,LPCWSTR,UINT32);
8746 #define     MessageBox WINELIB_NAME_AW(MessageBox)
8747 INT16       WINAPI MessageBoxIndirect16(LPMSGBOXPARAMS16);
8748 INT32       WINAPI MessageBoxIndirect32A(LPMSGBOXPARAMS32A);
8749 INT32       WINAPI MessageBoxIndirect32W(LPMSGBOXPARAMS32W);
8750 #define     MessageBoxIndirect WINELIB_NAME_AW(MessageBoxIndirect)
8751 BOOL16      WINAPI ModifyMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR);
8752 BOOL32      WINAPI ModifyMenu32A(HMENU32,UINT32,UINT32,UINT32,LPCSTR);
8753 BOOL32      WINAPI ModifyMenu32W(HMENU32,UINT32,UINT32,UINT32,LPCWSTR);
8754 #define     ModifyMenu WINELIB_NAME_AW(ModifyMenu)
8755 BOOL16      WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16);
8756 BOOL32      WINAPI MoveToEx32(HDC32,INT32,INT32,LPPOINT32);
8757 #define     MoveToEx WINELIB_NAME(MoveToEx)
8758 BOOL16      WINAPI MoveWindow16(HWND16,INT16,INT16,INT16,INT16,BOOL16);
8759 BOOL32      WINAPI MoveWindow32(HWND32,INT32,INT32,INT32,INT32,BOOL32);
8760 #define     MoveWindow WINELIB_NAME(MoveWindow)
8761 INT16       WINAPI MulDiv16(INT16,INT16,INT16);
8762 INT32       WINAPI MulDiv32(INT32,INT32,INT32);
8763 #define     MulDiv WINELIB_NAME(MulDiv)
8764 INT16       WINAPI OemToAnsi16(LPCSTR,LPSTR);
8765 #define     OemToAnsi32A OemToChar32A
8766 #define     OemToAnsi32W OemToChar32W
8767 #define     OemToAnsi WINELIB_NAME_AW(OemToAnsi)
8768 VOID        WINAPI OemToAnsiBuff16(LPCSTR,LPSTR,UINT16);
8769 #define     OemToAnsiBuff32A OemToCharBuff32A
8770 #define     OemToAnsiBuff32W OemToCharBuff32W
8771 #define     OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff)
8772 BOOL32      WINAPI OemToChar32A(LPCSTR,LPSTR);
8773 BOOL32      WINAPI OemToChar32W(LPCSTR,LPWSTR);
8774 #define     OemToChar WINELIB_NAME_AW(OemToChar)
8775 BOOL32      WINAPI OemToCharBuff32A(LPCSTR,LPSTR,DWORD);
8776 BOOL32      WINAPI OemToCharBuff32W(LPCSTR,LPWSTR,DWORD);
8777 #define     OemToCharBuff WINELIB_NAME_AW(OemToCharBuff)
8778 INT16       WINAPI WideCharToLocal16(LPSTR,LPWSTR,INT16);
8779 INT32       WINAPI WideCharToLocal32(LPSTR,LPWSTR,INT32);
8780 #define                 WideCharToLocal WINELIB_NAME(WideCharToLocal)
8781 INT16       WINAPI LocalToWideChar16(LPWSTR,LPSTR,INT16);
8782 INT32       WINAPI LocalToWideChar32(LPWSTR,LPSTR,INT32);
8783 #define                 LocalToWideChar WINELIB_NAME(LocalToWideChar)
8784 INT16       WINAPI OffsetClipRgn16(HDC16,INT16,INT16);
8785 INT32       WINAPI OffsetClipRgn32(HDC32,INT32,INT32);
8786 #define     OffsetClipRgn WINELIB_NAME(OffsetClipRgn)
8787 void        WINAPI OffsetRect16(LPRECT16,INT16,INT16);
8788 void        WINAPI OffsetRect32(LPRECT32,INT32,INT32);
8789 #define     OffsetRect WINELIB_NAME(OffsetRect)
8790 INT16       WINAPI OffsetRgn16(HRGN16,INT16,INT16);
8791 INT32       WINAPI OffsetRgn32(HRGN32,INT32,INT32);
8792 #define     OffsetRgn WINELIB_NAME(OffsetRgn)
8793 BOOL16      WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
8794 BOOL32      WINAPI OffsetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32);
8795 #define     OffsetViewportOrgEx WINELIB_NAME(OffsetViewportOrgEx)
8796 BOOL16      WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
8797 BOOL32      WINAPI OffsetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32);
8798 #define     OffsetWindowOrgEx WINELIB_NAME(OffsetWindowOrgEx)
8799 BOOL16      WINAPI OpenClipboard16(HWND16);
8800 BOOL32      WINAPI OpenClipboard32(HWND32);
8801 #define     OpenClipboard WINELIB_NAME(OpenClipboard)
8802 HFILE16     WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
8803 HFILE32     WINAPI OpenFile32(LPCSTR,OFSTRUCT*,UINT32);
8804 #define     OpenFile WINELIB_NAME(OpenFile)
8805 BOOL16      WINAPI OpenIcon16(HWND16);
8806 BOOL32      WINAPI OpenIcon32(HWND32);
8807 #define     OpenIcon WINELIB_NAME(OpenIcon)
8808 INT16       WINAPI OpenSound16(void);
8809 VOID        WINAPI OpenSound32(void);
8810 #define     OpenSound WINELIB_NAME(OpenSound)
8811 VOID        WINAPI OutputDebugString16(LPCSTR);
8812 VOID        WINAPI OutputDebugString32A(LPCSTR);
8813 VOID        WINAPI OutputDebugString32W(LPCWSTR);
8814 #define     OutputDebugString WINELIB_NAME_AW(OutputDebugString)
8815 BOOL16      WINAPI PaintRgn16(HDC16,HRGN16);
8816 BOOL32      WINAPI PaintRgn32(HDC32,HRGN32);
8817 #define     PaintRgn WINELIB_NAME(PaintRgn)
8818 BOOL16      WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD);
8819 BOOL32      WINAPI PatBlt32(HDC32,INT32,INT32,INT32,INT32,DWORD);
8820 #define     PatBlt WINELIB_NAME(PatBlt)
8821 HRGN16      WINAPI PathToRegion16(HDC16);
8822 HRGN32      WINAPI PathToRegion32(HDC32);
8823 #define     PathToRegion WINELIB_NAME(PathToRegion)
8824 BOOL16      WINAPI PeekMessage16(LPMSG16,HWND16,UINT16,UINT16,UINT16);
8825 BOOL32      WINAPI PeekMessage32A(LPMSG32,HWND32,UINT32,UINT32,UINT32);
8826 BOOL32      WINAPI PeekMessage32W(LPMSG32,HWND32,UINT32,UINT32,UINT32);
8827 #define     PeekMessage WINELIB_NAME_AW(PeekMessage)
8828 BOOL16      WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
8829 BOOL32      WINAPI Pie32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
8830 #define     Pie WINELIB_NAME(Pie)
8831 BOOL16      WINAPI PlayMetaFile16(HDC16,HMETAFILE16);
8832 BOOL32      WINAPI PlayMetaFile32(HDC32,HMETAFILE32);
8833 #define     PlayMetaFile WINELIB_NAME(PlayMetaFile)
8834 VOID        WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
8835 BOOL32      WINAPI PlayMetaFileRecord32(HDC32,LPHANDLETABLE32,LPMETARECORD,UINT32);
8836 #define     PlayMetaFileRecord WINELIB_NAME(PlayMetaFileRecord)
8837 BOOL16      WINAPI PolyBezier16(HDC16,const POINT16*,INT16);
8838 BOOL32      WINAPI PolyBezier32(HDC32,const POINT32*,DWORD);
8839 #define     PolyBezier WINELIB_NAME(PolyBezier)
8840 BOOL16      WINAPI PolyBezierTo16(HDC16,const POINT16*,INT16);
8841 BOOL32      WINAPI PolyBezierTo32(HDC32,const POINT32*,DWORD);
8842 #define     PolyBezierTo WINELIB_NAME(PolyBezierTo)
8843 BOOL16      WINAPI PolyPolygon16(HDC16,const POINT16*,const INT16*,UINT16);
8844 BOOL32      WINAPI PolyPolygon32(HDC32,const POINT32*,const INT32*,UINT32);
8845 #define     PolyPolygon WINELIB_NAME(PolyPolygon)
8846 BOOL16      WINAPI Polygon16(HDC16,const POINT16*,INT16);
8847 BOOL32      WINAPI Polygon32(HDC32,const POINT32*,INT32);
8848 #define     Polygon WINELIB_NAME(Polygon)
8849 BOOL16      WINAPI Polyline16(HDC16,const POINT16*,INT16);
8850 BOOL32      WINAPI Polyline32(HDC32,const POINT32*,INT32);
8851 #define     Polyline WINELIB_NAME(Polyline)
8852 BOOL16      WINAPI PostAppMessage16(HTASK16,UINT16,WPARAM16,LPARAM);
8853 #define     PostAppMessage32A(thread,msg,wparam,lparam) \
8854             PostThreadMessage32A((DWORD)(thread),msg,wparam,lparam)
8855 #define     PostAppMessage32W(thread,msg,wparam,lparam) \
8856             PostThreadMessage32W((DWORD)(thread),msg,wparam,lparam)
8857 #define     PostAppMessage WINELIB_NAME_AW(PostAppMessage)
8858 BOOL16      WINAPI PostMessage16(HWND16,UINT16,WPARAM16,LPARAM);
8859 BOOL32      WINAPI PostMessage32A(HWND32,UINT32,WPARAM32,LPARAM);
8860 BOOL32      WINAPI PostMessage32W(HWND32,UINT32,WPARAM32,LPARAM);
8861 #define     PostMessage WINELIB_NAME_AW(PostMessage)
8862 void        WINAPI PostQuitMessage16(INT16);
8863 void        WINAPI PostQuitMessage32(INT32);
8864 #define     PostQuitMessage WINELIB_NAME(PostQuitMessage)
8865 BOOL16      WINAPI PtInRect16(const RECT16*,POINT16);
8866 BOOL32      WINAPI PtInRect32(const RECT32*,POINT32);
8867 #define     PtInRect WINELIB_NAME(PtInRect)
8868 BOOL16      WINAPI PtInRegion16(HRGN16,INT16,INT16);
8869 BOOL32      WINAPI PtInRegion32(HRGN32,INT32,INT32);
8870 #define     PtInRegion WINELIB_NAME(PtInRegion)
8871 BOOL16      WINAPI PtVisible16(HDC16,INT16,INT16);
8872 BOOL32      WINAPI PtVisible32(HDC32,INT32,INT32);
8873 #define     PtVisible WINELIB_NAME(PtVisible)
8874 UINT16      WINAPI RealizePalette16(HDC16);
8875 UINT32      WINAPI RealizePalette32(HDC32);
8876 #define     RealizePalette WINELIB_NAME(RealizePalette)
8877 BOOL16      WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16);
8878 BOOL32      WINAPI Rectangle32(HDC32,INT32,INT32,INT32,INT32);
8879 #define     Rectangle WINELIB_NAME(Rectangle)
8880 BOOL16      WINAPI RectInRegion16(HRGN16,const RECT16 *);
8881 BOOL32      WINAPI RectInRegion32(HRGN32,const RECT32 *);
8882 #define     RectInRegion WINELIB_NAME(RectInRegion)
8883 BOOL16      WINAPI RectVisible16(HDC16,const RECT16*);
8884 BOOL32      WINAPI RectVisible32(HDC32,const RECT32*);
8885 #define     RectVisible WINELIB_NAME(RectVisible)
8886 BOOL16      WINAPI RedrawWindow16(HWND16,const RECT16*,HRGN16,UINT16);
8887 BOOL32      WINAPI RedrawWindow32(HWND32,const RECT32*,HRGN32,UINT32);
8888 #define     RedrawWindow WINELIB_NAME(RedrawWindow)
8889 DWORD       WINAPI RegCreateKey16(HKEY,LPCSTR,LPHKEY);
8890 DWORD       WINAPI RegCreateKey32A(HKEY,LPCSTR,LPHKEY);
8891 DWORD       WINAPI RegCreateKey32W(HKEY,LPCWSTR,LPHKEY);
8892 #define     RegCreateKey WINELIB_NAME_AW(RegCreateKey)
8893 DWORD       WINAPI RegDeleteKey16(HKEY,LPCSTR);
8894 DWORD       WINAPI RegDeleteKey32A(HKEY,LPCSTR);
8895 DWORD       WINAPI RegDeleteKey32W(HKEY,LPWSTR);
8896 #define     RegDeleteKey WINELIB_NAME_AW(RegDeleteKey)
8897 DWORD       WINAPI RegDeleteValue16(HKEY,LPSTR);
8898 DWORD       WINAPI RegDeleteValue32A(HKEY,LPSTR);
8899 DWORD       WINAPI RegDeleteValue32W(HKEY,LPWSTR);
8900 #define     RegDeleteValue WINELIB_NAME_AW(RegDeleteValue)
8901 DWORD       WINAPI RegEnumKey16(HKEY,DWORD,LPSTR,DWORD);
8902 DWORD       WINAPI RegEnumKey32A(HKEY,DWORD,LPSTR,DWORD);
8903 DWORD       WINAPI RegEnumKey32W(HKEY,DWORD,LPWSTR,DWORD);
8904 #define     RegEnumKey WINELIB_NAME_AW(RegEnumKey)
8905 DWORD       WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
8906 DWORD       WINAPI RegEnumValue32A(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
8907 DWORD       WINAPI RegEnumValue32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
8908 #define     RegEnumValue WINELIB_NAME_AW(RegEnumValue)
8909 ATOM        WINAPI RegisterClass16(const WNDCLASS16*);
8910 ATOM        WINAPI RegisterClass32A(const WNDCLASS32A *);
8911 ATOM        WINAPI RegisterClass32W(const WNDCLASS32W *);
8912 #define     RegisterClass WINELIB_NAME_AW(RegisterClass)
8913 ATOM        WINAPI RegisterClassEx16(const WNDCLASSEX16*);
8914 ATOM        WINAPI RegisterClassEx32A(const WNDCLASSEX32A *);
8915 ATOM        WINAPI RegisterClassEx32W(const WNDCLASSEX32W *);
8916 #define     RegisterClassEx WINELIB_NAME_AW(RegisterClassEx)
8917 UINT16      WINAPI RegisterClipboardFormat16(LPCSTR);
8918 UINT32      WINAPI RegisterClipboardFormat32A(LPCSTR);
8919 UINT32      WINAPI RegisterClipboardFormat32W(LPCWSTR);
8920 #define     RegisterClipboardFormat WINELIB_NAME_AW(RegisterClipboardFormat)
8921 HRESULT     WINAPI RegisterDragDrop16(HWND16,LPVOID);
8922 HRESULT     WINAPI RegisterDragDrop32(HWND32,LPVOID);
8923 #define     RegisterDragDrop WINELIB_NAME(RegisterDragDrop)
8924 WORD        WINAPI RegisterWindowMessage16(SEGPTR);
8925 WORD        WINAPI RegisterWindowMessage32A(LPCSTR);
8926 WORD        WINAPI RegisterWindowMessage32W(LPCWSTR);
8927 #define     RegisterWindowMessage WINELIB_NAME_AW(RegisterWindowMessage)
8928 DWORD       WINAPI RegOpenKey16(HKEY,LPCSTR,LPHKEY);
8929 DWORD       WINAPI RegOpenKey32A(HKEY,LPCSTR,LPHKEY);
8930 DWORD       WINAPI RegOpenKey32W(HKEY,LPCWSTR,LPHKEY);
8931 #define     RegOpenKey WINELIB_NAME_AW(RegOpenKey)
8932 DWORD       WINAPI RegQueryValue16(HKEY,LPSTR,LPSTR,LPDWORD);
8933 DWORD       WINAPI RegQueryValue32A(HKEY,LPSTR,LPSTR,LPDWORD);
8934 DWORD       WINAPI RegQueryValue32W(HKEY,LPWSTR,LPWSTR,LPDWORD);
8935 #define     RegQueryValue WINELIB_NAME_AW(RegQueryValue)
8936 DWORD       WINAPI RegQueryValueEx16(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
8937 DWORD       WINAPI RegQueryValueEx32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
8938 DWORD       WINAPI RegQueryValueEx32W(HKEY,LPWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
8939 #define     RegQueryValueEx WINELIB_NAME_AW(RegQueryValueEx)
8940 DWORD       WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
8941 DWORD       WINAPI RegSetValue32A(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
8942 DWORD       WINAPI RegSetValue32W(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
8943 #define     RegSetValue WINELIB_NAME_AW(RegSetValue)
8944 DWORD       WINAPI RegSetValueEx16(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD);
8945 DWORD       WINAPI RegSetValueEx32A(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD);
8946 DWORD       WINAPI RegSetValueEx32W(HKEY,LPWSTR,DWORD,DWORD,LPBYTE,DWORD);
8947 #define     RegSetValueEx WINELIB_NAME_AW(RegSetValueEx)
8948 INT16       WINAPI ReleaseDC16(HWND16,HDC16);
8949 INT32       WINAPI ReleaseDC32(HWND32,HDC32);
8950 #define     ReleaseDC WINELIB_NAME(ReleaseDC)
8951 BOOL16      WINAPI RemoveDirectory16(LPCSTR);
8952 BOOL32      WINAPI RemoveDirectory32A(LPCSTR);
8953 BOOL32      WINAPI RemoveDirectory32W(LPCWSTR);
8954 #define     RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
8955 BOOL16      WINAPI RemoveFontResource16(SEGPTR);
8956 BOOL32      WINAPI RemoveFontResource32A(LPCSTR);
8957 BOOL32      WINAPI RemoveFontResource32W(LPCWSTR);
8958 #define     RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
8959 BOOL16      WINAPI RemoveMenu16(HMENU16,UINT16,UINT16);
8960 BOOL32      WINAPI RemoveMenu32(HMENU32,UINT32,UINT32);
8961 #define     RemoveMenu WINELIB_NAME(RemoveMenu)
8962 HANDLE16    WINAPI RemoveProp16(HWND16,LPCSTR);
8963 HANDLE32    WINAPI RemoveProp32A(HWND32,LPCSTR);
8964 HANDLE32    WINAPI RemoveProp32W(HWND32,LPCWSTR);
8965 #define     RemoveProp WINELIB_NAME_AW(RemoveProp)
8966 VOID        WINAPI ReplyMessage16(LRESULT);
8967 BOOL32      WINAPI ReplyMessage32(LRESULT);
8968 #define     ReplyMessage WINELIB_NAME(ReplyMessage)
8969 HDC16       WINAPI ResetDC16(HDC16,const DEVMODE16 *);
8970 HDC32       WINAPI ResetDC32A(HDC32,const DEVMODE32A *);
8971 HDC32       WINAPI ResetDC32W(HDC32,const DEVMODE32W *);
8972 #define     ResetDC WINELIB_NAME_AW(ResetDC)
8973 BOOL16      WINAPI ResizePalette16(HPALETTE16,UINT16);
8974 BOOL32      WINAPI ResizePalette32(HPALETTE32,UINT32);
8975 #define     ResizePalette WINELIB_NAME(ResizePalette)
8976 BOOL16      WINAPI RestoreDC16(HDC16,INT16);
8977 BOOL32      WINAPI RestoreDC32(HDC32,INT32);
8978 #define     RestoreDC WINELIB_NAME(RestoreDC)
8979 HRESULT     WINAPI RevokeDragDrop16(HWND16);
8980 HRESULT     WINAPI RevokeDragDrop32(HWND32);
8981 #define     RevokeDragDrop WINELIB_NAME(RevokeDragDrop)
8982 BOOL16      WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
8983 BOOL32      WINAPI RoundRect32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32);
8984 #define     RoundRect WINELIB_NAME(RoundRect)
8985 INT16       WINAPI SaveDC16(HDC16);
8986 INT32       WINAPI SaveDC32(HDC32);
8987 #define     SaveDC WINELIB_NAME(SaveDC)
8988 BOOL16      WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
8989 BOOL32      WINAPI ScaleViewportExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32);
8990 #define     ScaleViewportExtEx WINELIB_NAME(ScaleViewportExtEx)
8991 BOOL16      WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
8992 BOOL32      WINAPI ScaleWindowExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32);
8993 #define     ScaleWindowExtEx WINELIB_NAME(ScaleWindowExtEx)
8994 void        WINAPI ScreenToClient16(HWND16,LPPOINT16);
8995 void        WINAPI ScreenToClient32(HWND32,LPPOINT32);
8996 #define     ScreenToClient WINELIB_NAME(ScreenToClient)
8997 VOID        WINAPI ScrollChildren16(HWND16,UINT16,WPARAM16,LPARAM);
8998 VOID        WINAPI ScrollChildren32(HWND32,UINT32,WPARAM32,LPARAM);
8999 #define     ScrollChildren WINELIB_NAME(ScrollChildren)
9000 BOOL16      WINAPI ScrollDC16(HDC16,INT16,INT16,const RECT16*,const RECT16*,
9001                       HRGN16,LPRECT16);
9002 BOOL32      WINAPI ScrollDC32(HDC32,INT32,INT32,const RECT32*,const RECT32*,
9003                       HRGN32,LPRECT32);
9004 #define     ScrollDC WINELIB_NAME(ScrollDC)
9005 void        WINAPI ScrollWindow16(HWND16,INT16,INT16,const RECT16*,const RECT16*);
9006 BOOL32      WINAPI ScrollWindow32(HWND32,INT32,INT32,const RECT32*,const RECT32*);
9007 #define     ScrollWindow WINELIB_NAME(ScrollWindow)
9008 INT16       WINAPI ScrollWindowEx16(HWND16,INT16,INT16,const RECT16*,
9009                                     const RECT16*,HRGN16,LPRECT16,UINT16);
9010 INT32       WINAPI ScrollWindowEx32(HWND32,INT32,INT32,const RECT32*,
9011                                     const RECT32*,HRGN32,LPRECT32,UINT32);
9012 #define     ScrollWindowEx WINELIB_NAME(ScrollWindowEx)
9013 BOOL16      WINAPI SelectClipPath16(HDC16,INT16);
9014 BOOL32      WINAPI SelectClipPath32(HDC32,INT32);
9015 #define     SelectClipPath WINELIB_NAME(SelectClipPath)
9016 INT16       WINAPI SelectClipRgn16(HDC16,HRGN16);
9017 INT32       WINAPI SelectClipRgn32(HDC32,HRGN32);
9018 #define     SelectClipRgn WINELIB_NAME(SelectClipRgn)
9019 HGDIOBJ16   WINAPI SelectObject16(HDC16,HGDIOBJ16);
9020 HGDIOBJ32   WINAPI SelectObject32(HDC32,HGDIOBJ32);
9021 #define     SelectObject WINELIB_NAME(SelectObject)
9022 HPALETTE16  WINAPI SelectPalette16(HDC16,HPALETTE16,BOOL16);
9023 HPALETTE32  WINAPI SelectPalette32(HDC32,HPALETTE32,BOOL32);
9024 #define     SelectPalette WINELIB_NAME(SelectPalette)
9025 LRESULT     WINAPI SendDlgItemMessage16(HWND16,INT16,UINT16,WPARAM16,LPARAM);
9026 LRESULT     WINAPI SendDlgItemMessage32A(HWND32,INT32,UINT32,WPARAM32,LPARAM);
9027 LRESULT     WINAPI SendDlgItemMessage32W(HWND32,INT32,UINT32,WPARAM32,LPARAM);
9028 #define     SendDlgItemMessage WINELIB_NAME_AW(SendDlgItemMessage)
9029 LRESULT     WINAPI SendMessage16(HWND16,UINT16,WPARAM16,LPARAM);
9030 LRESULT     WINAPI SendMessage32A(HWND32,UINT32,WPARAM32,LPARAM);
9031 LRESULT     WINAPI SendMessage32W(HWND32,UINT32,WPARAM32,LPARAM);
9032 #define     SendMessage WINELIB_NAME_AW(SendMessage)
9033 LRESULT     WINAPI SendMessageTimeout16(HWND16,UINT16,WPARAM16,LPARAM,UINT16,
9034                                         UINT16,LPWORD);
9035 LRESULT     WINAPI SendMessageTimeout32A(HWND32,UINT32,WPARAM32,LPARAM,UINT32,
9036                                          UINT32,LPDWORD);
9037 LRESULT     WINAPI SendMessageTimeout32W(HWND32,UINT32,WPARAM32,LPARAM,UINT32,
9038                                          UINT32,LPDWORD);
9039 #define     SendMessageTimeout WINELIB_NAME_AW(SendMessageTimeout)
9040 HWND16      WINAPI SetActiveWindow16(HWND16);
9041 HWND32      WINAPI SetActiveWindow32(HWND32);
9042 #define     SetActiveWindow WINELIB_NAME(SetActiveWindow)
9043 INT16       WINAPI SetArcDirection16(HDC16,INT16);
9044 INT32       WINAPI SetArcDirection32(HDC32,INT32);
9045 #define     SetArcDirection WINELIB_NAME(SetArcDirection)
9046 LONG        WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
9047 LONG        WINAPI SetBitmapBits32(HBITMAP32,LONG,LPCVOID);
9048 #define     SetBitmapBits WINELIB_NAME(SetBitmapBits)
9049 BOOL16      WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
9050 BOOL32      WINAPI SetBitmapDimensionEx32(HBITMAP32,INT32,INT32,LPSIZE32);
9051 #define     SetBitmapDimensionEx WINELIB_NAME(SetBitmapDimensionEx)
9052 COLORREF    WINAPI SetBkColor16(HDC16,COLORREF);
9053 COLORREF    WINAPI SetBkColor32(HDC32,COLORREF);
9054 #define     SetBkColor WINELIB_NAME(SetBkColor)
9055 INT16       WINAPI SetBkMode16(HDC16,INT16);
9056 INT32       WINAPI SetBkMode32(HDC32,INT32);
9057 #define     SetBkMode WINELIB_NAME(SetBkMode)
9058 UINT16      WINAPI SetBoundsRect16(HDC16,const RECT16*,UINT16);
9059 UINT32      WINAPI SetBoundsRect32(HDC32,const RECT32*,UINT32);
9060 #define     SetBoundsRect WINELIB_NAME(SetBoundsRect)
9061 HWND16      WINAPI SetCapture16(HWND16);
9062 HWND32      WINAPI SetCapture32(HWND32);
9063 #define     SetCapture WINELIB_NAME(SetCapture)
9064 VOID        WINAPI SetCaretBlinkTime16(UINT16);
9065 BOOL32      WINAPI SetCaretBlinkTime32(UINT32);
9066 #define     SetCaretBlinkTime WINELIB_NAME(SetCaretBlinkTime)
9067 VOID        WINAPI SetCaretPos16(INT16,INT16);
9068 BOOL32      WINAPI SetCaretPos32(INT32,INT32);
9069 #define     SetCaretPos WINELIB_NAME(SetCaretPos)
9070 LONG        WINAPI SetClassLong16(HWND16,INT16,LONG);
9071 LONG        WINAPI SetClassLong32A(HWND32,INT32,LONG);
9072 LONG        WINAPI SetClassLong32W(HWND32,INT32,LONG);
9073 #define     SetClassLong WINELIB_NAME_AW(SetClassLong)
9074 WORD        WINAPI SetClassWord16(HWND16,INT16,WORD);
9075 WORD        WINAPI SetClassWord32(HWND32,INT32,WORD);
9076 #define     SetClassWord WINELIB_NAME(SetClassWord)
9077 HANDLE16    WINAPI SetClipboardData16(UINT16,HANDLE16);
9078 HANDLE32    WINAPI SetClipboardData32(UINT32,HANDLE32);
9079 #define     SetClipboardData WINELIB_NAME(SetClipboardData)
9080 HWND16      WINAPI SetClipboardViewer16(HWND16);
9081 HWND32      WINAPI SetClipboardViewer32(HWND32);
9082 #define     SetClipboardViewer WINELIB_NAME(SetClipboardViewer)
9083 INT16       WINAPI SetCommBreak16(INT16);
9084 BOOL32      WINAPI SetCommBreak32(INT32);
9085 #define     SetCommBreak WINELIB_NAME(SetCommBreak)
9086 INT16       WINAPI SetCommState16(LPDCB16);
9087 BOOL32      WINAPI SetCommState32(INT32,LPDCB32);
9088 #define     SetCommState WINELIB_NAME(SetCommState)
9089 BOOL16      WINAPI SetCurrentDirectory16(LPCSTR);
9090 BOOL32      WINAPI SetCurrentDirectory32A(LPCSTR);
9091 BOOL32      WINAPI SetCurrentDirectory32W(LPCWSTR);
9092 #define     SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory)
9093 HCURSOR16   WINAPI SetCursor16(HCURSOR16);
9094 HCURSOR32   WINAPI SetCursor32(HCURSOR32);
9095 #define     SetCursor WINELIB_NAME(SetCursor)
9096 void        WINAPI SetCursorPos16(INT16,INT16);
9097 BOOL32      WINAPI SetCursorPos32(INT32,INT32);
9098 #define     SetCursorPos WINELIB_NAME(SetCursorPos)
9099 BOOL16      WINAPI SetDeskWallPaper16(LPCSTR);
9100 BOOL32      WINAPI SetDeskWallPaper32(LPCSTR);
9101 #define     SetDeskWallPaper WINELIB_NAME(SetDeskWallPaper)
9102 UINT16      WINAPI SetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
9103 UINT32      WINAPI SetDIBColorTable32(HDC32,UINT32,UINT32,RGBQUAD*);
9104 #define     SetDIBColorTable WINELIB_NAME(SetDIBColorTable)
9105 INT16       WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
9106 INT32       WINAPI SetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32);
9107 #define     SetDIBits WINELIB_NAME(SetDIBits)
9108 INT16       WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,
9109                          INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
9110 INT32       WINAPI SetDIBitsToDevice32(HDC32,INT32,INT32,DWORD,DWORD,INT32,
9111                          INT32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32);
9112 #define     SetDIBitsToDevice WINELIB_NAME(SetDIBitsToDevice)
9113 void        WINAPI SetDlgItemInt16(HWND16,INT16,UINT16,BOOL16);
9114 void        WINAPI SetDlgItemInt32(HWND32,INT32,UINT32,BOOL32);
9115 #define     SetDlgItemInt WINELIB_NAME(SetDlgItemInt)
9116 void        WINAPI SetDlgItemText16(HWND16,INT16,SEGPTR);
9117 void        WINAPI SetDlgItemText32A(HWND32,INT32,LPCSTR);
9118 void        WINAPI SetDlgItemText32W(HWND32,INT32,LPCWSTR);
9119 #define     SetDlgItemText WINELIB_NAME_AW(SetDlgItemText)
9120 VOID        WINAPI SetDoubleClickTime16(UINT16);
9121 BOOL32      WINAPI SetDoubleClickTime32(UINT32);
9122 #define     SetDoubleClickTime WINELIB_NAME(SetDoubleClickTime)
9123 UINT16      WINAPI SetErrorMode16(UINT16);
9124 UINT32      WINAPI SetErrorMode32(UINT32);
9125 #define     SetErrorMode WINELIB_NAME(SetErrorMode)
9126 BOOL16      WINAPI SetFileAttributes16(LPCSTR,DWORD);
9127 BOOL32      WINAPI SetFileAttributes32A(LPCSTR,DWORD);
9128 BOOL32      WINAPI SetFileAttributes32W(LPCWSTR,DWORD);
9129 #define     SetFileAttributes WINELIB_NAME_AW(SetFileAttributes)
9130 HWND16      WINAPI SetFocus16(HWND16);
9131 HWND32      WINAPI SetFocus32(HWND32);
9132 #define     SetFocus WINELIB_NAME(SetFocus)
9133 BOOL16      WINAPI SetForegroundWindow16(HWND16);
9134 BOOL32      WINAPI SetForegroundWindow32(HWND32);
9135 #define     SetForegroundWindow WINELIB_NAME(SetForegroundWindow)
9136 UINT16      WINAPI SetHandleCount16(UINT16);
9137 UINT32      WINAPI SetHandleCount32(UINT32);
9138 #define     SetHandleCount WINELIB_NAME(SetHandleCount)
9139 void        WINAPI SetInternalWindowPos16(HWND16,UINT16,LPRECT16,LPPOINT16);
9140 void        WINAPI SetInternalWindowPos32(HWND32,UINT32,LPRECT32,LPPOINT32);
9141 #define     SetInternalWindowPos WINELIB_NAME(SetInternalWindowPos)
9142 INT16       WINAPI SetMapMode16(HDC16,INT16);
9143 INT32       WINAPI SetMapMode32(HDC32,INT32);
9144 #define     SetMapMode WINELIB_NAME(SetMapMode)
9145 DWORD       WINAPI SetMapperFlags16(HDC16,DWORD);
9146 DWORD       WINAPI SetMapperFlags32(HDC32,DWORD);
9147 #define     SetMapperFlags WINELIB_NAME(SetMapperFlags)
9148 BOOL16      WINAPI SetMenu16(HWND16,HMENU16);
9149 BOOL32      WINAPI SetMenu32(HWND32,HMENU32);
9150 #define     SetMenu WINELIB_NAME(SetMenu)
9151 BOOL16      WINAPI SetMenuItemBitmaps16(HMENU16,UINT16,UINT16,HBITMAP16,HBITMAP16);
9152 BOOL32      WINAPI SetMenuItemBitmaps32(HMENU32,UINT32,UINT32,HBITMAP32,HBITMAP32);
9153 #define     SetMenuItemBitmaps WINELIB_NAME(SetMenuItemBitmaps)
9154 BOOL16      WINAPI SetMessageQueue16(INT16);
9155 BOOL32      WINAPI SetMessageQueue32(INT32);
9156 #define     SetMessageQueue WINELIB_NAME(SetMessageQueue)
9157 UINT16      WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
9158 UINT32      WINAPI SetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY);
9159 #define     SetPaletteEntries WINELIB_NAME(SetPaletteEntries)
9160 HWND16      WINAPI SetParent16(HWND16,HWND16);
9161 HWND32      WINAPI SetParent32(HWND32,HWND32);
9162 #define     SetParent WINELIB_NAME(SetParent)
9163 COLORREF    WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF);
9164 COLORREF    WINAPI SetPixel32(HDC32,INT32,INT32,COLORREF);
9165 #define     SetPixel WINELIB_NAME(SetPixel)
9166 BOOL32      WINAPI SetPixelV32(HDC32,INT32,INT32,COLORREF);
9167 BOOL32      WINAPI SetPixelFormat(HDC32,int,const PIXELFORMATDESCRIPTOR*);
9168 INT16       WINAPI SetPolyFillMode16(HDC16,INT16);
9169 INT32       WINAPI SetPolyFillMode32(HDC32,INT32);
9170 #define     SetPolyFillMode WINELIB_NAME(SetPolyFillMode)
9171 BOOL16      WINAPI SetProp16(HWND16,LPCSTR,HANDLE16);
9172 BOOL32      WINAPI SetProp32A(HWND32,LPCSTR,HANDLE32);
9173 BOOL32      WINAPI SetProp32W(HWND32,LPCWSTR,HANDLE32);
9174 #define     SetProp WINELIB_NAME_AW(SetProp)
9175 void        WINAPI SetRect16(LPRECT16,INT16,INT16,INT16,INT16);
9176 void        WINAPI SetRect32(LPRECT32,INT32,INT32,INT32,INT32);
9177 #define     SetRect WINELIB_NAME(SetRect)
9178 void        WINAPI SetRectEmpty16(LPRECT16);
9179 void        WINAPI SetRectEmpty32(LPRECT32);
9180 #define     SetRectEmpty WINELIB_NAME(SetRectEmpty)
9181 VOID        WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
9182 VOID        WINAPI SetRectRgn32(HRGN32,INT32,INT32,INT32,INT32);
9183 #define     SetRectRgn WINELIB_NAME(SetRectRgn)
9184 INT16       WINAPI SetRelAbs16(HDC16,INT16);
9185 INT32       WINAPI SetRelAbs32(HDC32,INT32);
9186 #define     SetRelAbs WINELIB_NAME(SetRelAbs)
9187 INT16       WINAPI SetROP216(HDC16,INT16);
9188 INT32       WINAPI SetROP232(HDC32,INT32);
9189 #define     SetROP2 WINELIB_NAME(SetROP2)
9190 INT16       WINAPI SetScrollInfo16(HWND16,INT16,const SCROLLINFO*,BOOL16);
9191 INT32       WINAPI SetScrollInfo32(HWND32,INT32,const SCROLLINFO*,BOOL32);
9192 #define     SetScrollInfo WINELIB_NAME(SetScrollInfo)
9193 INT16       WINAPI SetScrollPos16(HWND16,INT16,INT16,BOOL16);
9194 INT32       WINAPI SetScrollPos32(HWND32,INT32,INT32,BOOL32);
9195 #define     SetScrollPos WINELIB_NAME(SetScrollPos)
9196 void        WINAPI SetScrollRange16(HWND16,INT16,INT16,INT16,BOOL16);
9197 BOOL32      WINAPI SetScrollRange32(HWND32,INT32,INT32,INT32,BOOL32);
9198 #define     SetScrollRange WINELIB_NAME(SetScrollRange)
9199 INT16       WINAPI SetSoundNoise16(INT16,INT16);
9200 DWORD       WINAPI SetSoundNoise32(DWORD,DWORD);
9201 #define     SetSoundNoise WINELIB_NAME(SetSoundNoise)
9202 INT16       WINAPI SetStretchBltMode16(HDC16,INT16);
9203 INT32       WINAPI SetStretchBltMode32(HDC32,INT32);
9204 #define     SetStretchBltMode WINELIB_NAME(SetStretchBltMode)
9205 LONG        WINAPI SetSwapAreaSize16(WORD);
9206 #define     SetSwapAreaSize32(w) (w)
9207 #define     SetSwapAreaSize WINELIB_NAME(SetSwapAreaSize)
9208 VOID        WINAPI SetSysColors16(INT16,const INT16*,const COLORREF*);
9209 BOOL32      WINAPI SetSysColors32(INT32,const INT32*,const COLORREF*);
9210 #define     SetSysColors WINELIB_NAME(SetSysColors)
9211 HWND16      WINAPI SetSysModalWindow16(HWND16);
9212 #define     SetSysModalWindow32(hwnd) ((HWND32)0)
9213 #define     SetSysModalWindow WINELIB_NAME(SetSysModalWindow)
9214 BOOL16      WINAPI SetSystemMenu16(HWND16,HMENU16);
9215 BOOL32      WINAPI SetSystemMenu32(HWND32,HMENU32);
9216 #define     SetSystemMenu WINELIB_NAME(SetSystemMenu)
9217 UINT16      WINAPI SetSystemPaletteUse16(HDC16,UINT16);
9218 UINT32      WINAPI SetSystemPaletteUse32(HDC32,UINT32);
9219 #define     SetSystemPaletteUse WINELIB_NAME(SetSystemPaletteUse)
9220 UINT16      WINAPI SetSystemTimer16(HWND16,UINT16,UINT16,TIMERPROC16);
9221 UINT32      WINAPI SetSystemTimer32(HWND32,UINT32,UINT32,TIMERPROC32);
9222 #define     SetSystemTimer WINELIB_NAME(SetSystemTimer)
9223 UINT16      WINAPI SetTextAlign16(HDC16,UINT16);
9224 UINT32      WINAPI SetTextAlign32(HDC32,UINT32);
9225 #define     SetTextAlign WINELIB_NAME(SetTextAlign)
9226 INT16       WINAPI SetTextCharacterExtra16(HDC16,INT16);
9227 INT32       WINAPI SetTextCharacterExtra32(HDC32,INT32);
9228 #define     SetTextCharacterExtra WINELIB_NAME(SetTextCharacterExtra)
9229 COLORREF    WINAPI SetTextColor16(HDC16,COLORREF);
9230 COLORREF    WINAPI SetTextColor32(HDC32,COLORREF);
9231 #define     SetTextColor WINELIB_NAME(SetTextColor)
9232 INT16       WINAPI SetTextJustification16(HDC16,INT16,INT16);
9233 BOOL32      WINAPI SetTextJustification32(HDC32,INT32,INT32);
9234 #define     SetTextJustification WINELIB_NAME(SetTextJustification)
9235 UINT16      WINAPI SetTimer16(HWND16,UINT16,UINT16,TIMERPROC16);
9236 UINT32      WINAPI SetTimer32(HWND32,UINT32,UINT32,TIMERPROC32);
9237 #define     SetTimer WINELIB_NAME(SetTimer)
9238 BOOL16      WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
9239 BOOL32      WINAPI SetViewportExtEx32(HDC32,INT32,INT32,LPSIZE32);
9240 #define     SetViewportExtEx WINELIB_NAME(SetViewportExtEx)
9241 BOOL16      WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
9242 BOOL32      WINAPI SetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32);
9243 #define     SetViewportOrgEx WINELIB_NAME(SetViewportOrgEx)
9244 INT16       WINAPI SetVoiceAccent16(INT16,INT16,INT16,INT16,INT16);
9245 DWORD       WINAPI SetVoiceAccent32(DWORD,DWORD,DWORD,DWORD,DWORD);
9246 #define     SetVoiceAccent WINELIB_NAME(SetVoiceAccent)
9247 INT16       WINAPI SetVoiceEnvelope16(INT16,INT16,INT16);
9248 DWORD       WINAPI SetVoiceEnvelope32(DWORD,DWORD,DWORD);
9249 #define     SetVoiceEnvelope WINELIB_NAME(SetVoiceEnvelope)
9250 INT16       WINAPI SetVoiceNote16(INT16,INT16,INT16,INT16);
9251 DWORD       WINAPI SetVoiceNote32(DWORD,DWORD,DWORD,DWORD);
9252 #define     SetVoiceNote WINELIB_NAME(SetVoiceNote)
9253 INT16       WINAPI SetVoiceQueueSize16(INT16,INT16);
9254 DWORD       WINAPI SetVoiceQueueSize32(DWORD,DWORD);
9255 #define     SetVoiceQueueSize WINELIB_NAME(SetVoiceQueueSize)
9256 INT16       WINAPI SetVoiceSound16(INT16,DWORD,INT16);
9257 DWORD       WINAPI SetVoiceSound32(DWORD,DWORD,DWORD);
9258 #define     SetVoiceSound WINELIB_NAME(SetVoiceSound)
9259 INT16       WINAPI SetVoiceThreshold16(INT16,INT16);
9260 DWORD       WINAPI SetVoiceThreshold32(DWORD,DWORD);
9261 #define     SetVoiceThreshold WINELIB_NAME(SetVoiceThreshold)
9262 BOOL16      WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16);
9263 BOOL32      WINAPI SetWindowExtEx32(HDC32,INT32,INT32,LPSIZE32);
9264 #define     SetWindowExtEx WINELIB_NAME(SetWindowExtEx)
9265 LONG        WINAPI SetWindowLong16(HWND16,INT16,LONG);
9266 LONG        WINAPI SetWindowLong32A(HWND32,INT32,LONG);
9267 LONG        WINAPI SetWindowLong32W(HWND32,INT32,LONG);
9268 #define     SetWindowLong WINELIB_NAME_AW(SetWindowLong)
9269 BOOL16      WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
9270 BOOL32      WINAPI SetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32);
9271 #define     SetWindowOrgEx WINELIB_NAME(SetWindowOrgEx)
9272 BOOL16      WINAPI SetWindowPlacement16(HWND16,const WINDOWPLACEMENT16*);
9273 BOOL32      WINAPI SetWindowPlacement32(HWND32,const WINDOWPLACEMENT32*);
9274 #define     SetWindowPlacement WINELIB_NAME(SetWindowPlacement)
9275 FARPROC16   WINAPI SetWindowsHook16(INT16,HOOKPROC16);
9276 HHOOK       WINAPI SetWindowsHook32A(INT32,HOOKPROC32);
9277 HHOOK       WINAPI SetWindowsHook32W(INT32,HOOKPROC32);
9278 #define     SetWindowsHook WINELIB_NAME_AW(SetWindowsHook)
9279 HHOOK       WINAPI SetWindowsHookEx16(INT16,HOOKPROC16,HINSTANCE16,HTASK16);
9280 HHOOK       WINAPI SetWindowsHookEx32A(INT32,HOOKPROC32,HINSTANCE32,DWORD);
9281 HHOOK       WINAPI SetWindowsHookEx32W(INT32,HOOKPROC32,HINSTANCE32,DWORD);
9282 #define     SetWindowsHookEx WINELIB_NAME_AW(SetWindowsHookEx)
9283 BOOL16      WINAPI SetWindowPos16(HWND16,HWND16,INT16,INT16,INT16,INT16,WORD);
9284 BOOL32      WINAPI SetWindowPos32(HWND32,HWND32,INT32,INT32,INT32,INT32,WORD);
9285 #define     SetWindowPos WINELIB_NAME(SetWindowPos)
9286 INT16       WINAPI SetWindowRgn16(HWND16,HRGN16,BOOL16);
9287 INT32       WINAPI SetWindowRgn32(HWND32,HRGN32,BOOL32);
9288 #define     SetWindowRgn WINELIB_NAME(SetWindowRgn)
9289 void        WINAPI SetWindowText16(HWND16,SEGPTR);
9290 void        WINAPI SetWindowText32A(HWND32,LPCSTR);
9291 void        WINAPI SetWindowText32W(HWND32,LPCWSTR);
9292 #define     SetWindowText WINELIB_NAME_AW(SetWindowText)
9293 WORD        WINAPI SetWindowWord16(HWND16,INT16,WORD);
9294 WORD        WINAPI SetWindowWord32(HWND32,INT32,WORD);
9295 #define     SetWindowWord WINELIB_NAME(SetWindowWord)
9296 BOOL16      WINAPI ShellAbout16(HWND16,LPCSTR,LPCSTR,HICON16);
9297 BOOL32      WINAPI ShellAbout32A(HWND32,LPCSTR,LPCSTR,HICON32);
9298 BOOL32      WINAPI ShellAbout32W(HWND32,LPCWSTR,LPCWSTR,HICON32);
9299 #define     ShellAbout WINELIB_NAME_AW(ShellAbout)
9300 HINSTANCE16 WINAPI ShellExecute16(HWND16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT16);
9301 HINSTANCE32 WINAPI ShellExecute32A(HWND32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT32);
9302 HINSTANCE32 WINAPI ShellExecute32W(HWND32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT32);
9303 #define     ShellExecute WINELIB_NAME_AW(ShellExecute)
9304 VOID        WINAPI ShowCaret16(HWND16);
9305 BOOL32      WINAPI ShowCaret32(HWND32);
9306 #define     ShowCaret WINELIB_NAME(ShowCaret)
9307 INT16       WINAPI ShowCursor16(BOOL16);
9308 INT32       WINAPI ShowCursor32(BOOL32);
9309 #define     ShowCursor WINELIB_NAME(ShowCursor)
9310 void        WINAPI ShowScrollBar16(HWND16,INT16,BOOL16);
9311 BOOL32      WINAPI ShowScrollBar32(HWND32,INT32,BOOL32);
9312 #define     ShowScrollBar WINELIB_NAME(ShowScrollBar)
9313 VOID        WINAPI ShowOwnedPopups16(HWND16,BOOL16);
9314 BOOL32      WINAPI ShowOwnedPopups32(HWND32,BOOL32);
9315 #define     ShowOwnedPopups WINELIB_NAME(ShowOwnedPopups)
9316 BOOL16      WINAPI ShowWindow16(HWND16,INT16);
9317 BOOL32      WINAPI ShowWindow32(HWND32,INT32);
9318 #define     ShowWindow WINELIB_NAME(ShowWindow)
9319 DWORD       WINAPI SizeofResource16(HMODULE16,HRSRC16);
9320 DWORD       WINAPI SizeofResource32(HMODULE32,HRSRC32);
9321 #define     SizeofResource WINELIB_NAME(SizeofResource)
9322 INT16       WINAPI StartDoc16(HDC16,const DOCINFO16*);
9323 INT32       WINAPI StartDoc32A(HDC32,const DOCINFO32A*);
9324 INT32       WINAPI StartDoc32W(HDC32,const DOCINFO32W*);
9325 #define     StartDoc WINELIB_NAME_AW(StartDoc)
9326 INT16       WINAPI StartSound16(void);
9327 VOID        WINAPI StartSound32(void);
9328 #define     StartSound WINELIB_NAME(StartSound)
9329 INT16       WINAPI StopSound16(void);
9330 VOID        WINAPI StopSound32(void);
9331 #define     StopSound WINELIB_NAME(StopSound)
9332 BOOL16      WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,
9333                                 INT16,INT16,INT16,DWORD);
9334 BOOL32      WINAPI StretchBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,
9335                                 INT32,INT32,INT32,DWORD);
9336 #define     StretchBlt WINELIB_NAME(StretchBlt)
9337 INT16       WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
9338                        INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD);
9339 INT32       WINAPI StretchDIBits32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,
9340                        INT32,INT32,const VOID*,const BITMAPINFO*,UINT32,DWORD);
9341 #define     StretchDIBits WINELIB_NAME(StretchDIBits)
9342 BOOL16      WINAPI SubtractRect16(LPRECT16,const RECT16*,const RECT16*);
9343 BOOL32      WINAPI SubtractRect32(LPRECT32,const RECT32*,const RECT32*);
9344 #define     SubtractRect WINELIB_NAME(SubtractRect)
9345 BOOL32      WINAPI SwapBuffers(HDC32);
9346 BOOL16      WINAPI SwapMouseButton16(BOOL16);
9347 BOOL32      WINAPI SwapMouseButton32(BOOL32);
9348 #define     SwapMouseButton WINELIB_NAME(SwapMouseButton)
9349 VOID        WINAPI SwitchToThisWindow16(HWND16,BOOL16);
9350 VOID        WINAPI SwitchToThisWindow32(HWND32,BOOL32);
9351 #define     SwitchToThisWindow WINELIB_NAME(SwitchToThisWindow)
9352 INT16       WINAPI SyncAllVoices16(void);
9353 DWORD       WINAPI SyncAllVoices32(void);
9354 #define     SyncAllVoices WINELIB_NAME(SyncAllVoices)
9355 BOOL16      WINAPI SystemParametersInfo16(UINT16,UINT16,LPVOID,UINT16);
9356 BOOL32      WINAPI SystemParametersInfo32A(UINT32,UINT32,LPVOID,UINT32);
9357 BOOL32      WINAPI SystemParametersInfo32W(UINT32,UINT32,LPVOID,UINT32);
9358 #define     SystemParametersInfo WINELIB_NAME_AW(SystemParametersInfo)
9359 LONG        WINAPI TabbedTextOut16(HDC16,INT16,INT16,LPCSTR,INT16,INT16,const INT16*,INT16);
9360 LONG        WINAPI TabbedTextOut32A(HDC32,INT32,INT32,LPCSTR,INT32,INT32,const INT32*,INT32);
9361 LONG        WINAPI TabbedTextOut32W(HDC32,INT32,INT32,LPCWSTR,INT32,INT32,const INT32*,INT32);
9362 #define     TabbedTextOut WINELIB_NAME_AW(TabbedTextOut)
9363 BOOL16      WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
9364 BOOL32      WINAPI TextOut32A(HDC32,INT32,INT32,LPCSTR,INT32);
9365 BOOL32      WINAPI TextOut32W(HDC32,INT32,INT32,LPCWSTR,INT32);
9366 #define     TextOut WINELIB_NAME_AW(TextOut)
9367 INT16       WINAPI ToAscii16(UINT16,UINT16,LPBYTE,LPVOID,UINT16);
9368 INT32       WINAPI ToAscii32(UINT32,UINT32,LPBYTE,LPWORD,UINT32);
9369 #define     ToAscii WINELIB_NAME(ToAscii)
9370 BOOL16      WINAPI TrackPopupMenu16(HMENU16,UINT16,INT16,INT16,INT16,HWND16,const RECT16*);
9371 BOOL32      WINAPI TrackPopupMenu32(HMENU32,UINT32,INT32,INT32,INT32,HWND32,const RECT32*);
9372 #define     TrackPopupMenu WINELIB_NAME(TrackPopupMenu)
9373 INT16       WINAPI TranslateAccelerator16(HWND16,HACCEL16,LPMSG16);
9374 INT32       WINAPI TranslateAccelerator32(HWND32,HACCEL32,LPMSG32);
9375 #define     TranslateAccelerator WINELIB_NAME(TranslateAccelerator)
9376 BOOL16      WINAPI TranslateMDISysAccel16(HWND16,LPMSG16);
9377 BOOL32      WINAPI TranslateMDISysAccel32(HWND32,LPMSG32);
9378 #define     TranslateMDISysAccel WINELIB_NAME(TranslateMDISysAccel)
9379 BOOL16      WINAPI TranslateMessage16(const MSG16*);
9380 BOOL32      WINAPI TranslateMessage32(const MSG32*);
9381 #define     TranslateMessage WINELIB_NAME(TranslateMessage)
9382 INT16       WINAPI TransmitCommChar16(INT16,CHAR);
9383 BOOL32      WINAPI TransmitCommChar32(INT32,CHAR);
9384 #define     TransmitCommChar WINELIB_NAME(TransmitCommChar)
9385 BOOL16      WINAPI UnhookWindowsHook16(INT16,HOOKPROC16);
9386 BOOL32      WINAPI UnhookWindowsHook32(INT32,HOOKPROC32);
9387 #define     UnhookWindowsHook WINELIB_NAME(UnhookWindowsHook)
9388 BOOL16      WINAPI UnhookWindowsHookEx16(HHOOK);
9389 BOOL32      WINAPI UnhookWindowsHookEx32(HHOOK);
9390 #define     UnhookWindowsHookEx WINELIB_NAME(UnhookWindowsHookEx)
9391 BOOL16      WINAPI UnionRect16(LPRECT16,const RECT16*,const RECT16*);
9392 BOOL32      WINAPI UnionRect32(LPRECT32,const RECT32*,const RECT32*);
9393 #define     UnionRect WINELIB_NAME(UnionRect)
9394 void        WINAPI UnlockSegment16(HGLOBAL16);
9395 #define     UnlockSegment32(handle) GlobalUnfix((HANDLE32)(handle))
9396 #define     UnlockSegment WINELIB_NAME(UnlockSegment)
9397 BOOL16      WINAPI UnrealizeObject16(HGDIOBJ16);
9398 BOOL32      WINAPI UnrealizeObject32(HGDIOBJ32);
9399 #define     UnrealizeObject WINELIB_NAME(UnrealizeObject)
9400 BOOL16      WINAPI UnregisterClass16(SEGPTR,HINSTANCE16);
9401 BOOL32      WINAPI UnregisterClass32A(LPCSTR,HINSTANCE32);
9402 BOOL32      WINAPI UnregisterClass32W(LPCWSTR,HINSTANCE32);
9403 #define     UnregisterClass WINELIB_NAME_AW(UnregisterClass)
9404 INT16       WINAPI UpdateColors16(HDC16);
9405 BOOL32      WINAPI UpdateColors32(HDC32);
9406 #define     UpdateColors WINELIB_NAME(UpdateColors)
9407 VOID        WINAPI UpdateWindow16(HWND16);
9408 VOID        WINAPI UpdateWindow32(HWND32);
9409 #define     UpdateWindow WINELIB_NAME(UpdateWindow)
9410 VOID        WINAPI ValidateRect16(HWND16,const RECT16*);
9411 VOID        WINAPI ValidateRect32(HWND32,const RECT32*);
9412 #define     ValidateRect WINELIB_NAME(ValidateRect)
9413 VOID        WINAPI ValidateRgn16(HWND16,HRGN16);
9414 VOID        WINAPI ValidateRgn32(HWND32,HRGN32);
9415 #define     ValidateRgn WINELIB_NAME(ValidateRgn)
9416 DWORD       WINAPI VerFindFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*,LPSTR,UINT16*);
9417 DWORD       WINAPI VerFindFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*,LPSTR,UINT32*);
9418 DWORD       WINAPI VerFindFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*,LPWSTR,UINT32*);
9419 #define     VerFindFile WINELIB_NAME_AW(VerFindFile)
9420 DWORD       WINAPI VerInstallFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*);
9421 DWORD       WINAPI VerInstallFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*);
9422 DWORD       WINAPI VerInstallFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*);
9423 #define     VerInstallFile WINELIB_NAME_AW(VerInstallFile)
9424 DWORD       WINAPI VerLanguageName16(UINT16,LPSTR,UINT16);
9425 DWORD       WINAPI VerLanguageName32A(UINT32,LPSTR,UINT32);
9426 DWORD       WINAPI VerLanguageName32W(UINT32,LPWSTR,UINT32);
9427 #define     VerLanguageName WINELIB_NAME_AW(VerLanguageName)
9428 DWORD       WINAPI VerQueryValue16(SEGPTR,LPCSTR,SEGPTR*,UINT16*);
9429 DWORD       WINAPI VerQueryValue32A(LPVOID,LPCSTR,LPVOID*,UINT32*);
9430 DWORD       WINAPI VerQueryValue32W(LPVOID,LPCWSTR,LPVOID*,UINT32*);
9431 #define     VerQueryValue WINELIB_NAME_AW(VerQueryValue)
9432 WORD        WINAPI VkKeyScan16(CHAR);
9433 WORD        WINAPI VkKeyScan32A(CHAR);
9434 WORD        WINAPI VkKeyScan32W(WCHAR);
9435 #define     VkKeyScan WINELIB_NAME_AW(VkKeyScan)
9436 INT16       WINAPI WaitSoundState16(INT16);
9437 DWORD       WINAPI WaitSoundState32(DWORD);
9438 #define     WaitSoundState WINELIB_NAME(WaitSoundState)
9439 HWND16      WINAPI WindowFromDC16(HDC16);
9440 HWND32      WINAPI WindowFromDC32(HDC32);
9441 #define     WindowFromDC WINELIB_NAME(WindowFromDC)
9442 HWND16      WINAPI WindowFromPoint16(POINT16);
9443 HWND32      WINAPI WindowFromPoint32(POINT32);
9444 #define     WindowFromPoint WINELIB_NAME(WindowFromPoint)
9445 BOOL16      WINAPI WritePrivateProfileSection16(LPCSTR,LPCSTR,LPCSTR);
9446 BOOL32      WINAPI WritePrivateProfileSection32A(LPCSTR,LPCSTR,LPCSTR);
9447 BOOL32      WINAPI WritePrivateProfileSection32W(LPCWSTR,LPCWSTR,LPCWSTR);
9448 #define     WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection)
9449 BOOL16      WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
9450 BOOL32      WINAPI WritePrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
9451 BOOL32      WINAPI WritePrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
9452 BOOL32       WINAPI WriteProfileSection32A(LPCSTR,LPCSTR);
9453 BOOL32       WINAPI WriteProfileSection32W(LPCWSTR,LPCWSTR);
9454 #define     WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString)
9455 BOOL16      WINAPI WritePrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
9456 BOOL32      WINAPI WritePrivateProfileStruct32A(LPCSTR,LPCSTR,LPVOID,UINT32,LPCSTR);
9457 BOOL32      WINAPI WritePrivateProfileStruct32W(LPCWSTR,LPCWSTR,LPVOID,UINT32,LPCWSTR);
9458 #define     WritePrivateProfileStruct WINELIB_NAME_AW(WritePrivateProfileStruct)
9459 BOOL16      WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR);
9460 BOOL32      WINAPI WriteProfileString32A(LPCSTR,LPCSTR,LPCSTR);
9461 BOOL32      WINAPI WriteProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR);
9462 #define     WriteProfileString WINELIB_NAME_AW(WriteProfileString)
9463 VOID        WINAPI Yield16(void);
9464 #define     Yield32()
9465 #define     Yield WINELIB_NAME(Yield)
9466 SEGPTR      WINAPI lstrcat16(SEGPTR,LPCSTR);
9467 LPSTR       WINAPI lstrcat32A(LPSTR,LPCSTR);
9468 LPWSTR      WINAPI lstrcat32W(LPWSTR,LPCWSTR);
9469 #define     lstrcat WINELIB_NAME_AW(lstrcat)
9470 SEGPTR      WINAPI lstrcatn16(SEGPTR,LPCSTR,INT16);
9471 LPSTR       WINAPI lstrcatn32A(LPSTR,LPCSTR,INT32);
9472 LPWSTR      WINAPI lstrcatn32W(LPWSTR,LPCWSTR,INT32);
9473 #define     lstrcatn WINELIB_NAME_AW(lstrcatn)
9474 INT16       WINAPI lstrcmp16(LPCSTR,LPCSTR);
9475 INT32       WINAPI lstrcmp32A(LPCSTR,LPCSTR);
9476 INT32       WINAPI lstrcmp32W(LPCWSTR,LPCWSTR);
9477 #define     lstrcmp WINELIB_NAME_AW(lstrcmp)
9478 INT16       WINAPI lstrcmpi16(LPCSTR,LPCSTR);
9479 INT32       WINAPI lstrcmpi32A(LPCSTR,LPCSTR);
9480 INT32       WINAPI lstrcmpi32W(LPCWSTR,LPCWSTR);
9481 #define     lstrcmpi WINELIB_NAME_AW(lstrcmpi)
9482 SEGPTR      WINAPI lstrcpy16(SEGPTR,LPCSTR);
9483 LPSTR       WINAPI lstrcpy32A(LPSTR,LPCSTR);
9484 LPWSTR      WINAPI lstrcpy32W(LPWSTR,LPCWSTR);
9485 #define     lstrcpy WINELIB_NAME_AW(lstrcpy)
9486 SEGPTR      WINAPI lstrcpyn16(SEGPTR,LPCSTR,INT16);
9487 LPSTR       WINAPI lstrcpyn32A(LPSTR,LPCSTR,INT32);
9488 LPWSTR      WINAPI lstrcpyn32W(LPWSTR,LPCWSTR,INT32);
9489 #define     lstrcpyn WINELIB_NAME_AW(lstrcpyn)
9490 INT16       WINAPI lstrlen16(LPCSTR);
9491 INT32       WINAPI lstrlen32A(LPCSTR);
9492 INT32       WINAPI lstrlen32W(LPCWSTR);
9493 #define     lstrlen WINELIB_NAME_AW(lstrlen)
9494 HINSTANCE16 WINAPI WinExec16(LPCSTR,UINT16);
9495 HINSTANCE32 WINAPI WinExec32(LPCSTR,UINT32);
9496 #define     WinExec WINELIB_NAME(WinExec)
9497 BOOL16      WINAPI WinHelp16(HWND16,LPCSTR,UINT16,DWORD);
9498 BOOL32      WINAPI WinHelp32A(HWND32,LPCSTR,UINT32,DWORD);
9499 BOOL32      WINAPI WinHelp32W(HWND32,LPCWSTR,UINT32,DWORD);
9500 #define     WinHelp WINELIB_NAME_AW(WinHelp)
9501 UINT16      WINAPI WNetAddConnection16(LPCSTR,LPCSTR,LPCSTR);
9502 UINT32      WINAPI WNetAddConnection32A(LPCSTR,LPCSTR,LPCSTR);
9503 UINT32      WINAPI WNetAddConnection32W(LPCWSTR,LPCWSTR,LPCWSTR);
9504 #define     WNetAddConnection WINELIB_NAME_AW(WNetAddConnection)
9505 INT16       WINAPIV wsnprintf16(LPSTR,UINT16,LPCSTR,...);
9506 INT32       WINAPIV wsnprintf32A(LPSTR,UINT32,LPCSTR,...);
9507 INT32       WINAPIV wsnprintf32W(LPWSTR,UINT32,LPCWSTR,...);
9508 #define     wsnprintf WINELIB_NAME_AW(wsnprintf)
9509 INT16       WINAPIV wsprintf16(LPSTR,LPCSTR,...);
9510 INT32       WINAPIV wsprintf32A(LPSTR,LPCSTR,...);
9511 INT32       WINAPIV wsprintf32W(LPWSTR,LPCWSTR,...);
9512 #define     wsprintf WINELIB_NAME_AW(wsprintf)
9513 INT16       WINAPI wvsnprintf16(LPSTR,UINT16,LPCSTR,LPCVOID);
9514 INT32       WINAPI wvsnprintf32A(LPSTR,UINT32,LPCSTR,va_list);
9515 INT32       WINAPI wvsnprintf32W(LPWSTR,UINT32,LPCWSTR,va_list);
9516 #define     wvsnprintf WINELIB_NAME_AW(wvsnprintf)
9517 INT16       WINAPI wvsprintf16(LPSTR,LPCSTR,LPCVOID);
9518 INT32       WINAPI wvsprintf32A(LPSTR,LPCSTR,va_list);
9519 INT32       WINAPI wvsprintf32W(LPWSTR,LPCWSTR,va_list);
9520 #define     wvsprintf WINELIB_NAME_AW(wvsprintf)
9521 LONG        WINAPI _hread16(HFILE16,LPVOID,LONG);
9522 LONG        WINAPI _hread32(HFILE32,LPVOID,LONG);
9523 #define     _hread WINELIB_NAME(_hread)
9524 LONG        WINAPI _hwrite16(HFILE16,LPCSTR,LONG);
9525 LONG        WINAPI _hwrite32(HFILE32,LPCSTR,LONG);
9526 #define     _hwrite WINELIB_NAME(_hwrite)
9527 HFILE16     WINAPI _lcreat16(LPCSTR,INT16);
9528 HFILE32     WINAPI _lcreat32(LPCSTR,INT32);
9529 #define     _lcreat WINELIB_NAME(_lcreat)
9530 HFILE16     WINAPI _lclose16(HFILE16);
9531 HFILE32     WINAPI _lclose32(HFILE32);
9532 #define     _lclose WINELIB_NAME(_lclose)
9533 LONG        WINAPI _llseek16(HFILE16,LONG,INT16);
9534 LONG        WINAPI _llseek32(HFILE32,LONG,INT32);
9535 #define     _llseek WINELIB_NAME(_llseek)
9536 HFILE16     WINAPI _lopen16(LPCSTR,INT16);
9537 HFILE32     WINAPI _lopen32(LPCSTR,INT32);
9538 #define     _lopen WINELIB_NAME(_lopen)
9539 UINT16      WINAPI _lread16(HFILE16,LPVOID,UINT16);
9540 UINT32      WINAPI _lread32(HFILE32,LPVOID,UINT32);
9541 #define     _lread WINELIB_NAME(_lread)
9542 UINT16      WINAPI _lwrite16(HFILE16,LPCSTR,UINT16);
9543 UINT32      WINAPI _lwrite32(HFILE32,LPCSTR,UINT32);
9544 #define     _lwrite WINELIB_NAME(_lwrite)
9545
9546 /* Extra functions that don't exist in the Windows API */
9547
9548 HPEN16      WINAPI GetSysColorPen16(INT16);
9549 HPEN32      WINAPI GetSysColorPen32(INT32);
9550 INT32       WINAPI LoadMessage32A(HMODULE32,UINT32,WORD,LPSTR,INT32);
9551 INT32       WINAPI LoadMessage32W(HMODULE32,UINT32,WORD,LPWSTR,INT32);
9552 UINT32      WINAPI WIN16_GetTempDrive(BYTE);
9553 SEGPTR      WINAPI WIN16_GlobalLock16(HGLOBAL16);
9554 SEGPTR      WINAPI WIN16_LockResource16(HGLOBAL16);
9555 LONG        WINAPI WIN16_hread(HFILE16,SEGPTR,LONG);
9556 UINT16      WINAPI WIN16_lread(HFILE16,SEGPTR,UINT16);
9557 INT32       WINAPI lstrncmp32A(LPCSTR,LPCSTR,INT32);
9558 INT32       WINAPI lstrncmp32W(LPCWSTR,LPCWSTR,INT32);
9559 INT32       WINAPI lstrncmpi32A(LPCSTR,LPCSTR,INT32);
9560 INT32       WINAPI lstrncmpi32W(LPCWSTR,LPCWSTR,INT32);
9561 LPWSTR      WINAPI lstrcpyAtoW(LPWSTR,LPCSTR);
9562 LPSTR       WINAPI lstrcpyWtoA(LPSTR,LPCWSTR);
9563 LPWSTR      WINAPI lstrcpynAtoW(LPWSTR,LPCSTR,INT32);
9564 LPSTR       WINAPI lstrcpynWtoA(LPSTR,LPCWSTR,INT32);
9565
9566 #ifdef __cplusplus
9567 }
9568 #endif
9569
9570 #endif  /* __WINE_WINDOWS_H */