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