Release 950901
[wine] / include / windows.h
1 /* Initial draft attempt of windows.h, by Peter MacDonald, pmacdona@sanjuan.uvic.ca */
2
3 #ifndef WINDOWS_H
4 #define WINDOWS_H
5
6 #include "wintypes.h"
7
8 #ifndef WINELIB
9 #pragma pack(1)
10 #endif
11
12 typedef struct { 
13         INT x;
14         INT y; 
15 } POINT;
16 typedef POINT *PPOINT;
17 typedef POINT *NPPOINT;
18 typedef POINT *LPPOINT;
19
20 typedef struct 
21 {
22     INT cx;
23     INT cy;
24 } SIZE, *LPSIZE;
25
26 #define MAKEPOINT(l) (*((POINT *)&(l)))
27
28 #define MAKELPARAM(low, high) ((LONG)(((WORD)(low)) | \
29                               (((DWORD)((WORD)(high))) << 16)))
30
31 typedef struct { INT left, top, right, bottom; } RECT;
32 typedef RECT *LPRECT;
33 typedef RECT *NPRECT;
34 typedef RECT *PRECT;
35
36 typedef struct {
37         HDC hdc;
38         BOOL    fErase;
39         RECT    rcPaint;
40         BOOL    fRestore, fIncUpdate;
41         BYTE    rgbReserved[16];
42 } PAINTSTRUCT;
43
44 typedef PAINTSTRUCT *PPAINTSTRUCT;
45 typedef PAINTSTRUCT *NPPAINTSTRUCT;
46 typedef PAINTSTRUCT *LPPAINTSTRUCT;
47
48
49   /* Window classes */
50
51 typedef struct {
52         WORD    style;
53         WNDPROC lpfnWndProc WINE_PACKED;
54         INT     cbClsExtra, cbWndExtra;
55         HANDLE  hInstance;
56         HICON   hIcon;
57         HCURSOR hCursor;
58         HBRUSH  hbrBackground;
59         SEGPTR  lpszMenuName WINE_PACKED;
60         SEGPTR  lpszClassName WINE_PACKED;
61 } WNDCLASS, *LPWNDCLASS;
62
63 #define CS_VREDRAW          0x0001
64 #define CS_HREDRAW          0x0002
65 #define CS_KEYCVTWINDOW     0x0004
66 #define CS_DBLCLKS          0x0008
67 #define CS_OWNDC            0x0020
68 #define CS_CLASSDC          0x0040
69 #define CS_PARENTDC         0x0080
70 #define CS_NOKEYCVT         0x0100
71 #define CS_NOCLOSE          0x0200
72 #define CS_SAVEBITS         0x0800
73 #define CS_BYTEALIGNCLIENT  0x1000
74 #define CS_BYTEALIGNWINDOW  0x2000
75 #define CS_GLOBALCLASS      0x4000
76
77   /* Offsets for GetClassLong() and GetClassWord() */
78 #define GCL_MENUNAME        (-8)
79 #define GCW_HBRBACKGROUND   (-10)
80 #define GCW_HCURSOR         (-12)
81 #define GCW_HICON           (-14)
82 #define GCW_HMODULE         (-16)
83 #define GCW_CBWNDEXTRA      (-18)
84 #define GCW_CBCLSEXTRA      (-20)
85 #define GCL_WNDPROC         (-24)
86 #define GCW_STYLE           (-26)
87 #define GCW_ATOM            (-32)
88
89   /* Windows */
90
91 typedef struct {
92     void *    lpCreateParams;
93     HINSTANCE hInstance;
94     HMENU     hMenu;
95     HWND      hwndParent;
96     INT       cy;
97     INT       cx;
98     INT       y;
99     INT       x;
100     LONG      style WINE_PACKED;
101     char *    lpszName WINE_PACKED;
102     char *    lpszClass WINE_PACKED;
103     DWORD     dwExStyle WINE_PACKED;
104 } CREATESTRUCT, *LPCREATESTRUCT;
105
106 typedef struct 
107 {
108     HMENU     hWindowMenu;
109     WORD      idFirstChild;
110 } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
111
112 typedef struct
113 {
114     LPSTR     szClass;
115     LPSTR     szTitle;
116     HANDLE    hOwner;
117     INT       x;
118     INT       y;
119     INT       cx;
120     INT       cy;
121     LONG      style WINE_PACKED;
122     LONG      lParam WINE_PACKED;
123 } MDICREATESTRUCT, *LPMDICREATESTRUCT;
124
125   /* Offsets for GetWindowLong() and GetWindowWord() */
126 #define GWL_EXSTYLE         (-20)
127 #define GWL_STYLE           (-16)
128 #define GWW_ID              (-12)
129 #define GWW_HWNDPARENT      (-8)
130 #define GWW_HINSTANCE       (-6)
131 #define GWL_WNDPROC         (-4)
132 #define DWL_MSGRESULT       0
133 #define DWL_DLGPROC         4
134 #define DWL_USER            8
135
136   /* GetWindow() constants */
137 #define GW_HWNDFIRST    0
138 #define GW_HWNDLAST     1
139 #define GW_HWNDNEXT     2
140 #define GW_HWNDPREV     3
141 #define GW_OWNER        4
142 #define GW_CHILD        5
143
144   /* WM_GETMINMAXINFO struct */
145 typedef struct
146 {
147     POINT   ptReserved;
148     POINT   ptMaxSize;
149     POINT   ptMaxPosition;
150     POINT   ptMinTrackSize;
151     POINT   ptMaxTrackSize;
152 } MINMAXINFO;
153
154   /* RedrawWindow() flags */
155 #define RDW_INVALIDATE       0x0001
156 #define RDW_INTERNALPAINT    0x0002
157 #define RDW_ERASE            0x0004
158 #define RDW_VALIDATE         0x0008
159 #define RDW_NOINTERNALPAINT  0x0010
160 #define RDW_NOERASE          0x0020
161 #define RDW_NOCHILDREN       0x0040
162 #define RDW_ALLCHILDREN      0x0080
163 #define RDW_UPDATENOW        0x0100
164 #define RDW_ERASENOW         0x0200
165 #define RDW_FRAME            0x0400
166 #define RDW_NOFRAME          0x0800
167
168   /* WM_WINDOWPOSCHANGING/CHANGED struct */
169 typedef struct
170 {
171     HWND    hwnd;
172     HWND    hwndInsertAfter;
173     int     x;
174     int     y;
175     int     cx;
176     int     cy;
177     UINT    flags;
178 } WINDOWPOS;
179
180   /* SetWindowPlacement() struct */
181 typedef struct
182 {
183     UINT   length;
184     UINT   flags;
185     UINT   showCmd;
186     POINT  ptMinPosition WINE_PACKED;
187     POINT  ptMaxPosition WINE_PACKED;
188     RECT   rcNormalPosition WINE_PACKED;
189 } WINDOWPLACEMENT, *LPWINDOWPLACEMENT;
190
191   /* WINDOWPLACEMENT flags */
192 #define WPF_SETMINPOSITION      0x0001
193 #define WPF_RESTORETOMAXIMIZED  0x0002
194
195   /* WM_MOUSEACTIVATE return values */
196 #define MA_ACTIVATE             1
197 #define MA_ACTIVATEANDEAT       2
198 #define MA_NOACTIVATE           3
199 #define MA_NOACTIVATEANDEAT     4
200
201   /* WM_ACTIVATE wParam values */
202 #define WA_INACTIVE             0
203 #define WA_ACTIVE               1
204 #define WA_CLICKACTIVE          2
205
206   /* WM_NCCALCSIZE parameter structure */
207 typedef struct
208 {
209     RECT           rgrc[3];
210     WINDOWPOS FAR* lppos;
211 } NCCALCSIZE_PARAMS;
212
213   /* WM_NCCALCSIZE return flags */
214 #define WVR_ALIGNTOP        0x0010
215 #define WVR_ALIGNLEFT       0x0020
216 #define WVR_ALIGNBOTTOM     0x0040
217 #define WVR_ALIGNRIGHT      0x0080
218 #define WVR_HREDRAW         0x0100
219 #define WVR_VREDRAW         0x0200
220 #define WVR_REDRAW          (WVR_HREDRAW | WVR_VREDRAW)
221 #define WVR_VALIDRECTS      0x0400
222
223   /* WM_NCHITTEST return codes */
224 #define HTERROR             (-2)
225 #define HTTRANSPARENT       (-1)
226 #define HTNOWHERE           0
227 #define HTCLIENT            1
228 #define HTCAPTION           2
229 #define HTSYSMENU           3
230 #define HTSIZE              4
231 #define HTMENU              5
232 #define HTHSCROLL           6
233 #define HTVSCROLL           7
234 #define HTMINBUTTON         8
235 #define HTMAXBUTTON         9
236 #define HTLEFT              10
237 #define HTRIGHT             11
238 #define HTTOP               12
239 #define HTTOPLEFT           13
240 #define HTTOPRIGHT          14
241 #define HTBOTTOM            15
242 #define HTBOTTOMLEFT        16
243 #define HTBOTTOMRIGHT       17
244 #define HTBORDER            18
245 #define HTGROWBOX           HTSIZE
246 #define HTREDUCE            HTMINBUTTON
247 #define HTZOOM              HTMAXBUTTON
248
249   /* WM_SYSCOMMAND parameters */
250 #define SC_SIZE         0xf000
251 #define SC_MOVE         0xf010
252 #define SC_MINIMIZE     0xf020
253 #define SC_MAXIMIZE     0xf030
254 #define SC_NEXTWINDOW   0xf040
255 #define SC_PREVWINDOW   0xf050
256 #define SC_CLOSE        0xf060
257 #define SC_VSCROLL      0xf070
258 #define SC_HSCROLL      0xf080
259 #define SC_MOUSEMENU    0xf090
260 #define SC_KEYMENU      0xf100
261 #define SC_ARRANGE      0xf110
262 #define SC_RESTORE      0xf120
263 #define SC_TASKLIST     0xf130
264 #define SC_SCREENSAVE   0xf140
265 #define SC_HOTKEY       0xf150
266
267 /***** Window hooks *****/
268
269   /* Hook values */
270 #define WH_JOURNALRECORD    0
271 #define WH_JOURNALPLAYBACK  1
272 #define WH_KEYBOARD         2
273 #define WH_GETMESSAGE       3
274 #define WH_CALLWNDPROC      4
275 #define WH_CBT              5
276 #define WH_SYSMSGFILTER     6
277 #define WH_MOUSE            7
278 #define WH_HARDWARE         8
279 #define WH_DEBUG            9
280 #define WH_SHELL           10
281 #define WH_MSGFILTER        (-1)
282
283   /* Hook action codes */
284 #define HC_ACTION           0
285 #define HC_GETNEXT          1
286 #define HC_SKIP             2
287 #define HC_NOREMOVE         3
288 #define HC_NOREM            HC_NOREMOVE
289 #define HC_SYSMODALON       4
290 #define HC_SYSMODALOFF      5
291
292   /* CallMsgFilter() values */
293 #define MSGF_DIALOGBOX      0
294 #define MSGF_MENU           2
295 #define MSGF_MOVE           3
296 #define MSGF_SIZE           4
297 #define MSGF_SCROLLBAR      5
298 #define MSGF_NEXTWINDOW     6
299 #define MSGF_MAINLOOP       8
300 #define MSGF_USER        4096
301
302   /* Journalling hook values */
303 #define HC_GETNEXT          1
304 #define HC_SKIP             2
305 #define HC_NOREMOVE         3
306 #define HC_NOREM            HC_NOREMOVE
307 #define HC_SYSMODALON       4
308 #define HC_SYSMODALOFF      5
309
310   /* Journalling hook structure */
311 typedef struct tagEVENTMSG
312 {
313     UINT    message;
314     UINT    paramL;
315     UINT    paramH;
316     DWORD   time WINE_PACKED;
317 } EVENTMSG, *LPEVENTMSG;
318
319   /* Mouse hook structure */
320 typedef struct tagMOUSEHOOKSTRUCT
321 {
322     POINT   pt;
323     HWND    hwnd;
324     WORD    wHitTestCode;
325     DWORD   dwExtraInfo;
326 } MOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT;
327
328   /* Hardware hook structure */
329 typedef struct tagHARDWAREHOOKSTRUCT
330 {
331     HWND    hWnd;
332     UINT    wMessage;
333     WPARAM  wParam;
334     LPARAM  lParam WINE_PACKED;
335 } HARDWAREHOOKSTRUCT;
336
337   /* CBT hook values */
338 #define HCBT_MOVESIZE       0
339 #define HCBT_MINMAX         1
340 #define HCBT_QS             2
341 #define HCBT_CREATEWND      3
342 #define HCBT_DESTROYWND     4
343 #define HCBT_ACTIVATE       5
344 #define HCBT_CLICKSKIPPED   6
345 #define HCBT_KEYSKIPPED     7
346 #define HCBT_SYSCOMMAND     8
347 #define HCBT_SETFOCUS       9
348
349   /* CBT hook structures */
350 typedef struct tagCBT_CREATEWND
351 {
352     CREATESTRUCT *lpcs;
353     HWND          hwndInsertAfter;
354 } CBT_CREATEWND, *LPCBT_CREATEWND;
355
356 typedef struct tagCBTACTIVATESTRUCT
357 {
358     BOOL    fMouse;
359     HWND    hWndActive;
360 } CBTACTIVATESTRUCT;
361
362   /* Shell hook values */
363 #define HSHELL_WINDOWCREATED       1
364 #define HSHELL_WINDOWDESTROYED     2
365 #define HSHELL_ACTIVATESHELLWINDOW 3
366
367   /* Debug hook structure */
368 typedef struct tagDEBUGHOOKINFO
369 {
370     HANDLE      hModuleHook;
371     LPARAM      reserved WINE_PACKED;
372     LPARAM      lParam WINE_PACKED;
373     WPARAM      wParam;
374     short       code;
375 } DEBUGHOOKINFO, *LPDEBUGHOOKINFO;
376
377
378 /***** Dialogs *****/
379
380   /* cbWndExtra bytes for dialog class */
381 #define DLGWINDOWEXTRA      30
382
383   /* Dialog styles */
384 #define DS_ABSALIGN         0x001
385 #define DS_SYSMODAL         0x002
386 #define DS_LOCALEDIT        0x020
387 #define DS_SETFONT          0x040
388 #define DS_MODALFRAME       0x080
389 #define DS_NOIDLEMSG        0x100
390
391   /* Dialog messages */
392 #define DM_GETDEFID         (WM_USER+0)
393 #define DM_SETDEFID         (WM_USER+1)
394
395 #define DC_HASDEFID         0x534b
396
397   /* WM_GETDLGCODE values */
398 #define DLGC_WANTARROWS      0x0001
399 #define DLGC_WANTTAB         0x0002
400 #define DLGC_WANTALLKEYS     0x0004
401 #define DLGC_WANTMESSAGE     0x0004
402 #define DLGC_HASSETSEL       0x0008
403 #define DLGC_DEFPUSHBUTTON   0x0010
404 #define DLGC_UNDEFPUSHBUTTON 0x0020
405 #define DLGC_RADIOBUTTON     0x0040
406 #define DLGC_WANTCHARS       0x0080
407 #define DLGC_STATIC          0x0100
408 #define DLGC_BUTTON          0x2000
409
410 /* Standard dialog button IDs */
411 #define IDOK                1
412 #define IDCANCEL            2
413 #define IDABORT             3
414 #define IDRETRY             4
415 #define IDIGNORE            5
416 #define IDYES               6
417 #define IDNO                7
418
419
420 typedef struct tagMSG
421 {
422   HWND    hwnd;
423   WORD    message;
424   WORD    wParam;
425   DWORD   lParam WINE_PACKED;
426   DWORD   time WINE_PACKED;
427   POINT   pt WINE_PACKED;
428 } MSG, *LPMSG;
429         
430 typedef WORD ATOM;
431
432 #define MAKEINTATOM(i)   ((SEGPTR)MAKELONG((i),0))
433
434   /* Raster operations */
435
436 #define R2_BLACK         1
437 #define R2_NOTMERGEPEN   2
438 #define R2_MASKNOTPEN    3
439 #define R2_NOTCOPYPEN    4
440 #define R2_MASKPENNOT    5
441 #define R2_NOT           6
442 #define R2_XORPEN        7
443 #define R2_NOTMASKPEN    8
444 #define R2_MASKPEN       9
445 #define R2_NOTXORPEN    10
446 #define R2_NOP          11
447 #define R2_MERGENOTPEN  12
448 #define R2_COPYPEN      13
449 #define R2_MERGEPENNOT  14
450 #define R2_MERGEPEN     15
451 #define R2_WHITE        16
452
453 #define SRCCOPY         0xcc0020
454 #define SRCPAINT        0xee0086
455 #define SRCAND          0x8800c6
456 #define SRCINVERT       0x660046
457 #define SRCERASE        0x440328
458 #define NOTSRCCOPY      0x330008
459 #define NOTSRCERASE     0x1100a6
460 #define MERGECOPY       0xc000ca
461 #define MERGEPAINT      0xbb0226
462 #define PATCOPY         0xf00021
463 #define PATPAINT        0xfb0a09
464 #define PATINVERT       0x5a0049
465 #define DSTINVERT       0x550009
466 #define BLACKNESS       0x000042
467 #define WHITENESS       0xff0062
468
469   /* StretchBlt() modes */
470 #define BLACKONWHITE         1
471 #define WHITEONBLACK         2
472 #define COLORONCOLOR         3
473
474 #define STRETCH_ANDSCANS     BLACKONWHITE
475 #define STRETCH_ORSCANS      WHITEONBLACK
476 #define STRETCH_DELETESCANS  COLORONCOLOR
477
478
479   /* Colors */
480
481 typedef DWORD COLORREF;
482
483 #define RGB(r,g,b)          ((COLORREF)((r) | ((g) << 8) | ((b) << 16)))
484 #define PALETTERGB(r,g,b)   (0x02000000 | RGB(r,g,b))
485 #define PALETTEINDEX(i)     ((COLORREF)(0x01000000 | (WORD)(i)))
486
487 #define GetRValue(rgb)      ((rgb) & 0xff)
488 #define GetGValue(rgb)      (((rgb) >> 8) & 0xff)
489 #define GetBValue(rgb)      (((rgb) >> 16) & 0xff)
490
491 #define COLOR_SCROLLBAR             0
492 #define COLOR_BACKGROUND            1
493 #define COLOR_ACTIVECAPTION         2
494 #define COLOR_INACTIVECAPTION       3
495 #define COLOR_MENU                  4
496 #define COLOR_WINDOW                5
497 #define COLOR_WINDOWFRAME           6
498 #define COLOR_MENUTEXT              7
499 #define COLOR_WINDOWTEXT            8
500 #define COLOR_CAPTIONTEXT           9
501 #define COLOR_ACTIVEBORDER         10
502 #define COLOR_INACTIVEBORDER       11
503 #define COLOR_APPWORKSPACE         12
504 #define COLOR_HIGHLIGHT            13
505 #define COLOR_HIGHLIGHTTEXT        14
506 #define COLOR_BTNFACE              15
507 #define COLOR_BTNSHADOW            16
508 #define COLOR_GRAYTEXT             17
509 #define COLOR_BTNTEXT              18
510 #define COLOR_INACTIVECAPTIONTEXT  19
511 #define COLOR_BTNHIGHLIGHT         20
512
513   /* WM_CTLCOLOR values */
514 #define CTLCOLOR_MSGBOX             0
515 #define CTLCOLOR_EDIT               1
516 #define CTLCOLOR_LISTBOX            2
517 #define CTLCOLOR_BTN                3
518 #define CTLCOLOR_DLG                4
519 #define CTLCOLOR_SCROLLBAR          5
520 #define CTLCOLOR_STATIC             6
521
522   /* Bitmaps */
523
524 typedef struct tagBITMAP
525 {
526     INT  bmType;
527     INT  bmWidth;
528     INT  bmHeight;
529     INT  bmWidthBytes;
530     BYTE   bmPlanes;
531     BYTE   bmBitsPixel;
532     void * bmBits WINE_PACKED;
533 } BITMAP;
534
535 typedef BITMAP *PBITMAP;
536 typedef BITMAP *NPBITMAP;
537 typedef BITMAP *LPBITMAP;
538
539   /* Brushes */
540
541 typedef struct tagLOGBRUSH
542
543     WORD       lbStyle; 
544     COLORREF   lbColor WINE_PACKED;
545     INT      lbHatch; 
546 } LOGBRUSH, *PLOGBRUSH, *NPLOGBRUSH, *LPLOGBRUSH;
547
548   /* Brush styles */
549 #define BS_SOLID            0
550 #define BS_NULL             1
551 #define BS_HOLLOW           1
552 #define BS_HATCHED          2
553 #define BS_PATTERN          3
554 #define BS_INDEXED          4
555 #define BS_DIBPATTERN       5
556
557   /* Hatch styles */
558 #define HS_HORIZONTAL       0
559 #define HS_VERTICAL         1
560 #define HS_FDIAGONAL        2
561 #define HS_BDIAGONAL        3
562 #define HS_CROSS            4
563 #define HS_DIAGCROSS        5
564
565   /* Fonts */
566
567 #define LF_FACESIZE     32
568 #define LF_FULLFACESIZE 64
569
570 typedef struct tagLOGFONT
571 {
572     INT lfHeight, lfWidth, lfEscapement, lfOrientation, lfWeight;
573     BYTE lfItalic, lfUnderline, lfStrikeOut, lfCharSet;
574     BYTE lfOutPrecision, lfClipPrecision, lfQuality, lfPitchAndFamily;
575     BYTE lfFaceName[LF_FACESIZE] WINE_PACKED;
576 } LOGFONT, *PLOGFONT, *NPLOGFONT, *LPLOGFONT;
577
578 typedef struct tagENUMLOGFONT
579 {
580   LOGFONT elfLogFont;
581   BYTE elfFullName[LF_FULLFACESIZE] WINE_PACKED;
582   BYTE elfStyle[LF_FACESIZE] WINE_PACKED;
583 } ENUMLOGFONT,*PENUMLOGFONT,*NPENUMLOGFONT,*LPENUMLOGFONT;
584
585   /* lfWeight values */
586 #define FW_DONTCARE         0
587 #define FW_THIN             100
588 #define FW_EXTRALIGHT       200
589 #define FW_ULTRALIGHT       200
590 #define FW_LIGHT            300
591 #define FW_NORMAL           400
592 #define FW_REGULAR          400
593 #define FW_MEDIUM           500
594 #define FW_SEMIBOLD         600
595 #define FW_DEMIBOLD         600
596 #define FW_BOLD             700
597 #define FW_EXTRABOLD        800
598 #define FW_ULTRABOLD        800
599 #define FW_HEAVY            900
600 #define FW_BLACK            900
601
602   /* lfCharSet values */
603 #define ANSI_CHARSET          0
604 #define DEFAULT_CHARSET       1
605 #define SYMBOL_CHARSET        2
606 #define SHIFTJIS_CHARSET      128
607 #define OEM_CHARSET           255
608
609   /* lfOutPrecision values */
610 #define OUT_DEFAULT_PRECIS      0
611 #define OUT_STRING_PRECIS       1
612 #define OUT_CHARACTER_PRECIS    2
613 #define OUT_STROKE_PRECIS       3
614 #define OUT_TT_PRECIS           4
615 #define OUT_DEVICE_PRECIS       5
616 #define OUT_RASTER_PRECIS       6
617 #define OUT_TT_ONLY_PRECIS      7
618
619   /* lfClipPrecision values */
620 #define CLIP_DEFAULT_PRECIS     0x00
621 #define CLIP_CHARACTER_PRECIS   0x01
622 #define CLIP_STROKE_PRECIS      0x02
623 #define CLIP_MASK               0x0F
624 #define CLIP_LH_ANGLES          0x10
625 #define CLIP_TT_ALWAYS          0x20
626 #define CLIP_EMBEDDED           0x80
627
628   /* lfQuality values */
629 #define DEFAULT_QUALITY     0
630 #define DRAFT_QUALITY       1
631 #define PROOF_QUALITY       2
632
633   /* lfPitchAndFamily pitch values */
634 #define DEFAULT_PITCH       0x00
635 #define FIXED_PITCH         0x01
636 #define VARIABLE_PITCH      0x02
637 #define FF_DONTCARE         0x00
638 #define FF_ROMAN            0x10
639 #define FF_SWISS            0x20
640 #define FF_MODERN           0x30
641 #define FF_SCRIPT           0x40
642 #define FF_DECORATIVE       0x50
643
644 typedef struct tagTEXTMETRIC
645 {
646     INT     tmHeight;
647     INT     tmAscent;
648     INT     tmDescent;
649     INT     tmInternalLeading;
650     INT     tmExternalLeading;
651     INT     tmAveCharWidth;
652     INT     tmMaxCharWidth;
653     INT     tmWeight;
654     BYTE    tmItalic;
655     BYTE    tmUnderlined;
656     BYTE    tmStruckOut;
657     BYTE    tmFirstChar;
658     BYTE    tmLastChar;
659     BYTE    tmDefaultChar;
660     BYTE    tmBreakChar;
661     BYTE    tmPitchAndFamily;
662     BYTE    tmCharSet;
663     INT     tmOverhang WINE_PACKED;
664     INT     tmDigitizedAspectX WINE_PACKED;
665     INT     tmDigitizedAspectY WINE_PACKED;
666 } TEXTMETRIC, *PTEXTMETRIC, *NPTEXTMETRIC, *LPTEXTMETRIC;
667
668   /* tmPitchAndFamily values */
669 #define TMPF_FIXED_PITCH    1
670 #define TMPF_VECTOR         2
671 #define TMPF_TRUETYPE       4
672 #define TMPF_DEVICE         8
673
674   /* Text alignment */
675 #define TA_NOUPDATECP       0x00
676 #define TA_UPDATECP         0x01
677 #define TA_LEFT             0x00
678 #define TA_RIGHT            0x02
679 #define TA_CENTER           0x06
680 #define TA_TOP              0x00
681 #define TA_BOTTOM           0x08
682 #define TA_BASELINE         0x18
683
684   /* ExtTextOut() parameters */
685 #define ETO_GRAYED          0x01
686 #define ETO_OPAQUE          0x02
687 #define ETO_CLIPPED         0x04
688
689   /* Rasterizer status */
690 typedef struct
691 {
692     WORD nSize;
693     WORD wFlags;
694     WORD nLanguageID;
695 } RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
696
697 #define TT_AVAILABLE        0x0001
698 #define TT_ENABLED          0x0002
699
700 /* Get/SetSystemPaletteUse() values */
701 #define SYSPAL_STATIC   1
702 #define SYSPAL_NOSTATIC 2
703
704 typedef struct tagPALETTEENTRY
705 {
706         BYTE peRed, peGreen, peBlue, peFlags;
707 } PALETTEENTRY, *LPPALETTEENTRY;
708
709 typedef struct tagLOGPALETTE
710
711     WORD           palVersion;
712     WORD           palNumEntries;
713     PALETTEENTRY   palPalEntry[1] WINE_PACKED;
714 } LOGPALETTE, *PLOGPALETTE, *NPLOGPALETTE, *LPLOGPALETTE;
715
716
717   /* Pens */
718
719 typedef struct tagLOGPEN
720 {
721     WORD     lopnStyle; 
722     POINT    lopnWidth WINE_PACKED;
723     COLORREF lopnColor WINE_PACKED;
724 } LOGPEN, *PLOGPEN, *NPLOGPEN, *LPLOGPEN;
725
726 #define PS_SOLID          0
727 #define PS_DASH           1
728 #define PS_DOT            2
729 #define PS_DASHDOT        3
730 #define PS_DASHDOTDOT     4
731 #define PS_NULL           5
732 #define PS_INSIDEFRAME    6
733
734   /* Regions */
735
736 #define ERROR             0
737 #define NULLREGION        1
738 #define SIMPLEREGION      2
739 #define COMPLEXREGION     3
740
741 #define RGN_AND           1
742 #define RGN_OR            2
743 #define RGN_XOR           3
744 #define RGN_DIFF          4
745 #define RGN_COPY          5
746
747   /* Device contexts */
748
749 /* GetDCEx flags */
750 #define DCX_WINDOW           0x00000001
751 #define DCX_CACHE            0x00000002
752 #define DCX_CLIPCHILDREN     0x00000008
753 #define DCX_CLIPSIBLINGS     0x00000010
754 #define DCX_PARENTCLIP       0x00000020
755 #define DCX_EXCLUDERGN       0x00000040
756 #define DCX_INTERSECTRGN     0x00000080
757 #define DCX_LOCKWINDOWUPDATE 0x00000400
758 #define DCX_USESTYLE         0x00010000
759
760   /* Polygon modes */
761 #define ALTERNATE         1
762 #define WINDING           2
763
764   /* Background modes */
765 #define TRANSPARENT       1
766 #define OPAQUE            2
767
768   /* Map modes */
769 #define MM_TEXT           1
770 #define MM_LOMETRIC       2
771 #define MM_HIMETRIC       3
772 #define MM_LOENGLISH      4
773 #define MM_HIENGLISH      5
774 #define MM_TWIPS          6
775 #define MM_ISOTROPIC      7
776 #define MM_ANISOTROPIC    8
777
778   /* Coordinate modes */
779 #define ABSOLUTE          1
780 #define RELATIVE          2
781
782   /* Flood fill modes */
783 #define FLOODFILLBORDER   0
784 #define FLOODFILLSURFACE  1
785
786   /* Device parameters for GetDeviceCaps() */
787 #define DRIVERVERSION     0
788 #define TECHNOLOGY        2
789 #define HORZSIZE          4
790 #define VERTSIZE          6
791 #define HORZRES           8
792 #define VERTRES           10
793 #define BITSPIXEL         12
794 #define PLANES            14
795 #define NUMBRUSHES        16
796 #define NUMPENS           18
797 #define NUMMARKERS        20
798 #define NUMFONTS          22
799 #define NUMCOLORS         24
800 #define PDEVICESIZE       26
801 #define CURVECAPS         28
802 #define LINECAPS          30
803 #define POLYGONALCAPS     32
804 #define TEXTCAPS          34
805 #define CLIPCAPS          36
806 #define RASTERCAPS        38
807 #define ASPECTX           40
808 #define ASPECTY           42
809 #define ASPECTXY          44
810 #define LOGPIXELSX        88
811 #define LOGPIXELSY        90
812 #define SIZEPALETTE       104
813 #define NUMRESERVED       106
814 #define COLORRES          108
815
816 /* TECHNOLOGY */
817 #define DT_PLOTTER        0
818 #define DT_RASDISPLAY     1
819 #define DT_RASPRINTER     2
820 #define DT_RASCAMERA      3
821 #define DT_CHARSTREAM     4
822 #define DT_METAFILE       5
823 #define DT_DISPFILE       6
824
825 /* CURVECAPS */
826 #define CC_NONE           0x0000
827 #define CC_CIRCLES        0x0001
828 #define CC_PIE            0x0002
829 #define CC_CHORD          0x0004
830 #define CC_ELLIPSES       0x0008
831 #define CC_WIDE           0x0010
832 #define CC_STYLED         0x0020
833 #define CC_WIDESTYLED     0x0040
834 #define CC_INTERIORS      0x0080
835 #define CC_ROUNDRECT      0x0100
836
837 /* LINECAPS */
838 #define LC_NONE           0x0000
839 #define LC_POLYLINE       0x0002
840 #define LC_MARKER         0x0004
841 #define LC_POLYMARKER     0x0008
842 #define LC_WIDE           0x0010
843 #define LC_STYLED         0x0020
844 #define LC_WIDESTYLED     0x0040
845 #define LC_INTERIORS      0x0080
846
847 /* POLYGONALCAPS */
848 #define PC_NONE           0x0000
849 #define PC_POLYGON        0x0001
850 #define PC_RECTANGLE      0x0002
851 #define PC_WINDPOLYGON    0x0004
852 #define PC_SCANLINE       0x0008
853 #define PC_WIDE           0x0010
854 #define PC_STYLED         0x0020
855 #define PC_WIDESTYLED     0x0040
856 #define PC_INTERIORS      0x0080
857
858 /* TEXTCAPS */
859 #define TC_OP_CHARACTER   0x0001
860 #define TC_OP_STROKE      0x0002
861 #define TC_CP_STROKE      0x0004
862 #define TC_CR_90          0x0008
863 #define TC_CR_ANY         0x0010
864 #define TC_SF_X_YINDEP    0x0020
865 #define TC_SA_DOUBLE      0x0040
866 #define TC_SA_INTEGER     0x0080
867 #define TC_SA_CONTIN      0x0100
868 #define TC_EA_DOUBLE      0x0200
869 #define TC_IA_ABLE        0x0400
870 #define TC_UA_ABLE        0x0800
871 #define TC_SO_ABLE        0x1000
872 #define TC_RA_ABLE        0x2000
873 #define TC_VA_ABLE        0x4000
874 #define TC_RESERVED       0x8000
875
876 /* CLIPCAPS */
877 #define CP_NONE           0x0000
878 #define CP_RECTANGLE      0x0001
879 #define CP_REGION         0x0002
880
881 /* RASTERCAPS */
882 #define RC_NONE           0x0000
883 #define RC_BITBLT         0x0001
884 #define RC_BANDING        0x0002
885 #define RC_SCALING        0x0004
886 #define RC_BITMAP64       0x0008
887 #define RC_GDI20_OUTPUT   0x0010
888 #define RC_GDI20_STATE    0x0020
889 #define RC_SAVEBITMAP     0x0040
890 #define RC_DI_BITMAP      0x0080
891 #define RC_PALETTE        0x0100
892 #define RC_DIBTODEV       0x0200
893 #define RC_BIGFONT        0x0400
894 #define RC_STRETCHBLT     0x0800
895 #define RC_FLOODFILL      0x1000
896 #define RC_STRETCHDIB     0x2000
897 #define RC_OP_DX_OUTPUT   0x4000
898 #define RC_DEVBITS        0x8000
899
900   /* GetSystemMetrics() codes */
901 #define SM_CXSCREEN            0
902 #define SM_CYSCREEN            1
903 #define SM_CXVSCROLL           2
904 #define SM_CYHSCROLL           3
905 #define SM_CYCAPTION           4
906 #define SM_CXBORDER            5
907 #define SM_CYBORDER            6
908 #define SM_CXDLGFRAME          7
909 #define SM_CYDLGFRAME          8
910 #define SM_CYVTHUMB            9
911 #define SM_CXHTHUMB           10
912 #define SM_CXICON             11
913 #define SM_CYICON             12
914 #define SM_CXCURSOR           13
915 #define SM_CYCURSOR           14
916 #define SM_CYMENU             15
917 #define SM_CXFULLSCREEN       16
918 #define SM_CYFULLSCREEN       17
919 #define SM_CYKANJIWINDOW      18
920 #define SM_MOUSEPRESENT       19
921 #define SM_CYVSCROLL          20
922 #define SM_CXHSCROLL          21
923 #define SM_DEBUG              22
924 #define SM_SWAPBUTTON         23
925 #define SM_RESERVED1          24
926 #define SM_RESERVED2          25
927 #define SM_RESERVED3          26
928 #define SM_RESERVED4          27
929 #define SM_CXMIN              28
930 #define SM_CYMIN              29
931 #define SM_CXSIZE             30
932 #define SM_CYSIZE             31
933 #define SM_CXFRAME            32
934 #define SM_CYFRAME            33
935 #define SM_CXMINTRACK         34
936 #define SM_CYMINTRACK         35
937 #define SM_CXDOUBLECLK        36
938 #define SM_CYDOUBLECLK        37
939 #define SM_CXICONSPACING      38
940 #define SM_CYICONSPACING      39
941 #define SM_MENUDROPALIGNMENT  40
942 #define SM_PENWINDOWS         41
943 #define SM_DBCSENABLED        42
944
945 #define SM_CMETRICS           43
946
947   /* Device-independent bitmaps */
948
949 typedef struct { BYTE rgbBlue, rgbGreen, rgbRed, rgbReserved; } RGBQUAD;
950 typedef struct { BYTE rgbtBlue, rgbtGreen, rgbtRed; } RGBTRIPLE;
951
952 typedef struct
953 {
954     UINT    bfType;
955     DWORD   bfSize WINE_PACKED;
956     UINT    bfReserved1 WINE_PACKED;
957     UINT    bfReserved2 WINE_PACKED;
958     DWORD   bfOffBits WINE_PACKED;
959 } BITMAPFILEHEADER;
960
961 typedef struct tagBITMAPINFOHEADER
962 {
963     DWORD       biSize;
964     DWORD       biWidth;
965     DWORD       biHeight;
966     WORD        biPlanes;
967     WORD        biBitCount;
968     DWORD       biCompression;
969     DWORD       biSizeImage;
970     DWORD       biXPelsPerMeter;
971     DWORD       biYPelsPerMeter;
972     DWORD       biClrUsed;
973     DWORD       biClrImportant;
974 } BITMAPINFOHEADER;
975
976 typedef BITMAPINFOHEADER * LPBITMAPINFOHEADER;
977 typedef BITMAPINFOHEADER * NPBITMAPINFOHEADER;
978 typedef BITMAPINFOHEADER * PBITMAPINFOHEADER;
979
980   /* biCompression */
981 #define BI_RGB           0
982 #define BI_RLE8          1
983 #define BI_RLE4          2
984
985 typedef struct {
986         BITMAPINFOHEADER bmiHeader;
987         RGBQUAD bmiColors[1];
988 } BITMAPINFO;
989 typedef BITMAPINFO *LPBITMAPINFO;
990 typedef BITMAPINFO *NPBITMAPINFO;
991 typedef BITMAPINFO *PBITMAPINFO;
992
993 typedef struct tagBITMAPCOREHEADER
994 {
995     unsigned long bcSize;
996     UINT bcWidth;
997     UINT bcHeight;
998     UINT bcPlanes;
999     UINT bcBitCount;
1000 } BITMAPCOREHEADER;
1001
1002 #define DIB_RGB_COLORS   0
1003 #define DIB_PAL_COLORS   1
1004 #define CBM_INIT         4
1005
1006 typedef struct {
1007         BYTE i;  /* much more .... */
1008 } KANJISTRUCT;
1009 typedef KANJISTRUCT *LPKANJISTRUCT;
1010 typedef KANJISTRUCT *NPKANJISTRUCT;
1011 typedef KANJISTRUCT *PKANJISTRUCT;
1012
1013 typedef struct {
1014         BYTE cBytes, fFixedDisk;
1015         WORD nErrCode;
1016         BYTE reserved[4], szPathName[128];
1017 } OFSTRUCT;
1018 typedef OFSTRUCT *POFSTRUCT;
1019 typedef OFSTRUCT *NPOFSTRUCT;
1020 typedef OFSTRUCT *LPOFSTRUCT;
1021
1022 #define OF_READ 0x0000
1023 #define OF_WRITE 0x0001
1024 #define OF_READWRITE 0x0002
1025 #define OF_CANCEL 0x0800
1026 #define OF_CREATE 0x1000
1027 #define OF_DELETE 0x0200
1028 #define OF_EXIST 0x4000
1029 #define OF_PARSE 0x0100
1030 #define OF_PROMPT 0x2000
1031 #define OF_REOPEN 0x8000
1032 #define OF_SHARE_COMPAT 0x0000
1033 #define OF_SHARE_DENY_NONE 0x0040
1034 #define OF_SHARE_DENY_READ 0x0030
1035 #define OF_SHARE_DENY_WRITE 0x0020
1036 #define OF_SHARE_EXCLUSIVE 0x0010
1037 #define OF_VERIFY 0x0400
1038
1039 #define DRIVE_CANNOTDETERMINE   0
1040 #define DRIVE_DOESNOTEXIST      1
1041 #define DRIVE_REMOVABLE 2
1042 #define DRIVE_FIXED     3
1043 #define DRIVE_REMOTE    4
1044
1045 #define HFILE_ERROR     -1
1046
1047 #define DDL_READWRITE   0x0000
1048 #define DDL_READONLY    0x0001
1049 #define DDL_HIDDEN      0x0002
1050 #define DDL_SYSTEM      0x0004
1051 #define DDL_DIRECTORY   0x0010
1052 #define DDL_ARCHIVE     0x0020
1053
1054 #define DDL_POSTMSGS    0x2000
1055 #define DDL_DRIVES      0x4000
1056 #define DDL_EXCLUSIVE   0x8000
1057
1058 /* comm */
1059
1060 #define CBR_110 0xFF10
1061 #define CBR_300 0xFF11
1062 #define CBR_600 0xFF12
1063 #define CBR_1200        0xFF13
1064 #define CBR_2400        0xFF14
1065 #define CBR_4800        0xFF15
1066 #define CBR_9600        0xFF16
1067 #define CBR_14400       0xFF17
1068 #define CBR_19200       0xFF18
1069 #define CBR_38400       0xFF1B
1070 #define CBR_56000       0xFF1F
1071 #define CBR_128000      0xFF23
1072 #define CBR_256000      0xFF27
1073
1074 #define NOPARITY        0
1075 #define ODDPARITY       1
1076 #define EVENPARITY      2
1077 #define MARKPARITY      3
1078 #define SPACEPARITY     4
1079 #define ONESTOPBIT      0
1080 #define ONE5STOPBITS    1
1081 #define TWOSTOPBITS     2
1082 #define IGNORE          0
1083 #define INFINITE        0xFFFF
1084
1085 #define CE_RXOVER       0x0001
1086 #define CE_OVERRUN      0x0002
1087 #define CE_RXPARITY     0x0004
1088 #define CE_FRAME        0x0008
1089 #define CE_BREAK        0x0010
1090 #define CE_CTSTO        0x0020
1091 #define CE_DSRTO        0x0040
1092 #define CE_RLSDTO       0x0080
1093 #define CE_TXFULL       0x0100
1094 #define CE_PTO          0x0200
1095 #define CE_IOE          0x0400
1096 #define CE_DNS          0x0800
1097 #define CE_OOP          0x1000
1098 #define CE_MODE 0x8000
1099
1100 #define IE_BADID        -1
1101 #define IE_OPEN -2
1102 #define IE_NOPEN        -3
1103 #define IE_MEMORY       -4
1104 #define IE_DEFAULT      -5
1105 #define IE_HARDWARE     -10
1106 #define IE_BYTESIZE     -11
1107 #define IE_BAUDRATE     -12
1108
1109 #define EV_RXCHAR       0x0001
1110 #define EV_RXFLAG       0x0002
1111 #define EV_TXEMPTY      0x0004
1112 #define EV_CTS          0x0008
1113 #define EV_DSR          0x0010
1114 #define EV_RLSD 0x0020
1115 #define EV_BREAK        0x0040
1116 #define EV_ERR          0x0080
1117 #define EV_RING 0x0100
1118 #define EV_PERR 0x0200
1119 #define EV_CTSS 0x0400
1120 #define EV_DSRS 0x0800
1121 #define EV_RLSDS        0x1000
1122 #define EV_RINGTE       0x2000
1123 #define EV_RingTe       EV_RINGTE
1124
1125 #define SETXOFF 1
1126 #define SETXON          2
1127 #define SETRTS          3
1128 #define CLRRTS          4
1129 #define SETDTR          5
1130 #define CLRDTR          6
1131 #define RESETDEV        7
1132 #define GETMAXLPT       8
1133 #define GETMAXCOM       9
1134 #define GETBASEIRQ      10
1135
1136 #define CN_RECEIVE      0x0001
1137 #define CN_TRANSMIT     0x0002
1138 #define CN_EVENT        0x0004
1139
1140 typedef struct tagDCB
1141 {
1142     BYTE Id;
1143     UINT BaudRate WINE_PACKED;
1144     BYTE ByteSize;
1145     BYTE Parity;
1146     BYTE StopBits;
1147     UINT RlsTimeout;
1148     UINT CtsTimeout;
1149     UINT DsrTimeout;
1150
1151     UINT fBinary        :1;
1152     UINT fRtsDisable    :1;
1153     UINT fParity        :1;
1154     UINT fOutxCtsFlow   :1;
1155     UINT fOutxDsrFlow   :1;
1156     UINT fDummy         :2;
1157     UINT fDtrDisable    :1;
1158
1159     UINT fOutX          :1;
1160     UINT fInX           :1;
1161     UINT fPeChar        :1;
1162     UINT fNull          :1;
1163     UINT fChEvt         :1;
1164     UINT fDtrflow       :1;
1165     UINT fRtsflow       :1;
1166     UINT fDummy2        :1;
1167
1168     char XonChar;
1169     char XoffChar;
1170     UINT XonLim;
1171     UINT XoffLim;
1172     char PeChar;
1173     char EofChar;
1174     char EvtChar;
1175     UINT TxDelay WINE_PACKED;
1176 } DCB;
1177 typedef DCB FAR* LPDCB;
1178
1179 typedef struct tagCOMSTAT
1180 {
1181     BYTE status;
1182     UINT cbInQue WINE_PACKED;
1183     UINT cbOutQue WINE_PACKED;
1184 } COMSTAT;
1185
1186 #define CSTF_CTSHOLD    0x01
1187 #define CSTF_DSRHOLD    0x02
1188 #define CSTF_RLSDHOLD   0x04
1189 #define CSTF_XOFFHOLD   0x08
1190 #define CSTF_XOFFSENT   0x10
1191 #define CSTF_EOF        0x20
1192 #define CSTF_TXIM       0x40
1193
1194 /* SystemParametersInfo */
1195
1196 #define SPI_GETBEEP                     1
1197 #define SPI_SETBEEP                     2
1198 #define SPI_GETMOUSE                    3
1199 #define SPI_SETMOUSE                    4
1200 #define SPI_GETBORDER                   5
1201 #define SPI_SETBORDER                   6
1202 #define SPI_GETKEYBOARDSPEED            10
1203 #define SPI_SETKEYBOARDSPEED            11
1204 #define SPI_LANGDRIVER                  12
1205 #define SPI_ICONHORIZONTALSPACING       13
1206 #define SPI_GETSCREENSAVETIMEOUT        14
1207 #define SPI_SETSCREENSAVETIMEOUT        15
1208 #define SPI_GETSCREENSAVEACTIVE         16
1209 #define SPI_SETSCREENSAVEACTIVE         17
1210 #define SPI_GETGRIDGRANULARITY          18
1211 #define SPI_SETGRIDGRANULARITY          19
1212 #define SPI_SETDESKWALLPAPER            20
1213 #define SPI_SETDESKPATTERN              21
1214 #define SPI_GETKEYBOARDDELAY            22
1215 #define SPI_SETKEYBOARDDELAY            23
1216 #define SPI_ICONVERTICALSPACING         24
1217 #define SPI_GETICONTITLEWRAP            25
1218 #define SPI_SETICONTITLEWRAP            26
1219 #define SPI_GETMENUDROPALIGNMENT        27
1220 #define SPI_SETMENUDROPALIGNMENT        28
1221 #define SPI_SETDOUBLECLKWIDTH           29
1222 #define SPI_SETDOUBLECLKHEIGHT          30
1223 #define SPI_GETICONTITLELOGFONT         31
1224 #define SPI_SETDOUBLECLICKTIME          32
1225 #define SPI_SETMOUSEBUTTONSWAP          33
1226 #define SPI_SETICONTITLELOGFONT         34
1227 #define SPI_GETFASTTASKSWITCH           35
1228 #define SPI_SETFASTTASKSWITCH           36
1229
1230 /* SystemParametersInfo flags */
1231
1232 #define SPIF_UPDATEINIFILE              1
1233 #define SPIF_SENDWININICHANGE           2
1234
1235 /* GetFreeSystemResources() parameters */
1236
1237 #define GFSR_SYSTEMRESOURCES   0x0000
1238 #define GFSR_GDIRESOURCES      0x0001
1239 #define GFSR_USERRESOURCES     0x0002
1240
1241 /* GetWinFlags */
1242
1243 #define WF_PMODE        0x0001
1244 #define WF_CPU286       0x0002
1245 #define WF_CPU386       0x0004
1246 #define WF_CPU486       0x0008
1247 #define WF_STANDARD     0x0010
1248 #define WF_WIN286       0x0010
1249 #define WF_ENHANCED     0x0020
1250 #define WF_WIN386       0x0020
1251 #define WF_CPU086       0x0040
1252 #define WF_CPU186       0x0080
1253 #define WF_LARGEFRAME   0x0100
1254 #define WF_SMALLFRAME   0x0200
1255 #define WF_80x87        0x0400
1256 #define WF_PAGING       0x0800
1257 #define WF_WLO          0x8000
1258
1259 #define MAKEINTRESOURCE(i) (SEGPTR)((DWORD)((WORD)(i)))
1260
1261 /* Predefined resource types */
1262 #define RT_CURSOR           MAKEINTRESOURCE(1)
1263 #define RT_BITMAP           MAKEINTRESOURCE(2)
1264 #define RT_ICON             MAKEINTRESOURCE(3)
1265 #define RT_MENU             MAKEINTRESOURCE(4)
1266 #define RT_DIALOG           MAKEINTRESOURCE(5)
1267 #define RT_STRING           MAKEINTRESOURCE(6)
1268 #define RT_FONTDIR          MAKEINTRESOURCE(7)
1269 #define RT_FONT             MAKEINTRESOURCE(8)
1270 #define RT_ACCELERATOR      MAKEINTRESOURCE(9)
1271 #define RT_RCDATA           MAKEINTRESOURCE(10)
1272 #define RT_GROUP_CURSOR     MAKEINTRESOURCE(12)
1273 #define RT_GROUP_ICON       MAKEINTRESOURCE(14)
1274
1275 /* Predefined resources */
1276 #define IDI_APPLICATION  MAKEINTRESOURCE(32512)
1277 #define IDI_HAND         MAKEINTRESOURCE(32513)
1278 #define IDI_QUESTION     MAKEINTRESOURCE(32514)
1279 #define IDI_EXCLAMATION  MAKEINTRESOURCE(32515)
1280 #define IDI_ASTERISK     MAKEINTRESOURCE(32516)
1281
1282 #define IDC_ARROW        MAKEINTRESOURCE(32512)
1283 #define IDC_IBEAM        MAKEINTRESOURCE(32513)
1284 #define IDC_WAIT         MAKEINTRESOURCE(32514)
1285 #define IDC_CROSS        MAKEINTRESOURCE(32515)
1286 #define IDC_UPARROW      MAKEINTRESOURCE(32516)
1287 #define IDC_SIZE         MAKEINTRESOURCE(32540)
1288 #define IDC_ICON         MAKEINTRESOURCE(32541)
1289 #define IDC_SIZENWSE     MAKEINTRESOURCE(32542)
1290 #define IDC_SIZENESW     MAKEINTRESOURCE(32543)
1291 #define IDC_SIZEWE       MAKEINTRESOURCE(32544)
1292 #define IDC_SIZENS       MAKEINTRESOURCE(32545)
1293
1294 /* OEM Resource Ordinal Numbers */
1295 #define OBM_CLOSE           32754
1296 #define OBM_UPARROW         32753
1297 #define OBM_DNARROW         32752
1298 #define OBM_RGARROW         32751
1299 #define OBM_LFARROW         32750
1300 #define OBM_REDUCE          32749
1301 #define OBM_ZOOM            32748
1302 #define OBM_RESTORE         32747
1303 #define OBM_REDUCED         32746
1304 #define OBM_ZOOMD           32745
1305 #define OBM_RESTORED        32744
1306 #define OBM_UPARROWD        32743
1307 #define OBM_DNARROWD        32742
1308 #define OBM_RGARROWD        32741
1309 #define OBM_LFARROWD        32740
1310 #define OBM_MNARROW         32739
1311 #define OBM_COMBO           32738
1312 #define OBM_UPARROWI        32737
1313 #define OBM_DNARROWI        32736
1314 #define OBM_RGARROWI        32735
1315 #define OBM_LFARROWI        32734
1316
1317 #define OBM_FOLDER          32733
1318 #define OBM_FOLDER2         32732
1319 #define OBM_FLOPPY          32731
1320 #define OBM_HDISK           32730
1321 #define OBM_CDROM           32729
1322
1323 #define OBM_OLD_CLOSE       32767
1324 #define OBM_SIZE            32766
1325 #define OBM_OLD_UPARROW     32765
1326 #define OBM_OLD_DNARROW     32764
1327 #define OBM_OLD_RGARROW     32763
1328 #define OBM_OLD_LFARROW     32762
1329 #define OBM_BTSIZE          32761
1330 #define OBM_CHECK           32760
1331 #define OBM_CHECKBOXES      32759
1332 #define OBM_BTNCORNERS      32758
1333 #define OBM_OLD_REDUCE      32757
1334 #define OBM_OLD_ZOOM        32756
1335 #define OBM_OLD_RESTORE     32755
1336
1337 #define OCR_NORMAL          32512
1338 #define OCR_IBEAM           32513
1339 #define OCR_WAIT            32514
1340 #define OCR_CROSS           32515
1341 #define OCR_UP              32516
1342 #define OCR_SIZE            32640
1343 #define OCR_ICON            32641
1344 #define OCR_SIZENWSE        32642
1345 #define OCR_SIZENESW        32643
1346 #define OCR_SIZEWE          32644
1347 #define OCR_SIZENS          32645
1348 #define OCR_SIZEALL         32646
1349 #define OCR_ICOCUR          32647
1350
1351 #define OIC_SAMPLE          32512
1352 #define OIC_HAND            32513
1353 #define OIC_QUES            32514
1354 #define OIC_BANG            32515
1355 #define OIC_NOTE            32516
1356 #define OIC_PORTRAIT        32517
1357 #define OIC_LANDSCAPE       32518
1358 #define OIC_WINEICON        32519
1359
1360   /* Stock GDI objects for GetStockObject() */
1361
1362 #define WHITE_BRUSH         0
1363 #define LTGRAY_BRUSH        1
1364 #define GRAY_BRUSH          2
1365 #define DKGRAY_BRUSH        3
1366 #define BLACK_BRUSH         4
1367 #define NULL_BRUSH          5
1368 #define HOLLOW_BRUSH        5
1369 #define WHITE_PEN           6
1370 #define BLACK_PEN           7
1371 #define NULL_PEN            8
1372 #define OEM_FIXED_FONT      10
1373 #define ANSI_FIXED_FONT     11
1374 #define ANSI_VAR_FONT       12
1375 #define SYSTEM_FONT         13
1376 #define DEVICE_DEFAULT_FONT 14
1377 #define DEFAULT_PALETTE     15
1378 #define SYSTEM_FIXED_FONT   16
1379
1380
1381 enum { WM_NULL, WM_CREATE, WM_DESTROY, WM_MOVE, WM_UNUSED0, WM_SIZE, WM_ACTIVATE,
1382         WM_SETFOCUS, WM_KILLFOCUS, WM_UNUSED1, WM_ENABLE, WM_SETREDRAW, 
1383         WM_SETTEXT, WM_GETTEXT, WM_GETTEXTLENGTH, WM_PAINT, WM_CLOSE, 
1384         WM_QUERYENDSESSION, WM_QUIT, WM_QUERYOPEN, WM_ERASEBKGND, 
1385         WM_SYSCOLORCHANGE, WM_ENDSESSION, WM_UNUSED2,
1386         WM_SHOWWINDOW, WM_CTLCOLOR, WM_WININICHANGE, WM_DEVMODECHANGE,
1387         WM_ACTIVATEAPP, WM_FONTCHANGE, WM_TIMECHANGE, WM_CANCELMODE, WM_SETCURSOR,
1388         WM_MOUSEACTIVATE, WM_CHILDACTIVATE, WM_QUEUESYNC, WM_GETMINMAXINFO,
1389         WM_UNUSED3, WM_PAINTICON, WM_ICONERASEBKGND, WM_NEXTDLGCTL, 
1390         WM_UNUSED4, WM_SPOOLERSTATUS, WM_DRAWITEM, WM_MEASUREITEM, 
1391         WM_DELETEITEM, WM_VKEYTOITEM,
1392         WM_CHARTOITEM, WM_SETFONT, WM_GETFONT };
1393
1394 #define WM_WINDOWPOSCHANGING 0x0046
1395 #define WM_WINDOWPOSCHANGED 0x0047
1396
1397 #define WM_NCCREATE         0x0081
1398 #define WM_NCDESTROY        0x0082
1399 #define WM_NCCALCSIZE       0x0083
1400 #define WM_NCHITTEST        0x0084
1401 #define WM_NCPAINT          0x0085
1402 #define WM_NCACTIVATE       0x0086
1403
1404 #define WM_GETDLGCODE       0x0087
1405
1406   /* Non-client mouse messages */
1407 #define WM_NCMOUSEMOVE      0x00a0
1408 #define WM_NCLBUTTONDOWN    0x00a1
1409 #define WM_NCLBUTTONUP      0x00a2
1410 #define WM_NCLBUTTONDBLCLK  0x00a3
1411 #define WM_NCRBUTTONDOWN    0x00a4
1412 #define WM_NCRBUTTONUP      0x00a5
1413 #define WM_NCRBUTTONDBLCLK  0x00a6
1414 #define WM_NCMBUTTONDOWN    0x00a7
1415 #define WM_NCMBUTTONUP      0x00a8
1416 #define WM_NCMBUTTONDBLCLK  0x00a9
1417
1418   /* Keyboard messages */
1419 #define WM_KEYDOWN          0x0100
1420 #define WM_KEYUP            0x0101
1421 #define WM_CHAR             0x0102
1422 #define WM_DEADCHAR         0x0103
1423 #define WM_SYSKEYDOWN       0x0104
1424 #define WM_SYSKEYUP         0x0105
1425 #define WM_SYSCHAR          0x0106
1426 #define WM_SYSDEADCHAR      0x0107
1427 #define WM_KEYFIRST         WM_KEYDOWN
1428 #define WM_KEYLAST          0x0108
1429
1430 #define WM_INITDIALOG       0x0110 
1431 #define WM_COMMAND          0x0111
1432 #define WM_SYSCOMMAND       0x0112
1433 #define WM_TIMER            0x0113
1434 #define WM_SYSTIMER         0x0118
1435
1436   /* scroll messages */
1437 #define WM_HSCROLL          0x0114
1438 #define WM_VSCROLL          0x0115
1439
1440 #define WM_ENTERIDLE        0x0121
1441
1442   /* Mouse messages */
1443 #define WM_MOUSEMOVE        0x0200
1444 #define WM_LBUTTONDOWN      0x0201
1445 #define WM_LBUTTONUP        0x0202
1446 #define WM_LBUTTONDBLCLK    0x0203
1447 #define WM_RBUTTONDOWN      0x0204
1448 #define WM_RBUTTONUP        0x0205
1449 #define WM_RBUTTONDBLCLK    0x0206
1450 #define WM_MBUTTONDOWN      0x0207
1451 #define WM_MBUTTONUP        0x0208
1452 #define WM_MBUTTONDBLCLK    0x0209
1453 #define WM_MOUSEFIRST       WM_MOUSEMOVE
1454 #define WM_MOUSELAST        WM_MBUTTONDBLCLK
1455
1456 #define WM_PARENTNOTIFY     0x0210
1457 #define WM_ENTERMENULOOP    0x0211
1458 #define WM_EXITMENULOOP     0x0212
1459
1460 #define WM_MDICREATE        0x0220
1461 #define WM_MDIDESTROY       0x0221
1462 #define WM_MDIACTIVATE      0x0222
1463 #define WM_MDIRESTORE       0x0223
1464 #define WM_MDINEXT          0x0224
1465 #define WM_MDIMAXIMIZE      0x0225
1466 #define WM_MDITILE          0x0226
1467 #define WM_MDICASCADE       0x0227
1468 #define WM_MDIICONARRANGE   0x0228
1469 #define WM_MDIGETACTIVE     0x0229
1470 #define WM_MDISETMENU       0x0230
1471
1472 #define WM_ENTERSIZEMOVE    0x0231
1473 #define WM_EXITSIZEMOVE     0x0232
1474
1475   /* misc messages */
1476 #define WM_NULL             0x0000
1477 #define WM_USER             0x0400
1478
1479
1480   /* Key status flags for mouse events */
1481 #define MK_LBUTTON          0x0001
1482 #define MK_RBUTTON          0x0002
1483 #define MK_SHIFT            0x0004
1484 #define MK_CONTROL          0x0008
1485 #define MK_MBUTTON          0x0010
1486
1487   /* Queue status flags */
1488 #define QS_KEY          0x0001
1489 #define QS_MOUSEMOVE    0x0002
1490 #define QS_MOUSEBUTTON  0x0004
1491 #define QS_MOUSE        (QS_MOUSEMOVE | QS_MOUSEBUTTON)
1492 #define QS_POSTMESSAGE  0x0008
1493 #define QS_TIMER        0x0010
1494 #define QS_PAINT        0x0020
1495 #define QS_SENDMESSAGE  0x0040
1496 #define QS_ALLINPUT     0x007f
1497
1498   /* PeekMessage() options */
1499 #define PM_NOREMOVE     0x0000
1500 #define PM_REMOVE       0x0001
1501 #define PM_NOYIELD      0x0002
1502
1503 #define WM_SHOWWINDOW       0x0018
1504
1505 /* WM_SHOWWINDOW wParam codes */
1506 #define SW_PARENTCLOSING    1
1507 #define SW_OTHERMAXIMIZED   2
1508 #define SW_PARENTOPENING    3
1509 #define SW_OTHERRESTORED    4
1510
1511   /* ShowWindow() codes */
1512 #define SW_HIDE             0
1513 #define SW_SHOWNORMAL       1
1514 #define SW_NORMAL           1
1515 #define SW_SHOWMINIMIZED    2
1516 #define SW_SHOWMAXIMIZED    3
1517 #define SW_MAXIMIZE         3
1518 #define SW_SHOWNOACTIVATE   4
1519 #define SW_SHOW             5
1520 #define SW_MINIMIZE         6
1521 #define SW_SHOWMINNOACTIVE  7
1522 #define SW_SHOWNA           8
1523 #define SW_RESTORE          9
1524
1525   /* WM_SIZE message wParam values */
1526 #define SIZE_RESTORED        0
1527 #define SIZE_MINIMIZED       1
1528 #define SIZE_MAXIMIZED       2
1529 #define SIZE_MAXSHOW         3
1530 #define SIZE_MAXHIDE         4
1531
1532 /* SetWindowPos() and WINDOWPOS flags */
1533 #define SWP_NOSIZE          0x0001
1534 #define SWP_NOMOVE          0x0002
1535 #define SWP_NOZORDER        0x0004
1536 #define SWP_NOREDRAW        0x0008
1537 #define SWP_NOACTIVATE      0x0010
1538 #define SWP_FRAMECHANGED    0x0020  /* The frame changed: send WM_NCCALCSIZE */
1539 #define SWP_SHOWWINDOW      0x0040
1540 #define SWP_HIDEWINDOW      0x0080
1541 #define SWP_NOCOPYBITS      0x0100
1542 #define SWP_NOOWNERZORDER   0x0200  /* Don't do owner Z ordering */
1543
1544 #define SWP_DRAWFRAME       SWP_FRAMECHANGED
1545 #define SWP_NOREPOSITION    SWP_NOOWNERZORDER
1546
1547 #define SWP_NOSENDCHANGING  0x0400
1548 #define SWP_DEFERERASE      0x2000
1549
1550 /* SetWindowPos() hwndInsertAfter field values */
1551 #define HWND_TOP            ((HWND)0)
1552 #define HWND_BOTTOM         ((HWND)1)
1553 #define HWND_TOPMOST        ((HWND)-1)
1554 #define HWND_NOTOPMOST      ((HWND)-2)
1555
1556 /* Flags for TrackPopupMenu */
1557 #define TPM_LEFTBUTTON  0x0000
1558 #define TPM_RIGHTBUTTON 0x0002
1559 #define TPM_LEFTALIGN   0x0000
1560 #define TPM_CENTERALIGN 0x0004
1561 #define TPM_RIGHTALIGN  0x0008
1562
1563 /* Menu messages */
1564 #define WM_INITMENU         0x0116
1565 #define WM_INITMENUPOPUP    0x0117
1566
1567 #define WM_MENUSELECT       0x011F
1568 #define WM_MENUCHAR         0x0120
1569
1570 #define MF_INSERT 0
1571 #define MF_CHANGE 0x0080
1572 #define MF_APPEND 0x0100
1573 #define MF_DELETE 0x0200
1574 #define MF_REMOVE 0x1000
1575 #define MF_BYCOMMAND 0
1576 #define MF_BYPOSITION 0x0400
1577 #define MF_SEPARATOR 0x0800
1578 #define MF_ENABLED 0
1579 #define MF_GRAYED 0x0001
1580 #define MF_DISABLED 0x0002
1581 #define MF_UNCHECKED 0
1582 #define MF_CHECKED 0x0008
1583 #define MF_USECHECKBITMAPS 0x0200
1584 #define MF_STRING 0
1585 #define MF_BITMAP 0x0004
1586 #define MF_OWNERDRAW 0x0100
1587 #define MF_POPUP 0x0010
1588 #define MF_MENUBARBREAK 0x0020
1589 #define MF_MENUBREAK 0x0040
1590 #define MF_UNHILITE 0
1591 #define MF_HILITE 0x0080
1592 #define MF_SYSMENU 0x2000
1593 #define MF_HELP 0x4000
1594 #define MF_MOUSESELECT 0x8000
1595 #define MF_END 0x0080
1596
1597 #ifndef NOWINOFFSETS
1598 #define GCW_HBRBACKGROUND (-10)
1599 #endif
1600
1601 #define MB_OK               0x0000
1602 #define MB_OKCANCEL         0x0001
1603 #define MB_ABORTRETRYIGNORE 0x0002
1604 #define MB_YESNOCANCEL      0x0003
1605 #define MB_YESNO            0x0004
1606 #define MB_RETRYCANCEL      0x0005
1607 #define MB_TYPEMASK         0x000F
1608
1609 #define MB_ICONHAND         0x0010
1610 #define MB_ICONQUESTION     0x0020
1611 #define MB_ICONEXCLAMATION  0x0030
1612 #define MB_ICONASTERISK     0x0040
1613 #define MB_ICONMASK         0x00F0
1614
1615 #define MB_ICONINFORMATION  MB_ICONASTERISK
1616 #define MB_ICONSTOP         MB_ICONHAND
1617
1618 #define MB_DEFBUTTON1       0x0000
1619 #define MB_DEFBUTTON2       0x0100
1620 #define MB_DEFBUTTON3       0x0200
1621 #define MB_DEFMASK          0x0F00
1622
1623 #define MB_APPLMODAL        0x0000
1624 #define MB_SYSTEMMODAL      0x1000
1625 #define MB_TASKMODAL        0x2000
1626
1627 #define MB_NOFOCUS          0x8000
1628
1629
1630 #define DT_TOP 0
1631 #define DT_LEFT 0
1632 #define DT_CENTER 1
1633 #define DT_RIGHT 2
1634 #define DT_VCENTER 4
1635 #define DT_BOTTOM 8
1636 #define DT_WORDBREAK 16
1637 #define DT_SINGLELINE 32
1638 #define DT_EXPANDTABS 64
1639 #define DT_TABSTOP 128
1640 #define DT_NOCLIP 256
1641 #define DT_EXTERNALLEADING 512
1642 #define DT_CALCRECT 1024
1643 #define DT_NOPREFIX 2048
1644 #define DT_INTERNAL 4096
1645
1646 /* Window Styles */
1647 #define WS_OVERLAPPED    0x00000000L
1648 #define WS_POPUP         0x80000000L
1649 #define WS_CHILD         0x40000000L
1650 #define WS_MINIMIZE      0x20000000L
1651 #define WS_VISIBLE       0x10000000L
1652 #define WS_DISABLED      0x08000000L
1653 #define WS_CLIPSIBLINGS  0x04000000L
1654 #define WS_CLIPCHILDREN  0x02000000L
1655 #define WS_MAXIMIZE      0x01000000L
1656 #define WS_CAPTION       0x00C00000L
1657 #define WS_BORDER        0x00800000L
1658 #define WS_DLGFRAME      0x00400000L
1659 #define WS_VSCROLL       0x00200000L
1660 #define WS_HSCROLL       0x00100000L
1661 #define WS_SYSMENU       0x00080000L
1662 #define WS_THICKFRAME    0x00040000L
1663 #define WS_GROUP         0x00020000L
1664 #define WS_TABSTOP       0x00010000L
1665 #define WS_MINIMIZEBOX   0x00020000L
1666 #define WS_MAXIMIZEBOX   0x00010000L
1667 #define WS_TILED         WS_OVERLAPPED
1668 #define WS_ICONIC        WS_MINIMIZE
1669 #define WS_SIZEBOX       WS_THICKFRAME
1670 #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
1671 #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
1672 #define WS_CHILDWINDOW (WS_CHILD)
1673 #define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW)
1674
1675 /* Window extended styles */
1676 #define WS_EX_DLGMODALFRAME    0x00000001L
1677 #define WS_EX_NOPARENTNOTIFY   0x00000004L
1678 #define WS_EX_TOPMOST          0x00000008L
1679 #define WS_EX_ACCEPTFILES      0x00000010L
1680 #define WS_EX_TRANSPARENT      0x00000020L
1681
1682 /* Window scrolling */
1683 #define SW_SCROLLCHILDREN      0x0001
1684 #define SW_INVALIDATE          0x0002
1685 #define SW_ERASE               0x0003
1686
1687 /* Button control styles */
1688 #define BS_PUSHBUTTON          0x00000000L
1689 #define BS_DEFPUSHBUTTON       0x00000001L
1690 #define BS_CHECKBOX            0x00000002L
1691 #define BS_AUTOCHECKBOX        0x00000003L
1692 #define BS_RADIOBUTTON         0x00000004L
1693 #define BS_3STATE              0x00000005L
1694 #define BS_AUTO3STATE          0x00000006L
1695 #define BS_GROUPBOX            0x00000007L
1696 #define BS_USERBUTTON          0x00000008L
1697 #define BS_AUTORADIOBUTTON     0x00000009L
1698 #define BS_OWNERDRAW           0x0000000BL
1699 #define BS_LEFTTEXT            0x00000020L
1700
1701 /* Button control messages */
1702 #define BM_GETCHECK            (WM_USER+0)
1703 #define BM_SETCHECK            (WM_USER+1)
1704 #define BM_GETSTATE            (WM_USER+2)
1705 #define BM_SETSTATE            (WM_USER+3)
1706 #define BM_SETSTYLE            (WM_USER+4)
1707
1708 /* Button notification codes */
1709 #define BN_CLICKED             0
1710 #define BN_PAINT               1
1711 #define BN_HILITE              2
1712 #define BN_UNHILITE            3
1713 #define BN_DISABLE             4
1714 #define BN_DOUBLECLICKED       5
1715
1716 /* Static Control Styles */
1717 #define SS_LEFT             0x00000000L
1718 #define SS_CENTER           0x00000001L
1719 #define SS_RIGHT            0x00000002L
1720 #define SS_ICON             0x00000003L
1721 #define SS_BLACKRECT        0x00000004L
1722 #define SS_GRAYRECT         0x00000005L
1723 #define SS_WHITERECT        0x00000006L
1724 #define SS_BLACKFRAME       0x00000007L
1725 #define SS_GRAYFRAME        0x00000008L
1726 #define SS_WHITEFRAME       0x00000009L
1727 #define SS_SIMPLE           0x0000000BL
1728 #define SS_LEFTNOWORDWRAP   0x0000000CL
1729 #define SS_NOPREFIX         0x00000080L
1730
1731 /* Static Control Mesages */
1732 #define STM_SETICON         (WM_USER+0)
1733 #define STM_GETICON         (WM_USER+1)
1734
1735 /* WM_H/VSCROLL commands */
1736 #define SB_LINEUP           0
1737 #define SB_LINELEFT         0
1738 #define SB_LINEDOWN         1
1739 #define SB_LINERIGHT        1
1740 #define SB_PAGEUP           2
1741 #define SB_PAGELEFT         2
1742 #define SB_PAGEDOWN         3
1743 #define SB_PAGERIGHT        3
1744 #define SB_THUMBPOSITION    4
1745 #define SB_THUMBTRACK       5
1746 #define SB_TOP              6
1747 #define SB_LEFT             6
1748 #define SB_BOTTOM           7
1749 #define SB_RIGHT            7
1750 #define SB_ENDSCROLL        8
1751
1752 /* Scroll bar selection constants */
1753 #define SB_HORZ             0
1754 #define SB_VERT             1
1755 #define SB_CTL              2
1756 #define SB_BOTH             3
1757
1758 /* Scrollbar styles */
1759 #define SBS_HORZ                    0x0000L
1760 #define SBS_VERT                    0x0001L
1761 #define SBS_TOPALIGN                0x0002L
1762 #define SBS_LEFTALIGN               0x0002L
1763 #define SBS_BOTTOMALIGN             0x0004L
1764 #define SBS_RIGHTALIGN              0x0004L
1765 #define SBS_SIZEBOXTOPLEFTALIGN     0x0002L
1766 #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
1767 #define SBS_SIZEBOX                 0x0008L
1768
1769 /* EnableScrollBar() flags */
1770 #define ESB_ENABLE_BOTH     0x0000
1771 #define ESB_DISABLE_BOTH    0x0003
1772
1773 #define ESB_DISABLE_LEFT    0x0001
1774 #define ESB_DISABLE_RIGHT   0x0002
1775
1776 #define ESB_DISABLE_UP      0x0001
1777 #define ESB_DISABLE_DOWN    0x0002
1778
1779 #define ESB_DISABLE_LTUP    ESB_DISABLE_LEFT
1780 #define ESB_DISABLE_RTDN    ESB_DISABLE_RIGHT
1781
1782 /* Listbox styles */
1783 #define LBS_NOTIFY            0x0001L
1784 #define LBS_SORT              0x0002L
1785 #define LBS_NOREDRAW          0x0004L
1786 #define LBS_MULTIPLESEL       0x0008L
1787 #define LBS_OWNERDRAWFIXED    0x0010L
1788 #define LBS_OWNERDRAWVARIABLE 0x0020L
1789 #define LBS_HASSTRINGS        0x0040L
1790 #define LBS_USETABSTOPS       0x0080L
1791 #define LBS_NOINTEGRALHEIGHT  0x0100L
1792 #define LBS_MULTICOLUMN       0x0200L
1793 #define LBS_WANTKEYBOARDINPUT 0x0400L
1794 #define LBS_EXTENDEDSEL       0x0800L
1795 #define LBS_DISABLENOSCROLL   0x1000L
1796 #define LBS_STANDARD          (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
1797
1798 /* Listbox messages */
1799 #define LB_ADDSTRING           (WM_USER+1)
1800 #define LB_INSERTSTRING        (WM_USER+2)
1801 #define LB_DELETESTRING        (WM_USER+3)
1802 #define LB_RESETCONTENT        (WM_USER+5)
1803 #define LB_SETSEL              (WM_USER+6)
1804 #define LB_SETCURSEL           (WM_USER+7)
1805 #define LB_GETSEL              (WM_USER+8)
1806 #define LB_GETCURSEL           (WM_USER+9)
1807 #define LB_GETTEXT             (WM_USER+10)
1808 #define LB_GETTEXTLEN          (WM_USER+11)
1809 #define LB_GETCOUNT            (WM_USER+12)
1810 #define LB_SELECTSTRING        (WM_USER+13)
1811 #define LB_DIR                 (WM_USER+14)
1812 #define LB_GETTOPINDEX         (WM_USER+15)
1813 #define LB_FINDSTRING          (WM_USER+16)
1814 #define LB_GETSELCOUNT         (WM_USER+17)
1815 #define LB_GETSELITEMS         (WM_USER+18)
1816 #define LB_SETTABSTOPS         (WM_USER+19)
1817 #define LB_GETHORIZONTALEXTENT (WM_USER+20)
1818 #define LB_SETHORIZONTALEXTENT (WM_USER+21)
1819 #define LB_SETCOLUMNWIDTH      (WM_USER+22)
1820 #define LB_SETTOPINDEX         (WM_USER+24)
1821 #define LB_GETITEMRECT         (WM_USER+25)
1822 #define LB_GETITEMDATA         (WM_USER+26)
1823 #define LB_SETITEMDATA         (WM_USER+27)
1824 #define LB_SELITEMRANGE        (WM_USER+28)
1825 #define LB_SETCARETINDEX       (WM_USER+31)
1826 #define LB_GETCARETINDEX       (WM_USER+32)
1827 #define LB_SETITEMHEIGHT       (WM_USER+33)
1828 #define LB_GETITEMHEIGHT       (WM_USER+34)
1829 #define LB_FINDSTRINGEXACT     (WM_USER+35)
1830
1831 /* Listbox notification codes */
1832 #define LBN_ERRSPACE        (-2)
1833 #define LBN_SELCHANGE       1
1834 #define LBN_DBLCLK          2
1835 #define LBN_SELCANCEL       3
1836 #define LBN_SETFOCUS        4
1837 #define LBN_KILLFOCUS       5
1838
1839 /* Listbox notification messages */
1840 #define WM_VKEYTOITEM       0x002E
1841 #define WM_CHARTOITEM       0x002F
1842
1843 /* Listbox message return values */
1844 #define LB_OKAY             0
1845 #define LB_ERR              (-1)
1846 #define LB_ERRSPACE         (-2)
1847
1848 #define LB_CTLCODE          0L
1849
1850 /* Combo box styles */
1851 #define CBS_SIMPLE            0x0001L
1852 #define CBS_DROPDOWN          0x0002L
1853 #define CBS_DROPDOWNLIST      0x0003L
1854 #define CBS_OWNERDRAWFIXED    0x0010L
1855 #define CBS_OWNERDRAWVARIABLE 0x0020L
1856 #define CBS_AUTOHSCROLL       0x0040L
1857 #define CBS_OEMCONVERT        0x0080L
1858 #define CBS_SORT              0x0100L
1859 #define CBS_HASSTRINGS        0x0200L
1860 #define CBS_NOINTEGRALHEIGHT  0x0400L
1861 #define CBS_DISABLENOSCROLL   0x0800L
1862
1863 /* Combo box messages */
1864 #define CB_GETEDITSEL            (WM_USER+0)
1865 #define CB_LIMITTEXT             (WM_USER+1)
1866 #define CB_SETEDITSEL            (WM_USER+2)
1867 #define CB_ADDSTRING             (WM_USER+3)
1868 #define CB_DELETESTRING          (WM_USER+4)
1869 #define CB_DIR                   (WM_USER+5)
1870 #define CB_GETCOUNT              (WM_USER+6)
1871 #define CB_GETCURSEL             (WM_USER+7)
1872 #define CB_GETLBTEXT             (WM_USER+8)
1873 #define CB_GETLBTEXTLEN          (WM_USER+9)
1874 #define CB_INSERTSTRING          (WM_USER+10)
1875 #define CB_RESETCONTENT          (WM_USER+11)
1876 #define CB_FINDSTRING            (WM_USER+12)
1877 #define CB_SELECTSTRING          (WM_USER+13)
1878 #define CB_SETCURSEL             (WM_USER+14)
1879 #define CB_SHOWDROPDOWN          (WM_USER+15)
1880 #define CB_GETITEMDATA           (WM_USER+16)
1881 #define CB_SETITEMDATA           (WM_USER+17)
1882 #define CB_GETDROPPEDCONTROLRECT (WM_USER+18)
1883 #define CB_SETITEMHEIGHT         (WM_USER+19)
1884 #define CB_GETITEMHEIGHT         (WM_USER+20)
1885 #define CB_SETEXTENDEDUI         (WM_USER+21)
1886 #define CB_GETEXTENDEDUI         (WM_USER+22)
1887 #define CB_GETDROPPEDSTATE       (WM_USER+23)
1888 #define CB_FINDSTRINGEXACT       (WM_USER+24)
1889
1890 /* Combo box notification codes */
1891 #define CBN_ERRSPACE        (-1)
1892 #define CBN_SELCHANGE       1
1893 #define CBN_DBLCLK          2
1894 #define CBN_SETFOCUS        3
1895 #define CBN_KILLFOCUS       4
1896 #define CBN_EDITCHANGE      5
1897 #define CBN_EDITUPDATE      6
1898 #define CBN_DROPDOWN        7
1899 #define CBN_CLOSEUP         8
1900 #define CBN_SELENDOK        9
1901 #define CBN_SELENDCANCEL    10
1902
1903 /* Combo box message return values */
1904 #define CB_OKAY             0
1905 #define CB_ERR              (-1)
1906 #define CB_ERRSPACE         (-2)
1907
1908
1909 /* Owner draw control types */
1910 #define ODT_MENU        1
1911 #define ODT_LISTBOX     2
1912 #define ODT_COMBOBOX    3
1913 #define ODT_BUTTON      4
1914
1915 /* Owner draw actions */
1916 #define ODA_DRAWENTIRE  0x0001
1917 #define ODA_SELECT      0x0002
1918 #define ODA_FOCUS       0x0004
1919
1920 /* Owner draw state */
1921 #define ODS_SELECTED    0x0001
1922 #define ODS_GRAYED      0x0002
1923 #define ODS_DISABLED    0x0004
1924 #define ODS_CHECKED     0x0008
1925 #define ODS_FOCUS       0x0010
1926
1927 /* Edit control styles */
1928 #define ES_LEFT         0x00000000L
1929 #define ES_CENTER       0x00000001L
1930 #define ES_RIGHT        0x00000002L
1931 #define ES_MULTILINE    0x00000004L
1932 #define ES_UPPERCASE    0x00000008L
1933 #define ES_LOWERCASE    0x00000010L
1934 #define ES_PASSWORD     0x00000020L
1935 #define ES_AUTOVSCROLL  0x00000040L
1936 #define ES_AUTOHSCROLL  0x00000080L
1937 #define ES_NOHISESEL    0x00000100L
1938 #define ES_OEMCONVERT   0x00000400L
1939 #define ES_READONLY     0x00000800L
1940 #define ES_WANTRETURN   0x00001000L
1941
1942 /* Edit control messages */
1943 #define EM_GETSEL              (WM_USER+0)
1944 #define EM_SETSEL              (WM_USER+1)
1945 #define EM_GETRECT             (WM_USER+2)
1946 #define EM_SETRECT             (WM_USER+3)
1947 #define EM_SETRECTNP           (WM_USER+4)
1948 #define EM_LINESCROLL          (WM_USER+6)
1949 #define EM_GETMODIFY           (WM_USER+8)
1950 #define EM_SETMODIFY           (WM_USER+9)
1951 #define EM_GETLINECOUNT        (WM_USER+10)
1952 #define EM_LINEINDEX           (WM_USER+11)
1953 #define EM_SETHANDLE           (WM_USER+12)
1954 #define EM_GETHANDLE           (WM_USER+13)
1955 #define EM_LINELENGTH          (WM_USER+17)
1956 #define EM_REPLACESEL          (WM_USER+18)
1957 #define EM_GETLINE             (WM_USER+20)
1958 #define EM_LIMITTEXT           (WM_USER+21)
1959 #define EM_CANUNDO             (WM_USER+22)
1960 #define EM_UNDO                (WM_USER+23)
1961 #define EM_FMTLINES            (WM_USER+24)
1962 #define EM_LINEFROMCHAR        (WM_USER+25)
1963 #define EM_SETTABSTOPS         (WM_USER+27)
1964 #define EM_SETPASSWORDCHAR     (WM_USER+28)
1965 #define EM_EMPTYUNDOBUFFER     (WM_USER+29)
1966 #define EM_GETFIRSTVISIBLELINE (WM_USER+30)
1967 #define EM_SETREADONLY         (WM_USER+31)
1968 #define EM_SETWORDBREAKPROC    (WM_USER+32)
1969 #define EM_GETWORDBREAKPROC    (WM_USER+33)
1970 #define EM_GETPASSWORDCHAR     (WM_USER+34)
1971
1972 typedef int (CALLBACK *EDITWORDBREAKPROC)(LPSTR lpch, int ichCurrent,
1973                                           int cch, int code);
1974
1975 /* EDITWORDBREAKPROC code values */
1976 #define WB_LEFT         0
1977 #define WB_RIGHT        1
1978 #define WB_ISDELIMITER  2
1979
1980 /* Edit control notification codes */
1981 #define EN_SETFOCUS     0x0100
1982 #define EN_KILLFOCUS    0x0200
1983 #define EN_CHANGE       0x0300
1984 #define EN_UPDATE       0x0400
1985 #define EN_ERRSPACE     0x0500
1986 #define EN_MAXTEXT      0x0501
1987 #define EN_HSCROLL      0x0601
1988 #define EN_VSCROLL      0x0602
1989
1990
1991 #define WM_DRAWITEM         0x002B
1992
1993 typedef struct tagDRAWITEMSTRUCT
1994 {
1995     UINT        CtlType;
1996     UINT        CtlID;
1997     UINT        itemID;
1998     UINT        itemAction;
1999     UINT        itemState;
2000     HWND        hwndItem;
2001     HDC         hDC;
2002     RECT        rcItem WINE_PACKED;
2003     DWORD       itemData WINE_PACKED;
2004 } DRAWITEMSTRUCT;
2005 typedef DRAWITEMSTRUCT NEAR* PDRAWITEMSTRUCT;
2006 typedef DRAWITEMSTRUCT FAR* LPDRAWITEMSTRUCT;
2007
2008 #define WM_MEASUREITEM      0x002C
2009
2010 typedef struct tagMEASUREITEMSTRUCT
2011 {
2012     UINT        CtlType;
2013     UINT        CtlID;
2014     UINT        itemID;
2015     UINT        itemWidth;
2016     UINT        itemHeight;
2017     DWORD       itemData WINE_PACKED;
2018 } MEASUREITEMSTRUCT;
2019 typedef MEASUREITEMSTRUCT NEAR* PMEASUREITEMSTRUCT;
2020 typedef MEASUREITEMSTRUCT FAR* LPMEASUREITEMSTRUCT;
2021
2022 #define WM_DELETEITEM       0x002D
2023
2024 typedef struct tagDELETEITEMSTRUCT
2025 {
2026     UINT       CtlType;
2027     UINT       CtlID;
2028     UINT       itemID;
2029     HWND       hwndItem;
2030     DWORD      itemData;
2031 } DELETEITEMSTRUCT;
2032 typedef DELETEITEMSTRUCT NEAR* PDELETEITEMSTRUCT;
2033 typedef DELETEITEMSTRUCT FAR* LPDELETEITEMSTRUCT;
2034
2035 #define WM_COMPAREITEM      0x0039
2036
2037 typedef struct tagCOMPAREITEMSTRUCT
2038 {
2039     UINT        CtlType;
2040     UINT        CtlID;
2041     HWND        hwndItem;
2042     UINT        itemID1;
2043     DWORD       itemData1;
2044     UINT        itemID2;
2045     DWORD       itemData2 WINE_PACKED;
2046 } COMPAREITEMSTRUCT;
2047 typedef COMPAREITEMSTRUCT NEAR* PCOMPAREITEMSTRUCT;
2048 typedef COMPAREITEMSTRUCT FAR* LPCOMPAREITEMSTRUCT;
2049
2050 /* Virtual key codes */
2051 #define VK_LBUTTON          0x01
2052 #define VK_RBUTTON          0x02
2053 #define VK_CANCEL           0x03
2054 #define VK_MBUTTON          0x04
2055 #define VK_BACK             0x08
2056 #define VK_TAB              0x09
2057 #define VK_CLEAR            0x0C
2058 #define VK_RETURN           0x0D
2059 #define VK_SHIFT            0x10
2060 #define VK_CONTROL          0x11
2061 #define VK_MENU             0x12
2062 #define VK_PAUSE            0x13
2063 #define VK_CAPITAL          0x14
2064 #define VK_ESCAPE           0x1B
2065 #define VK_SPACE            0x20
2066 #define VK_PRIOR            0x21
2067 #define VK_NEXT             0x22
2068 #define VK_END              0x23
2069 #define VK_HOME             0x24
2070 #define VK_LEFT             0x25
2071 #define VK_UP               0x26
2072 #define VK_RIGHT            0x27
2073 #define VK_DOWN             0x28
2074 #define VK_SELECT           0x29
2075 #define VK_PRINT            0x2A
2076 #define VK_EXECUTE          0x2B
2077 #define VK_SNAPSHOT         0x2C
2078 #define VK_INSERT           0x2D
2079 #define VK_DELETE           0x2E
2080 #define VK_HELP             0x2F
2081 #define VK_NUMPAD0          0x60
2082 #define VK_NUMPAD1          0x61
2083 #define VK_NUMPAD2          0x62
2084 #define VK_NUMPAD3          0x63
2085 #define VK_NUMPAD4          0x64
2086 #define VK_NUMPAD5          0x65
2087 #define VK_NUMPAD6          0x66
2088 #define VK_NUMPAD7          0x67
2089 #define VK_NUMPAD8          0x68
2090 #define VK_NUMPAD9          0x69
2091 #define VK_MULTIPLY         0x6A
2092 #define VK_ADD              0x6B
2093 #define VK_SEPARATOR        0x6C
2094 #define VK_SUBTRACT         0x6D
2095 #define VK_DECIMAL          0x6E
2096 #define VK_DIVIDE           0x6F
2097 #define VK_F1               0x70
2098 #define VK_F2               0x71
2099 #define VK_F3               0x72
2100 #define VK_F4               0x73
2101 #define VK_F5               0x74
2102 #define VK_F6               0x75
2103 #define VK_F7               0x76
2104 #define VK_F8               0x77
2105 #define VK_F9               0x78
2106 #define VK_F10              0x79
2107 #define VK_F11              0x7A
2108 #define VK_F12              0x7B
2109 #define VK_F13              0x7C
2110 #define VK_F14              0x7D
2111 #define VK_F15              0x7E
2112 #define VK_F16              0x7F
2113 #define VK_F17              0x80
2114 #define VK_F18              0x81
2115 #define VK_F19              0x82
2116 #define VK_F20              0x83
2117 #define VK_F21              0x84
2118 #define VK_F22              0x85
2119 #define VK_F23              0x86
2120 #define VK_F24              0x87
2121 #define VK_NUMLOCK          0x90
2122 #define VK_SCROLL           0x91
2123
2124   
2125 #define LMEM_FIXED          0   
2126 #define LMEM_MOVEABLE       0x0002
2127 #define LMEM_NOCOMPACT      0x0010
2128 #define LMEM_NODISCARD      0x0020
2129 #define LMEM_ZEROINIT       0x0040
2130 #define LMEM_MODIFY         0x0080
2131 #define LMEM_DISCARDABLE    0x0F00
2132 #define LMEM_WINE_ALIGN     0x1000
2133
2134 #define GMEM_FIXED          0x0000
2135 #define GMEM_MOVEABLE       0x0002
2136 #define GMEM_NOCOMPACT      0x0010
2137 #define GMEM_NODISCARD      0x0020
2138 #define GMEM_ZEROINIT       0x0040
2139 #define GMEM_MODIFY         0x0080
2140 #define GMEM_DISCARDABLE    0x0100
2141 #define GMEM_NOT_BANKED     0x1000
2142 #define GMEM_SHARE          0x2000
2143 #define GMEM_DDESHARE       0x2000
2144 #define GMEM_NOTIFY         0x4000
2145 #define GMEM_LOWER          GMEM_NOT_BANKED
2146 #define GMEM_DISCARDED      0x4000
2147 #define GMEM_LOCKCOUNT      0x00ff
2148
2149 #define GHND                (GMEM_MOVEABLE | GMEM_ZEROINIT)
2150 #define GPTR                (GMEM_FIXED | GMEM_ZEROINIT)
2151
2152
2153 /* Predefined Clipboard Formats */
2154 #define CF_TEXT              1
2155 #define CF_BITMAP            2
2156 #define CF_METAFILEPICT      3
2157 #define CF_SYLK              4
2158 #define CF_DIF               5
2159 #define CF_TIFF              6
2160 #define CF_OEMTEXT           7
2161 #define CF_DIB               8
2162 #define CF_PALETTE           9
2163 #define CF_PENDATA          10
2164 #define CF_RIFF             11
2165 #define CF_WAVE             12
2166
2167 #define CF_OWNERDISPLAY     0x0080
2168 #define CF_DSPTEXT          0x0081
2169 #define CF_DSPBITMAP        0x0082
2170 #define CF_DSPMETAFILEPICT  0x0083
2171
2172 /* "Private" formats don't get GlobalFree()'d */
2173 #define CF_PRIVATEFIRST     0x0200
2174 #define CF_PRIVATELAST      0x02FF
2175
2176 /* "GDIOBJ" formats do get DeleteObject()'d */
2177 #define CF_GDIOBJFIRST      0x0300
2178 #define CF_GDIOBJLAST       0x03FF
2179
2180 /* Clipboard command messages */
2181 #define WM_CUT              0x0300
2182 #define WM_COPY             0x0301
2183 #define WM_PASTE            0x0302
2184 #define WM_CLEAR            0x0303
2185 #define WM_UNDO             0x0304
2186
2187 /* Clipboard owner messages */
2188 #define WM_RENDERFORMAT     0x0305
2189 #define WM_RENDERALLFORMATS 0x0306
2190 #define WM_DESTROYCLIPBOARD 0x0307
2191
2192 /* Clipboard viewer messages */
2193 #define WM_DRAWCLIPBOARD    0x0308
2194 #define WM_PAINTCLIPBOARD   0x0309
2195 #define WM_SIZECLIPBOARD    0x030B
2196 #define WM_VSCROLLCLIPBOARD 0x030A
2197 #define WM_HSCROLLCLIPBOARD 0x030E
2198 #define WM_ASKCBFORMATNAME  0x030C
2199 #define WM_CHANGECBCHAIN    0x030D
2200
2201 /* Metafile header structure */
2202 typedef struct tagMETAHEADER
2203 {
2204     WORD       mtType;
2205     WORD       mtHeaderSize;
2206     WORD       mtVersion;
2207     DWORD      mtSize WINE_PACKED;
2208     WORD       mtNoObjects;
2209     DWORD      mtMaxRecord WINE_PACKED;
2210     WORD       mtNoParameters;
2211 } METAHEADER;
2212
2213 /* Metafile typical record structure */
2214 typedef struct tagMETARECORD
2215 {
2216     DWORD      rdSize;
2217     WORD       rdFunction;
2218     WORD       rdParam[1];
2219 } METARECORD;
2220 typedef METARECORD *PMETARECORD;
2221 typedef METARECORD *LPMETARECORD;
2222
2223 /* Handle table structure */
2224 typedef struct tagHANDLETABLE
2225 {
2226     HANDLE     objectHandle[1];
2227 } HANDLETABLE;
2228 typedef HANDLETABLE *PHANDLETABLE;
2229 typedef HANDLETABLE *LPHANDLETABLE;
2230
2231 /* Clipboard metafile picture structure */
2232 typedef struct tagMETAFILEPICT
2233 {
2234     INT        mm;
2235     INT        xExt;
2236     INT        yExt;
2237     HMETAFILE  hMF;
2238 } METAFILEPICT;
2239 typedef METAFILEPICT *LPMETAFILEPICT;
2240
2241 /* Metafile functions */
2242 #define META_SETBKCOLOR              0x0201
2243 #define META_SETBKMODE               0x0102
2244 #define META_SETMAPMODE              0x0103
2245 #define META_SETROP2                 0x0104
2246 #define META_SETRELABS               0x0105
2247 #define META_SETPOLYFILLMODE         0x0106
2248 #define META_SETSTRETCHBLTMODE       0x0107
2249 #define META_SETTEXTCHAREXTRA        0x0108
2250 #define META_SETTEXTCOLOR            0x0209
2251 #define META_SETTEXTJUSTIFICATION    0x020A
2252 #define META_SETWINDOWORG            0x020B
2253 #define META_SETWINDOWEXT            0x020C
2254 #define META_SETVIEWPORTORG          0x020D
2255 #define META_SETVIEWPORTEXT          0x020E
2256 #define META_OFFSETWINDOWORG         0x020F
2257 #define META_SCALEWINDOWEXT          0x0410
2258 #define META_OFFSETVIEWPORTORG       0x0211
2259 #define META_SCALEVIEWPORTEXT        0x0412
2260 #define META_LINETO                  0x0213
2261 #define META_MOVETO                  0x0214
2262 #define META_EXCLUDECLIPRECT         0x0415
2263 #define META_INTERSECTCLIPRECT       0x0416
2264 #define META_ARC                     0x0817
2265 #define META_ELLIPSE                 0x0418
2266 #define META_FLOODFILL               0x0419
2267 #define META_PIE                     0x081A
2268 #define META_RECTANGLE               0x041B
2269 #define META_ROUNDRECT               0x061C
2270 #define META_PATBLT                  0x061D
2271 #define META_SAVEDC                  0x001E
2272 #define META_SETPIXEL                0x041F
2273 #define META_OFFSETCLIPRGN           0x0220
2274 #define META_TEXTOUT                 0x0521
2275 #define META_BITBLT                  0x0922
2276 #define META_STRETCHBLT              0x0B23
2277 #define META_POLYGON                 0x0324
2278 #define META_POLYLINE                0x0325
2279 #define META_ESCAPE                  0x0626
2280 #define META_RESTOREDC               0x0127
2281 #define META_FILLREGION              0x0228
2282 #define META_FRAMEREGION             0x0429
2283 #define META_INVERTREGION            0x012A
2284 #define META_PAINTREGION             0x012B
2285 #define META_SELECTCLIPREGION        0x012C
2286 #define META_SELECTOBJECT            0x012D
2287 #define META_SETTEXTALIGN            0x012E
2288 #define META_DRAWTEXT                0x062F
2289 #define META_CHORD                   0x0830
2290 #define META_SETMAPPERFLAGS          0x0231
2291 #define META_SETTEXTOUT              0x0A32
2292 #define META_SETDIBTODEV             0x0D33
2293 #define META_SELECTPALETTE           0x0234
2294 #define META_REALIZEPALETTE          0x0035
2295 #define META_ANIMATEPALETTE          0x0436
2296 #define META_SETPALENTRIES           0x0037
2297 #define META_POLYPOLYGON             0x0538
2298 #define META_RESIZEPALETTE           0x0139
2299 #define META_DIBBITBLT               0x0940
2300 #define META_DIBSTRETCHBLT           0x0B41
2301 #define META_DIBCREATEPATTERNBRUSH   0x0142
2302 #define META_STRETCHDIB              0x0F43
2303 #define META_EXTFLOODFILL            0x0548
2304 #define META_RESETDC                 0x014C
2305 #define META_STARTDOC                0x014D
2306 #define META_STARTPAGE               0x004F
2307 #define META_ENDPAGE                 0x0050
2308 #define META_ABORTDOC                0x0052
2309 #define META_ENDDOC                  0x005E
2310 #define META_DELETEOBJECT            0x01F0
2311 #define META_CREATEPALETTE           0x00F7
2312 #define META_CREATEBRUSH             0x00F8
2313 #define META_CREATEPATTERNBRUSH      0x01F9
2314 #define META_CREATEPENINDIRECT       0x02FA
2315 #define META_CREATEFONTINDIRECT      0x02FB
2316 #define META_CREATEBRUSHINDIRECT     0x02FC
2317 #define META_CREATEBITMAPINDIRECT    0x02FD
2318 #define META_CREATEBITMAP            0x06FE
2319 #define META_CREATEREGION            0x06FF
2320
2321 /* Debugging support (DEBUG SYSTEM ONLY) */
2322 typedef struct tagWINDEBUGINFO
2323 {
2324     UINT    flags;
2325     DWORD   dwOptions;
2326     DWORD   dwFilter;
2327     char    achAllocModule[8];
2328     DWORD   dwAllocBreak;
2329     DWORD   dwAllocCount;
2330 } WINDEBUGINFO;
2331 typedef WINDEBUGINFO FAR* LPWINDEBUGINFO;
2332
2333 /* WINDEBUGINFO flags values */
2334 #define WDI_OPTIONS         0x0001
2335 #define WDI_FILTER          0x0002
2336 #define WDI_ALLOCBREAK      0x0004
2337
2338 /* dwOptions values */
2339 #define DBO_CHECKHEAP       0x0001
2340 #define DBO_BUFFERFILL      0x0004
2341 #define DBO_DISABLEGPTRAPPING 0x0010
2342 #define DBO_CHECKFREE       0x0020
2343
2344 #define DBO_SILENT          0x8000
2345
2346 #define DBO_TRACEBREAK      0x2000
2347 #define DBO_WARNINGBREAK    0x1000
2348 #define DBO_NOERRORBREAK    0x0800
2349 #define DBO_NOFATALBREAK    0x0400
2350 #define DBO_INT3BREAK       0x0100
2351
2352 /* DebugOutput flags values */
2353 #define DBF_TRACE           0x0000
2354 #define DBF_WARNING         0x4000
2355 #define DBF_ERROR           0x8000
2356 #define DBF_FATAL           0xc000
2357
2358 /* dwFilter values */
2359 #define DBF_KERNEL          0x1000
2360 #define DBF_KRN_MEMMAN      0x0001
2361 #define DBF_KRN_LOADMODULE  0x0002
2362 #define DBF_KRN_SEGMENTLOAD 0x0004
2363 #define DBF_USER            0x0800
2364 #define DBF_GDI             0x0400
2365 #define DBF_MMSYSTEM        0x0040
2366 #define DBF_PENWIN          0x0020
2367 #define DBF_APPLICATION     0x0008
2368 #define DBF_DRIVER          0x0010
2369
2370
2371 #ifndef WINELIB
2372 #pragma pack(4)
2373 #endif
2374
2375
2376 #define F(ret,name) ret name(void);
2377 #define Fa(ret,name,t1,a1) ret name(t1);
2378 #define Fb(ret,name,t1,a1,t2,a2) ret name(t1,t2);
2379 #define Fc(ret,name,t1,a1,t2,a2,t3,a3) ret name(t1,t2,t3);
2380 #define Fd(ret,name,t1,a1,t2,a2,t3,a3,t4,a4) ret name(t1,t2,t3,t4);
2381 #define Fe(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) ret name(t1,t2,t3,t4,t5);
2382 #define Ff(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) ret name(t1,t2,t3,t4,t5,t6);
2383 #define Fg(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) ret name(t1,t2,t3,t4,t5,t6,t7);
2384 #define Fh(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) ret name(t1,t2,t3,t4,t5,t6,t7,t8);
2385 #define Fi(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) ret name(t1,t2,t3,t4,t5,t6,t7,t8,t9);
2386 #define Fj(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) ret name(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10);
2387 #define Fk(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11) ret name(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11);
2388 #define Fl(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12) ret name(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12);
2389 #define Fm(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13) ret name(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13);
2390 #define Fn(ret,name,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13,t14,a14) ret name(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14);
2391
2392 int wsprintf(LPSTR a,LPSTR b,...);
2393
2394 /* Implemented functions */
2395
2396 F(BOOL,AnyPopup)
2397 F(BOOL,CloseClipboard)
2398 F(BOOL,EmptyClipboard)
2399 F(BOOL,GetInputState)
2400 F(BOOL,InSendMessage)
2401 F(BOOL,SetDeskPattern)
2402 F(DWORD,GetCurrentTime)
2403 F(DWORD,GetDialogBaseUnits)
2404 F(DWORD,GetMenuCheckMarkDimensions)
2405 F(DWORD,GetMessagePos)
2406 F(DWORD,GetTickCount)
2407 F(HANDLE,GetCurrentTask)
2408 F(HMENU,CreateMenu)
2409 F(HMENU,CreatePopupMenu)
2410 F(HWND,GetActiveWindow)
2411 F(HWND,GetCapture)
2412 F(HWND,GetClipboardOwner)
2413 F(HWND,GetClipboardViewer)
2414 F(HWND,GetDesktopHwnd)
2415 F(HWND,GetDesktopWindow)
2416 F(HWND,GetFocus)
2417 F(HWND,GetOpenClipboardWindow)
2418 F(HWND,GetSysModalWindow)
2419 F(LONG,GetMessageExtraInfo)
2420 F(LONG,GetMessageTime)
2421 F(LONG,GetVersion)
2422 F(LONG,GetWinFlags)
2423 F(LPINT,GetThresholdEvent)
2424 F(LPSTR,ValidateFreeSpaces)
2425 F(SEGPTR,GetDOSEnvironment)
2426 F(WORD,GetCaretBlinkTime)
2427 F(WORD,GetCurrentPDB)
2428 F(WORD,GetDoubleClickTime)
2429 F(WORD,GetNumTasks)
2430 F(int,CountClipboardFormats)
2431 F(int,GetKBCodePage)
2432 F(int,GetThresholdStatus)
2433 F(int,OpenSound)
2434 F(int,ProfInsChk)
2435 F(int,StartSound)
2436 F(int,StopSound)
2437 F(int,SyncAllVoices)
2438 F(void,CloseSound)
2439 F(void,DebugBreak)
2440 F(void,DestroyCaret)
2441 F(void,ProfClear)
2442 F(void,ProfFinish)
2443 F(void,ProfFlush)
2444 F(void,ProfStart)
2445 F(void,ProfStop)
2446 F(void,ReleaseCapture)
2447 F(void,SwitchStackBack)
2448 F(void,ValidateCodeSegments)
2449 F(void,WaitMessage)
2450 F(void,Yield)
2451 Fa(ATOM,AddAtom,SEGPTR,a)
2452 Fa(ATOM,DeleteAtom,ATOM,a)
2453 Fa(ATOM,FindAtom,SEGPTR,a)
2454 Fa(ATOM,GlobalAddAtom,SEGPTR,a)
2455 Fa(ATOM,GlobalDeleteAtom,ATOM,a)
2456 Fa(ATOM,GlobalFindAtom,SEGPTR,a)
2457 Fa(ATOM,RegisterClass,LPWNDCLASS,a) 
2458 Fa(BOOL,BringWindowToTop,HWND,a)
2459 Fa(BOOL,DeleteDC,HDC,a)
2460 Fa(BOOL,DeleteMetaFile,HMETAFILE,a)
2461 Fa(BOOL,DeleteObject,HANDLE,a)
2462 Fa(BOOL,DestroyCursor,HCURSOR,a)
2463 Fa(BOOL,DestroyIcon,HICON,a)
2464 Fa(BOOL,DestroyMenu,HMENU,a)
2465 Fa(BOOL,DestroyWindow,HWND,a)
2466 Fa(BOOL,EnableHardwareInput,BOOL,a)
2467 Fa(BOOL,EndDeferWindowPos,HDWP,hWinPosInfo)
2468 Fa(BOOL,FreeModule,HANDLE,a)
2469 Fa(BOOL,FreeResource,HANDLE,a)
2470 Fa(BOOL,GlobalUnWire,HGLOBAL,a)
2471 Fa(BOOL,GlobalUnlock,HGLOBAL,a)
2472 Fa(BOOL,IsBadCodePtr,SEGPTR,a)
2473 Fa(BOOL,IsCharAlpha,char,ch)
2474 Fa(BOOL,IsCharAlphaNumeric,char,ch)
2475 Fa(BOOL,IsCharLower,char,ch)
2476 Fa(BOOL,IsCharUpper,char,ch)
2477 Fa(BOOL,IsClipboardFormatAvailable,WORD,a)
2478 Fa(BOOL,IsIconic,HWND,a)
2479 Fa(BOOL,IsRectEmpty,LPRECT,a)
2480 Fa(BOOL,IsTwoByteCharPrefix,char,a)
2481 Fa(BOOL,IsWindow,HWND,a)
2482 Fa(BOOL,IsWindowEnabled,HWND,a)
2483 Fa(BOOL,IsWindowVisible,HWND,a)
2484 Fa(BOOL,IsZoomed,HWND,a)
2485 Fa(BOOL,LocalUnlock,HANDLE,a)
2486 Fa(BOOL,OpenClipboard,HWND,a)
2487 Fa(BOOL,OpenIcon,HWND,a)
2488 Fa(BOOL,RemoveFontResource,LPSTR,a)
2489 Fa(BOOL,SetDeskWallPaper,LPSTR,a)
2490 Fa(BOOL,SetErrorMode,WORD,a)
2491 Fa(BOOL,SetMessageQueue,int,a)
2492 Fa(BOOL,SetWinDebugInfo,LPWINDEBUGINFO,a)
2493 Fa(BOOL,SwapMouseButton,BOOL,a)
2494 Fa(BOOL,TranslateMessage,LPMSG,a)
2495 Fa(BOOL,UnhookWindowsHookEx,HHOOK,a)
2496 Fa(BOOL,UnrealizeObject,HBRUSH,a)
2497 Fa(BYTE,GetTempDrive,BYTE,a)
2498 Fa(COLORREF,GetBkColor,HDC,a)
2499 Fa(COLORREF,GetSysColor,short,a)
2500 Fa(COLORREF,GetTextColor,HDC,a)
2501 Fa(DWORD,GetAspectRatioFilter,HDC,a)
2502 Fa(DWORD,GetBitmapDimension,HBITMAP,a)
2503 Fa(DWORD,GetBrushOrg,HDC,a)
2504 Fa(DWORD,GetCurrentPosition,HDC,a)
2505 Fa(DWORD,GetDCOrg,HDC,a)
2506 Fa(DWORD,GetFreeSpace,WORD,a)
2507 Fa(DWORD,GetHeapSpaces,HMODULE,a)
2508 Fa(DWORD,GetSelectorBase,WORD,a)
2509 Fa(DWORD,GetSelectorLimit,WORD,a)
2510 Fa(DWORD,GetViewportExt,HDC,a)
2511 Fa(DWORD,GetViewportOrg,HDC,a)
2512 Fa(DWORD,GetWindowExt,HDC,a)
2513 Fa(DWORD,GetWindowOrg,HDC,a)
2514 Fa(DWORD,GlobalCompact,DWORD,a)
2515 Fa(DWORD,GlobalDOSAlloc,DWORD,a)
2516 Fa(DWORD,GlobalHandle,WORD,a)
2517 Fa(DWORD,GlobalSize,HGLOBAL,a)
2518 Fa(DWORD,OemKeyScan,WORD,a)
2519 Fa(FARPROC,LocalNotify,FARPROC,a)
2520 Fa(HANDLE,CreateMetaFile,LPSTR,a)
2521 Fa(HANDLE,GetAtomHandle,ATOM,a)
2522 Fa(HANDLE,GetClipboardData,WORD,a)
2523 Fa(HANDLE,GetCodeHandle,FARPROC,a)
2524 Fa(HANDLE,GetMetaFile,LPSTR,a)
2525 Fa(HANDLE,GetMetaFileBits,HANDLE,a)
2526 Fa(HANDLE,GetModuleHandle,LPCSTR,a)
2527 Fa(HANDLE,GetStockObject,int,a)
2528 Fa(HANDLE,GetWindowTask,HWND,a)
2529 Fa(HANDLE,LoadLibrary,LPCSTR,a)
2530 Fa(HANDLE,LocalFree,HANDLE,a)
2531 Fa(HANDLE,LocalHandle,WORD,a)
2532 Fa(HANDLE,SetMetaFileBits,HANDLE,a)
2533 Fa(HBITMAP,CreateBitmapIndirect,BITMAP FAR*,a)
2534 Fa(HBRUSH,CreateBrushIndirect,LOGBRUSH FAR*,a)
2535 Fa(HBRUSH,CreatePatternBrush,HBITMAP,a)
2536 Fa(HBRUSH,CreateSolidBrush,DWORD,a)
2537 Fa(HCURSOR,SetCursor,HCURSOR,a)
2538 Fa(HDC,CreateCompatibleDC,HDC,a)
2539 Fa(HDC,GetDC,HWND,a)
2540 Fa(HDC,GetDCState,HDC,a)
2541 Fa(HDC,GetWindowDC,HWND,a)
2542 Fa(HDWP,BeginDeferWindowPos,INT,nNumWindows)
2543 Fa(HFONT,CreateFontIndirect,LOGFONT FAR*,a)
2544 Fa(HGLOBAL,GetTaskQueue,HTASK,a)
2545 Fa(HGLOBAL,GlobalFree,HGLOBAL,a)
2546 Fa(HGLOBAL,GlobalLRUNewest,HGLOBAL,a)
2547 Fa(HGLOBAL,GlobalLRUOldest,HGLOBAL,a)
2548 Fa(HGLOBAL,LockSegment,HGLOBAL,a)
2549 Fa(HMENU,GetMenu,HWND,a)
2550 Fa(HMENU,LoadMenuIndirect,LPSTR,a)
2551 Fa(HMETAFILE,CloseMetaFile,HANDLE,a)
2552 Fa(HMODULE, GetExePtr,HANDLE,a)
2553 Fa(HPALETTE,CreatePalette,LPLOGPALETTE,a)
2554 Fa(HPEN,CreatePenIndirect,LOGPEN FAR*,a)
2555 Fa(HRGN,CreateEllipticRgnIndirect,LPRECT,a)
2556 Fa(HRGN,CreateRectRgnIndirect,LPRECT,a)
2557 Fa(HRGN,GetClipRgn,HDC,a)
2558 Fa(HRGN,InquireVisRgn,HDC,a)
2559 Fa(HRGN,SaveVisRgn,HDC,a)
2560 Fa(HWND,GetLastActivePopup,HWND,a)
2561 Fa(HWND,GetParent,HWND,a)
2562 Fa(HWND,GetTopWindow,HWND,a)
2563 Fa(HWND,SetActiveWindow,HWND,a)
2564 Fa(HWND,SetCapture,HWND,a)
2565 Fa(HWND,SetClipboardViewer,HWND,a)
2566 Fa(HWND,SetFocus,HWND,a)
2567 Fa(HWND,SetSysModalWindow,HWND,a)
2568 Fa(HWND,WindowFromPoint,POINT,a)
2569 Fa(INT,_lclose,INT,a)
2570 Fa(INT,lstrlen,LPCSTR,a)
2571 Fa(LONG,DispatchMessage,LPMSG,msg)
2572 Fa(LONG,SetSwapAreaSize,WORD,a)
2573 Fa(LPSTR,AnsiLower,LPSTR,a)
2574 Fa(LPSTR,AnsiUpper,LPSTR,a)
2575 Fa(LPSTR,GlobalLock,HGLOBAL,a)
2576 Fa(LPSTR,LockResource,HANDLE,a)
2577 Fa(SEGPTR,AnsiNext,SEGPTR,a)
2578 Fa(SEGPTR,GlobalWire,HGLOBAL,a)
2579 Fa(SEGPTR,WIN16_GlobalLock,HGLOBAL,a)
2580 Fa(SEGPTR,WIN16_LockResource,HANDLE,a)
2581 Fa(UINT,GDIRealizePalette,HDC,a)
2582 Fa(UINT,RealizePalette,HDC,a)
2583 Fa(WORD,AllocCStoDSAlias,WORD,a)
2584 Fa(WORD,AllocDStoCSAlias,WORD,a)
2585 Fa(WORD,AllocSelector,WORD,a)
2586 Fa(WORD,AllocSelectorArray,WORD,a)
2587 Fa(WORD,ArrangeIconicWindows,HWND,a)
2588 Fa(WORD,EnumClipboardFormats,WORD,a)
2589 Fa(WORD,FarGetOwner,HANDLE,a)
2590 Fa(WORD,FreeSelector,WORD,a)
2591 Fa(WORD,GetBkMode,HDC,a)
2592 Fa(WORD,GetDriveType,INT,a)
2593 Fa(WORD,GetMapMode,HDC,a)
2594 Fa(WORD,GetMenuItemCount,HMENU,a)
2595 Fa(WORD,GetPolyFillMode,HDC,a)
2596 Fa(WORD,GetROP2,HDC,a)
2597 Fa(WORD,GetRelAbs,HDC,a)
2598 Fa(WORD,GetStretchBltMode,HDC,a)
2599 Fa(WORD,GetSystemPaletteUse,HDC,a)
2600 Fa(WORD,GetTextAlign,HDC,a)
2601 Fa(WORD,GlobalDOSFree,WORD,a)
2602 Fa(WORD,GlobalFlags,HGLOBAL,a)
2603 Fa(WORD,GlobalPageLock,HGLOBAL,a)
2604 Fa(WORD,GlobalPageUnlock,HGLOBAL,a)
2605 Fa(WORD,InitAtomTable,WORD,a)
2606 Fa(WORD,LocalCompact,WORD,a)
2607 Fa(WORD,LocalFlags,HLOCAL,a)
2608 Fa(WORD,LocalLock,HLOCAL,a)
2609 Fa(WORD,LocalSize,HLOCAL,a)
2610 Fa(WORD,RealizeDefaultPalette,HDC,a)
2611 Fa(WORD,RegisterClipboardFormat,LPCSTR,a)
2612 Fa(WORD,RegisterWindowMessage,SEGPTR,a)
2613 Fa(WORD,SetHandleCount,WORD,a)
2614 Fa(WORD,VkKeyScan,WORD,a)
2615 Fa(int,AddFontResource,LPSTR,a)
2616 Fa(int,Catch,LPCATCHBUF,a)
2617 Fa(int,ClearCommBreak,int,a)
2618 Fa(int,CloseComm,int,a)
2619 Fa(int,CountVoiceNotes,int,a)
2620 Fa(int,GetAsyncKeyState,int,a)
2621 Fa(int,GetDlgCtrlID,HWND,a)
2622 Fa(int,GetKeyState,int,a)
2623 Fa(int,GetKeyboardType,int,a)
2624 Fa(int,GetModuleUsage,HANDLE,a)
2625 Fa(int,GetSystemMetrics,WORD,a)
2626 Fa(int,GetWindowTextLength,HWND,a)
2627 Fa(int,RestoreVisRgn,HDC,a)
2628 Fa(int,SaveDC,HDC,a)
2629 Fa(int,SetCommBreak,int,a)
2630 Fa(int,SetCommState,DCB*,a)
2631 Fa(int,ShowCursor,BOOL,a)
2632 Fa(int,UpdateColors,HDC,a)
2633 Fa(int,WaitSoundState,int,a)
2634 Fa(short,GetTextCharacterExtra,HDC,a)
2635 Fa(void,ClipCursor,LPRECT,a)
2636 Fa(void,CloseWindow,HWND,a)
2637 Fa(void,DrawMenuBar,HWND,a)
2638 Fa(void,FatalExit,int,a)
2639 Fa(void,FreeLibrary,HANDLE,a)
2640 Fa(void,FreeProcInstance,FARPROC,a)
2641 Fa(void,GetCaretPos,LPPOINT,a)
2642 Fa(void,GetCursorPos,LPPOINT,a)
2643 Fa(void,GetKeyboardState,BYTE FAR*,a)
2644 Fa(void,GlobalFix,HGLOBAL,a)
2645 Fa(void,GlobalFreeAll,HANDLE,a)
2646 Fa(void,GlobalNotify,FARPROC,a)
2647 Fa(void,GlobalUnfix,HGLOBAL,a)
2648 Fa(void,HideCaret,HWND,a)
2649 Fa(void,LimitEmsPages,DWORD,a)
2650 Fa(void,MessageBeep,WORD,a)
2651 Fa(void,OutputDebugString,LPSTR,a)
2652 Fa(void,PostQuitMessage,int,a)
2653 Fa(void,ReplyMessage,LONG,a)
2654 Fa(void,SetCaretBlinkTime,WORD,a)
2655 Fa(void,SetConvertHook,BOOL,a)
2656 Fa(void,SetDoubleClickTime,WORD,a)
2657 Fa(void,SetKeyboardState,BYTE FAR*,a)
2658 Fa(void,SetRectEmpty,LPRECT,a)
2659 Fa(void,ShowCaret,HWND,a)
2660 Fa(void,SwapRecording,WORD,a)
2661 Fa(void,UnlockSegment,HGLOBAL,a)
2662 Fa(void,UpdateWindow,HWND,a)
2663 Fb(BOOL,CallMsgFilter,SEGPTR,a,short,b)
2664 Fb(BOOL,ChangeClipboardChain,HWND,a,HWND,b)
2665 Fb(BOOL,EnableWindow,HWND,a,BOOL,b)
2666 Fb(BOOL,EnumWindows,FARPROC,a,LONG,b)
2667 Fb(BOOL,EqualRect,LPRECT,a,LPRECT,b)
2668 Fb(BOOL,EqualRgn,HRGN,a,HRGN,b)
2669 Fb(BOOL,ExitWindows,DWORD,dwReserved,WORD,wReturnCode)
2670 Fb(BOOL,FlashWindow,HWND,a,BOOL,b)
2671 Fb(BOOL,GetBitmapDimensionEx,HBITMAP,a,LPSIZE,b)
2672 Fb(BOOL,GetBrushOrgEx,HDC,a,LPPOINT,b)
2673 Fb(BOOL,GetCurrentPositionEx,HDC,a,LPPOINT,b)
2674 Fb(BOOL,GetTextMetrics,HDC,a,LPTEXTMETRIC,b)
2675 Fb(BOOL,GetViewportExtEx,HDC,a,LPPOINT,b)
2676 Fb(BOOL,GetViewportOrgEx,HDC,a,LPPOINT,b)
2677 Fb(BOOL,GetWinDebugInfo,LPWINDEBUGINFO,a,UINT,b)
2678 Fb(BOOL,GetWindowExtEx,HDC,a,LPPOINT,b)
2679 Fb(BOOL,GetWindowOrgEx,HDC,a,LPPOINT,b)
2680 Fb(BOOL,GetWindowPlacement,HWND,a,LPWINDOWPLACEMENT,b)
2681 Fb(BOOL,InvertRgn,HDC,a,HRGN,b)
2682 Fb(BOOL,IsBadHugeReadPtr,SEGPTR,a,DWORD,b)
2683 Fb(BOOL,IsBadHugeWritePtr,SEGPTR,a,DWORD,b)
2684 Fb(BOOL,IsBadReadPtr,SEGPTR,a,WORD,b)
2685 Fb(BOOL,IsBadStringPtr,SEGPTR,a,WORD,b)
2686 Fb(BOOL,IsBadWritePtr,SEGPTR,a,WORD,b)
2687 Fb(BOOL,IsChild,HWND,a,HWND,b)
2688 Fb(BOOL,IsDialogMessage,HWND,a,LPMSG,b)
2689 Fb(BOOL,KillSystemTimer,HWND,a,WORD,b)
2690 Fb(BOOL,KillTimer,HWND,a,WORD,b)
2691 Fb(BOOL,OemToAnsi,LPSTR,a,LPSTR,b)
2692 Fb(BOOL,PaintRgn,HDC,a,HRGN,b)
2693 Fb(BOOL,PlayMetaFile,HDC,a,HANDLE,b)
2694 Fb(BOOL,PtInRect,LPRECT,a,POINT,b)
2695 Fb(BOOL,RectInRegion,HRGN,a,LPRECT,b)
2696 Fb(BOOL,RectVisible,HDC,a,LPRECT,b)
2697 Fb(BOOL,ResizePalette,HPALETTE,a,WORD,b)
2698 Fb(BOOL,RestoreDC,HDC,a,short,b)
2699 Fb(BOOL,SetConvertParams,int,a,int,b)
2700 Fb(BOOL,SetMenu,HWND,a,HMENU,b)
2701 Fb(BOOL,SetWindowPlacement,HWND,a,LPWINDOWPLACEMENT,b)
2702 Fb(BOOL,ShowWindow,HWND,a,int,b) 
2703 Fb(BOOL,TranslateMDISysAccel,HWND,a,LPMSG,b)
2704 Fb(BOOL,UnhookWindowsHook,short,a,FARPROC,b)
2705 Fb(BOOL,UnregisterClass,SEGPTR,a,HANDLE,b)
2706 Fb(DWORD,GetNearestColor,HDC,a,DWORD,b)
2707 Fb(DWORD,SetBkColor,HDC,a,COLORREF,b)
2708 Fb(DWORD,SetMapperFlags,HDC,a,DWORD,b)
2709 Fb(DWORD,SetTextColor,HDC,a,DWORD,b)
2710 Fb(DWORD,SizeofResource,HANDLE,a,HRSRC,b)
2711 Fb(FARPROC,GetProcAddress,HANDLE,a,SEGPTR,b)
2712 Fb(FARPROC,MakeProcInstance,FARPROC,a,HANDLE,b)
2713 Fb(FARPROC,SetWindowsHook,short,a,FARPROC,b)
2714 Fb(HANDLE,CopyMetaFile,HANDLE,a,LPSTR,b)
2715 Fb(HANDLE,GetProp,HWND,a,SEGPTR,b)
2716 Fb(HANDLE,LoadAccelerators,HANDLE,a,SEGPTR,b)
2717 Fb(HANDLE,LoadModule,LPCSTR,a,LPVOID,b)
2718 Fb(HANDLE,LoadResource,HANDLE,a,HANDLE,b)
2719 Fb(HANDLE,LocalAlloc,WORD,a,WORD,b)
2720 Fb(HANDLE,RemoveProp,HWND,a,SEGPTR,b)
2721 Fb(HANDLE,SelectObject,HDC,a,HANDLE,b)
2722 Fb(HANDLE,SetClipboardData,WORD,a,HANDLE,b)
2723 Fb(HBITMAP,LoadBitmap,HANDLE,a,SEGPTR,b)
2724 Fb(HBRUSH,CreateDIBPatternBrush,HANDLE,a,WORD,b)
2725 Fb(HBRUSH,CreateHatchBrush,short,a,COLORREF,b)
2726 Fb(HCURSOR,LoadCursor,HANDLE,a,SEGPTR,b)
2727 Fb(HDC,BeginPaint,HWND,a,LPPAINTSTRUCT,b) 
2728 Fb(HGLOBAL,GlobalAlloc,WORD,a,DWORD,b)
2729 Fb(HGLOBAL,SetTaskQueue,HTASK,a,HGLOBAL,b)
2730 Fb(HICON,LoadIcon,HANDLE,a,SEGPTR,b)
2731 Fb(HMENU,GetSubMenu,HMENU,a,short,b)
2732 Fb(HMENU,GetSystemMenu,HWND,a,BOOL,b)
2733 Fb(HMENU,LoadMenu,HANDLE,a,SEGPTR,b)
2734 Fb(HMENU,LookupMenuHandle,HMENU,a,INT,b)
2735 Fb(HPALETTE,GDISelectPalette,HDC,a,HPALETTE,b)
2736 Fb(HWND,ChildWindowFromPoint,HWND,a,POINT,b)
2737 Fb(HWND,FindWindow,SEGPTR,a,LPSTR,b)
2738 Fb(HWND,GetDlgItem,HWND,a,WORD,b)
2739 Fb(HWND,GetNextWindow,HWND,a,WORD,b)
2740 Fb(HWND,GetWindow,HWND,a,WORD,b)
2741 Fb(HWND,SetParent,HWND,a,HWND,b)
2742 Fb(INT,AnsiToOem,LPSTR,a,LPSTR,b)
2743 Fb(INT,_lcreat,LPSTR,a,INT,b)
2744 Fb(INT,_lopen,LPSTR,a,INT,b)
2745 Fb(INT,lstrcmp,LPCSTR,a,LPCSTR,b )
2746 Fb(INT,lstrcmpi,LPCSTR,a,LPCSTR,b )
2747 Fb(LONG,EscapeCommFunction,int,a,int,b)
2748 Fb(LONG,GetClassLong,HWND,a,short,b)
2749 Fb(LONG,GetWindowLong,HWND,a,short,b)
2750 Fb(SEGPTR,AnsiPrev,SEGPTR,a,SEGPTR,b)
2751 Fb(SEGPTR,lstrcat,SEGPTR,a,SEGPTR,b)
2752 Fb(SEGPTR,lstrcpy,SEGPTR,a,SEGPTR,b)
2753 Fb(WORD FAR*,SetCommEventMask,int,a,WORD,b)
2754 Fb(WORD,AnsiLowerBuff,LPSTR,a,WORD,b)
2755 Fb(WORD,AnsiUpperBuff,LPSTR,a,WORD,b)
2756 Fb(WORD,ChangeSelector,WORD,a,WORD,b)
2757 Fb(WORD,GetClassWord,HWND,a,short,b)
2758 Fb(WORD,GetCommEventMask,int,a,int,b)
2759 Fb(WORD,GetMenuItemID,HMENU,a,int,b)
2760 Fb(WORD,GetNearestPaletteIndex,HPALETTE,a,DWORD,b)
2761 Fb(WORD,GetSystemDirectory,LPSTR,a,WORD,b)
2762 Fb(WORD,GetWindowWord,HWND,a,short,b)
2763 Fb(WORD,GetWindowsDirectory,LPSTR,a,WORD,b)
2764 Fb(WORD,IsDlgButtonChecked,HWND,a,WORD,b)
2765 Fb(WORD,LocalShrink,HANDLE,a,WORD,b)
2766 Fb(WORD,MapVirtualKey,WORD,a,WORD,b)
2767 Fb(WORD,PrestoChangoSelector,WORD,a,WORD,b)
2768 Fb(WORD,SetBkMode,HDC,a,WORD,b)
2769 Fb(WORD,SetMapMode,HDC,a,WORD,b)
2770 Fb(WORD,SetPolyFillMode,HDC,a,WORD,b)
2771 Fb(WORD,SetROP2,HDC,a,WORD,b)
2772 Fb(WORD,SetRelAbs,HDC,a,WORD,b)
2773 Fb(WORD,SetSelectorBase,WORD,a,DWORD,b)
2774 Fb(WORD,SetSelectorLimit,WORD,a,DWORD,b)
2775 Fb(WORD,SetStretchBltMode,HDC,a,WORD,b)
2776 Fb(WORD,SetSystemPaletteUse,HDC,a,WORD,b)
2777 Fb(WORD,SetTextAlign,HDC,a,WORD,b)
2778 Fb(WORD,WinExec,LPSTR,a,WORD,b)
2779 Fb(int,AccessResource,HANDLE,a,HANDLE,b)
2780 Fb(int,BuildCommDCB,LPSTR,a,DCB*,b)
2781 Fb(int,ConvertRequest,HWND,a,LPKANJISTRUCT,b)
2782 Fb(int,EnumProps,HWND,a,FARPROC,b)
2783 Fb(int,ExcludeUpdateRgn,HDC,a,HWND,b)
2784 Fb(int,FlushComm,int,a,int,b)
2785 Fb(int,GetClipBox,HDC,a,LPRECT,b)
2786 Fb(int,GetCommError,int,a,COMSTAT*,b)
2787 Fb(int,GetCommState,int,a,DCB*,b)
2788 Fb(int,GetDeviceCaps,HDC,a,WORD,b)
2789 Fb(int,GetPriorityClipboardFormat,WORD FAR*,a,short,b)
2790 Fb(int,GetRgnBox,HRGN,a,LPRECT,b)
2791 Fb(int,GetScrollPos,HWND,a,int,b)
2792 Fb(int,ReleaseDC,HWND,a,HDC,b)
2793 Fb(int,SelectClipRgn,HDC,a,HRGN,b)
2794 Fb(int,SelectVisRgn,HDC,a,HRGN,b)
2795 Fb(int,SetSoundNoise,int,a,int,b)
2796 Fb(int,SetVoiceQueueSize,int,a,int,b)
2797 Fb(int,SetVoiceThreshold,int,a,int,b)
2798 Fb(int,Throw,LPCATCHBUF,a,int,b)
2799 Fb(int,TransmitCommChar,int,a,char,b)
2800 Fb(int,UngetCommChar,int,a,char,b)
2801 Fb(short,SetTextCharacterExtra,HDC,a,short,b)
2802 Fb(void,ClientToScreen,HWND,a,LPPOINT,b)
2803 Fb(void,CopyRect,LPRECT,a,LPRECT,b)
2804 Fb(void,DrawFocusRect,HDC,a,LPRECT,b)
2805 Fb(void,EndDialog,HWND,a,short,b)
2806 Fb(void,EndPaint,HWND,a,LPPAINTSTRUCT,b)
2807 Fb(void,FarSetOwner,HANDLE,a,WORD,b)
2808 Fb(void,GetClientRect,HWND,a,LPRECT,b)
2809 Fb(void,GetCodeInfo,FARPROC,lpProc,LPVOID,lpSegInfo)
2810 Fb(void,GetWindowRect,HWND,a,LPRECT,b)
2811 Fb(void,InvertRect,HDC,a,LPRECT,b)
2812 Fb(void,MapDialogRect,HWND,a,LPRECT,b)
2813 Fb(void,ProfSampRate,int,a,int,b)
2814 Fb(void,ProfSetup,int,a,int,b)
2815 Fb(void,ScreenToClient,HWND,a,LPPOINT,b)
2816 Fb(void,SetCaretPos,short,a,short,b)
2817 Fb(void,SetCursorPos,short,a,short,b)
2818 Fb(void,SetDCState,HDC,a,HDC,b)
2819 Fb(void,SetWindowText,HWND,a,LPSTR,b)
2820 Fb(void,ShowOwnedPopups,HWND,a,BOOL,b)
2821 Fb(void,ValidateRect,HWND,a,LPRECT,b)
2822 Fb(void,ValidateRgn,HWND,a,HRGN,b)
2823 Fc(BOOL,CheckMenuItem,HMENU,a,WORD,b,WORD,c)
2824 Fc(BOOL,DPtoLP,HDC,a,LPPOINT,b,int,c)
2825 Fc(BOOL,DeleteMenu,HMENU,a,WORD,b,WORD,c)
2826 Fc(BOOL,DlgDirSelect,HWND,a,LPSTR,b,int,c)
2827 Fc(BOOL,DlgDirSelectComboBox,HWND,a,LPSTR,b,int,c)
2828 Fc(BOOL,EnableMenuItem,HMENU,a,WORD,b,WORD,c)
2829 Fc(BOOL,EnableScrollBar,HWND,a,INT,b,UINT,c)
2830 Fc(BOOL,EnumChildWindows,HWND,a,FARPROC,b,LONG,c)
2831 Fc(BOOL,EnumTaskWindows,HANDLE,a,FARPROC,b,LONG,c)
2832 Fc(BOOL,FillRgn,HDC,a,HRGN,b,HBRUSH,c)
2833 Fc(BOOL,GetClassInfo,HANDLE,a,SEGPTR,b,LPWNDCLASS,c)
2834 Fc(BOOL,GetUpdateRect,HWND,a,LPRECT,b,BOOL,c)
2835 Fc(BOOL,IntersectRect,LPRECT,a,LPRECT,b,LPRECT,c)
2836 Fc(BOOL,LPtoDP,HDC,a,LPPOINT,b,int,c)
2837 Fc(BOOL,LineTo,HDC,a,short,b,short,c)
2838 Fc(BOOL,LocalInit,WORD,a,WORD,b,WORD,c)
2839 Fc(BOOL,Polygon,HDC,a,LPPOINT,b,int,c)
2840 Fc(BOOL,Polyline,HDC,a,LPPOINT,b,int,c)
2841 Fc(BOOL,PtInRegion,HRGN,a,short,b,short,c)
2842 Fc(BOOL,PtVisible,HDC,a,short,b,short,c)
2843 Fc(BOOL,RemoveMenu,HMENU,a,WORD,b,WORD,c)
2844 Fc(BOOL,SetProp,HWND,a,SEGPTR,b,HANDLE,c)
2845 Fc(BOOL,SubtractRect,LPRECT,a,LPRECT,b,LPRECT,c)
2846 Fc(BOOL,UnionRect,LPRECT,a,LPRECT,b,LPRECT,c)
2847 Fc(BOOL,WriteProfileString,LPSTR,a,LPSTR,b,LPSTR,c)
2848 Fc(DWORD,GetPixel,HDC,a,short,b,short,c)
2849 Fc(DWORD,GetTextExtent,HDC,a,LPSTR,b,short,c)
2850 Fc(DWORD,MoveTo,HDC,a,short,b,short,c)
2851 Fc(DWORD,OffsetViewportOrg,HDC,a,short,b,short,c)
2852 Fc(DWORD,OffsetWindowOrg,HDC,a,short,b,short,c)
2853 Fc(DWORD,SetBitmapDimension,HBITMAP,a,short,b,short,c)
2854 Fc(DWORD,SetBrushOrg,HDC,a,short,b,short,c)
2855 Fc(DWORD,SetViewportExt,HDC,a,short,b,short,c)
2856 Fc(DWORD,SetViewportOrg,HDC,a,short,b,short,c)
2857 Fc(DWORD,SetWindowExt,HDC,a,short,b,short,c)
2858 Fc(DWORD,SetWindowOrg,HDC,a,short,b,short,c)
2859 Fc(FARPROC,SetResourceHandler,HANDLE,a,LPSTR,b,FARPROC,c)
2860 Fc(HANDLE,AllocResource,HANDLE,a,HANDLE,b,DWORD,c)
2861 Fc(HANDLE,FindResource,HANDLE,a,SEGPTR,b,SEGPTR,c)
2862 Fc(HANDLE,LocalReAlloc,HANDLE,a,WORD,b,WORD,c)
2863 Fc(HBITMAP,CreateCompatibleBitmap,HDC,a,short,b,short,c)
2864 Fc(HBITMAP,CreateDiscardableBitmap,HDC,a,short,b,short,c)
2865 Fc(HBRUSH,GetControlBrush,HWND,a,HDC,b,WORD,c)
2866 Fc(HDC,GetDCEx,HWND,a,HRGN,b,DWORD,c)
2867 Fc(HGLOBAL,GlobalReAlloc,HGLOBAL,a,DWORD,b,WORD,c)
2868 Fc(HPALETTE,SelectPalette,HDC,a,HPALETTE,b,BOOL,c)
2869 Fc(HPEN,CreatePen,short,a,short,b,COLORREF,c)
2870 Fc(HRGN,CreatePolygonRgn,LPPOINT,a,short,b,short,c)
2871 Fc(HWND,GetNextDlgGroupItem,HWND,a,HWND,b,BOOL,c)
2872 Fc(HWND,GetNextDlgTabItem,HWND,a,HWND,b,BOOL,c)
2873 Fc(INT,GetTextFace,HDC,a,INT,b,LPSTR,c)
2874 Fc(INT,OpenFile,LPSTR,a,LPOFSTRUCT,b,WORD,c)
2875 Fc(INT,_lread,INT,a,LPSTR,b,WORD,c)
2876 Fc(INT,_lwrite,INT,a,LPCSTR,b,WORD,c)
2877 Fc(LONG,GetBitmapBits,HBITMAP,a,LONG,b,LPSTR,c)
2878 Fc(LONG,SetBitmapBits,HBITMAP,a,LONG,b,LPSTR,c)
2879 Fc(LONG,SetClassLong,HWND,a,short,b,LONG,c)
2880 Fc(LONG,SetWindowLong,HWND,a,short,b,LONG,c)
2881 Fc(LONG,_hread,INT,a,LPSTR,b,LONG,c)
2882 Fc(LONG,_hwrite,INT,a,LPCSTR,b,LONG,c)
2883 Fc(LONG,_llseek,INT,a,LONG,b,INT,c)
2884 Fc(SEGPTR,lstrcpyn,SEGPTR,a,SEGPTR,b,WORD,c)
2885 Fc(WORD,GetAtomName,ATOM,a,LPSTR,b,short,c)
2886 Fc(WORD,GetInternalWindowPos,HWND,a,LPRECT,b,LPPOINT,c)
2887 Fc(WORD,GetMenuState,HMENU,a,WORD,b,WORD,c)
2888 Fc(WORD,GetProfileInt,LPSTR,a,LPSTR,b,int,c)
2889 Fc(WORD,GlobalGetAtomName,ATOM,a,LPSTR,b,short,c)
2890 Fc(WORD,SelectorAccessRights,WORD,a,WORD,b,WORD,c)
2891 Fc(WORD,SetClassWord,HWND,a,short,b,WORD,c)
2892 Fc(WORD,SetWindowWord,HWND,a,short,b,WORD,c)
2893 Fc(int,FillRect,HDC,a,LPRECT,b,HBRUSH,c)
2894 Fc(int,FrameRect,HDC,a,LPRECT,b,HBRUSH,c)
2895 Fc(int,GetClassName,HWND,a,LPSTR,b,short,c)
2896 Fc(int,GetClipboardFormatName,WORD,a,LPSTR,b,short,c)
2897 Fc(int,GetEnvironment,LPSTR,a,LPSTR,b,WORD,c)
2898 Fc(int,GetInstanceData,HANDLE,a,WORD,b,int,c)
2899 Fc(int,GetKeyNameText,LONG,a,LPSTR,b,int,c)
2900 Fc(int,GetModuleFileName,HANDLE,a,LPSTR,b,short,c)
2901 Fc(int,GetObject,HANDLE,a,int,b,LPSTR,c)
2902 Fc(int,GetUpdateRgn,HWND,a,HRGN,b,BOOL,c)
2903 Fc(int,GetWindowText,HWND,a,LPSTR,b,int,c)
2904 Fc(int,MulDiv,int,a,int,b,int,c)
2905 Fc(int,OffsetClipRgn,HDC,a,short,b,short,c)
2906 Fc(int,OffsetRgn,HRGN,a,short,b,short,c)
2907 Fc(int,OpenComm,LPSTR,a,WORD,b,WORD,c)
2908 Fc(int,ReadComm,int,a,LPSTR,b,int,c)
2909 Fc(int,SetEnvironment,LPSTR,a,LPSTR,b,WORD,c)
2910 Fc(int,SetVoiceEnvelope,int,a,int,b,int,c)
2911 Fc(int,SetVoiceSound,int,a,LONG,b,int,c)
2912 Fc(int,TranslateAccelerator,HWND,a,HANDLE,b,LPMSG,c)
2913 Fc(int,WriteComm,int,a,LPSTR,b,int,c)
2914 Fc(int,wvsprintf,LPSTR,a,LPSTR,b,LPSTR,c)
2915 Fc(short,SetTextJustification,HDC,a,short,b,short,c)
2916 Fc(void,AdjustWindowRect,LPRECT,a,DWORD,b,BOOL,c)
2917 Fc(void,AnsiToOemBuff,LPSTR,a,LPSTR,b,INT,c)
2918 Fc(void,CheckDlgButton,HWND,a,WORD,b,WORD,c)
2919 Fc(void,InflateRect,LPRECT,a,short,b,short,c)
2920 Fc(void,InvalidateRect,HWND,a,LPRECT,b,BOOL,c)
2921 Fc(void,InvalidateRgn,HWND,a,HRGN,b,BOOL,c)
2922 Fc(void,OemToAnsiBuff,LPSTR,a,LPSTR,b,INT,c)
2923 Fc(void,OffsetRect,LPRECT,a,short,b,short,c)
2924 Fc(void,SetDlgItemText,HWND,a,WORD,b,SEGPTR,c)
2925 Fc(void,SetSysColors,int,a,LPINT,b,COLORREF*,c)
2926 Fc(void,ShowScrollBar,HWND,a,WORD,b,BOOL,c)
2927 Fc(void,SwitchStackTo,WORD,a,WORD,b,WORD,c)
2928 Fd(BOOL,AppendMenu,HMENU,a,WORD,b,WORD,c,LPSTR,d)
2929 Fd(BOOL,DrawIcon,HDC,a,short,b,short,c,HICON,d)
2930 Fd(BOOL,EnumMetaFile,HDC,a,LOCALHANDLE,b,FARPROC,c,BYTE FAR*,d)
2931 Fd(BOOL,FloodFill,HDC,a,INT,b,INT,c,COLORREF,d)
2932 Fd(BOOL,GetCharWidth,HDC,a,WORD,b,WORD,c,LPINT,d)
2933 Fd(BOOL,GetMessage,SEGPTR,msg,HWND,b,WORD,c,WORD,d)
2934 Fd(BOOL,GetTextExtentPoint,HDC,a,LPSTR,b,short,c,LPSIZE,d)
2935 Fd(BOOL,HiliteMenuItem,HWND,a,HMENU,b,WORD,c,WORD,d)
2936 Fd(BOOL,MoveToEx,HDC,a,short,b,short,c,LPPOINT,d)
2937 Fd(BOOL,OffsetViewportOrgEx,HDC,a,short,b,short,c,LPPOINT,d)
2938 Fd(BOOL,OffsetWindowOrgEx,HDC,a,short,b,short,c,LPPOINT,d)
2939 Fd(BOOL,PolyPolygon,HDC,a,LPPOINT,b,LPINT,c,WORD,d)
2940 Fd(BOOL,PostAppMessage,HANDLE,a,WORD,b,WORD,c,LONG,d)
2941 Fd(BOOL,PostMessage,HWND,a,WORD,b,WORD,c,LONG,d)
2942 Fd(BOOL,RedrawWindow,HWND,a,LPRECT,b,HRGN,c,UINT,d)
2943 Fd(BOOL,SetBitmapDimensionEx,HBITMAP,a,short,b,short,c,LPSIZE,d)
2944 Fd(BOOL,SetViewportExtEx,HDC,a,short,b,short,c,LPSIZE,d)
2945 Fd(BOOL,SetViewportOrgEx,HDC,a,short,b,short,c,LPPOINT,d)
2946 Fd(BOOL,SetWindowExtEx,HDC,a,short,b,short,c,LPSIZE,d)
2947 Fd(BOOL,SetWindowOrgEx,HDC,a,short,b,short,c,LPPOINT,d)
2948 Fd(BOOL,WinHelp,HWND,hwndMain,LPSTR,lpszHelp,WORD,usCommand,DWORD,ulData)
2949 Fd(BOOL,WritePrivateProfileString,LPSTR,a,LPSTR,b,LPSTR,c,LPSTR,d)
2950 Fd(COLORREF,SetPixel,HDC,a,short,b,short,c,COLORREF,d)
2951 Fd(DWORD,CallNextHookEx,HHOOK,a,short,b,WPARAM,c,LPARAM,d)
2952 Fd(DWORD,DefHookProc,short,a,WORD,b,DWORD,c,HHOOK FAR*,d)
2953 Fd(HDC,CreateDC,LPSTR,a,LPSTR,b,LPSTR,c,LPSTR,d)
2954 Fd(HDC,CreateIC,LPSTR,a,LPSTR,b,LPSTR,c,LPSTR,d)
2955 Fd(HHOOK,SetWindowsHookEx,short,a,HOOKPROC,b,HINSTANCE,c,HTASK,d)
2956 Fd(HRGN,CreateEllipticRgn,short,a,short,b,short,c,short,d)
2957 Fd(HRGN,CreatePolyPolygonRgn,LPPOINT,a,LPINT,b,short,c,short,d)
2958 Fd(HRGN,CreateRectRgn,short,a,short,b,short,c,short,d)
2959 Fd(HWND,CreateDialog,HANDLE,a,SEGPTR,b,HWND,c,WNDPROC,d)
2960 Fd(HWND,CreateDialogIndirect,HANDLE,a,LPCSTR,b,HWND,c,WNDPROC,d)
2961 Fd(INT,GetTempFileName,BYTE,a,LPCSTR,b,UINT,c,LPSTR,d)
2962 Fd(LONG,DefDlgProc,HWND,a,WORD,b,WORD,c,LONG,d)
2963 Fd(LONG,DefMDIChildProc,HWND,a,WORD,b,WORD,c,LONG,d)
2964 Fd(LONG,DefWindowProc,HWND,a,WORD,b,WORD,c,LONG,d)
2965 Fd(LONG,SendMessage,HWND,a,WORD,b,WORD,c,LONG,d)
2966 Fd(WORD,GetDlgItemInt,HWND,a,WORD,b,BOOL FAR*,c,BOOL,d)
2967 Fd(WORD,GetPaletteEntries,HPALETTE,a,WORD,b,WORD,c,LPPALETTEENTRY,d)
2968 Fd(WORD,GetPrivateProfileInt,LPSTR,a,LPSTR,b,short,c,LPSTR,d)
2969 Fd(WORD,GetSystemPaletteEntries,HDC,a,WORD,b,WORD,c,LPPALETTEENTRY,d)
2970 Fd(WORD,SetPaletteEntries,HPALETTE,a,WORD,b,WORD,c,LPPALETTEENTRY,d)
2971 Fd(WORD,SetSystemTimer,HWND,a,WORD,d,WORD,b,FARPROC,c)
2972 Fd(WORD,SetTimer,HWND,a,WORD,d,WORD,b,FARPROC,c)
2973 Fd(int,CombineRgn,HRGN,a,HRGN,b,HRGN,c,short,d)
2974 Fd(int,DialogBox,HINSTANCE,a,SEGPTR,b,HWND,c,WNDPROC,d)
2975 Fd(int,DialogBoxIndirect,HANDLE,a,HANDLE,b,HWND,c,WNDPROC,d)
2976 Fd(int,EnumFonts,HDC,a,LPSTR,b,FARPROC,c,LPSTR,d)
2977 Fd(int,EnumObjects,HDC,a,int,b,FARPROC,c,LPSTR,d)
2978 Fd(int,GetDlgItemText,HWND,a,WORD,b,SEGPTR,c,WORD,d)
2979 Fd(int,LoadString,HANDLE,a,WORD,b,LPSTR,c,int,d)
2980 Fd(int,MessageBox,HWND,a,LPSTR,b,LPSTR,c,WORD,d)
2981 Fd(int,SetScrollPos,HWND,a,int,b,int,c,BOOL,d)
2982 Fd(int,SetVoiceNote,int,a,int,b,int,c,int,d)
2983 Fd(void,AdjustWindowRectEx,LPRECT,a,DWORD,b,BOOL,c,DWORD,d)
2984 Fd(void,AnimatePalette,HPALETTE,a,WORD,b,WORD,c,LPPALETTEENTRY,d)
2985 Fd(void,CheckRadioButton,HWND,a,WORD,b,WORD,c,WORD,d)
2986 Fd(void,CreateCaret,HWND,a,HBITMAP,b,short,c,short,d)
2987 Fd(void,FillWindow,HWND,a,HWND,b,HDC,c,HBRUSH,d)
2988 Fd(void,GetScrollRange,HWND,a,int,b,LPINT,c,LPINT,d)
2989 Fd(void,MapWindowPoints,HWND,a,HWND,b,LPPOINT,c,WORD,d)
2990 Fd(void,PlayMetaFileRecord,HDC,a,LPHANDLETABLE,b,LPMETARECORD,c,WORD,d)
2991 Fd(void,SetDlgItemInt,HWND,a,WORD,b,WORD,c,BOOL,d)
2992 Fd(void,SetInternalWindowPos,HWND,a,WORD,b,LPRECT,c,LPPOINT,d)
2993 Fe(BOOL,ChangeMenu,HMENU,a,WORD,b,LPSTR,c,WORD,d,WORD,e)
2994 Fe(BOOL,Ellipse,HDC,a,int,b,int,c,int,d,int,e)
2995 Fe(BOOL,ExtFloodFill,HDC,a,INT,b,INT,c,COLORREF,d,WORD,e)
2996 Fe(BOOL,FrameRgn,HDC,a,HRGN,b,HBRUSH,e,int,c,int,d)
2997 Fe(BOOL,InsertMenu,HMENU,a,WORD,b,WORD,c,WORD,d,LPSTR,e)
2998 Fe(BOOL,ModifyMenu,HMENU,a,WORD,b,WORD,c,WORD,d,LPSTR,e)
2999 Fe(BOOL,PeekMessage,LPMSG,a,HWND,b,WORD,c,WORD,d,WORD,e)
3000 Fe(BOOL,Rectangle,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom)
3001 Fe(BOOL,SetMenuItemBitmaps,HMENU,a,WORD,b,WORD,c,HBITMAP,d,HBITMAP,e)
3002 Fe(BOOL,TextOut,HDC,a,short,b,short,c,LPSTR,d,short,e)
3003 Fe(DWORD,GetTabbedTextExtent,HDC,a,LPSTR,b,int,c,int,d,LPINT,e)
3004 Fe(DWORD,ScaleViewportExt,HDC,a,short,b,short,c,short,d,short,e)
3005 Fe(DWORD,ScaleWindowExt,HDC,a,short,b,short,c,short,d,short,e)
3006 Fe(HBITMAP,CreateBitmap,short,a,short,b,BYTE,c,BYTE,d,LPSTR,e)
3007 Fe(HWND,CreateDialogIndirectParam,HANDLE,a,LPCSTR,b,HWND,c,WNDPROC,d,LPARAM,e)
3008 Fe(HWND,CreateDialogParam,HANDLE,a,SEGPTR,b,HWND,c,WNDPROC,d,LPARAM,e)
3009 Fe(LONG,CallWindowProc,WNDPROC,a,HWND,b,WORD,c,WORD,d,LONG,e)
3010 Fe(LONG,DefFrameProc,HWND,a,HWND,b,WORD,c,WORD,d,LONG,e)
3011 Fe(LONG,SendDlgItemMessage,HWND,a,WORD,b,WORD,c,WORD,d,LONG,e)
3012 Fe(int,DialogBoxIndirectParam,HANDLE,a,HANDLE,b,HWND,c,WNDPROC,d,LONG,e)
3013 Fe(int,DialogBoxParam,HANDLE,a,SEGPTR,b,HWND,c,WNDPROC,d,LONG,e)
3014 Fe(int,DlgDirList,HWND,a,LPSTR,b,int,c,int,d,WORD,e)
3015 Fe(int,DlgDirListComboBox,HWND,a,SEGPTR,b,int,c,int,d,WORD,e)
3016 Fe(int,DrawText,HDC,a,LPSTR,str,int,c,LPRECT,d,WORD,flag)
3017 Fe(int,Escape,HDC,a,int,b,int,c,LPSTR,d,LPSTR,e)
3018 Fe(int,ExcludeClipRect,HDC,a,short,b,short,c,short,d,short,e)
3019 Fe(int,ExcludeVisRect,HDC,a,short,b,short,c,short,d,short,e)
3020 Fe(int,GetMenuString,HMENU,a,WORD,b,LPSTR,c,short,d,WORD,e)
3021 Fe(int,GetProfileString,LPSTR,a,LPSTR,b,LPSTR,c,LPSTR,d,int,e)
3022 Fe(int,IntersectClipRect,HDC,a,short,b,short,c,short,d,short,e)
3023 Fe(int,IntersectVisRect,HDC,a,short,b,short,c,short,d,short,e)
3024 Fe(int,SetVoiceAccent,int,a,int,b,int,c,int,d,int,e)
3025 Fe(int,ToAscii,WORD,wVirtKey,WORD,wScanCode,LPSTR,lpKeyState,LPVOID,lpChar,WORD,wFlags)
3026 Fe(void,PaintRect,HWND,a,HWND,b,HDC,c,HBRUSH,d,LPRECT,e)
3027 Fe(void,ScrollWindow,HWND,a,short,b,short,c,LPRECT,d,LPRECT,e)
3028 Fe(void,SetRect,LPRECT,a,short,b,short,c,short,d,short,e)
3029 Fe(void,SetRectRgn,HRGN,a,short,b,short,c,short,d,short,e)
3030 Fe(void,SetScrollRange,HWND,a,int,b,int,c,int,d,BOOL,e)
3031 Ff(BOOL,MoveWindow,HWND,a,short,b,short,c,short,d,short,e,BOOL,f)
3032 Ff(BOOL,PatBlt,HDC,a,short,b,short,c,short,d,short,e,DWORD,f)
3033 Ff(BOOL,ScaleViewportExtEx,HDC,a,short,b,short,c,short,d,short,e,LPSIZE,f)
3034 Ff(BOOL,ScaleWindowExtEx,HDC,a,short,b,short,c,short,d,short,e,LPSIZE,f)
3035 Ff(HBITMAP,CreateDIBitmap,HDC,a,LPBITMAPINFOHEADER,b,DWORD,c,LPSTR,d,LPBITMAPINFO,e,WORD,f)
3036 Ff(HRGN,CreateRoundRectRgn,short,a,short,b,short,c,short,d,short,e,short,f)
3037 Ff(short,GetPrivateProfileString,LPSTR,a,LPSTR,b,LPSTR,c,LPSTR,d,short,e,LPSTR,f)
3038 Ff(void,LineDDA,short,a,short,b,short,c,short,d,FARPROC,e,long,f)
3039 Fg(BOOL,RoundRect,HDC,a,short,b,short,c,short,d,short,e,short,f,short,g)
3040 Fg(BOOL,ScrollDC,HDC,a,short,b,short,c,LPRECT,d,LPRECT,e,HRGN,f,LPRECT,g)
3041 Fg(BOOL,SetWindowPos,HWND,a,HWND,b,short,c,short,d,short,e,short,f,WORD,g)
3042 Fg(BOOL,TrackPopupMenu,HMENU,a,WORD,b,short,c,short,d,short,e,HWND,f,LPRECT,g)
3043 Fg(HCURSOR,CreateCursor,HANDLE,a,short,b,short,c,short,d,short,e,LPSTR,f,LPSTR,g)
3044 Fg(HICON,CreateIcon,HANDLE,a,int,b,int,c,BYTE,d,BYTE,e,LPSTR,f,LPSTR,g)
3045 Fg(int,GetDIBits,HDC,a,HANDLE,a2,WORD,b,WORD,c,LPSTR,d,LPBITMAPINFO,e,WORD,f)
3046 Fg(int,SetDIBits,HDC,a,HANDLE,a2,WORD,b,WORD,c,LPSTR,d,LPBITMAPINFO,e,WORD,f)
3047 Fh(BOOL,ExtTextOut,HDC,a,short,b,short,c,WORD,d,LPRECT,e,LPSTR,f,WORD,g,LPINT,h)
3048 Fh(HDWP,DeferWindowPos,HDWP,hWinPosInfo,HWND,hWnd,HWND,hWndInsertAfter,INT,x,INT,y,INT,cx,INT,cy,WORD,wFlags)
3049 Fh(LONG,TabbedTextOut,HDC,a,short,b,short,c,LPSTR,d,short,e,short,f,LPINT,g,short,h)
3050 Fh(int,ScrollWindowEx,HWND,a,short,b,short,c,LPRECT,d,LPRECT,e,HRGN,f,LPRECT,g,WORD,h)
3051 Fi(BOOL,Arc,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom,int,xStart,int,yStart,int,xEnd,int,yEnd)
3052 Fi(BOOL,BitBlt,HDC,a,short,b,short,c,short,d,short,e,HDC,f,short,g,short,h,DWORD,i)
3053 Fi(BOOL,Chord,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom,int,xStart,int,yStart,int,xEnd,int,yEnd)
3054 Fi(BOOL,GrayString,HDC,a,HBRUSH,b,FARPROC,gsprc,LPARAM,lParam,INT,cch,INT,x,INT,y,INT,cx,INT,cy)
3055 Fi(BOOL,Pie,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom,int,xStart,int,yStart,int,xEnd,int,yEnd)
3056 Fk(BOOL,StretchBlt,HDC,a,short,b,short,c,short,d,short,e,HDC,f,short,g,short,h,short,i,short,j,DWORD,k)
3057 Fk(HWND,CreateWindow,LPSTR,a,LPSTR,b,DWORD,c,short,d,short,e,short,f,short,g,HWND,h,HMENU,i,HANDLE,j,SEGPTR,k)
3058 Fl(HWND,CreateWindowEx,DWORD,a,LPSTR,b,LPSTR,c,DWORD,d,short,e,short,f,short,g,short,h,HWND,i,HMENU,j,HANDLE,k,SEGPTR,l)
3059 Fl(int,SetDIBitsToDevice,HDC,a,short,b,short,c,WORD,d,WORD,e,WORD,f,WORD,g,WORD,h,WORD,i,LPSTR,j,LPBITMAPINFO,k,WORD,l)
3060 Fm(int,StretchDIBits,HDC,a,WORD,b,WORD,c,WORD,d,WORD,e,WORD,f,WORD,g,WORD,h,WORD,i,LPSTR,j,LPBITMAPINFO,k,WORD,l,DWORD,m)
3061 Fn(HFONT,CreateFont,int,a,int,b,int,c,int,d,int,e,BYTE,f,BYTE,g,BYTE,h,BYTE,i,BYTE,j,BYTE,k,BYTE,l,BYTE,m,LPSTR,n)
3062
3063 #ifdef WINELIB
3064 #define WINELIB_UNIMP(x) fprintf (stderr, "WineLib: Unimplemented %s\n", x)
3065 #endif
3066 #endif  /* WINDOWS_H */