source: trunk/include/win/winuser.h@ 21338

Last change on this file since 21338 was 21338, checked in by vladest, 16 years ago
  1. NTDLL release build was support latest GCC. fixed
  2. Added HAND icon
File size: 142.5 KB
Line 
1#ifndef __INCLUDE_WINUSER_H
2#define __INCLUDE_WINUSER_H
3
4#ifndef RC_INVOKED
5#include <stdarg.h>
6#endif
7#include "windef.h"
8#include "wingdi.h"
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#include "pshpack1.h"
15
16/* flags for HIGHCONTRAST dwFlags field */
17#define HCF_HIGHCONTRASTON 0x00000001
18#define HCF_AVAILABLE 0x00000002
19#define HCF_HOTKEYACTIVE 0x00000004
20#define HCF_CONFIRMHOTKEY 0x00000008
21#define HCF_HOTKEYSOUND 0x00000010
22#define HCF_INDICATOR 0x00000020
23#define HCF_HOTKEYAVAILABLE 0x00000040
24
25typedef struct tagHIGHCONTRASTA
26{
27 UINT cbSize;
28 DWORD dwFlags;
29 LPSTR lpszDefaultScheme;
30} HIGHCONTRASTA, *LPHIGHCONTRASTA;
31
32typedef struct tagHIGHCONTRASTW
33{
34 UINT cbSize;
35 DWORD dwFlags;
36 LPWSTR lpszDefaultScheme;
37} HIGHCONTRASTW, *LPHIGHCONTRASTW;
38
39DECL_WINELIB_TYPE_AW(HIGHCONTRAST)
40DECL_WINELIB_TYPE_AW(LPHIGHCONTRAST)
41
42typedef struct
43{
44 UINT message;
45 UINT paramL;
46 UINT paramH;
47 DWORD time;
48 HWND hwnd;
49} EVENTMSG, *LPEVENTMSG;
50
51
52 /* Mouse hook structure */
53
54typedef struct
55{
56 POINT pt;
57 HWND hwnd;
58 UINT wHitTestCode;
59 DWORD dwExtraInfo;
60} MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT;
61
62
63 /* Hardware hook structure */
64
65typedef struct
66{
67 HWND hWnd;
68 UINT wMessage;
69 WPARAM wParam;
70 LPARAM lParam;
71} HARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT;
72
73
74 /* Debug hook structure */
75
76typedef struct
77{
78 DWORD idThread;
79 DWORD idThreadInstaller;
80 LPARAM lParam;
81 WPARAM wParam;
82 INT code;
83} DEBUGHOOKINFO, *LPDEBUGHOOKINFO;
84
85/*
86 * Low level hook flags
87 */
88#define LLKHF_EXTENDED 0x00000001
89#define LLKHF_INJECTED 0x00000010
90#define LLKHF_ALTDOWN 0x00000020
91#define LLKHF_UP 0x00000080
92
93#define LLMHF_INJECTED 0x00000001
94
95/*
96 * Structure used by WH_KEYBOARD_LL
97 */
98typedef struct tagKBDLLHOOKSTRUCT {
99 DWORD vkCode;
100 DWORD scanCode;
101 DWORD flags;
102 DWORD time;
103 DWORD dwExtraInfo;
104} KBDLLHOOKSTRUCT, *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
105
106/*
107 * Structure used by WH_MOUSE_LL
108 */
109typedef struct tagMSLLHOOKSTRUCT {
110 POINT pt;
111 DWORD mouseData;
112 DWORD flags;
113 DWORD time;
114 DWORD dwExtraInfo;
115} MSLLHOOKSTRUCT, *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;
116
117
118#define HKL_PREV 0
119#define HKL_NEXT 1
120
121#define KLF_ACTIVATE 0x00000001
122#define KLF_SUBSTITUTE_OK 0x00000002
123#define KLF_UNLOADPREVIOUS 0x00000004
124#define KLF_REORDER 0x00000008
125#define KLF_REPLACELANG 0x00000010
126#define KLF_NOTELLSHELL 0x00000080
127
128#define KL_NAMELENGTH 9
129
130typedef struct tagMOUSEINPUT
131{
132 LONG dx;
133 LONG dy;
134 DWORD mouseData;
135 DWORD dwFlags;
136 DWORD time;
137 ULONG_PTR dwExtraInfo;
138} MOUSEINPUT, *PMOUSEINPUT, *LPMOUSEINPUT;
139
140typedef struct tagKEYBDINPUT
141{
142 WORD wVk;
143 WORD wScan;
144 DWORD dwFlags;
145 DWORD time;
146 ULONG_PTR dwExtraInfo;
147} KEYBDINPUT, *PKEYBDINPUT, *LPKEYBDINPUT;
148
149typedef struct tagHARDWAREINPUT
150{
151 DWORD uMsg;
152 WORD wParamL;
153 WORD wParamH;
154} HARDWAREINPUT, *PHARDWAREINPUT, *LPHARDWAREINPUT;
155
156#define INPUT_MOUSE 0
157#define INPUT_KEYBOARD 1
158#define INPUT_HARDWARE 2
159
160typedef struct tagINPUT
161{
162 DWORD type;
163 union
164 {
165 MOUSEINPUT mi;
166 KEYBDINPUT ki;
167 HARDWAREINPUT hi;
168 } DUMMYUNIONNAME;
169} INPUT, *PINPUT, *LPINPUT;
170
171UINT WINAPI SendInput(UINT cInputs, // number of input in the array
172 LPINPUT pInputs, // array of inputs
173 int cbSize); // sizeof(INPUT)
174
175
176 /***** Dialogs *****/
177#ifdef FSHIFT
178/* Gcc on Solaris has a version of this that we don't care about. */
179#undef FSHIFT
180#endif
181
182#define FVIRTKEY TRUE /* Assumed to be == TRUE */
183#define FNOINVERT 0x02
184#define FSHIFT 0x04
185#define FCONTROL 0x08
186#define FALT 0x10
187
188
189typedef struct tagANIMATIONINFO
190{
191 UINT cbSize;
192 INT iMinAnimate;
193} ANIMATIONINFO, *LPANIMATIONINFO;
194
195typedef struct tagNMHDR
196{
197 HWND hwndFrom;
198 UINT idFrom;
199 UINT code;
200} NMHDR, *LPNMHDR;
201
202typedef struct
203{
204 UINT cbSize;
205 INT iTabLength;
206 INT iLeftMargin;
207 INT iRightMargin;
208 UINT uiLengthDrawn;
209} DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
210
211#define WM_USER 0x0400
212
213#define DT_EDITCONTROL 0x00002000
214#define DT_PATH_ELLIPSIS 0x00004000
215#define DT_END_ELLIPSIS 0x00008000
216#define DT_MODIFYSTRING 0x00010000
217#define DT_RTLREADING 0x00020000
218#define DT_WORD_ELLIPSIS 0x00040000
219#define DT_NOFULLWIDTHCHARBREAK 0x00080000
220#define DT_HIDEPREFIX 0x00100000
221#define DT_PREFIXONLY 0x00200000
222
223typedef struct
224{
225 LPARAM lParam;
226 WPARAM16 wParam;
227 UINT16 message;
228 HWND16 hwnd;
229} CWPSTRUCT16, *LPCWPSTRUCT16;
230
231typedef struct
232{
233 LPARAM lParam;
234 WPARAM wParam;
235 UINT message;
236 HWND hwnd;
237} CWPSTRUCT, *LPCWPSTRUCT;
238
239
240
241typedef struct
242{
243 LRESULT lResult;
244 LPARAM lParam;
245 WPARAM16 wParam;
246 DWORD message;
247 HWND16 hwnd;
248} CWPRETSTRUCT16, *LPCWPRETSTRUCT16;
249
250typedef struct
251{
252 LRESULT lResult;
253 LPARAM lParam;
254 WPARAM wParam;
255 DWORD message;
256 HWND hwnd;
257} CWPRETSTRUCT, *LPCWPRETSTRUCT;
258
259typedef struct
260{
261 UINT length;
262 UINT flags;
263 UINT showCmd;
264 POINT ptMinPosition WINE_PACKED;
265 POINT ptMaxPosition WINE_PACKED;
266 RECT rcNormalPosition WINE_PACKED;
267} WINDOWPLACEMENT, *LPWINDOWPLACEMENT;
268
269
270 /* WINDOWPLACEMENT flags */
271#define WPF_SETMINPOSITION 0x0001
272#define WPF_RESTORETOMAXIMIZED 0x0002
273
274
275/***** Dialogs *****/
276
277 /* cbWndExtra bytes for dialog class */
278#define DLGWINDOWEXTRA 30
279
280/* Button control styles */
281#define BS_PUSHBUTTON 0x00000000L
282#define BS_DEFPUSHBUTTON 0x00000001L
283#define BS_CHECKBOX 0x00000002L
284#define BS_AUTOCHECKBOX 0x00000003L
285#define BS_RADIOBUTTON 0x00000004L
286#define BS_3STATE 0x00000005L
287#define BS_AUTO3STATE 0x00000006L
288#define BS_GROUPBOX 0x00000007L
289#define BS_USERBUTTON 0x00000008L
290#define BS_AUTORADIOBUTTON 0x00000009L
291#define BS_OWNERDRAW 0x0000000BL
292#define BS_LEFTTEXT 0x00000020L
293#define BS_ICON 0x00000040L
294#define BS_BITMAP 0x00000080L
295
296#define BS_TEXT 0x00000000L
297#define BS_ICON 0x00000040L
298#define BS_BITMAP 0x00000080L
299#define BS_LEFT 0x00000100L
300#define BS_RIGHT 0x00000200L
301#define BS_CENTER 0x00000300L
302#define BS_TOP 0x00000400L
303#define BS_BOTTOM 0x00000800L
304#define BS_VCENTER 0x00000C00L
305#define BS_PUSHLIKE 0x00001000L
306#define BS_MULTILINE 0x00002000L
307#define BS_NOTIFY 0x00004000L
308#define BS_FLAT 0x00008000L
309
310/* Button control messages */
311
312#define BST_UNCHECKED 0x0000
313#define BST_CHECKED 0x0001
314#define BST_INDETERMINATE 0x0002
315#define BST_PUSHED 0x0004
316#define BST_FOCUS 0x0008
317
318 /* Dialog styles */
319#define DS_ABSALIGN 0x0001
320#define DS_SYSMODAL 0x0002
321#define DS_3DLOOK 0x0004 /* win95 */
322#define DS_FIXEDSYS 0x0008 /* win95 */
323#define DS_NOFAILCREATE 0x0010 /* win95 */
324#define DS_LOCALEDIT 0x0020
325#define DS_SETFONT 0x0040
326#define DS_MODALFRAME 0x0080
327#define DS_NOIDLEMSG 0x0100
328#define DS_SETFOREGROUND 0x0200 /* win95 */
329#define DS_CONTROL 0x0400 /* win95 */
330#define DS_CENTER 0x0800 /* win95 */
331#define DS_CENTERMOUSE 0x1000 /* win95 */
332#define DS_CONTEXTHELP 0x2000 /* win95 */
333
334
335 /* Dialog messages */
336#define DM_GETDEFID (WM_USER+0)
337#define DM_SETDEFID (WM_USER+1)
338#define DM_REPOSITION (WM_USER+2)
339
340#define DC_HASDEFID 0x534b
341
342/* Owner draw control types */
343#define ODT_MENU 1
344#define ODT_LISTBOX 2
345#define ODT_COMBOBOX 3
346#define ODT_BUTTON 4
347#define ODT_STATIC 5
348
349/* Owner draw actions */
350#define ODA_DRAWENTIRE 0x0001
351#define ODA_SELECT 0x0002
352#define ODA_FOCUS 0x0004
353
354/* Owner draw state */
355#define ODS_SELECTED 0x0001
356#define ODS_GRAYED 0x0002
357#define ODS_DISABLED 0x0004
358#define ODS_CHECKED 0x0008
359#define ODS_FOCUS 0x0010
360#define ODS_DEFAULT 0x0020
361#define ODS_COMBOBOXEDIT 0x1000
362#define ODS_HOTLIGHT 0x0040
363#define ODS_INACTIVE 0x0080
364#define ODS_NOACCEL 0x0100
365#define ODS_NOFOCUSRECT 0x0200
366
367/* Edit control styles */
368#define ES_LEFT 0x00000000
369#define ES_CENTER 0x00000001
370#define ES_RIGHT 0x00000002
371#define ES_MULTILINE 0x00000004
372#define ES_UPPERCASE 0x00000008
373#define ES_LOWERCASE 0x00000010
374#define ES_PASSWORD 0x00000020
375#define ES_AUTOVSCROLL 0x00000040
376#define ES_AUTOHSCROLL 0x00000080
377#define ES_NOHIDESEL 0x00000100
378#define ES_COMBO 0x00000200 /* Undocumented. Parent is a combobox */
379#define ES_OEMCONVERT 0x00000400
380#define ES_READONLY 0x00000800
381#define ES_WANTRETURN 0x00001000
382#define ES_NUMBER 0x00002000
383
384/* OEM Resource Ordinal Numbers */
385#define OBM_CLOSED 32731
386#define OBM_RADIOCHECK 32732
387#define OBM_TRTYPE 32733
388#define OBM_LFARROWI 32734
389#define OBM_RGARROWI 32735
390#define OBM_DNARROWI 32736
391#define OBM_UPARROWI 32737
392#define OBM_COMBO 32738
393#define OBM_MNARROW 32739
394#define OBM_LFARROWD 32740
395#define OBM_RGARROWD 32741
396#define OBM_DNARROWD 32742
397#define OBM_UPARROWD 32743
398#define OBM_RESTORED 32744
399#define OBM_ZOOMD 32745
400#define OBM_REDUCED 32746
401#define OBM_RESTORE 32747
402#define OBM_ZOOM 32748
403#define OBM_REDUCE 32749
404#define OBM_LFARROW 32750
405#define OBM_RGARROW 32751
406#define OBM_DNARROW 32752
407#define OBM_UPARROW 32753
408#define OBM_CLOSE 32754
409#define OBM_OLD_RESTORE 32755
410#define OBM_OLD_ZOOM 32756
411#define OBM_OLD_REDUCE 32757
412#define OBM_BTNCORNERS 32758
413#define OBM_CHECKBOXES 32759
414#define OBM_CHECK 32760
415#define OBM_BTSIZE 32761
416#define OBM_OLD_LFARROW 32762
417#define OBM_OLD_RGARROW 32763
418#define OBM_OLD_DNARROW 32764
419#define OBM_OLD_UPARROW 32765
420#define OBM_SIZE 32766
421#define OBM_OLD_CLOSE 32767
422
423//CB: Odin bitmaps -> unknown ID
424#define OBM_CONTEXTHELP 32730 //help button
425#define OBM_CONTEXTHELPD 32729 //pressed help button
426
427#define OCR_BUMMER 100
428#define OCR_DRAGOBJECT 101
429
430#define OCR_NORMAL 32512
431#define OCR_IBEAM 32513
432#define OCR_WAIT 32514
433#define OCR_CROSS 32515
434#define OCR_UP 32516
435#define OCR_SIZE 32640
436#define OCR_ICON 32641
437#define OCR_SIZENWSE 32642
438#define OCR_SIZENESW 32643
439#define OCR_SIZEWE 32644
440#define OCR_SIZENS 32645
441#define OCR_SIZEALL 32646
442#define OCR_ICOCUR 32647
443#define OCR_NO 32648
444#define OCR_HAND 32649
445#define OCR_APPSTARTING 32650
446#define OCR_HELP 32651 /* only defined in wine */
447
448#define OIC_SAMPLE 32512
449#define OIC_HAND 32513
450#define OIC_QUES 32514
451#define OIC_BANG 32515
452#define OIC_NOTE 32516
453#define OIC_PORTRAIT 32517
454#define OIC_LANDSCAPE 32518
455#define OIC_ODINICON 32519
456#define OIC_FOLDER 32520
457#define OIC_FOLDER2 32521
458#define OIC_FLOPPY 32522
459#define OIC_CDROM 32523
460#define OIC_HDISK 32524
461#define OIC_NETWORK 32525
462
463/* Edit control messages */
464#define EM_GETSEL 0x00b0
465#define EM_SETSEL 0x00b1
466#define EM_GETRECT 0x00b2
467#define EM_SETRECT 0x00b3
468#define EM_SETRECTNP 0x00b4
469#define EM_SCROLL 0x00b5
470#define EM_LINESCROLL 0x00b6
471#define EM_SCROLLCARET 0x00b7
472#define EM_GETMODIFY 0x00b8
473#define EM_SETMODIFY 0x00b9
474#define EM_GETLINECOUNT 0x00ba
475#define EM_LINEINDEX 0x00bb
476#define EM_SETHANDLE 0x00bc
477#define EM_GETHANDLE 0x00bd
478#define EM_GETTHUMB 0x00be
479/* FIXME : missing from specs 0x00bf and 0x00c0 */
480#define EM_LINELENGTH 0x00c1
481#define EM_REPLACESEL 0x00c2
482/* FIXME : missing from specs 0x00c3 */
483#define EM_GETLINE 0x00c4
484#define EM_LIMITTEXT 0x00c5
485#define EM_CANUNDO 0x00c6
486#define EM_UNDO 0x00c7
487#define EM_FMTLINES 0x00c8
488#define EM_LINEFROMCHAR 0x00c9
489/* FIXME : missing from specs 0x00ca */
490#define EM_SETTABSTOPS 0x00cb
491#define EM_SETPASSWORDCHAR 0x00cc
492#define EM_EMPTYUNDOBUFFER 0x00cd
493#define EM_GETFIRSTVISIBLELINE 0x00ce
494#define EM_SETREADONLY 0x00cf
495#define EM_SETWORDBREAKPROC 0x00d0
496#define EM_GETWORDBREAKPROC 0x00d1
497#define EM_GETPASSWORDCHAR 0x00d2
498#define EM_SETMARGINS 0x00d3
499#define EM_GETMARGINS 0x00d4
500#define EM_GETLIMITTEXT 0x00d5
501#define EM_POSFROMCHAR 0x00d6
502#define EM_CHARFROMPOS 0x00d7
503/* a name change since win95 */
504#define EM_SETLIMITTEXT EM_LIMITTEXT
505#define EM_SETIMESTATUS 0x00D8
506#define EM_GETIMESTATUS 0x00D9
507
508/* EDITWORDBREAKPROC code values */
509#define WB_LEFT 0
510#define WB_RIGHT 1
511#define WB_ISDELIMITER 2
512
513/* Edit control notification codes */
514#define EN_SETFOCUS 0x0100
515#define EN_KILLFOCUS 0x0200
516#define EN_CHANGE 0x0300
517#define EN_UPDATE 0x0400
518#define EN_ERRSPACE 0x0500
519#define EN_MAXTEXT 0x0501
520#define EN_HSCROLL 0x0601
521#define EN_VSCROLL 0x0602
522#define EN_ALIGN_LTR_EC 0x0700
523#define EN_ALIGN_RTL_EC 0x0701
524
525/* New since win95 : EM_SETMARGIN parameters */
526#define EC_LEFTMARGIN 0x0001
527#define EC_RIGHTMARGIN 0x0002
528#define EC_USEFONTINFO 0xffff
529
530/* wParam of EM_GET/SETIMESTATUS */
531#define EMSIS_COMPOSITIONSTRING 0x0001
532
533/* lParam for EMSIS_COMPOSITIONSTRING */
534#define EIMES_GETCOMPSTRATONCE 0x0001
535#define EIMES_CANCELCOMPSTRINFOCUS 0x0002
536#define EIMES_COMPLETECOMPSTRKILLFOCUS 0x0004
537
538/* Messages */
539
540 /* WM_GETDLGCODE values */
541
542
543#define WM_NULL 0x0000
544#define WM_CREATE 0x0001
545#define WM_DESTROY 0x0002
546#define WM_MOVE 0x0003
547#define WM_SIZEWAIT 0x0004
548#define WM_SIZE 0x0005
549#define WM_ACTIVATE 0x0006
550#define WM_SETFOCUS 0x0007
551#define WM_KILLFOCUS 0x0008
552#define WM_SETVISIBLE 0x0009
553#define WM_ENABLE 0x000a
554#define WM_SETREDRAW 0x000b
555#define WM_SETTEXT 0x000c
556#define WM_GETTEXT 0x000d
557#define WM_GETTEXTLENGTH 0x000e
558#define WM_PAINT 0x000f
559#define WM_CLOSE 0x0010
560#define WM_QUERYENDSESSION 0x0011
561#define WM_QUIT 0x0012
562#define WM_QUERYOPEN 0x0013
563#define WM_ERASEBKGND 0x0014
564#define WM_SYSCOLORCHANGE 0x0015
565#define WM_ENDSESSION 0x0016
566#define WM_SYSTEMERROR 0x0017
567#define WM_SHOWWINDOW 0x0018
568#define WM_CTLCOLOR 0x0019
569#define WM_WININICHANGE 0x001a
570#define WM_SETTINGCHANGE WM_WININICHANGE
571#define WM_DEVMODECHANGE 0x001b
572#define WM_ACTIVATEAPP 0x001c
573#define WM_FONTCHANGE 0x001d
574#define WM_TIMECHANGE 0x001e
575#define WM_CANCELMODE 0x001f
576#define WM_SETCURSOR 0x0020
577#define WM_MOUSEACTIVATE 0x0021
578#define WM_CHILDACTIVATE 0x0022
579#define WM_QUEUESYNC 0x0023
580#define WM_GETMINMAXINFO 0x0024
581
582#define WM_PAINTICON 0x0026
583#define WM_ICONERASEBKGND 0x0027
584#define WM_NEXTDLGCTL 0x0028
585#define WM_ALTTABACTIVE 0x0029
586#define WM_SPOOLERSTATUS 0x002a
587#define WM_DRAWITEM 0x002b
588#define WM_MEASUREITEM 0x002c
589#define WM_DELETEITEM 0x002d
590#define WM_VKEYTOITEM 0x002e
591#define WM_CHARTOITEM 0x002f
592#define WM_SETFONT 0x0030
593#define WM_GETFONT 0x0031
594#define WM_SETHOTKEY 0x0032
595#define WM_GETHOTKEY 0x0033
596#define WM_FILESYSCHANGE 0x0034
597#define WM_ISACTIVEICON 0x0035
598#define WM_QUERYPARKICON 0x0036
599#define WM_QUERYDRAGICON 0x0037
600#define WM_QUERYSAVESTATE 0x0038
601#define WM_COMPAREITEM 0x0039
602#define WM_TESTING 0x003a
603#define WM_GETOBJECT 0x003D
604
605#define WM_OTHERWINDOWCREATED 0x003c
606#define WM_OTHERWINDOWDESTROYED 0x003d
607#define WM_ACTIVATESHELLWINDOW 0x003e
608
609#define WM_COMPACTING 0x0041
610
611#define WM_COMMNOTIFY 0x0044
612#define WM_WINDOWPOSCHANGING 0x0046
613#define WM_WINDOWPOSCHANGED 0x0047
614#define WM_POWER 0x0048
615
616 /* Win32 4.0 messages */
617#define WM_COPYDATA 0x004a
618#define WM_CANCELJOURNAL 0x004b
619#define WM_NOTIFY 0x004e
620#define WM_INPUTLANGCHANGEREQUEST 0x0050
621#define WM_INPUTLANGCHANGE 0x0051
622#define WM_TCARD 0x0052
623#define WM_HELP 0x0053
624#define WM_USERCHANGED 0x0054
625#define WM_HELP 0x0053
626#define WM_NOTIFYFORMAT 0x0055
627
628#define WM_CONTEXTMENU 0x007b
629#define WM_STYLECHANGING 0x007c
630#define WM_STYLECHANGED 0x007d
631#define WM_DISPLAYCHANGE 0x007e
632#define WM_GETICON 0x007f
633#define WM_SETICON 0x0080
634
635 /* Non-client system messages */
636#define WM_NCCREATE 0x0081
637#define WM_NCDESTROY 0x0082
638#define WM_NCCALCSIZE 0x0083
639#define WM_NCHITTEST 0x0084
640#define WM_NCPAINT 0x0085
641#define WM_NCACTIVATE 0x0086
642
643#define WM_GETDLGCODE 0x0087
644#define WM_SYNCPAINT 0x0088
645#define WM_SYNCTASK 0x0089
646
647 /* Non-client mouse messages */
648#define WM_NCMOUSEMOVE 0x00a0
649#define WM_NCLBUTTONDOWN 0x00a1
650#define WM_NCLBUTTONUP 0x00a2
651#define WM_NCLBUTTONDBLCLK 0x00a3
652#define WM_NCRBUTTONDOWN 0x00a4
653#define WM_NCRBUTTONUP 0x00a5
654#define WM_NCRBUTTONDBLCLK 0x00a6
655#define WM_NCMBUTTONDOWN 0x00a7
656#define WM_NCMBUTTONUP 0x00a8
657#define WM_NCMBUTTONDBLCLK 0x00a9
658
659 /* Keyboard messages */
660#define WM_KEYDOWN 0x0100
661#define WM_KEYUP 0x0101
662#define WM_CHAR 0x0102
663#define WM_DEADCHAR 0x0103
664#define WM_SYSKEYDOWN 0x0104
665#define WM_SYSKEYUP 0x0105
666#define WM_SYSCHAR 0x0106
667#define WM_SYSDEADCHAR 0x0107
668#define WM_KEYFIRST WM_KEYDOWN
669#define WM_KEYLAST 0x0108
670
671#define WM_IME_STARTCOMPOSITION 0x010D
672#define WM_IME_ENDCOMPOSITION 0x010E
673#define WM_IME_COMPOSITION 0x010F
674#define WM_IME_KEYLAST 0x010F
675
676#define WM_INITDIALOG 0x0110
677#define WM_COMMAND 0x0111
678#define WM_SYSCOMMAND 0x0112
679#define WM_TIMER 0x0113
680#define WM_SYSTIMER 0x0118
681
682 /* scroll messages */
683#define WM_HSCROLL 0x0114
684#define WM_VSCROLL 0x0115
685
686/* Menu messages */
687#define WM_INITMENU 0x0116
688#define WM_INITMENUPOPUP 0x0117
689
690#define WM_MENUSELECT 0x011F
691#define WM_MENUCHAR 0x0120
692#define WM_ENTERIDLE 0x0121
693#define WM_MENURBUTTONUP 0x0122
694#define WM_MENUDRAG 0x0123
695#define WM_MENUGETOBJECT 0x0124
696#define WM_UNINITMENUPOPUP 0x0125
697#define WM_MENUCOMMAND 0x0126
698
699#define WM_KEYBOARDCUES 0x0127
700
701#define WM_LBTRACKPOINT 0x0131
702
703 /* Win32 CTLCOLOR messages */
704#define WM_CTLCOLORMSGBOX 0x0132
705#define WM_CTLCOLOREDIT 0x0133
706#define WM_CTLCOLORLISTBOX 0x0134
707#define WM_CTLCOLORBTN 0x0135
708#define WM_CTLCOLORDLG 0x0136
709#define WM_CTLCOLORSCROLLBAR 0x0137
710#define WM_CTLCOLORSTATIC 0x0138
711
712 /* Mouse messages */
713#define WM_MOUSEMOVE 0x0200
714#define WM_LBUTTONDOWN 0x0201
715#define WM_LBUTTONUP 0x0202
716#define WM_LBUTTONDBLCLK 0x0203
717#define WM_RBUTTONDOWN 0x0204
718#define WM_RBUTTONUP 0x0205
719#define WM_RBUTTONDBLCLK 0x0206
720#define WM_MBUTTONDOWN 0x0207
721#define WM_MBUTTONUP 0x0208
722#define WM_MBUTTONDBLCLK 0x0209
723#define WM_MOUSEWHEEL 0x020A
724#define WM_MOUSEFIRST WM_MOUSEMOVE
725#define WM_MOUSELAST WM_MOUSEWHEEL
726
727#define WHEEL_DELTA 120
728#define WHEEL_PAGESCROLL (UINT_MAX)
729
730#define WM_PARENTNOTIFY 0x0210
731#define WM_ENTERMENULOOP 0x0211
732#define WM_EXITMENULOOP 0x0212
733#define WM_NEXTMENU 0x0213
734
735 /* Win32 4.0 messages */
736#define WM_SIZING 0x0214
737#define WM_CAPTURECHANGED 0x0215
738#define WM_MOVING 0x0216
739
740#define WM_POWERBROADCAST 0x0218
741#define WM_DEVICECHANGE 0x0219
742
743/* wParam for WM_POWERBROADCAST */
744#define PBT_APMQUERYSUSPEND 0x0000
745#define PBT_APMQUERYSTANDBY 0x0001
746#define PBT_APMQUERYSUSPENDFAILED 0x0002
747#define PBT_APMQUERYSTANDBYFAILED 0x0003
748#define PBT_APMSUSPEND 0x0004
749#define PBT_APMSTANDBY 0x0005
750#define PBT_APMRESUMECRITICAL 0x0006
751#define PBT_APMRESUMESUSPEND 0x0007
752#define PBT_APMRESUMESTANDBY 0x0008
753#define PBTF_APMRESUMEFROMFAILURE 0x0001
754#define PBT_APMBATTERYLOW 0x0009
755#define PBT_APMPOWERSTATUSCHANGE 0x000A
756#define PBT_APMOEMEVENT 0x000B
757#define PBT_APMRESUMEAUTOMATIC 0x0012
758
759/* wParam for WM_SIZING message */
760#define WMSZ_LEFT 1
761#define WMSZ_RIGHT 2
762#define WMSZ_TOP 3
763#define WMSZ_TOPLEFT 4
764#define WMSZ_TOPRIGHT 5
765#define WMSZ_BOTTOM 6
766#define WMSZ_BOTTOMLEFT 7
767#define WMSZ_BOTTOMRIGHT 8
768
769 /* MDI messages */
770#define WM_MDICREATE 0x0220
771#define WM_MDIDESTROY 0x0221
772#define WM_MDIACTIVATE 0x0222
773#define WM_MDIRESTORE 0x0223
774#define WM_MDINEXT 0x0224
775#define WM_MDIMAXIMIZE 0x0225
776#define WM_MDITILE 0x0226
777#define WM_MDICASCADE 0x0227
778#define WM_MDIICONARRANGE 0x0228
779#define WM_MDIGETACTIVE 0x0229
780#define WM_MDIREFRESHMENU 0x0234
781
782 /* D&D messages */
783#define WM_DROPOBJECT 0x022A
784#define WM_QUERYDROPOBJECT 0x022B
785#define WM_BEGINDRAG 0x022C
786#define WM_DRAGLOOP 0x022D
787#define WM_DRAGSELECT 0x022E
788#define WM_DRAGMOVE 0x022F
789#define WM_MDISETMENU 0x0230
790
791#define WM_ENTERSIZEMOVE 0x0231
792#define WM_EXITSIZEMOVE 0x0232
793#define WM_DROPFILES 0x0233
794
795
796/*
797 * DROPFILES for CF_HDROP and CF_PRINTERS
798 */
799typedef struct _DROPFILES
800{
801 DWORD pFiles;
802 POINT pt;
803 BOOL fNC;
804 BOOL fWide;
805} DROPFILES;
806
807#define WM_IME_SETCONTEXT 0x0281
808#define WM_IME_NOTIFY 0x0282
809#define WM_IME_CONTROL 0x0283
810#define WM_IME_COMPOSITIONFULL 0x0284
811#define WM_IME_SELECT 0x0285
812#define WM_IME_CHAR 0x0286
813#define WM_IME_REQUEST 0x0288
814#define WM_IME_KEYDOWN 0x0290
815#define WM_IME_KEYUP 0x0291
816
817#define WM_MOUSEHOVER 0x02A1
818#define WM_MOUSELEAVE 0x02A3
819#define WM_NCMOUSEHOVER 0x02A0
820#define WM_NCMOUSELEAVE 0x02A2
821
822#define TME_HOVER 0x00000001
823#define TME_LEAVE 0x00000002
824#define TME_QUERY 0x40000000
825#define TME_CANCEL 0x80000000
826
827#define HOVER_DEFAULT 0xFFFFFFFF
828
829typedef struct tagTRACKMOUSEEVENT {
830 DWORD cbSize;
831 DWORD dwFlags;
832 HWND hwndTrack;
833 DWORD dwHoverTime;
834} TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT;
835
836#define WM_CUT 0x0300
837#define WM_COPY 0x0301
838#define WM_PASTE 0x0302
839#define WM_CLEAR 0x0303
840#define WM_UNDO 0x0304
841#define WM_RENDERFORMAT 0x0305
842#define WM_RENDERALLFORMATS 0x0306
843#define WM_DESTROYCLIPBOARD 0x0307
844#define WM_DRAWCLIPBOARD 0x0308
845#define WM_PAINTCLIPBOARD 0x0309
846#define WM_VSCROLLCLIPBOARD 0x030A
847#define WM_SIZECLIPBOARD 0x030B
848#define WM_ASKCBFORMATNAME 0x030C
849#define WM_CHANGECBCHAIN 0x030D
850#define WM_HSCROLLCLIPBOARD 0x030E
851#define WM_QUERYNEWPALETTE 0x030F
852#define WM_PALETTEISCHANGING 0x0310
853#define WM_PALETTECHANGED 0x0311
854#define WM_HOTKEY 0x0312
855
856#define WM_PRINT 0x0317
857#define WM_PRINTCLIENT 0x0318
858
859#define WM_HANDHELDFIRST 0x0358
860#define WM_HANDHELDLAST 0x035F
861
862#define WM_AFXFIRST 0x0360
863#define WM_FORWARDMSG 0x037F
864#define WM_AFXLAST 0x037F
865
866#define WM_PENWINFIRST 0x0380
867#define WM_PENWINLAST 0x038F
868
869#define WM_APP 0x8000
870
871 /* FIXME: This does not belong to any libwine interface header */
872 /* MFC messages [360-38f] */
873
874#define WM_QUERYAFXWNDPROC 0x0360
875#define WM_SIZEPARENT 0x0361
876#define WM_SETMESSAGESTRING 0x0362
877#define WM_IDLEUPDATECMDUI 0x0363
878#define WM_INITIALUPDATE 0x0364
879#define WM_COMMANDHELP 0x0365
880#define WM_HELPHITTEST 0x0366
881#define WM_EXITHELPMODE 0x0367
882#define WM_RECALCPARENT 0x0368
883#define WM_SIZECHILD 0x0369
884#define WM_KICKIDLE 0x036A
885#define WM_QUERYCENTERWND 0x036B
886#define WM_DISABLEMODAL 0x036C
887#define WM_FLOATSTATUS 0x036D
888#define WM_ACTIVATETOPLEVEL 0x036E
889#define WM_QUERY3DCONTROLS 0x036F
890#define WM_SOCKET_NOTIFY 0x0373
891#define WM_SOCKET_DEAD 0x0374
892#define WM_POPMESSAGESTRING 0x0375
893#define WM_OCC_LOADFROMSTREAM 0x0376
894#define WM_OCC_LOADFROMSTORAGE 0x0377
895#define WM_OCC_INITNEW 0x0378
896#define WM_OCC_LOADFROMSTREAM_EX 0x037A
897#define WM_OCC_LOADFROMSTORAGE_EX 0x037B
898#define WM_QUEUE_SENTINEL 0x0379
899
900#define WM_PENWINFIRST 0x0380
901#define WM_PENWINLAST 0x038F
902
903/* end of MFC messages */
904
905 /* FIXME: This does not belong to any libwine interface header */
906#define WM_COALESCE_FIRST 0x0390
907#define WM_COALESCE_LAST 0x039F
908
909
910
911#define DLGC_WANTARROWS 0x0001
912#define DLGC_WANTTAB 0x0002
913#define DLGC_WANTALLKEYS 0x0004
914#define DLGC_WANTMESSAGE 0x0004
915#define DLGC_HASSETSEL 0x0008
916#define DLGC_DEFPUSHBUTTON 0x0010
917#define DLGC_UNDEFPUSHBUTTON 0x0020
918#define DLGC_RADIOBUTTON 0x0040
919#define DLGC_WANTCHARS 0x0080
920#define DLGC_STATIC 0x0100
921#define DLGC_BUTTON 0x2000
922
923/* Standard dialog button IDs */
924#define IDOK 1
925#define IDCANCEL 2
926#define IDABORT 3
927#define IDRETRY 4
928#define IDIGNORE 5
929#define IDYES 6
930#define IDNO 7
931#define IDCLOSE 8
932#define IDHELP 9
933
934/****** Window classes ******/
935
936typedef struct tagCREATESTRUCTA
937{
938 LPVOID lpCreateParams;
939 HINSTANCE hInstance;
940 HMENU hMenu;
941 HWND hwndParent;
942 INT cy;
943 INT cx;
944 INT y;
945 INT x;
946 LONG style;
947 LPCSTR lpszName;
948 LPCSTR lpszClass;
949 DWORD dwExStyle;
950} CREATESTRUCTA, *LPCREATESTRUCTA;
951
952typedef struct
953{
954 LPVOID lpCreateParams;
955 HINSTANCE hInstance;
956 HMENU hMenu;
957 HWND hwndParent;
958 INT cy;
959 INT cx;
960 INT y;
961 INT x;
962 LONG style;
963 LPCWSTR lpszName;
964 LPCWSTR lpszClass;
965 DWORD dwExStyle;
966} CREATESTRUCTW, *LPCREATESTRUCTW;
967
968DECL_WINELIB_TYPE_AW(CREATESTRUCT)
969DECL_WINELIB_TYPE_AW(LPCREATESTRUCT)
970
971typedef struct
972{
973 HMENU hWindowMenu;
974 UINT idFirstChild;
975} CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
976
977
978typedef struct
979{
980 LPCSTR szClass;
981 LPCSTR szTitle;
982 HINSTANCE hOwner;
983 INT x;
984 INT y;
985 INT cx;
986 INT cy;
987 DWORD style;
988 LPARAM lParam;
989} MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
990
991typedef struct
992{
993 LPCWSTR szClass;
994 LPCWSTR szTitle;
995 HINSTANCE hOwner;
996 INT x;
997 INT y;
998 INT cx;
999 INT cy;
1000 DWORD style;
1001 LPARAM lParam;
1002} MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
1003
1004DECL_WINELIB_TYPE_AW(MDICREATESTRUCT)
1005DECL_WINELIB_TYPE_AW(LPMDICREATESTRUCT)
1006
1007#define MDITILE_VERTICAL 0x0000
1008#define MDITILE_HORIZONTAL 0x0001
1009#define MDITILE_SKIPDISABLED 0x0002
1010
1011#define MDIS_ALLCHILDSTYLES 0x0001
1012
1013typedef struct {
1014 DWORD styleOld;
1015 DWORD styleNew;
1016} STYLESTRUCT, *LPSTYLESTRUCT;
1017
1018 /* Offsets for GetWindowLong() and GetWindowWord() */
1019#define GWL_USERDATA (-21)
1020#define GWL_EXSTYLE (-20)
1021#define GWL_STYLE (-16)
1022#define GWW_ID (-12)
1023#define GWL_ID GWW_ID
1024#define GWW_HWNDPARENT (-8)
1025#define GWL_HWNDPARENT GWW_HWNDPARENT
1026#define GWW_HINSTANCE (-6)
1027#define GWL_HINSTANCE GWW_HINSTANCE
1028#define GWL_WNDPROC (-4)
1029#define DWL_MSGRESULT 0
1030#define DWL_DLGPROC 4
1031#define DWL_USER 8
1032
1033 /* GetWindow() constants */
1034#define GW_HWNDFIRST 0
1035#define GW_HWNDLAST 1
1036#define GW_HWNDNEXT 2
1037#define GW_HWNDPREV 3
1038#define GW_OWNER 4
1039#define GW_CHILD 5
1040
1041/* GetAncestor() constants */
1042#define GA_PARENT 1
1043#define GA_ROOT 2
1044#define GA_ROOTOWNER 3
1045
1046 /* WM_GETMINMAXINFO struct */
1047typedef struct
1048{
1049 POINT ptReserved;
1050 POINT ptMaxSize;
1051 POINT ptMaxPosition;
1052 POINT ptMinTrackSize;
1053 POINT ptMaxTrackSize;
1054} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
1055
1056
1057 /* RedrawWindow() flags */
1058#define RDW_INVALIDATE 0x0001
1059#define RDW_INTERNALPAINT 0x0002
1060#define RDW_ERASE 0x0004
1061#define RDW_VALIDATE 0x0008
1062#define RDW_NOINTERNALPAINT 0x0010
1063#define RDW_NOERASE 0x0020
1064#define RDW_NOCHILDREN 0x0040
1065#define RDW_ALLCHILDREN 0x0080
1066#define RDW_UPDATENOW 0x0100
1067#define RDW_ERASENOW 0x0200
1068#define RDW_FRAME 0x0400
1069#define RDW_NOFRAME 0x0800
1070
1071/* debug flags */
1072#define DBGFILL_ALLOC 0xfd
1073#define DBGFILL_FREE 0xfb
1074#define DBGFILL_BUFFER 0xf9
1075#define DBGFILL_STACK 0xf7
1076
1077 /* WM_WINDOWPOSCHANGING/CHANGED struct */
1078typedef struct tagWINDOWPOS
1079{
1080 HWND hwnd;
1081 HWND hwndInsertAfter;
1082 INT x;
1083 INT y;
1084 INT cx;
1085 INT cy;
1086 UINT flags;
1087} WINDOWPOS, *PWINDOWPOS, *LPWINDOWPOS;
1088
1089
1090 /* WM_MOUSEACTIVATE return values */
1091#define MA_ACTIVATE 1
1092#define MA_ACTIVATEANDEAT 2
1093#define MA_NOACTIVATE 3
1094#define MA_NOACTIVATEANDEAT 4
1095
1096 /* WM_ACTIVATE wParam values */
1097#define WA_INACTIVE 0
1098#define WA_ACTIVE 1
1099#define WA_CLICKACTIVE 2
1100
1101/* WM_GETICON/WM_SETICON params values */
1102#define ICON_SMALL 0
1103#define ICON_BIG 1
1104
1105 /* WM_NCCALCSIZE parameter structure */
1106typedef struct
1107{
1108 RECT rgrc[3];
1109 WINDOWPOS *lppos;
1110} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
1111
1112
1113 /* WM_NCCALCSIZE return flags */
1114#define WVR_ALIGNTOP 0x0010
1115#define WVR_ALIGNLEFT 0x0020
1116#define WVR_ALIGNBOTTOM 0x0040
1117#define WVR_ALIGNRIGHT 0x0080
1118#define WVR_HREDRAW 0x0100
1119#define WVR_VREDRAW 0x0200
1120#define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW)
1121#define WVR_VALIDRECTS 0x0400
1122
1123 /* WM_NCHITTEST return codes */
1124#define HTERROR (-2)
1125#define HTTRANSPARENT (-1)
1126#define HTNOWHERE 0
1127#define HTCLIENT 1
1128#define HTCAPTION 2
1129#define HTSYSMENU 3
1130#define HTSIZE 4
1131#define HTMENU 5
1132#define HTHSCROLL 6
1133#define HTVSCROLL 7
1134#define HTMINBUTTON 8
1135#define HTMAXBUTTON 9
1136#define HTLEFT 10
1137#define HTRIGHT 11
1138#define HTTOP 12
1139#define HTTOPLEFT 13
1140#define HTTOPRIGHT 14
1141#define HTBOTTOM 15
1142#define HTBOTTOMLEFT 16
1143#define HTBOTTOMRIGHT 17
1144#define HTBORDER 18
1145#define HTGROWBOX HTSIZE
1146#define HTREDUCE HTMINBUTTON
1147#define HTZOOM HTMAXBUTTON
1148#define HTOBJECT 19
1149#define HTCLOSE 20
1150#define HTHELP 21
1151#define HTSIZEFIRST HTLEFT
1152#define HTSIZELAST HTBOTTOMRIGHT
1153
1154/* SendMessageTimeout flags */
1155#define SMTO_NORMAL 0x0000
1156#define SMTO_BLOCK 0x0001
1157#define SMTO_ABORTIFHUNG 0x0002
1158#define SMTO_NOTIMEOUTIFNOTHUNG 0x0008
1159
1160 /* WM_SYSCOMMAND parameters */
1161#ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */
1162#undef SC_SIZE
1163#endif
1164#define SC_SIZE 0xf000
1165#define SC_MOVE 0xf010
1166#define SC_MINIMIZE 0xf020
1167#define SC_MAXIMIZE 0xf030
1168#define SC_NEXTWINDOW 0xf040
1169#define SC_PREVWINDOW 0xf050
1170#define SC_CLOSE 0xf060
1171#define SC_VSCROLL 0xf070
1172#define SC_HSCROLL 0xf080
1173#define SC_MOUSEMENU 0xf090
1174#define SC_KEYMENU 0xf100
1175#define SC_ARRANGE 0xf110
1176#define SC_RESTORE 0xf120
1177#define SC_TASKLIST 0xf130
1178#define SC_SCREENSAVE 0xf140
1179#define SC_HOTKEY 0xf150
1180#define SC_DEFAULT 0xF160
1181#define SC_MONITORPOWER 0xF170
1182#define SC_CONTEXTHELP 0xF180
1183#define SC_SEPARATOR 0xF00F
1184
1185#define SC_ABOUTODIN (SC_SCREENSAVE+1) /* This value has been used in sysres_EN.rc */
1186#define SC_PUTMARK (SC_SCREENSAVE+2)
1187#define SC_DEBUGINT3 (SC_SCREENSAVE+3)
1188
1189#define CS_VREDRAW 0x0001
1190#define CS_HREDRAW 0x0002
1191#define CS_KEYCVTWINDOW 0x0004
1192#define CS_DBLCLKS 0x0008
1193#define CS_OWNDC 0x0020
1194#define CS_CLASSDC 0x0040
1195#define CS_PARENTDC 0x0080
1196#define CS_NOKEYCVT 0x0100
1197#define CS_NOCLOSE 0x0200
1198#define CS_SAVEBITS 0x0800
1199#define CS_BYTEALIGNCLIENT 0x1000
1200#define CS_BYTEALIGNWINDOW 0x2000
1201#define CS_GLOBALCLASS 0x4000
1202
1203#define PRF_CHECKVISIBLE 0x00000001L
1204#define PRF_NONCLIENT 0x00000002L
1205#define PRF_CLIENT 0x00000004L
1206#define PRF_ERASEBKGND 0x00000008L
1207#define PRF_CHILDREN 0x00000010L
1208#define PRF_OWNED 0x00000020L
1209
1210 /* Offsets for GetClassLong() and GetClassWord() */
1211#define GCL_MENUNAME (-8)
1212#define GCW_HBRBACKGROUND (-10)
1213#define GCL_HBRBACKGROUND GCW_HBRBACKGROUND
1214#define GCW_HCURSOR (-12)
1215#define GCL_HCURSOR GCW_HCURSOR
1216#define GCW_HICON (-14)
1217#define GCL_HICON GCW_HICON
1218#define GCW_HMODULE (-16)
1219#define GCL_HMODULE GCW_HMODULE
1220#define GCW_CBWNDEXTRA (-18)
1221#define GCL_CBWNDEXTRA GCW_CBWNDEXTRA
1222#define GCW_CBCLSEXTRA (-20)
1223#define GCL_CBCLSEXTRA GCW_CBCLSEXTRA
1224#define GCL_WNDPROC (-24)
1225#define GCW_STYLE (-26)
1226#define GCL_STYLE GCW_STYLE
1227#define GCW_ATOM (-32)
1228#define GCW_HICONSM (-34)
1229#define GCL_HICONSM GCW_HICONSM
1230
1231#ifndef NOWINOFFSETS
1232#define GCW_HBRBACKGROUND (-10)
1233#endif
1234
1235
1236/***** Window hooks *****/
1237
1238 /* Hook values */
1239#define WH_MIN (-1)
1240#define WH_MSGFILTER (-1)
1241#define WH_JOURNALRECORD 0
1242#define WH_JOURNALPLAYBACK 1
1243#define WH_KEYBOARD 2
1244#define WH_GETMESSAGE 3
1245#define WH_CALLWNDPROC 4
1246#define WH_CBT 5
1247#define WH_SYSMSGFILTER 6
1248#define WH_MOUSE 7
1249#define WH_HARDWARE 8
1250#define WH_DEBUG 9
1251#define WH_SHELL 10
1252#define WH_FOREGROUNDIDLE 11
1253#define WH_CALLWNDPROCRET 12
1254#define WH_KEYBOARD_LL 13
1255#define WH_MOUSE_LL 14
1256#define WH_MAX 14
1257
1258#define WH_MINHOOK WH_MIN
1259#define WH_MAXHOOK WH_MAX
1260#define WH_NB_HOOKS (WH_MAXHOOK-WH_MINHOOK+1)
1261
1262 /* Hook action codes */
1263#define HC_ACTION 0
1264#define HC_GETNEXT 1
1265#define HC_SKIP 2
1266#define HC_NOREMOVE 3
1267#define HC_NOREM HC_NOREMOVE
1268#define HC_SYSMODALON 4
1269#define HC_SYSMODALOFF 5
1270
1271 /* CallMsgFilter() values */
1272#define MSGF_DIALOGBOX 0
1273#define MSGF_MESSAGEBOX 1
1274#define MSGF_MENU 2
1275#define MSGF_MOVE 3
1276#define MSGF_SIZE 4
1277#define MSGF_SCROLLBAR 5
1278#define MSGF_NEXTWINDOW 6
1279#define MSGF_MAINLOOP 8
1280#define MSGF_MAX 8
1281#define MSGF_USER 4096
1282
1283typedef struct
1284{
1285 UINT style;
1286 WNDPROC lpfnWndProc;
1287 INT cbClsExtra;
1288 INT cbWndExtra;
1289 HINSTANCE hInstance;
1290 HICON hIcon;
1291 HCURSOR hCursor;
1292 HBRUSH hbrBackground;
1293 LPCSTR lpszMenuName;
1294 LPCSTR lpszClassName;
1295} WNDCLASSA, *LPWNDCLASSA;
1296
1297typedef struct
1298{
1299 UINT style;
1300 WNDPROC lpfnWndProc;
1301 INT cbClsExtra;
1302 INT cbWndExtra;
1303 HINSTANCE hInstance;
1304 HICON hIcon;
1305 HCURSOR hCursor;
1306 HBRUSH hbrBackground;
1307 LPCWSTR lpszMenuName;
1308 LPCWSTR lpszClassName;
1309} WNDCLASSW, *LPWNDCLASSW;
1310
1311DECL_WINELIB_TYPE_AW(WNDCLASS)
1312DECL_WINELIB_TYPE_AW(LPWNDCLASS)
1313
1314typedef struct {
1315 DWORD dwData;
1316 DWORD cbData;
1317 LPVOID lpData;
1318} COPYDATASTRUCT, *PCOPYDATASTRUCT, *LPCOPYDATASTRUCT;
1319
1320typedef struct {
1321 HMENU hmenuIn;
1322 HMENU hmenuNext;
1323 HWND hwndNext;
1324} MDINEXTMENU, *PMDINEXTMENU, *LPMDINEXTMENU;
1325
1326/* WinHelp internal structure */
1327typedef struct {
1328 WORD size;
1329 WORD command;
1330 LONG data;
1331 LONG reserved;
1332 WORD ofsFilename;
1333 WORD ofsData;
1334} WINHELP,*LPWINHELP;
1335
1336typedef struct
1337{
1338 UINT16 mkSize;
1339 BYTE mkKeyList;
1340 BYTE szKeyPhrase[1];
1341} MULTIKEYHELP, *LPMULTIKEYHELP;
1342
1343typedef struct {
1344 WORD wStructSize;
1345 WORD x;
1346 WORD y;
1347 WORD dx;
1348 WORD dy;
1349 WORD wMax;
1350 char rgchMember[2];
1351} HELPWININFO, *LPHELPWININFO;
1352
1353#define HELP_CONTEXT 0x0001
1354#define HELP_QUIT 0x0002
1355#define HELP_INDEX 0x0003
1356#define HELP_CONTENTS 0x0003
1357#define HELP_HELPONHELP 0x0004
1358#define HELP_SETINDEX 0x0005
1359#define HELP_SETCONTENTS 0x0005
1360#define HELP_CONTEXTPOPUP 0x0008
1361#define HELP_FORCEFILE 0x0009
1362#define HELP_KEY 0x0101
1363#define HELP_COMMAND 0x0102
1364#define HELP_PARTIALKEY 0x0105
1365#define HELP_MULTIKEY 0x0201
1366#define HELP_SETWINPOS 0x0203
1367#define HELP_CONTEXTMENU 0x000a
1368#define HELP_FINDER 0x000b
1369#define HELP_WM_HELP 0x000c
1370#define HELP_SETPOPUP_POS 0x000d
1371
1372#define HELP_TCARD 0x8000
1373#define HELP_TCARD_DATA 0x0010
1374#define HELP_TCARD_OTHER_CALLER 0x0011
1375
1376
1377 /* ChangeDisplaySettings return codes */
1378
1379#define DISP_CHANGE_SUCCESSFUL 0
1380#define DISP_CHANGE_RESTART 1
1381#define DISP_CHANGE_FAILED (-1)
1382#define DISP_CHANGE_BADMODE (-2)
1383#define DISP_CHANGE_NOTUPDATED (-3)
1384#define DISP_CHANGE_BADFLAGS (-4)
1385
1386/* flags to FormatMessage */
1387#define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100
1388#define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200
1389#define FORMAT_MESSAGE_FROM_STRING 0x00000400
1390#define FORMAT_MESSAGE_FROM_HMODULE 0x00000800
1391#define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
1392#define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000
1393#define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF
1394
1395typedef struct
1396{
1397 UINT cbSize;
1398 UINT style;
1399 WNDPROC lpfnWndProc;
1400 INT cbClsExtra;
1401 INT cbWndExtra;
1402 HINSTANCE hInstance;
1403 HICON hIcon;
1404 HCURSOR hCursor;
1405 HBRUSH hbrBackground;
1406 LPCSTR lpszMenuName;
1407 LPCSTR lpszClassName;
1408 HICON hIconSm;
1409} WNDCLASSEXA, *LPWNDCLASSEXA;
1410
1411typedef struct
1412{
1413 UINT cbSize;
1414 UINT style;
1415 WNDPROC lpfnWndProc;
1416 INT cbClsExtra;
1417 INT cbWndExtra;
1418 HINSTANCE hInstance;
1419 HICON hIcon;
1420 HCURSOR hCursor;
1421 HBRUSH hbrBackground;
1422 LPCWSTR lpszMenuName;
1423 LPCWSTR lpszClassName;
1424 HICON hIconSm;
1425} WNDCLASSEXW, *LPWNDCLASSEXW;
1426
1427DECL_WINELIB_TYPE_AW(WNDCLASSEX)
1428DECL_WINELIB_TYPE_AW(LPWNDCLASSEX)
1429
1430typedef struct
1431{
1432 HWND hwnd;
1433 UINT message;
1434 WPARAM wParam;
1435 LPARAM lParam;
1436 DWORD time;
1437 POINT pt;
1438} MSG, *PMSG, *NPMSG, *LPMSG;
1439
1440#define POINTSTOPOINT(pt, pts) \
1441 { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); \
1442 (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }
1443
1444#define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y)))
1445
1446
1447/* Cursors / Icons */
1448
1449typedef struct {
1450 BOOL fIcon;
1451 DWORD xHotspot;
1452 DWORD yHotspot;
1453 HBITMAP hbmMask;
1454 HBITMAP hbmColor;
1455} ICONINFO,*LPICONINFO;
1456
1457
1458/* this is the 6 byte accel struct used in Win32 when presented to the user */
1459typedef struct
1460{
1461 BYTE fVirt;
1462 BYTE pad0;
1463 WORD key;
1464 WORD cmd;
1465} ACCEL, *LPACCEL;
1466
1467/* this is the 8 byte accel struct used in Win32 resources (internal only) */
1468typedef struct
1469{
1470 BYTE fVirt;
1471 BYTE pad0;
1472 WORD key;
1473 WORD cmd;
1474 WORD pad1;
1475} PE_ACCEL, *LPPE_ACCEL;
1476
1477
1478/* Flags for TrackPopupMenu */
1479#define TPM_LEFTBUTTON 0x0000
1480#define TPM_RIGHTBUTTON 0x0002
1481#define TPM_LEFTALIGN 0x0000
1482#define TPM_CENTERALIGN 0x0004
1483#define TPM_RIGHTALIGN 0x0008
1484#define TPM_TOPALIGN 0x0000
1485#define TPM_VCENTERALIGN 0x0010
1486#define TPM_BOTTOMALIGN 0x0020
1487#define TPM_HORIZONTAL 0x0000
1488#define TPM_VERTICAL 0x0040
1489#define TPM_NONOTIFY 0x0080
1490#define TPM_RETURNCMD 0x0100
1491
1492/* return codes for WM_MENUCHAR */
1493#define MNC_IGNORE 0
1494#define MNC_CLOSE 1
1495#define MNC_EXECUTE 2
1496#define MNC_SELECT 3
1497
1498typedef struct
1499{
1500 UINT cbSize;
1501 RECT rcExclude;
1502} TPMPARAMS, *LPTPMPARAMS;
1503
1504/*
1505 * Combobox information
1506 */
1507typedef struct tagCOMBOBOXINFO
1508{
1509 DWORD cbSize;
1510 RECT rcItem;
1511 RECT rcButton;
1512 DWORD stateButton;
1513 HWND hwndCombo;
1514 HWND hwndItem;
1515 HWND hwndList;
1516} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
1517
1518/* FIXME: not sure this one is correct */
1519typedef struct {
1520 UINT cbSize;
1521 UINT fMask;
1522 UINT fType;
1523 UINT fState;
1524 UINT wID;
1525 HMENU hSubMenu;
1526 HBITMAP hbmpChecked;
1527 HBITMAP hbmpUnchecked;
1528 DWORD dwItemData;
1529 LPSTR dwTypeData;
1530 UINT cch;
1531 HBITMAP hbmpItem;
1532} MENUITEMINFOA, *LPMENUITEMINFOA;
1533
1534typedef struct {
1535 UINT cbSize;
1536 UINT fMask;
1537 UINT fType;
1538 UINT fState;
1539 UINT wID;
1540 HMENU hSubMenu;
1541 HBITMAP hbmpChecked;
1542 HBITMAP hbmpUnchecked;
1543 DWORD dwItemData;
1544 LPWSTR dwTypeData;
1545 UINT cch;
1546 HBITMAP hbmpItem;
1547} MENUITEMINFOW, *LPMENUITEMINFOW;
1548
1549typedef const LPMENUITEMINFOA LPCMENUITEMINFOA;
1550typedef const LPMENUITEMINFOW LPCMENUITEMINFOW;
1551
1552DECL_WINELIB_TYPE_AW(MENUITEMINFO)
1553DECL_WINELIB_TYPE_AW(LPMENUITEMINFO)
1554
1555typedef struct {
1556 DWORD cbSize;
1557 DWORD fMask;
1558 DWORD dwStyle;
1559 UINT cyMax;
1560 HBRUSH hbrBack;
1561 DWORD dwContextHelpID;
1562 DWORD dwMenuData;
1563} MENUINFO, *LPMENUINFO;
1564
1565typedef MENUINFO const * LPCMENUINFO;
1566
1567#define MIM_MAXHEIGHT 0x00000001
1568#define MIM_BACKGROUND 0x00000002
1569#define MIM_HELPID 0x00000004
1570#define MIM_MENUDATA 0x00000008
1571#define MIM_STYLE 0x00000010
1572#define MIM_APPLYTOSUBMENUS 0x80000000
1573
1574typedef struct {
1575 WORD versionNumber;
1576 WORD offset;
1577} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
1578
1579
1580typedef struct {
1581 WORD mtOption;
1582 WORD mtID;
1583 WCHAR mtString[1];
1584} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
1585
1586
1587typedef VOID MENUTEMPLATE;
1588typedef PVOID *LPMENUTEMPLATE;
1589
1590/* Field specifiers for MENUITEMINFO[AW] type. */
1591#define MIIM_STATE 0x00000001
1592#define MIIM_ID 0x00000002
1593#define MIIM_SUBMENU 0x00000004
1594#define MIIM_CHECKMARKS 0x00000008
1595#define MIIM_TYPE 0x00000010
1596#define MIIM_DATA 0x00000020
1597#define MIIM_STRING 0x00000040
1598#define MIIM_BITMAP 0x00000080
1599#define MIIM_FTYPE 0x00000100
1600
1601#define HBMMENU_CALLBACK ((HBITMAP) -1)
1602#define HBMMENU_SYSTEM ((HBITMAP) 1)
1603#define HBMMENU_MBAR_RESTORE ((HBITMAP) 2)
1604#define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3)
1605#define HBMMENU_MBAR_CLOSE ((HBITMAP) 5)
1606#define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6)
1607#define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7)
1608#define HBMMENU_POPUP_CLOSE ((HBITMAP) 8)
1609#define HBMMENU_POPUP_RESTORE ((HBITMAP) 9)
1610#define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10)
1611#define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11)
1612
1613/* DrawState defines ... */
1614typedef BOOL (* CALLBACK DRAWSTATEPROC)(HDC,LPARAM,WPARAM,INT,INT);
1615
1616/* WM_H/VSCROLL commands */
1617#define SB_LINEUP 0
1618#define SB_LINELEFT 0
1619#define SB_LINEDOWN 1
1620#define SB_LINERIGHT 1
1621#define SB_PAGEUP 2
1622#define SB_PAGELEFT 2
1623#define SB_PAGEDOWN 3
1624#define SB_PAGERIGHT 3
1625#define SB_THUMBPOSITION 4
1626#define SB_THUMBTRACK 5
1627#define SB_TOP 6
1628#define SB_LEFT 6
1629#define SB_BOTTOM 7
1630#define SB_RIGHT 7
1631#define SB_ENDSCROLL 8
1632
1633/* Scroll bar selection constants */
1634#define SB_HORZ 0
1635#define SB_VERT 1
1636#define SB_CTL 2
1637#define SB_BOTH 3
1638
1639/* Scrollbar styles */
1640#define SBS_HORZ 0x0000L
1641#define SBS_VERT 0x0001L
1642#define SBS_TOPALIGN 0x0002L
1643#define SBS_LEFTALIGN 0x0002L
1644#define SBS_BOTTOMALIGN 0x0004L
1645#define SBS_RIGHTALIGN 0x0004L
1646#define SBS_SIZEBOXTOPLEFTALIGN 0x0002L
1647#define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
1648#define SBS_SIZEBOX 0x0008L
1649#define SBS_SIZEGRIP 0x0010L
1650
1651/* EnableScrollBar() flags */
1652#define ESB_ENABLE_BOTH 0x0000
1653#define ESB_DISABLE_BOTH 0x0003
1654
1655#define ESB_DISABLE_LEFT 0x0001
1656#define ESB_DISABLE_RIGHT 0x0002
1657
1658#define ESB_DISABLE_UP 0x0001
1659#define ESB_DISABLE_DOWN 0x0002
1660
1661#define ESB_DISABLE_LTUP ESB_DISABLE_LEFT
1662#define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT
1663
1664/* Win32 button control messages */
1665#define BM_GETCHECK 0x00f0
1666#define BM_SETCHECK 0x00f1
1667#define BM_GETSTATE 0x00f2
1668#define BM_SETSTATE 0x00f3
1669#define BM_SETSTYLE 0x00f4
1670#define BM_CLICK 0x00f5
1671#define BM_GETIMAGE 0x00f6
1672#define BM_SETIMAGE 0x00f7
1673/* Winelib button control messages */
1674
1675/* Button notification codes */
1676#define BN_CLICKED 0
1677#define BN_PAINT 1
1678#define BN_HILITE 2
1679#define BN_UNHILITE 3
1680#define BN_DISABLE 4
1681#define BN_DOUBLECLICKED 5
1682#define BN_PUSHED BN_HILITE
1683#define BN_UNPUSHED BN_UNHILITE
1684#define BN_DBLCLK BN_DOUBLECLICKED
1685#define BN_SETFOCUS 6
1686#define BN_KILLFOCUS 7
1687
1688/* Button states */
1689#define BST_UNCHECKED 0x0000
1690#define BST_CHECKED 0x0001
1691#define BST_INDETERMINATE 0x0002
1692#define BST_PUSHED 0x0004
1693#define BST_FOCUS 0x0008
1694
1695/* Static Control Styles */
1696#define SS_LEFT 0x00000000L
1697#define SS_CENTER 0x00000001L
1698#define SS_RIGHT 0x00000002L
1699#define SS_ICON 0x00000003L
1700#define SS_BLACKRECT 0x00000004L
1701#define SS_GRAYRECT 0x00000005L
1702#define SS_WHITERECT 0x00000006L
1703#define SS_BLACKFRAME 0x00000007L
1704#define SS_GRAYFRAME 0x00000008L
1705#define SS_WHITEFRAME 0x00000009L
1706#define SS_USERITEM 0x0000000AL
1707#define SS_SIMPLE 0x0000000BL
1708#define SS_LEFTNOWORDWRAP 0x0000000CL
1709
1710#define SS_OWNERDRAW 0x0000000DL
1711#define SS_BITMAP 0x0000000EL
1712#define SS_ENHMETAFILE 0x0000000FL
1713
1714#define SS_ETCHEDHORZ 0x00000010L
1715#define SS_ETCHEDVERT 0x00000011L
1716#define SS_ETCHEDFRAME 0x00000012L
1717#define SS_TYPEMASK 0x0000001FL
1718
1719#define SS_NOPREFIX 0x00000080L
1720#define SS_NOTIFY 0x00000100L
1721#define SS_CENTERIMAGE 0x00000200L
1722#define SS_RIGHTJUST 0x00000400L
1723#define SS_REALSIZEIMAGE 0x00000800L
1724#define SS_SUNKEN 0x00001000L
1725#define SS_ENDELLIPSIS 0x00004000L
1726#define SS_PATHELLIPSIS 0x00008000L
1727#define SS_WORDELLIPSIS 0x0000C000L
1728#define SS_ELLIPSISMASK 0x0000C000L
1729
1730/* Static Control Messages */
1731#define STM_SETICON 0x0170
1732#define STM_GETICON 0x0171
1733#define STM_SETIMAGE 0x0172
1734#define STM_GETIMAGE 0x0173
1735#define STM_MSGMAX 0x0174
1736
1737#define STN_CLICKED 0
1738#define STN_DBLCLK 1
1739#define STN_ENABLE 2
1740#define STN_DISABLE 3
1741
1742/* Scrollbar messages */
1743#define SBM_SETPOS 0x00e0
1744#define SBM_GETPOS 0x00e1
1745#define SBM_SETRANGE 0x00e2
1746#define SBM_GETRANGE 0x00e3
1747#define SBM_ENABLE_ARROWS 0x00e4
1748#define SBM_SETRANGEREDRAW 0x00e6
1749#define SBM_SETSCROLLINFO 0x00e9
1750#define SBM_GETSCROLLINFO 0x00ea
1751
1752/* Scrollbar info */
1753typedef struct
1754{
1755 UINT cbSize;
1756 UINT fMask;
1757 INT nMin;
1758 INT nMax;
1759 UINT nPage;
1760 INT nPos;
1761 INT nTrackPos;
1762} SCROLLINFO, *LPSCROLLINFO;
1763typedef SCROLLINFO CONST *LPCSCROLLINFO;
1764
1765/* GetScrollInfo() flags */
1766#define SIF_RANGE 0x0001
1767#define SIF_PAGE 0x0002
1768#define SIF_POS 0x0004
1769#define SIF_DISABLENOSCROLL 0x0008
1770#define SIF_TRACKPOS 0x0010
1771#define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
1772
1773/* Scrollbar information */
1774
1775#define CCHILDREN_SCROLLBAR 5
1776
1777typedef struct tagSCROLLBARINFO
1778{
1779 DWORD cbSize;
1780 RECT rcScrollBar;
1781 int dxyLineButton;
1782 int xyThumbTop;
1783 int xyThumbBottom;
1784 int bogus;
1785 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
1786} SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO;
1787
1788/* Listbox styles */
1789#define LBS_NOTIFY 0x0001
1790#define LBS_SORT 0x0002
1791#define LBS_NOREDRAW 0x0004
1792#define LBS_MULTIPLESEL 0x0008
1793#define LBS_OWNERDRAWFIXED 0x0010
1794#define LBS_OWNERDRAWVARIABLE 0x0020
1795#define LBS_HASSTRINGS 0x0040
1796#define LBS_USETABSTOPS 0x0080
1797#define LBS_NOINTEGRALHEIGHT 0x0100
1798#define LBS_MULTICOLUMN 0x0200
1799#define LBS_WANTKEYBOARDINPUT 0x0400
1800#define LBS_EXTENDEDSEL 0x0800
1801#define LBS_DISABLENOSCROLL 0x1000
1802#define LBS_NODATA 0x2000
1803#define LBS_NOSEL 0x4000
1804#define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
1805
1806/* Listbox messages */
1807#define LB_ADDSTRING 0x0180
1808#define LB_INSERTSTRING 0x0181
1809#define LB_DELETESTRING 0x0182
1810#define LB_SELITEMRANGEEX 0x0183
1811#define LB_RESETCONTENT 0x0184
1812#define LB_SETSEL 0x0185
1813#define LB_SETCURSEL 0x0186
1814#define LB_GETSEL 0x0187
1815#define LB_GETCURSEL 0x0188
1816#define LB_GETTEXT 0x0189
1817#define LB_GETTEXTLEN 0x018a
1818#define LB_GETCOUNT 0x018b
1819#define LB_SELECTSTRING 0x018c
1820#define LB_DIR 0x018d
1821#define LB_GETTOPINDEX 0x018e
1822#define LB_FINDSTRING 0x018f
1823#define LB_GETSELCOUNT 0x0190
1824#define LB_GETSELITEMS 0x0191
1825#define LB_SETTABSTOPS 0x0192
1826#define LB_GETHORIZONTALEXTENT 0x0193
1827#define LB_SETHORIZONTALEXTENT 0x0194
1828#define LB_SETCOLUMNWIDTH 0x0195
1829#define LB_ADDFILE 0x0196
1830#define LB_SETTOPINDEX 0x0197
1831#define LB_GETITEMRECT 0x0198
1832#define LB_GETITEMDATA 0x0199
1833#define LB_SETITEMDATA 0x019a
1834#define LB_SELITEMRANGE 0x019b
1835#define LB_SETANCHORINDEX 0x019c
1836#define LB_GETANCHORINDEX 0x019d
1837#define LB_SETCARETINDEX 0x019e
1838#define LB_GETCARETINDEX 0x019f
1839#define LB_SETITEMHEIGHT 0x01a0
1840#define LB_GETITEMHEIGHT 0x01a1
1841#define LB_FINDSTRINGEXACT 0x01a2
1842#define LB_CARETON 0x01a3
1843#define LB_CARETOFF 0x01a4
1844#define LB_SETLOCALE 0x01a5
1845#define LB_GETLOCALE 0x01a6
1846#define LB_SETCOUNT 0x01a7
1847#define LB_INITSTORAGE 0x01a8
1848#define LB_ITEMFROMPOINT 0x01a9
1849
1850/* Listbox notification codes */
1851#define LBN_ERRSPACE (-2)
1852#define LBN_SELCHANGE 1
1853#define LBN_DBLCLK 2
1854#define LBN_SELCANCEL 3
1855#define LBN_SETFOCUS 4
1856#define LBN_KILLFOCUS 5
1857
1858/* Listbox message return values */
1859#define LB_OKAY 0
1860#define LB_ERR (-1)
1861#define LB_ERRSPACE (-2)
1862
1863#define LB_CTLCODE 0L
1864
1865/* Combo box styles */
1866#define CBS_SIMPLE 0x0001L
1867#define CBS_DROPDOWN 0x0002L
1868#define CBS_DROPDOWNLIST 0x0003L
1869#define CBS_OWNERDRAWFIXED 0x0010L
1870#define CBS_OWNERDRAWVARIABLE 0x0020L
1871#define CBS_AUTOHSCROLL 0x0040L
1872#define CBS_OEMCONVERT 0x0080L
1873#define CBS_SORT 0x0100L
1874#define CBS_HASSTRINGS 0x0200L
1875#define CBS_NOINTEGRALHEIGHT 0x0400L
1876#define CBS_DISABLENOSCROLL 0x0800L
1877
1878#define CBS_UPPERCASE 0x2000L
1879#define CBS_LOWERCASE 0x4000L
1880
1881
1882/* Combo box messages */
1883#define CB_GETEDITSEL 0x0140
1884#define CB_LIMITTEXT 0x0141
1885#define CB_SETEDITSEL 0x0142
1886#define CB_ADDSTRING 0x0143
1887#define CB_DELETESTRING 0x0144
1888#define CB_DIR 0x0145
1889#define CB_GETCOUNT 0x0146
1890#define CB_GETCURSEL 0x0147
1891#define CB_GETLBTEXT 0x0148
1892#define CB_GETLBTEXTLEN 0x0149
1893#define CB_INSERTSTRING 0x014a
1894#define CB_RESETCONTENT 0x014b
1895#define CB_FINDSTRING 0x014c
1896#define CB_SELECTSTRING 0x014d
1897#define CB_SETCURSEL 0x014e
1898#define CB_SHOWDROPDOWN 0x014f
1899#define CB_GETITEMDATA 0x0150
1900#define CB_SETITEMDATA 0x0151
1901#define CB_GETDROPPEDCONTROLRECT 0x0152
1902#define CB_SETITEMHEIGHT 0x0153
1903#define CB_GETITEMHEIGHT 0x0154
1904#define CB_SETEXTENDEDUI 0x0155
1905#define CB_GETEXTENDEDUI 0x0156
1906#define CB_GETDROPPEDSTATE 0x0157
1907#define CB_FINDSTRINGEXACT 0x0158
1908#define CB_SETLOCALE 0x0159
1909#define CB_GETLOCALE 0x015a
1910#define CB_GETTOPINDEX 0x015b
1911#define CB_SETTOPINDEX 0x015c
1912#define CB_GETHORIZONTALEXTENT 0x015d
1913#define CB_SETHORIZONTALEXTENT 0x015e
1914#define CB_GETDROPPEDWIDTH 0x015f
1915#define CB_SETDROPPEDWIDTH 0x0160
1916#define CB_INITSTORAGE 0x0161
1917
1918/* Combo box notification codes */
1919#define CBN_ERRSPACE (-1)
1920#define CBN_SELCHANGE 1
1921#define CBN_DBLCLK 2
1922#define CBN_SETFOCUS 3
1923#define CBN_KILLFOCUS 4
1924#define CBN_EDITCHANGE 5
1925#define CBN_EDITUPDATE 6
1926#define CBN_DROPDOWN 7
1927#define CBN_CLOSEUP 8
1928#define CBN_SELENDOK 9
1929#define CBN_SELENDCANCEL 10
1930
1931/* Combo box message return values */
1932#define CB_OKAY 0
1933#define CB_ERR (-1)
1934#define CB_ERRSPACE (-2)
1935
1936#define MB_OK 0x00000000
1937#define MB_OKCANCEL 0x00000001
1938#define MB_ABORTRETRYIGNORE 0x00000002
1939#define MB_YESNOCANCEL 0x00000003
1940#define MB_YESNO 0x00000004
1941#define MB_RETRYCANCEL 0x00000005
1942#define MB_TYPEMASK 0x0000000F
1943
1944#define MB_ICONHAND 0x00000010
1945#define MB_ICONQUESTION 0x00000020
1946#define MB_ICONEXCLAMATION 0x00000030
1947#define MB_ICONASTERISK 0x00000040
1948#define MB_USERICON 0x00000080
1949#define MB_ICONMASK 0x000000F0
1950
1951#define MB_ICONINFORMATION MB_ICONASTERISK
1952#define MB_ICONSTOP MB_ICONHAND
1953#define MB_ICONWARNING MB_ICONEXCLAMATION
1954#define MB_ICONERROR MB_ICONHAND
1955
1956#define MB_DEFBUTTON1 0x00000000
1957#define MB_DEFBUTTON2 0x00000100
1958#define MB_DEFBUTTON3 0x00000200
1959#define MB_DEFBUTTON4 0x00000300
1960#define MB_DEFMASK 0x00000F00
1961
1962#define MB_APPLMODAL 0x00000000
1963#define MB_SYSTEMMODAL 0x00001000
1964#define MB_TASKMODAL 0x00002000
1965#define MB_MODEMASK 0x00003000
1966
1967#define MB_HELP 0x00004000
1968#define MB_NOFOCUS 0x00008000
1969#define MB_MISCMASK 0x0000C000
1970
1971#define MB_SETFOREGROUND 0x00010000
1972#define MB_DEFAULT_DESKTOP_ONLY 0x00020000
1973#define MB_SERVICE_NOTIFICATION 0x00040000
1974#define MB_TOPMOST 0x00040000
1975#define MB_RIGHT 0x00080000
1976#define MB_RTLREADING 0x00100000
1977
1978#define HELPINFO_WINDOW 0x0001
1979#define HELPINFO_MENUITEM 0x0002
1980
1981/* Structure pointed to by lParam of WM_HELP */
1982typedef struct
1983{
1984 UINT cbSize; /* Size in bytes of this struct */
1985 INT iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */
1986 INT iCtrlId; /* Control Id or a Menu item Id. */
1987 HANDLE hItemHandle; /* hWnd of control or hMenu. */
1988 DWORD dwContextId; /* Context Id associated with this item */
1989 POINT MousePos; /* Mouse Position in screen co-ordinates */
1990} HELPINFO,*LPHELPINFO;
1991
1992typedef void (* CALLBACK MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
1993
1994typedef struct
1995{
1996 UINT cbSize;
1997 HWND hwndOwner;
1998 HINSTANCE hInstance;
1999 LPCSTR lpszText;
2000 LPCSTR lpszCaption;
2001 DWORD dwStyle;
2002 LPCSTR lpszIcon;
2003 DWORD dwContextHelpId;
2004 MSGBOXCALLBACK lpfnMsgBoxCallback;
2005 DWORD dwLanguageId;
2006} MSGBOXPARAMSA,*LPMSGBOXPARAMSA;
2007
2008typedef struct
2009{
2010 UINT cbSize;
2011 HWND hwndOwner;
2012 HINSTANCE hInstance;
2013 LPCWSTR lpszText;
2014 LPCWSTR lpszCaption;
2015 DWORD dwStyle;
2016 LPCWSTR lpszIcon;
2017 DWORD dwContextHelpId;
2018 MSGBOXCALLBACK lpfnMsgBoxCallback;
2019 DWORD dwLanguageId;
2020} MSGBOXPARAMSW,*LPMSGBOXPARAMSW;
2021
2022DECL_WINELIB_TYPE_AW(MSGBOXPARAMS)
2023DECL_WINELIB_TYPE_AW(LPMSGBOXPARAMS)
2024
2025#define MONITOR_DEFAULTTONULL 0x00000000
2026#define MONITOR_DEFAULTTOPRIMARY 0x00000001
2027#define MONITOR_DEFAULTTONEAREST 0x00000002
2028
2029#define MONITORINFOF_PRIMARY 0x00000001
2030
2031typedef struct tagMONITORINFO
2032{
2033 DWORD cbSize;
2034 RECT rcMonitor;
2035 RECT rcWork;
2036 DWORD dwFlags;
2037} MONITORINFO, *LPMONITORINFO;
2038
2039typedef struct tagMONITORINFOEXA
2040{
2041 MONITORINFO dummy;
2042 CHAR szDevice[CCHDEVICENAME];
2043} MONITORINFOEXA, *LPMONITORINFOEXA;
2044
2045typedef struct tagMONITORINFOEXW
2046{
2047 MONITORINFO dummy;
2048 WCHAR szDevice[CCHDEVICENAME];
2049} MONITORINFOEXW, *LPMONITORINFOEXW;
2050
2051DECL_WINELIB_TYPE_AW(MONITORINFOEX)
2052DECL_WINELIB_TYPE_AW(LPMONITORINFOEX)
2053
2054typedef BOOL (* CALLBACK MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
2055
2056/* FIXME: use this instead of LPCVOID for CreateDialogIndirectParam
2057 and DialogBoxIndirectParam */
2058typedef struct tagDLGTEMPLATE
2059{
2060 DWORD style;
2061 DWORD dwExtendedStyle;
2062 WORD cdit;
2063 short x;
2064 short y;
2065 short cx;
2066 short cy;
2067} DLGTEMPLATE;
2068
2069typedef DLGTEMPLATE *LPDLGTEMPLATEA;
2070typedef DLGTEMPLATE *LPDLGTEMPLATEW;
2071#define LPDLGTEMPLATE WINELIB_NAME_AW(LPDLGTEMPLATE)
2072typedef const DLGTEMPLATE *LPCDLGTEMPLATEA;
2073typedef const DLGTEMPLATE *LPCDLGTEMPLATEW;
2074#define LPCDLGTEMPLATE WINELIB_NAME_AW(LPCDLGTEMPLATE)
2075
2076typedef struct tagDLGITEMTEMPLATE
2077{
2078 DWORD style;
2079 DWORD dwExtendedStyle;
2080 short x;
2081 short y;
2082 short cx;
2083 short cy;
2084 WORD id;
2085} DLGITEMTEMPLATE;
2086
2087typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
2088typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
2089#define LPDLGITEMTEMPLATE WINELIB_NAME_AW(LPDLGITEMTEMPLATE)
2090typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEA;
2091typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEW;
2092#define LPCDLGITEMTEMPLATE WINELIB_NAME_AW(LPCDLGITEMTEMPLATE)
2093
2094
2095 /* CBT hook values */
2096#define HCBT_MOVESIZE 0
2097#define HCBT_MINMAX 1
2098#define HCBT_QS 2
2099#define HCBT_CREATEWND 3
2100#define HCBT_DESTROYWND 4
2101#define HCBT_ACTIVATE 5
2102#define HCBT_CLICKSKIPPED 6
2103#define HCBT_KEYSKIPPED 7
2104#define HCBT_SYSCOMMAND 8
2105#define HCBT_SETFOCUS 9
2106
2107 /* CBT hook structures */
2108
2109typedef struct
2110{
2111 CREATESTRUCTA *lpcs;
2112 HWND hwndInsertAfter;
2113} CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
2114
2115typedef struct
2116{
2117 CREATESTRUCTW *lpcs;
2118 HWND hwndInsertAfter;
2119} CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
2120
2121DECL_WINELIB_TYPE_AW(CBT_CREATEWND)
2122DECL_WINELIB_TYPE_AW(LPCBT_CREATEWND)
2123
2124typedef struct
2125{
2126 BOOL fMouse;
2127 HWND hWndActive;
2128} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
2129
2130
2131/* modifiers for RegisterHotKey */
2132#define MOD_ALT 0x0001
2133#define MOD_CONTROL 0x0002
2134#define MOD_SHIFT 0x0004
2135#define MOD_WIN 0x0008
2136
2137/* ids for RegisterHotKey */
2138#define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */
2139#define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */
2140
2141 /* keybd_event flags */
2142#define KEYEVENTF_EXTENDEDKEY 0x0001
2143#define KEYEVENTF_KEYUP 0x0002
2144#define KEYEVENTF_SCANCODE 0x0004 // @@@PH check this
2145#define KEYEVENTF_UNICODE 0x0008 // @@@PH check this
2146#define KEYEVENTF_WINE_FORCEEXTENDED 0x8000
2147
2148 /* mouse_event flags */
2149#define MOUSEEVENTF_MOVE 0x0001
2150#define MOUSEEVENTF_LEFTDOWN 0x0002
2151#define MOUSEEVENTF_LEFTUP 0x0004
2152#define MOUSEEVENTF_RIGHTDOWN 0x0008
2153#define MOUSEEVENTF_RIGHTUP 0x0010
2154#define MOUSEEVENTF_MIDDLEDOWN 0x0020
2155#define MOUSEEVENTF_MIDDLEUP 0x0040
2156#define MOUSEEVENTF_ABSOLUTE 0x8000
2157
2158/* ExitWindows() flags */
2159#define EW_RESTARTWINDOWS 0x0042
2160#define EW_REBOOTSYSTEM 0x0043
2161#define EW_EXITANDEXECAPP 0x0044
2162
2163/* ExitWindowsEx() flags */
2164#define EWX_LOGOFF 0
2165#define EWX_SHUTDOWN 1
2166#define EWX_REBOOT 2
2167#define EWX_FORCE 4
2168#define EWX_POWEROFF 8
2169
2170/* SetLastErrorEx types */
2171#define SLE_ERROR 0x00000001
2172#define SLE_MINORERROR 0x00000002
2173#define SLE_WARNING 0x00000003
2174
2175/* Predefined resources */
2176#define IDI_APPLICATIONA MAKEINTRESOURCEA(32512)
2177#define IDI_APPLICATIONW MAKEINTRESOURCEW(32512)
2178#define IDI_APPLICATION WINELIB_NAME_AW(IDI_APPLICATION)
2179#define IDI_HANDA MAKEINTRESOURCEA(32513)
2180#define IDI_HANDW MAKEINTRESOURCEW(32513)
2181#define IDI_HAND WINELIB_NAME_AW(IDI_HAND)
2182#define IDI_QUESTIONA MAKEINTRESOURCEA(32514)
2183#define IDI_QUESTIONW MAKEINTRESOURCEW(32514)
2184#define IDI_QUESTION WINELIB_NAME_AW(IDI_QUESTION)
2185#define IDI_EXCLAMATIONA MAKEINTRESOURCEA(32515)
2186#define IDI_EXCLAMATIONW MAKEINTRESOURCEW(32515)
2187#define IDI_EXCLAMATION WINELIB_NAME_AW(IDI_EXCLAMATION)
2188#define IDI_ASTERISKA MAKEINTRESOURCEA(32516)
2189#define IDI_ASTERISKW MAKEINTRESOURCEW(32516)
2190#define IDI_ASTERISK WINELIB_NAME_AW(IDI_ASTERISK)
2191#define IDI_WINLOGOA MAKEINTRESOURCEA(32517)
2192#define IDI_WINLOGOW MAKEINTRESOURCEW(32517)
2193#define IDI_WINLOGO WINELIB_NAME_AW(IDI_WINLOGO)
2194#define IDI_WARNING IDI_EXCLAMATION
2195#define IDI_ERROR IDI_HAND
2196#define IDI_INFORMATION IDI_ASTERISK
2197
2198#define IDC_BUMMERA MAKEINTRESOURCEA(100)
2199#define IDC_BUMMERW MAKEINTRESOURCEW(100)
2200#define IDC_BUMMER WINELIB_NAME_AW(IDC_BUMMER)
2201#define IDC_ARROWA MAKEINTRESOURCEA(32512)
2202#define IDC_ARROWW MAKEINTRESOURCEW(32512)
2203#define IDC_ARROW WINELIB_NAME_AW(IDC_ARROW)
2204#define IDC_IBEAMA MAKEINTRESOURCEA(32513)
2205#define IDC_IBEAMW MAKEINTRESOURCEW(32513)
2206#define IDC_IBEAM WINELIB_NAME_AW(IDC_IBEAM)
2207#define IDC_WAITA MAKEINTRESOURCEA(32514)
2208#define IDC_WAITW MAKEINTRESOURCEW(32514)
2209#define IDC_WAIT WINELIB_NAME_AW(IDC_WAIT)
2210#define IDC_CROSSA MAKEINTRESOURCEA(32515)
2211#define IDC_CROSSW MAKEINTRESOURCEW(32515)
2212#define IDC_CROSS WINELIB_NAME_AW(IDC_CROSS)
2213#define IDC_UPARROWA MAKEINTRESOURCEA(32516)
2214#define IDC_UPARROWW MAKEINTRESOURCEW(32516)
2215#define IDC_UPARROW WINELIB_NAME_AW(IDC_UPARROW)
2216#define IDC_SIZEA MAKEINTRESOURCEA(32640)
2217#define IDC_SIZEW MAKEINTRESOURCEW(32640)
2218#define IDC_SIZE WINELIB_NAME_AW(IDC_SIZE)
2219#define IDC_ICONA MAKEINTRESOURCEA(32641)
2220#define IDC_ICONW MAKEINTRESOURCEW(32641)
2221#define IDC_ICON WINELIB_NAME_AW(IDC_ICON)
2222#define IDC_SIZENWSEA MAKEINTRESOURCEA(32642)
2223#define IDC_SIZENWSEW MAKEINTRESOURCEW(32642)
2224#define IDC_SIZENWSE WINELIB_NAME_AW(IDC_SIZENWSE)
2225#define IDC_SIZENESWA MAKEINTRESOURCEA(32643)
2226#define IDC_SIZENESWW MAKEINTRESOURCEW(32643)
2227#define IDC_SIZENESW WINELIB_NAME_AW(IDC_SIZENESW)
2228#define IDC_SIZEWEA MAKEINTRESOURCEA(32644)
2229#define IDC_SIZEWEW MAKEINTRESOURCEW(32644)
2230#define IDC_SIZEWE WINELIB_NAME_AW(IDC_SIZEWE)
2231#define IDC_SIZENSA MAKEINTRESOURCEA(32645)
2232#define IDC_SIZENSW MAKEINTRESOURCEW(32645)
2233#define IDC_SIZENS WINELIB_NAME_AW(IDC_SIZENS)
2234#define IDC_SIZEALLA MAKEINTRESOURCEA(32646)
2235#define IDC_SIZEALLW MAKEINTRESOURCEW(32646)
2236#define IDC_SIZEALL WINELIB_NAME_AW(IDC_SIZEALL)
2237#define IDC_NOA MAKEINTRESOURCEA(32648)
2238#define IDC_NOW MAKEINTRESOURCEW(32648)
2239#define IDC_NO WINELIB_NAME_AW(IDC_NO)
2240#define IDC_APPSTARTINGA MAKEINTRESOURCEA(32650)
2241#define IDC_APPSTARTINGW MAKEINTRESOURCEW(32650)
2242#define IDC_APPSTARTING WINELIB_NAME_AW(IDC_APPSTARTING)
2243#define IDC_HELPA MAKEINTRESOURCEA(32651)
2244#define IDC_HELPW MAKEINTRESOURCEW(32651)
2245#define IDC_HELP WINELIB_NAME_AW(IDC_HELP)
2246
2247/* SystemParametersInfo */
2248/* defines below are for all win versions */
2249#define SPI_GETBEEP 1
2250#define SPI_SETBEEP 2
2251#define SPI_GETMOUSE 3
2252#define SPI_SETMOUSE 4
2253#define SPI_GETBORDER 5
2254#define SPI_SETBORDER 6
2255#define SPI_GETKEYBOARDSPEED 10
2256#define SPI_SETKEYBOARDSPEED 11
2257#define SPI_LANGDRIVER 12
2258#define SPI_ICONHORIZONTALSPACING 13
2259#define SPI_GETSCREENSAVETIMEOUT 14
2260#define SPI_SETSCREENSAVETIMEOUT 15
2261#define SPI_GETSCREENSAVEACTIVE 16
2262#define SPI_SETSCREENSAVEACTIVE 17
2263#define SPI_GETGRIDGRANULARITY 18
2264#define SPI_SETGRIDGRANULARITY 19
2265#define SPI_SETDESKWALLPAPER 20
2266#define SPI_SETDESKPATTERN 21
2267#define SPI_GETKEYBOARDDELAY 22
2268#define SPI_SETKEYBOARDDELAY 23
2269#define SPI_ICONVERTICALSPACING 24
2270#define SPI_GETICONTITLEWRAP 25
2271#define SPI_SETICONTITLEWRAP 26
2272#define SPI_GETMENUDROPALIGNMENT 27
2273#define SPI_SETMENUDROPALIGNMENT 28
2274#define SPI_SETDOUBLECLKWIDTH 29
2275#define SPI_SETDOUBLECLKHEIGHT 30
2276#define SPI_GETICONTITLELOGFONT 31
2277#define SPI_SETDOUBLECLICKTIME 32
2278#define SPI_SETMOUSEBUTTONSWAP 33
2279#define SPI_SETICONTITLELOGFONT 34
2280#define SPI_GETFASTTASKSWITCH 35
2281#define SPI_SETFASTTASKSWITCH 36
2282#define SPI_SETDRAGFULLWINDOWS 37
2283#define SPI_GETDRAGFULLWINDOWS 38
2284
2285#define SPI_GETFILTERKEYS 50
2286#define SPI_SETFILTERKEYS 51
2287#define SPI_GETTOGGLEKEYS 52
2288#define SPI_SETTOGGLEKEYS 53
2289#define SPI_GETMOUSEKEYS 54
2290#define SPI_SETMOUSEKEYS 55
2291#define SPI_GETSHOWSOUNDS 56
2292#define SPI_SETSHOWSOUNDS 57
2293#define SPI_GETSTICKYKEYS 58
2294#define SPI_SETSTICKYKEYS 59
2295#define SPI_GETACCESSTIMEOUT 60
2296#define SPI_SETACCESSTIMEOUT 61
2297
2298#define SPI_GETSOUNDSENTRY 64
2299#define SPI_SETSOUNDSENTRY 65
2300
2301/* defines below are for all win versions WINVER >= 0x0400 */
2302#define SPI_SETDRAGFULLWINDOWS 37
2303#define SPI_GETDRAGFULLWINDOWS 38
2304#define SPI_GETNONCLIENTMETRICS 41
2305#define SPI_SETNONCLIENTMETRICS 42
2306#define SPI_GETMINIMIZEDMETRICS 43
2307#define SPI_SETMINIMIZEDMETRICS 44
2308#define SPI_GETICONMETRICS 45
2309#define SPI_SETICONMETRICS 46
2310#define SPI_SETWORKAREA 47
2311#define SPI_GETWORKAREA 48
2312#define SPI_SETPENWINDOWS 49
2313
2314#define SPI_GETSERIALKEYS 62
2315#define SPI_SETSERIALKEYS 63
2316#define SPI_GETHIGHCONTRAST 66
2317#define SPI_SETHIGHCONTRAST 67
2318#define SPI_GETKEYBOARDPREF 68
2319#define SPI_SETKEYBOARDPREF 69
2320#define SPI_GETSCREENREADER 70
2321#define SPI_SETSCREENREADER 71
2322#define SPI_GETANIMATION 72
2323#define SPI_SETANIMATION 73
2324#define SPI_GETFONTSMOOTHING 74
2325#define SPI_SETFONTSMOOTHING 75
2326#define SPI_SETDRAGWIDTH 76
2327#define SPI_SETDRAGHEIGHT 77
2328#define SPI_SETHANDHELD 78
2329#define SPI_GETLOWPOWERTIMEOUT 79
2330#define SPI_GETPOWEROFFTIMEOUT 80
2331#define SPI_SETLOWPOWERTIMEOUT 81
2332#define SPI_SETPOWEROFFTIMEOUT 82
2333#define SPI_GETLOWPOWERACTIVE 83
2334#define SPI_GETPOWEROFFACTIVE 84
2335#define SPI_SETLOWPOWERACTIVE 85
2336#define SPI_SETPOWEROFFACTIVE 86
2337#define SPI_SETCURSORS 87
2338#define SPI_SETICONS 88
2339#define SPI_GETDEFAULTINPUTLANG 89
2340#define SPI_SETDEFAULTINPUTLANG 90
2341#define SPI_SETLANGTOGGLE 91
2342#define SPI_GETWINDOWSEXTENSION 92
2343#define SPI_SETMOUSETRAILS 93
2344#define SPI_GETMOUSETRAILS 94
2345#define SPI_SETSCREENSAVERRUNNING 97
2346#define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING
2347
2348/* defines below are for all win versions (_WIN32_WINNT >= 0x0400) ||
2349 * (_WIN32_WINDOWS > 0x0400) */
2350#define SPI_GETMOUSEHOVERWIDTH 98
2351#define SPI_SETMOUSEHOVERWIDTH 99
2352#define SPI_GETMOUSEHOVERHEIGHT 100
2353#define SPI_SETMOUSEHOVERHEIGHT 101
2354#define SPI_GETMOUSEHOVERTIME 102
2355#define SPI_SETMOUSEHOVERTIME 103
2356#define SPI_GETWHEELSCROLLLINES 104
2357#define SPI_SETWHEELSCROLLLINES 105
2358
2359#define SPI_GETSHOWIMEUI 110
2360#define SPI_SETSHOWIMEUI 111
2361
2362/* defines below are for all win versions WINVER >= 0x0500 */
2363#define SPI_GETMOUSESPEED 112
2364#define SPI_SETMOUSESPEED 113
2365#define SPI_GETSCREENSAVERRUNNING 114
2366
2367#define SPI_GETACTIVEWINDOWTRACKING 0x1000
2368#define SPI_SETACTIVEWINDOWTRACKING 0x1001
2369#define SPI_GETMENUANIMATION 0x1002
2370#define SPI_SETMENUANIMATION 0x1003
2371#define SPI_GETCOMBOBOXANIMATION 0x1004
2372#define SPI_SETCOMBOBOXANIMATION 0x1005
2373#define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006
2374#define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007
2375#define SPI_GETGRADIENTCAPTIONS 0x1008
2376#define SPI_SETGRADIENTCAPTIONS 0x1009
2377#define SPI_GETMENUUNDERLINES 0x100A
2378#define SPI_SETMENUUNDERLINES 0x100B
2379#define SPI_GETACTIVEWNDTRKZORDER 0x100C
2380#define SPI_SETACTIVEWNDTRKZORDER 0x100D
2381#define SPI_GETHOTTRACKING 0x100E
2382#define SPI_SETHOTTRACKING 0x100F
2383#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
2384#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
2385#define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
2386#define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
2387#define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
2388#define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
2389
2390/* SystemParametersInfo flags */
2391
2392#define SPIF_UPDATEINIFILE 1
2393#define SPIF_SENDWININICHANGE 2
2394#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
2395
2396
2397typedef struct {
2398 UINT cbSize;
2399 INT iBorderWidth;
2400 INT iScrollWidth;
2401 INT iScrollHeight;
2402 INT iCaptionWidth;
2403 INT iCaptionHeight;
2404 LOGFONTA lfCaptionFont;
2405 INT iSmCaptionWidth;
2406 INT iSmCaptionHeight;
2407 LOGFONTA lfSmCaptionFont;
2408 INT iMenuWidth;
2409 INT iMenuHeight;
2410 LOGFONTA lfMenuFont;
2411 LOGFONTA lfStatusFont;
2412 LOGFONTA lfMessageFont;
2413} NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
2414
2415typedef struct {
2416 UINT cbSize;
2417 INT iBorderWidth;
2418 INT iScrollWidth;
2419 INT iScrollHeight;
2420 INT iCaptionWidth;
2421 INT iCaptionHeight;
2422 LOGFONTW lfCaptionFont;
2423 INT iSmCaptionWidth;
2424 INT iSmCaptionHeight;
2425 LOGFONTW lfSmCaptionFont;
2426 INT iMenuWidth;
2427 INT iMenuHeight;
2428 LOGFONTW lfMenuFont;
2429 LOGFONTW lfStatusFont;
2430 LOGFONTW lfMessageFont;
2431} NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
2432
2433DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
2434DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
2435
2436typedef struct tagICONMETRICSA {
2437 UINT cbSize;
2438 int iHorzSpacing;
2439 int iVertSpacing;
2440 int iTitleWrap;
2441 LOGFONTA lfFont;
2442} ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA;
2443
2444typedef struct tagICONMETRICSW {
2445 UINT cbSize;
2446 int iHorzSpacing;
2447 int iVertSpacing;
2448 int iTitleWrap;
2449 LOGFONTW lfFont;
2450} ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW;
2451
2452DECL_WINELIB_TYPE_AW(ICONMETRICS)
2453DECL_WINELIB_TYPE_AW(PICONMETRICS)
2454DECL_WINELIB_TYPE_AW(LPICONMETRICS)
2455
2456/* Window Styles */
2457#define WS_OVERLAPPED 0x00000000L
2458#define WS_POPUP 0x80000000L
2459#define WS_CHILD 0x40000000L
2460#define WS_MINIMIZE 0x20000000L
2461#define WS_VISIBLE 0x10000000L
2462#define WS_DISABLED 0x08000000L
2463#define WS_CLIPSIBLINGS 0x04000000L
2464#define WS_CLIPCHILDREN 0x02000000L
2465#define WS_MAXIMIZE 0x01000000L
2466#define WS_CAPTION 0x00C00000L
2467#define WS_BORDER 0x00800000L
2468#define WS_DLGFRAME 0x00400000L
2469#define WS_VSCROLL 0x00200000L
2470#define WS_HSCROLL 0x00100000L
2471#define WS_SYSMENU 0x00080000L
2472#define WS_THICKFRAME 0x00040000L
2473#define WS_GROUP 0x00020000L
2474#define WS_TABSTOP 0x00010000L
2475#define WS_MINIMIZEBOX 0x00020000L
2476#define WS_MAXIMIZEBOX 0x00010000L
2477#define WS_TILED WS_OVERLAPPED
2478#define WS_ICONIC WS_MINIMIZE
2479#define WS_SIZEBOX WS_THICKFRAME
2480#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
2481#define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
2482#define WS_CHILDWINDOW (WS_CHILD)
2483#define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW)
2484
2485/* Window extended styles */
2486#define WS_EX_DLGMODALFRAME 0x00000001L
2487#define WS_EX_DRAGDETECT 0x00000002L
2488#define WS_EX_NOPARENTNOTIFY 0x00000004L
2489#define WS_EX_TOPMOST 0x00000008L
2490#define WS_EX_ACCEPTFILES 0x00000010L
2491#define WS_EX_TRANSPARENT 0x00000020L
2492
2493/* New Win95/WinNT4 styles */
2494#define WS_EX_MDICHILD 0x00000040L
2495#define WS_EX_TOOLWINDOW 0x00000080L
2496#define WS_EX_WINDOWEDGE 0x00000100L
2497#define WS_EX_CLIENTEDGE 0x00000200L
2498#define WS_EX_CONTEXTHELP 0x00000400L
2499#define WS_EX_RIGHT 0x00001000L
2500#define WS_EX_LEFT 0x00000000L
2501#define WS_EX_RTLREADING 0x00002000L
2502#define WS_EX_LTRREADING 0x00000000L
2503#define WS_EX_LEFTSCROLLBAR 0x00004000L
2504#define WS_EX_RIGHTSCROLLBAR 0x00000000L
2505#define WS_EX_CONTROLPARENT 0x00010000L
2506#define WS_EX_STATICEDGE 0x00020000L
2507#define WS_EX_APPWINDOW 0x00040000L
2508
2509#define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE|WS_EX_CLIENTEDGE)
2510#define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST)
2511
2512/* New Win2000 styles */
2513#define WS_EX_LAYERED 0x00080000L
2514
2515/* WINE internal... */
2516#define WS_EX_TRAYWINDOW 0x80000000L
2517
2518/* Window scrolling */
2519#define SW_SCROLLCHILDREN 0x0001
2520#define SW_INVALIDATE 0x0002
2521#define SW_ERASE 0x0004
2522#define SW_SMOOTHSCROLL 0x0010
2523
2524/* CreateWindow() coordinates */
2525#define CW_USEDEFAULT ((INT)0x80000000)
2526#define CW_USEDEFAULT16 ((INT16)0x8000)
2527
2528/* ChildWindowFromPointEx Flags */
2529#define CWP_ALL 0x0000
2530#define CWP_SKIPINVISIBLE 0x0001
2531#define CWP_SKIPDISABLED 0x0002
2532#define CWP_SKIPTRANSPARENT 0x0004
2533
2534 /* PeekMessage() options */
2535#define PM_NOREMOVE 0x0000
2536#define PM_REMOVE 0x0001
2537#define PM_NOYIELD 0x0002
2538
2539#define WM_SHOWWINDOW 0x0018
2540
2541/* AnimateWindow() flags */
2542#define AW_SLIDE 0x00040000
2543#define AW_ACTIVATE 0x00020000
2544#define AW_BLEND 0x00080000
2545#define AW_HIDE 0x00010000
2546#define AW_CENTER 0x00000010
2547#define AW_HOR_POSITIVE 0x00000001
2548#define AW_HOR_NEGATIVE 0x00000002
2549#define AW_VER_POSITIVE 0x00000004
2550#define AW_VER_NEGATIVE 0x00000008
2551
2552/* FlashWindowEx() flags */
2553#define FLASHW_STOP 0x00000000
2554#define FLASHW_CAPTION 0x00000001
2555#define FLASHW_TRAY 0x00000002
2556#define FLASHW_ALL (FLASHW_CAPTION|FLASHW_TRAY)
2557#define FLASHW_TIMER 0x00000004
2558#define FLASHW_TIMERNOFG 0x0000000C
2559
2560typedef struct {
2561 UINT cbSize;
2562 HWND hwnd;
2563 DWORD dwFlags;
2564 UINT uCount;
2565 DWORD dwTimeout;
2566} FLASHWINFO, *PFLASHWINFO;
2567
2568/* WM_SHOWWINDOW wParam codes */
2569#define SW_PARENTCLOSING 1
2570#define SW_OTHERMAXIMIZED 2
2571#define SW_PARENTOPENING 3
2572#define SW_OTHERRESTORED 4
2573
2574 /* ShowWindow() codes */
2575#define SW_HIDE 0
2576#define SW_SHOWNORMAL 1
2577#define SW_NORMAL 1
2578#define SW_SHOWMINIMIZED 2
2579#define SW_SHOWMAXIMIZED 3
2580#define SW_MAXIMIZE 3
2581#define SW_SHOWNOACTIVATE 4
2582#define SW_SHOW 5
2583#define SW_MINIMIZE 6
2584#define SW_SHOWMINNOACTIVE 7
2585#define SW_SHOWNA 8
2586#define SW_RESTORE 9
2587#define SW_SHOWDEFAULT 10
2588#define SW_MAX 10
2589#define SW_NORMALNA 0xCC /* undoc. flag in MinMaximize */
2590
2591 /* WM_SIZE message wParam values */
2592#define SIZE_RESTORED 0
2593#define SIZE_MINIMIZED 1
2594#define SIZE_MAXIMIZED 2
2595#define SIZE_MAXSHOW 3
2596#define SIZE_MAXHIDE 4
2597#define SIZENORMAL SIZE_RESTORED
2598#define SIZEICONIC SIZE_MINIMIZED
2599#define SIZEFULLSCREEN SIZE_MAXIMIZED
2600#define SIZEZOOMSHOW SIZE_MAXSHOW
2601#define SIZEZOOMHIDE SIZE_MAXHIDE
2602
2603/* SetWindowPos() and WINDOWPOS flags */
2604#define SWP_NOSIZE 0x0001
2605#define SWP_NOMOVE 0x0002
2606#define SWP_NOZORDER 0x0004
2607#define SWP_NOREDRAW 0x0008
2608#define SWP_NOACTIVATE 0x0010
2609#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */
2610#define SWP_SHOWWINDOW 0x0040
2611#define SWP_HIDEWINDOW 0x0080
2612#define SWP_NOCOPYBITS 0x0100
2613#define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
2614
2615#define SWP_DRAWFRAME SWP_FRAMECHANGED
2616#define SWP_NOREPOSITION SWP_NOOWNERZORDER
2617
2618#define SWP_NOSENDCHANGING 0x0400
2619#define SWP_DEFERERASE 0x2000
2620#define SWP_ASYNCWINDOWPOS 0x4000
2621
2622/* undocumented SWP flags - from SDK 3.1 */
2623#define SWP_NOCLIENTSIZE 0x0800
2624#define SWP_NOCLIENTMOVE 0x1000
2625
2626#define HWND_DESKTOP ((HWND)0)
2627#define HWND_BROADCAST ((HWND)0xffff)
2628
2629/* SetWindowPos() hwndInsertAfter field values */
2630#define HWND_TOP ((HWND)0)
2631#define HWND_BOTTOM ((HWND)1)
2632#define HWND_TOPMOST ((HWND)-1)
2633#define HWND_NOTOPMOST ((HWND)-2)
2634
2635#define MF_INSERT 0x0000
2636#define MF_CHANGE 0x0080
2637#define MF_APPEND 0x0100
2638#define MF_DELETE 0x0200
2639#define MF_REMOVE 0x1000
2640#define MF_END 0x0080
2641
2642#define MF_ENABLED 0x0000
2643#define MF_GRAYED 0x0001
2644#define MF_DISABLED 0x0002
2645#define MF_STRING 0x0000
2646#define MF_BITMAP 0x0004
2647#define MF_UNCHECKED 0x0000
2648#define MF_CHECKED 0x0008
2649#define MF_POPUP 0x0010
2650#define MF_MENUBARBREAK 0x0020
2651#define MF_MENUBREAK 0x0040
2652#define MF_UNHILITE 0x0000
2653#define MF_HILITE 0x0080
2654#define MF_OWNERDRAW 0x0100
2655#define MF_USECHECKBITMAPS 0x0200
2656#define MF_BYCOMMAND 0x0000
2657#define MF_BYPOSITION 0x0400
2658#define MF_SEPARATOR 0x0800
2659#define MF_DEFAULT 0x1000
2660#define MF_SYSMENU 0x2000
2661#define MF_HELP 0x4000
2662#define MF_RIGHTJUSTIFY 0x4000
2663#define MF_MOUSESELECT 0x8000
2664
2665/* Flags for extended menu item types. */
2666#define MFT_STRING MF_STRING
2667#define MFT_BITMAP MF_BITMAP
2668#define MFT_MENUBARBREAK MF_MENUBARBREAK
2669#define MFT_MENUBREAK MF_MENUBREAK
2670#define MFT_OWNERDRAW MF_OWNERDRAW
2671#define MFT_RADIOCHECK 0x00000200L
2672#define MFT_SEPARATOR MF_SEPARATOR
2673#define MFT_RIGHTORDER 0x00002000L
2674#define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY
2675
2676/* Flags for extended menu item states. */
2677#define MFS_GRAYED 0x00000003L
2678#define MFS_DISABLED MFS_GRAYED
2679#define MFS_CHECKED MF_CHECKED
2680#define MFS_HILITE MF_HILITE
2681#define MFS_ENABLED MF_ENABLED
2682#define MFS_UNCHECKED MF_UNCHECKED
2683#define MFS_UNHILITE MF_UNHILITE
2684#define MFS_DEFAULT MF_DEFAULT
2685#define MFS_MASK 0x0000108BL
2686#define MFS_HOTTRACKDRAWN 0x10000000L
2687#define MFS_CACHEDBMP 0x20000000L
2688#define MFS_BOTTOMGAPDROP 0x40000000L
2689#define MFS_TOPGAPDROP 0x80000000L
2690#define MFS_GAPDROP 0xC0000000L
2691
2692
2693/* for GetMenuDefaultItem */
2694#define GMDI_USEDISABLED 0x0001L
2695#define GMDI_GOINTOPOPUPS 0x0002L
2696
2697#define DT_TOP 0x00000000
2698#define DT_LEFT 0x00000000
2699#define DT_CENTER 0x00000001
2700#define DT_RIGHT 0x00000002
2701#define DT_VCENTER 0x00000004
2702#define DT_BOTTOM 0x00000008
2703#define DT_WORDBREAK 0x00000010
2704#define DT_SINGLELINE 0x00000020
2705#define DT_EXPANDTABS 0x00000040
2706#define DT_TABSTOP 0x00000080
2707#define DT_NOCLIP 0x00000100
2708#define DT_EXTERNALLEADING 0x00000200
2709#define DT_CALCRECT 0x00000400
2710#define DT_NOPREFIX 0x00000800
2711#define DT_INTERNAL 0x00001000
2712
2713/* DrawCaption()/DrawCaptionTemp() flags */
2714#define DC_ACTIVE 0x0001
2715#define DC_SMALLCAP 0x0002
2716#define DC_ICON 0x0004
2717#define DC_TEXT 0x0008
2718#define DC_INBUTTON 0x0010
2719
2720/* DrawEdge() flags */
2721#define BDR_RAISEDOUTER 0x0001
2722#define BDR_SUNKENOUTER 0x0002
2723#define BDR_RAISEDINNER 0x0004
2724#define BDR_SUNKENINNER 0x0008
2725
2726#define BDR_OUTER 0x0003
2727#define BDR_INNER 0x000c
2728#define BDR_RAISED 0x0005
2729#define BDR_SUNKEN 0x000a
2730
2731#define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
2732#define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
2733#define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER)
2734#define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER)
2735
2736/* border flags */
2737#define BF_LEFT 0x0001
2738#define BF_TOP 0x0002
2739#define BF_RIGHT 0x0004
2740#define BF_BOTTOM 0x0008
2741#define BF_DIAGONAL 0x0010
2742#define BF_MIDDLE 0x0800 /* Fill in the middle */
2743#define BF_SOFT 0x1000 /* For softer buttons */
2744#define BF_ADJUST 0x2000 /* Calculate the space left over */
2745#define BF_FLAT 0x4000 /* For flat rather than 3D borders */
2746#define BF_MONO 0x8000 /* For monochrome borders */
2747#define BF_TOPLEFT (BF_TOP | BF_LEFT)
2748#define BF_TOPRIGHT (BF_TOP | BF_RIGHT)
2749#define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT)
2750#define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT)
2751#define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
2752#define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT)
2753#define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT)
2754#define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
2755#define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
2756
2757/* DrawFrameControl() uType's */
2758
2759#define DFC_CAPTION 1
2760#define DFC_MENU 2
2761#define DFC_SCROLL 3
2762#define DFC_BUTTON 4
2763
2764/* uState's */
2765
2766#define DFCS_CAPTIONCLOSE 0x0000
2767#define DFCS_CAPTIONMIN 0x0001
2768#define DFCS_CAPTIONMAX 0x0002
2769#define DFCS_CAPTIONRESTORE 0x0003
2770#define DFCS_CAPTIONHELP 0x0004 /* Windows 95 only */
2771
2772#define DFCS_MENUARROW 0x0000
2773#define DFCS_MENUCHECK 0x0001
2774#define DFCS_MENUBULLET 0x0002
2775#define DFCS_MENUARROWRIGHT 0x0004
2776
2777#define DFCS_SCROLLUP 0x0000
2778#define DFCS_SCROLLDOWN 0x0001
2779#define DFCS_SCROLLLEFT 0x0002
2780#define DFCS_SCROLLRIGHT 0x0003
2781#define DFCS_SCROLLCOMBOBOX 0x0005
2782#define DFCS_SCROLLSIZEGRIP 0x0008
2783#define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
2784
2785#define DFCS_BUTTONCHECK 0x0000
2786#define DFCS_BUTTONRADIOIMAGE 0x0001
2787#define DFCS_BUTTONRADIOMASK 0x0002 /* to draw nonsquare button */
2788#define DFCS_BUTTONRADIO 0x0004
2789#define DFCS_BUTTON3STATE 0x0008
2790#define DFCS_BUTTONPUSH 0x0010
2791
2792/* additional state of the control */
2793
2794#define DFCS_INACTIVE 0x0100
2795#define DFCS_PUSHED 0x0200
2796#define DFCS_CHECKED 0x0400
2797#define DFCS_TRANSPARENT 0x0800
2798#define DFCS_HOT 0x1000
2799#define DFCS_ADJUSTRECT 0x2000 /* exclude surrounding edge */
2800#define DFCS_FLAT 0x4000
2801#define DFCS_MONO 0x8000
2802
2803/* Image type */
2804#define DST_COMPLEX 0x0000
2805#define DST_TEXT 0x0001
2806#define DST_PREFIXTEXT 0x0002
2807#define DST_ICON 0x0003
2808#define DST_BITMAP 0x0004
2809
2810/* State type */
2811#define DSS_NORMAL 0x0000
2812#define DSS_UNION 0x0010 /* Gray string appearance */
2813#define DSS_DISABLED 0x0020
2814#define DSS_DEFAULT 0x0040 /* Make it bold */
2815#define DSS_MONO 0x0080
2816#define DSS_RIGHT 0x8000
2817
2818typedef struct
2819{
2820 UINT CtlType;
2821 UINT CtlID;
2822 UINT itemID;
2823 UINT itemAction;
2824 UINT itemState;
2825 HWND hwndItem;
2826 HDC hDC;
2827 RECT rcItem WINE_PACKED;
2828 DWORD itemData WINE_PACKED;
2829} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;
2830
2831
2832typedef struct
2833{
2834 UINT CtlType;
2835 UINT CtlID;
2836 UINT itemID;
2837 UINT itemWidth;
2838 UINT itemHeight;
2839 DWORD itemData;
2840} MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;
2841
2842
2843typedef struct
2844{
2845 UINT CtlType;
2846 UINT CtlID;
2847 UINT itemID;
2848 HWND hwndItem;
2849 DWORD itemData;
2850} DELETEITEMSTRUCT, *LPDELETEITEMSTRUCT;
2851
2852
2853typedef struct
2854{
2855 UINT CtlType;
2856 UINT CtlID;
2857 HWND hwndItem;
2858 UINT itemID1;
2859 DWORD itemData1;
2860 UINT itemID2;
2861 DWORD itemData2;
2862 DWORD dwLocaleId;
2863} COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT;
2864
2865
2866/* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */
2867#define KF_EXTENDED 0x0100
2868#define KF_DLGMODE 0x0800
2869#define KF_MENUMODE 0x1000
2870#define KF_ALTDOWN 0x2000
2871#define KF_REPEAT 0x4000
2872#define KF_UP 0x8000
2873
2874/* Virtual key codes */
2875#define VK_LBUTTON 0x01
2876#define VK_RBUTTON 0x02
2877#define VK_CANCEL 0x03
2878#define VK_MBUTTON 0x04
2879/* 0x05-0x07 Undefined */
2880#define VK_BACK 0x08
2881#define VK_TAB 0x09
2882/* 0x0A-0x0B Undefined */
2883#define VK_CLEAR 0x0C
2884#define VK_RETURN 0x0D
2885/* 0x0E-0x0F Undefined */
2886#define VK_SHIFT 0x10
2887#define VK_CONTROL 0x11
2888#define VK_MENU 0x12
2889#define VK_PAUSE 0x13
2890#define VK_CAPITAL 0x14
2891/* 0x15-0x19 Reserved for Kanji systems */
2892/* 0x1A Undefined */
2893#define VK_ESCAPE 0x1B
2894/* 0x1C-0x1F Reserved for Kanji systems */
2895#define VK_SPACE 0x20
2896#define VK_PRIOR 0x21
2897#define VK_NEXT 0x22
2898#define VK_END 0x23
2899#define VK_HOME 0x24
2900#define VK_LEFT 0x25
2901#define VK_UP 0x26
2902#define VK_RIGHT 0x27
2903#define VK_DOWN 0x28
2904#define VK_SELECT 0x29
2905#define VK_PRINT 0x2A /* OEM specific in Windows 3.1 SDK */
2906#define VK_EXECUTE 0x2B
2907#define VK_SNAPSHOT 0x2C
2908#define VK_INSERT 0x2D
2909#define VK_DELETE 0x2E
2910#define VK_HELP 0x2F
2911#define VK_0 0x30
2912#define VK_1 0x31
2913#define VK_2 0x32
2914#define VK_3 0x33
2915#define VK_4 0x34
2916#define VK_5 0x35
2917#define VK_6 0x36
2918#define VK_7 0x37
2919#define VK_8 0x38
2920#define VK_9 0x39
2921/* 0x3A-0x40 Undefined */
2922#define VK_A 0x41
2923#define VK_B 0x42
2924#define VK_C 0x43
2925#define VK_D 0x44
2926#define VK_E 0x45
2927#define VK_F 0x46
2928#define VK_G 0x47
2929#define VK_H 0x48
2930#define VK_I 0x49
2931#define VK_J 0x4A
2932#define VK_K 0x4B
2933#define VK_L 0x4C
2934#define VK_M 0x4D
2935#define VK_N 0x4E
2936#define VK_O 0x4F
2937#define VK_P 0x50
2938#define VK_Q 0x51
2939#define VK_R 0x52
2940#define VK_S 0x53
2941#define VK_T 0x54
2942#define VK_U 0x55
2943#define VK_V 0x56
2944#define VK_W 0x57
2945#define VK_X 0x58
2946#define VK_Y 0x59
2947#define VK_Z 0x5A
2948
2949#define VK_LWIN 0x5B
2950#define VK_RWIN 0x5C
2951#define VK_APPS 0x5D
2952/* 0x5E-0x5F Unassigned */
2953#define VK_NUMPAD0 0x60
2954#define VK_NUMPAD1 0x61
2955#define VK_NUMPAD2 0x62
2956#define VK_NUMPAD3 0x63
2957#define VK_NUMPAD4 0x64
2958#define VK_NUMPAD5 0x65
2959#define VK_NUMPAD6 0x66
2960#define VK_NUMPAD7 0x67
2961#define VK_NUMPAD8 0x68
2962#define VK_NUMPAD9 0x69
2963#define VK_MULTIPLY 0x6A
2964#define VK_ADD 0x6B
2965#define VK_SEPARATOR 0x6C
2966#define VK_SUBTRACT 0x6D
2967#define VK_DECIMAL 0x6E
2968#define VK_DIVIDE 0x6F
2969#define VK_F1 0x70
2970#define VK_F2 0x71
2971#define VK_F3 0x72
2972#define VK_F4 0x73
2973#define VK_F5 0x74
2974#define VK_F6 0x75
2975#define VK_F7 0x76
2976#define VK_F8 0x77
2977#define VK_F9 0x78
2978#define VK_F10 0x79
2979#define VK_F11 0x7A
2980#define VK_F12 0x7B
2981#define VK_F13 0x7C
2982#define VK_F14 0x7D
2983#define VK_F15 0x7E
2984#define VK_F16 0x7F
2985#define VK_F17 0x80
2986#define VK_F18 0x81
2987#define VK_F19 0x82
2988#define VK_F20 0x83
2989#define VK_F21 0x84
2990#define VK_F22 0x85
2991#define VK_F23 0x86
2992#define VK_F24 0x87
2993/* 0x88-0x8F Unassigned */
2994#define VK_NUMLOCK 0x90
2995#define VK_SCROLL 0x91
2996/* 0x92-0x9F Unassigned */
2997/*
2998 * differencing between right and left shift/control/alt key.
2999 * Used only by GetAsyncKeyState() and GetKeyState().
3000 */
3001#define VK_LSHIFT 0xA0
3002#define VK_RSHIFT 0xA1
3003#define VK_LCONTROL 0xA2
3004#define VK_RCONTROL 0xA3
3005#define VK_LMENU 0xA4
3006#define VK_RMENU 0xA5
3007/* 0xA6-0xB9 Unassigned */
3008#define VK_OEM_1 0xBA
3009#define VK_OEM_PLUS 0xBB
3010#define VK_OEM_COMMA 0xBC
3011#define VK_OEM_MINUS 0xBD
3012#define VK_OEM_PERIOD 0xBE
3013#define VK_OEM_2 0xBF
3014#define VK_OEM_3 0xC0
3015/* 0xC1-0xDA Unassigned */
3016#define VK_OEM_4 0xDB
3017#define VK_OEM_5 0xDC
3018#define VK_OEM_6 0xDD
3019#define VK_OEM_7 0xDE
3020/* 0xDF-0xE4 OEM specific */
3021
3022#define VK_PROCESSKEY 0xE5
3023
3024/* 0xE6 OEM specific */
3025/* 0xE7-0xE8 Unassigned */
3026/* 0xE9-0xF5 OEM specific */
3027
3028#define VK_ATTN 0xF6
3029#define VK_CRSEL 0xF7
3030#define VK_EXSEL 0xF8
3031#define VK_EREOF 0xF9
3032#define VK_PLAY 0xFA
3033#define VK_ZOOM 0xFB
3034#define VK_NONAME 0xFC
3035#define VK_PA1 0xFD
3036#define VK_OEM_CLEAR 0xFE
3037
3038/**************************************************************/
3039/* The following vkey definitions are undocumented in Windows */
3040/**************************************************************/
3041#define VK_SEMICOLON 0xBA
3042#define VK_EQUAL 0xBB
3043#define VK_COMMA 0xBC
3044#define VK_HYPHEN 0xBD
3045#define VK_PERIOD 0xBE
3046#define VK_SLASH 0xBF
3047#define VK_GRAVE 0xC0
3048#define VK_BRACKETLEFT 0xDB
3049#define VK_BACKSLASH 0xDC
3050#define VK_BRACKETRIGHT 0xDD
3051#define VK_QUOTESINGLE 0xDE
3052#define VK_EXTRA 0xE2
3053
3054 /* Key status flags for mouse events */
3055#define MK_LBUTTON 0x0001
3056#define MK_RBUTTON 0x0002
3057#define MK_SHIFT 0x0004
3058#define MK_CONTROL 0x0008
3059#define MK_MBUTTON 0x0010
3060
3061 /* Queue status flags */
3062#define QS_KEY 0x0001
3063#define QS_MOUSEMOVE 0x0002
3064#define QS_MOUSEBUTTON 0x0004
3065#define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON)
3066#define QS_POSTMESSAGE 0x0008
3067#define QS_TIMER 0x0010
3068#define QS_PAINT 0x0020
3069#define QS_SENDMESSAGE 0x0040
3070#define QS_HOTKEY 0x0080
3071#define QS_INPUT (QS_MOUSE | QS_KEY)
3072#define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
3073#define QS_ALLINPUT (QS_ALLEVENTS | QS_SENDMESSAGE)
3074
3075#define DDL_READWRITE 0x0000
3076#define DDL_READONLY 0x0001
3077#define DDL_HIDDEN 0x0002
3078#define DDL_SYSTEM 0x0004
3079#define DDL_DIRECTORY 0x0010
3080#define DDL_ARCHIVE 0x0020
3081
3082#define DDL_POSTMSGS 0x2000
3083#define DDL_DRIVES 0x4000
3084#define DDL_EXCLUSIVE 0x8000
3085
3086 /* Shell hook values */
3087#define HSHELL_WINDOWCREATED 1
3088#define HSHELL_WINDOWDESTROYED 2
3089#define HSHELL_ACTIVATESHELLWINDOW 3
3090
3091/* Predefined Clipboard Formats */
3092#define CF_TEXT 1
3093#define CF_BITMAP 2
3094#define CF_METAFILEPICT 3
3095#define CF_SYLK 4
3096#define CF_DIF 5
3097#define CF_TIFF 6
3098#define CF_OEMTEXT 7
3099#define CF_DIB 8
3100#define CF_PALETTE 9
3101#define CF_PENDATA 10
3102#define CF_RIFF 11
3103#define CF_WAVE 12
3104#define CF_UNICODETEXT 13
3105#define CF_ENHMETAFILE 14
3106#define CF_HDROP 15
3107#define CF_LOCALE 16
3108#define CF_DIBV5 17
3109#define CF_MAX 18
3110
3111#define CF_OWNERDISPLAY 0x0080
3112#define CF_DSPTEXT 0x0081
3113#define CF_DSPBITMAP 0x0082
3114#define CF_DSPMETAFILEPICT 0x0083
3115#define CF_DSPENHMETAFILE 0x008E
3116
3117/* "Private" formats don't get GlobalFree()'d */
3118#define CF_PRIVATEFIRST 0x0200
3119#define CF_PRIVATELAST 0x02FF
3120
3121/* "GDIOBJ" formats do get DeleteObject()'d */
3122#define CF_GDIOBJFIRST 0x0300
3123#define CF_GDIOBJLAST 0x03FF
3124
3125/* Clipboard command messages */
3126#define WM_CUT 0x0300
3127#define WM_COPY 0x0301
3128#define WM_PASTE 0x0302
3129#define WM_CLEAR 0x0303
3130#define WM_UNDO 0x0304
3131
3132/* Clipboard owner messages */
3133#define WM_RENDERFORMAT 0x0305
3134#define WM_RENDERALLFORMATS 0x0306
3135#define WM_DESTROYCLIPBOARD 0x0307
3136
3137/* Clipboard viewer messages */
3138#define WM_DRAWCLIPBOARD 0x0308
3139#define WM_PAINTCLIPBOARD 0x0309
3140#define WM_SIZECLIPBOARD 0x030B
3141#define WM_VSCROLLCLIPBOARD 0x030A
3142#define WM_HSCROLLCLIPBOARD 0x030E
3143#define WM_ASKCBFORMATNAME 0x030C
3144#define WM_CHANGECBCHAIN 0x030D
3145
3146
3147
3148/* DragObject stuff */
3149
3150typedef struct
3151{
3152 HWND16 hWnd;
3153 HANDLE16 hScope;
3154 WORD wFlags;
3155 HANDLE16 hList;
3156 HANDLE16 hOfStruct;
3157 POINT16 pt WINE_PACKED;
3158 LONG l WINE_PACKED;
3159} DRAGINFO, *LPDRAGINFO;
3160
3161#define DRAGOBJ_PROGRAM 0x0001
3162#define DRAGOBJ_DATA 0x0002
3163#define DRAGOBJ_DIRECTORY 0x0004
3164#define DRAGOBJ_MULTIPLE 0x0008
3165#define DRAGOBJ_EXTERNAL 0x8000
3166
3167#define DRAG_PRINT 0x544E5250
3168#define DRAG_FILE 0x454C4946
3169
3170/* types of LoadImage */
3171#define IMAGE_BITMAP 0
3172#define IMAGE_ICON 1
3173#define IMAGE_CURSOR 2
3174#define IMAGE_ENHMETAFILE 3
3175
3176/* loadflags to LoadImage */
3177#define LR_DEFAULTCOLOR 0x0000
3178#define LR_MONOCHROME 0x0001
3179#define LR_COLOR 0x0002
3180#define LR_COPYRETURNORG 0x0004
3181#define LR_COPYDELETEORG 0x0008
3182#define LR_LOADFROMFILE 0x0010
3183#define LR_LOADTRANSPARENT 0x0020
3184#define LR_DEFAULTSIZE 0x0040
3185#define LR_VGA_COLOR 0x0080
3186#define LR_LOADMAP3DCOLORS 0x1000
3187#define LR_CREATEDIBSECTION 0x2000
3188#define LR_COPYFROMRESOURCE 0x4000
3189#define LR_SHARED 0x8000
3190
3191/* Flags for DrawIconEx. */
3192#define DI_MASK 1
3193#define DI_IMAGE 2
3194#define DI_NORMAL (DI_MASK | DI_IMAGE)
3195#define DI_COMPAT 4
3196#define DI_DEFAULTSIZE 8
3197
3198 /* misc messages */
3199#define WM_NULL 0x0000
3200#define WM_CPL_LAUNCH (WM_USER + 1000)
3201#define WM_CPL_LAUNCHED (WM_USER + 1001)
3202
3203/* WM_NOTIFYFORMAT commands and return values */
3204#define NFR_ANSI 1
3205#define NFR_UNICODE 2
3206#define NF_QUERY 3
3207#define NF_REQUERY 4
3208
3209//SM_ARRANGE return values:
3210#define ARW_BOTTOMLEFT 0x0000L
3211#define ARW_BOTTOMRIGHT 0x0001L
3212#define ARW_TOPLEFT 0x0002L
3213#define ARW_TOPRIGHT 0x0003L
3214#define ARW_STARTMASK 0x0003L
3215#define ARW_STARTRIGHT 0x0001L
3216#define ARW_STARTTOP 0x0002L
3217
3218#define ARW_LEFT 0x0000L
3219#define ARW_RIGHT 0x0000L
3220#define ARW_UP 0x0004L
3221#define ARW_DOWN 0x0004L
3222#define ARW_HIDE 0x0008L
3223#define ARW_VALID 0x000FL
3224
3225typedef BOOL (* CALLBACK NAMEENUMPROCA)(LPSTR, LPARAM);
3226typedef BOOL (* CALLBACK NAMEENUMPROCW)(LPWSTR, LPARAM);
3227
3228typedef NAMEENUMPROCA WINSTAENUMPROCA;
3229typedef NAMEENUMPROCA DESKTOPENUMPROCA;
3230typedef NAMEENUMPROCW WINSTAENUMPROCW;
3231typedef NAMEENUMPROCW DESKTOPENUMPROCW;
3232
3233typedef VOID (* CALLBACK SENDASYNCPROC)(HWND, UINT, DWORD, LRESULT);
3234
3235#define OBJID_WINDOW 0x00000000
3236#define OBJID_SYSMENU 0xFFFFFFFF
3237#define OBJID_TITLEBAR 0xFFFFFFFE
3238#define OBJID_MENU 0xFFFFFFFD
3239#define OBJID_CLIENT 0xFFFFFFFC
3240#define OBJID_VSCROLL 0xFFFFFFFB
3241#define OBJID_HSCROLL 0xFFFFFFFA
3242#define OBJID_SIZEGRIP 0xFFFFFFF9
3243#define OBJID_CARET 0xFFFFFFF8
3244#define OBJID_CURSOR 0xFFFFFFF7
3245#define OBJID_ALERT 0xFFFFFFF6
3246#define OBJID_SOUND 0xFFFFFFF5
3247
3248#define STATE_SYSTEM_UNAVAILABLE 0x00000001 // Disabled
3249#define STATE_SYSTEM_SELECTED 0x00000002
3250#define STATE_SYSTEM_FOCUSED 0x00000004
3251#define STATE_SYSTEM_PRESSED 0x00000008
3252#define STATE_SYSTEM_CHECKED 0x00000010
3253#define STATE_SYSTEM_MIXED 0x00000020 // 3-state checkbox or toolbar button
3254#define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED
3255#define STATE_SYSTEM_READONLY 0x00000040
3256#define STATE_SYSTEM_HOTTRACKED 0x00000080
3257#define STATE_SYSTEM_DEFAULT 0x00000100
3258#define STATE_SYSTEM_EXPANDED 0x00000200
3259#define STATE_SYSTEM_COLLAPSED 0x00000400
3260#define STATE_SYSTEM_BUSY 0x00000800
3261#define STATE_SYSTEM_FLOATING 0x00001000 // Children "owned" not "contained" by parent
3262#define STATE_SYSTEM_MARQUEED 0x00002000
3263#define STATE_SYSTEM_ANIMATED 0x00004000
3264#define STATE_SYSTEM_INVISIBLE 0x00008000
3265#define STATE_SYSTEM_OFFSCREEN 0x00010000
3266#define STATE_SYSTEM_SIZEABLE 0x00020000
3267#define STATE_SYSTEM_MOVEABLE 0x00040000
3268#define STATE_SYSTEM_SELFVOICING 0x00080000
3269#define STATE_SYSTEM_FOCUSABLE 0x00100000
3270#define STATE_SYSTEM_SELECTABLE 0x00200000
3271#define STATE_SYSTEM_LINKED 0x00400000
3272#define STATE_SYSTEM_TRAVERSED 0x00800000
3273#define STATE_SYSTEM_MULTISELECTABLE 0x01000000 // Supports multiple selection
3274#define STATE_SYSTEM_EXTSELECTABLE 0x02000000 // Supports extended selection
3275#define STATE_SYSTEM_ALERT_LOW 0x04000000 // This information is of low priority
3276#define STATE_SYSTEM_ALERT_MEDIUM 0x08000000 // This information is of medium priority
3277#define STATE_SYSTEM_ALERT_HIGH 0x10000000 // This information is of high priority
3278#define STATE_SYSTEM_REDUNDANT 0x20000000 // this child object's data is also represented by it's parent
3279#define STATE_SYSTEM_ONLY_REDUNDANT 0x40000000 // this object has children, but they are all redundant
3280#define STATE_SYSTEM_VALID 0x7FFFFFFF
3281
3282
3283typedef struct tagGUITHREADINFO {
3284 DWORD cbSize;
3285 DWORD flags;
3286 HWND hwndActive;
3287 HWND hwndFocus;
3288 HWND hwndCapture;
3289 HWND hwndMenuOwner;
3290 HWND hwndMoveSize;
3291 HWND hwndCaret;
3292 RECT rcCaret;
3293} GUITHREADINFO, *PGUITHREADINFO, *LPGUITHREADINFO;
3294
3295/* RegisterDeviceNotification stuff */
3296typedef PVOID HDEVNOTIFY;
3297typedef HDEVNOTIFY *PHDEVNOTIFY;
3298
3299#define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000
3300
3301/* used for GetWindowInfo() */
3302
3303#define WS_ACTIVECAPTION 0x0001
3304
3305typedef struct tagWINDOWINFO {
3306 DWORD cbSize;
3307 RECT rcWindow;
3308 RECT rcClient;
3309 DWORD dwStyle;
3310 DWORD dwExStyle;
3311 DWORD dwWindowStatus;
3312 UINT cxWindowBorders;
3313 UINT cyWindowBorders;
3314 ATOM atomWindowType;
3315 WORD wCreatorVersion;
3316} WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO;
3317
3318
3319#include "poppack.h"
3320#define EnumTaskWindows(handle,proc,lparam) \
3321 EnumThreadWindows(handle,proc,lparam)
3322#define OemToAnsiA OemToCharA
3323#define OemToAnsiW OemToCharW
3324#define OemToAnsi WINELIB_NAME_AW(OemToAnsi)
3325#define OemToAnsiBuffA OemToCharBuffA
3326#define OemToAnsiBuffW OemToCharBuffW
3327#define OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff)
3328#define AnsiToOemA CharToOemA
3329#define AnsiToOemW CharToOemW
3330#define AnsiToOem WINELIB_NAME_AW(AnsiToOem)
3331#define AnsiToOemBuffA CharToOemBuffA
3332#define AnsiToOemBuffW CharToOemBuffW
3333#define AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff)
3334
3335#if defined(_WINGDI_) && !defined(NOGDI)
3336LONG WINAPI ChangeDisplaySettingsA(LPDEVMODEA,DWORD);
3337LONG WINAPI ChangeDisplaySettingsW(LPDEVMODEW,DWORD);
3338#define ChangeDisplaySettings WINELIB_NAME_AW(ChangeDisplaySettings)
3339LONG WINAPI ChangeDisplaySettingsExA(LPCSTR,LPDEVMODEA,HWND,DWORD,LPARAM);
3340LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR,LPDEVMODEW,HWND,DWORD,LPARAM);
3341#define ChangeDisplaySettingsEx WINELIB_NAME_AW(ChangeDisplaySettingsEx)
3342BOOL WINAPI EnumDisplayDevicesA(LPVOID,DWORD,LPDISPLAY_DEVICEA,DWORD);
3343BOOL WINAPI EnumDisplayDevicesW(LPVOID,DWORD,LPDISPLAY_DEVICEW,DWORD);
3344#define EnumDisplayDevices WINELIB_NAME_AW(EnumDisplayDevices)
3345BOOL WINAPI EnumDisplaySettingsA(LPCSTR,DWORD,LPDEVMODEA);
3346BOOL WINAPI EnumDisplaySettingsW(LPCWSTR,DWORD,LPDEVMODEW);
3347#define EnumDisplaySettings WINELIB_NAME_AW(EnumDisplaySettings)
3348#endif /* defined(_WINGDI_) && !defined(NOGDI) */
3349
3350HKL WINAPI ActivateKeyboardLayout(HKL,UINT);
3351LONG WINAPI BroadcastSystemMessage(DWORD,LPDWORD,UINT,WPARAM,LPARAM);
3352WORD WINAPI CascadeWindows(HWND, UINT, const LPRECT, UINT, const HWND *);
3353BOOL WINAPI CascadeChildWindows(HWND, DWORD);
3354INT WINAPI CopyAcceleratorTableA(HACCEL,LPACCEL,INT);
3355INT WINAPI CopyAcceleratorTableW(HACCEL,LPACCEL,INT);
3356#define CopyAcceleratorTable WINELIB_NAME_AW(CopyAcceleratorTable)
3357HACCEL WINAPI CreateAcceleratorTableA(LPACCEL,INT);
3358HACCEL WINAPI CreateAcceleratorTableW(LPACCEL,INT);
3359#define CreateAcceleratorTable WINELIB_NAME_AW(CreateAcceleratorTable)
3360HICON WINAPI CreateIconIndirect(LPICONINFO);
3361BOOL WINAPI DestroyAcceleratorTable(HACCEL);
3362BOOL WINAPI EnumDisplayMonitors(HDC,LPRECT,MONITORENUMPROC,LPARAM);
3363INT WINAPI EnumPropsExA(HWND,PROPENUMPROCEXA,LPARAM);
3364INT WINAPI EnumPropsExW(HWND,PROPENUMPROCEXW,LPARAM);
3365#define EnumPropsEx WINELIB_NAME_AW(EnumPropsEx)
3366BOOL WINAPI EnumThreadWindows(DWORD,WNDENUMPROC,LPARAM);
3367BOOL WINAPI ExitWindowsEx(UINT,DWORD);
3368HWND WINAPI GetAncestor( HWND hwnd, UINT type );
3369BOOL WINAPI GetGUIThreadInfo(DWORD dwThreadId, GUITHREADINFO *lpThreadInfo);
3370BOOL WINAPI GetIconInfo(HICON,LPICONINFO);
3371HKL WINAPI GetKeyboardLayout(DWORD);
3372INT WINAPI GetKeyboardLayoutList(INT,HKL *);
3373DWORD WINAPI GetMenuContextHelpId(HMENU);
3374UINT WINAPI GetMenuDefaultItem(HMENU,UINT,UINT);
3375BOOL WINAPI GetMenuInfo(HMENU,LPMENUINFO);
3376BOOL WINAPI GetMenuItemInfoA(HMENU,UINT,BOOL,MENUITEMINFOA*);
3377BOOL WINAPI GetMenuItemInfoW(HMENU,UINT,BOOL,MENUITEMINFOW*);
3378#define GetMenuItemInfo WINELIB_NAME_AW(GetMenuItemInfo)
3379BOOL WINAPI GetMonitorInfoA(HMONITOR,LPMONITORINFO);
3380BOOL WINAPI GetMonitorInfoW(HMONITOR,LPMONITORINFO);
3381#define GetMonitorInfo WINELIB_NAME_AW(GetMonitorInfo)
3382DWORD WINAPI GetWindowContextHelpId(HWND);
3383
3384UINT WIN32API GetWindowModuleFileNameA(HWND hwnd, LPTSTR lpszFileName, UINT cchFileNameMax);
3385UINT WIN32API GetWindowModuleFileNameW(HWND hwnd, LPWSTR lpszFileName, UINT cchFileNameMax);
3386#define GetWindowModuleFileName WINELIB_NAME_AW(GetWindowModuleFileName)
3387
3388DWORD WINAPI GetWindowThreadProcessId(HWND,LPDWORD);
3389BOOL WINAPI IsWindowUnicode(HWND);
3390HKL WINAPI LoadKeyboardLayoutA(LPCSTR,UINT);
3391HKL WINAPI LoadKeyboardLayoutW(LPCWSTR,UINT);
3392#define LoadKeyboardLayout WINELIB_NAME_AW(LoadKeyboardLayout)
3393INT WINAPI MessageBoxExA(HWND,LPCSTR,LPCSTR,UINT,WORD);
3394INT WINAPI MessageBoxExW(HWND,LPCWSTR,LPCWSTR,UINT,WORD);
3395#define MessageBoxEx WINELIB_NAME_AW(MessageBoxEx)
3396HMONITOR WINAPI MonitorFromPoint(POINT,DWORD);
3397HMONITOR WINAPI MonitorFromRect(LPCRECT,DWORD);
3398HMONITOR WINAPI MonitorFromWindow(HWND,DWORD);
3399DWORD WINAPI MsgWaitForMultipleObjects(DWORD,HANDLE*,BOOL,DWORD,DWORD);
3400BOOL WINAPI PaintDesktop(HDC);
3401BOOL WINAPI PostThreadMessageA(DWORD, UINT, WPARAM, LPARAM);
3402BOOL WINAPI PostThreadMessageW(DWORD, UINT, WPARAM, LPARAM);
3403#define PostThreadMessage WINELIB_NAME_AW(PostThreadMessage)
3404
3405BOOL WINAPI RegisterHotKey(HWND,INT,UINT,UINT);
3406HDEVNOTIFY WINAPI RegisterDeviceNotificationA(HANDLE,LPVOID,DWORD);
3407HDEVNOTIFY WINAPI RegisterDeviceNotificationW(HANDLE,LPVOID,DWORD);
3408#define RegisterDeviceNotification WINELIB_NAME_AW(RegisterDeviceNotification)
3409
3410BOOL WINAPI SendNotifyMessageA(HWND,UINT,WPARAM,LPARAM);
3411BOOL WINAPI SendNotifyMessageW(HWND,UINT,WPARAM,LPARAM);
3412#define SendNotifyMessage WINELIB_NAME_AW(SendNotifyMessage)
3413VOID WINAPI SetDebugErrorLevel(DWORD);
3414VOID WINAPI SetLastErrorEx(DWORD,DWORD);
3415BOOL WINAPI SetMenuDefaultItem(HMENU,UINT,UINT);
3416BOOL WINAPI SetMenuInfo(HMENU,LPCMENUINFO);
3417BOOL WINAPI SetMenuItemInfoA(HMENU,UINT,BOOL,const MENUITEMINFOA*);
3418BOOL WINAPI SetMenuItemInfoW(HMENU,UINT,BOOL,const MENUITEMINFOW*);
3419#define SetMenuItemInfo WINELIB_NAME_AW(SetMenuItemInfo)
3420BOOL WINAPI SetWindowContextHelpId(HWND,DWORD);
3421BOOL WINAPI TileChildWindows(HWND, DWORD);
3422WORD WINAPI TileWindows (HWND, UINT, const LPRECT,
3423 UINT, const HWND *);
3424INT WINAPI ToUnicode(UINT,UINT,PBYTE,LPWSTR,int,UINT);
3425BOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT);
3426BOOL WINAPI TrackPopupMenuEx(HMENU,UINT,INT,INT,HWND,
3427 LPTPMPARAMS);
3428DWORD WINAPI WaitForInputIdle(HANDLE,DWORD);
3429BOOL WINAPI UnregisterHotKey(HWND,INT);
3430VOID WINAPI keybd_event(BYTE,BYTE,DWORD,DWORD);
3431VOID WINAPI mouse_event(DWORD,DWORD,DWORD,DWORD,DWORD);
3432
3433/* Declarations for functions that are the same in Win16 and Win32 */
3434VOID WINAPI EndMenu(void);
3435DWORD WINAPI GetDialogBaseUnits(void);
3436BOOL WINAPI GetKeyboardState(LPBYTE);
3437DWORD WINAPI GetMenuCheckMarkDimensions(void);
3438LONG WINAPI GetMessageExtraInfo(void);
3439DWORD WINAPI GetMessagePos(void);
3440LONG WINAPI GetMessageTime(void);
3441DWORD WINAPI GetTickCount(void);
3442ATOM WINAPI GlobalDeleteAtom(ATOM);
3443DWORD WINAPI OemKeyScan(WORD);
3444BOOL WINAPI ReleaseCapture(void);
3445BOOL WINAPI SetKeyboardState(LPBYTE);
3446BOOL WINAPI WaitMessage(VOID);
3447LPARAM WINAPI SetMessageExtraInfo(LPARAM);
3448
3449/* Declarations for functions that change between Win16 and Win32 */
3450
3451BOOL WINAPI AdjustWindowRect(LPRECT,DWORD,BOOL);
3452BOOL WINAPI AdjustWindowRectEx(LPRECT,DWORD,BOOL,DWORD);
3453#define AnsiLowerA CharLowerA
3454#define AnsiLowerW CharLowerW
3455#define AnsiLower WINELIB_NAME_AW(AnsiLower)
3456#define AnsiLowerBuffA CharLowerBuffA
3457#define AnsiLowerBuffW CharLowerBuffW
3458#define AnsiLowerBuff WINELIB_NAME_AW(AnsiLowerBuff)
3459#define AnsiNextA CharNextA
3460#define AnsiNextW CharNextW
3461#define AnsiNext WINELIB_NAME_AW(AnsiNext)
3462#define AnsiPrevA CharPrevA
3463#define AnsiPrevW CharPrevW
3464#define AnsiPrev WINELIB_NAME_AW(AnsiPrev)
3465#define AnsiUpperA CharUpperA
3466#define AnsiUpperW CharUpperW
3467#define AnsiUpper WINELIB_NAME_AW(AnsiUpper)
3468#define AnsiUpperBuffA CharUpperBuffA
3469#define AnsiUpperBuffW CharUpperBuffW
3470#define AnsiUpperBuff WINELIB_NAME_AW(AnsiUpperBuff)
3471BOOL WINAPI AnyPopup(void);
3472BOOL WINAPI AppendMenuA(HMENU,UINT,UINT,LPCSTR);
3473BOOL WINAPI AppendMenuW(HMENU,UINT,UINT,LPCWSTR);
3474#define AppendMenu WINELIB_NAME_AW(AppendMenu)
3475UINT WINAPI ArrangeIconicWindows(HWND);
3476HDWP WINAPI BeginDeferWindowPos(INT);
3477HDC WINAPI BeginPaint(HWND,LPPAINTSTRUCT);
3478BOOL WINAPI BringWindowToTop(HWND);
3479BOOL WINAPI CallMsgFilterA(LPMSG,INT);
3480BOOL WINAPI CallMsgFilterW(LPMSG,INT);
3481#define CallMsgFilter WINELIB_NAME_AW(CallMsgFilter)
3482LRESULT WINAPI CallNextHookEx(HHOOK,INT,WPARAM,LPARAM);
3483LRESULT WINAPI CallWindowProcA(WNDPROC,HWND,UINT,WPARAM,LPARAM);
3484LRESULT WINAPI CallWindowProcW(WNDPROC,HWND,UINT,WPARAM,LPARAM);
3485#define CallWindowProc WINELIB_NAME_AW(CallWindowProc)
3486BOOL WINAPI ChangeClipboardChain(HWND,HWND);
3487BOOL WINAPI ChangeMenuA(HMENU,UINT,LPCSTR,UINT,UINT);
3488BOOL WINAPI ChangeMenuW(HMENU,UINT,LPCWSTR,UINT,UINT);
3489#define ChangeMenu WINELIB_NAME_AW(ChangeMenu)
3490LPSTR WINAPI CharLowerA(LPSTR);
3491LPWSTR WINAPI CharLowerW(LPWSTR);
3492#define CharLower WINELIB_NAME_AW(CharLower)
3493DWORD WINAPI CharLowerBuffA(LPSTR,DWORD);
3494DWORD WINAPI CharLowerBuffW(LPWSTR,DWORD);
3495#define CharLowerBuff WINELIB_NAME_AW(CharLowerBuff)
3496LPSTR WINAPI CharNextA(LPCSTR);
3497LPWSTR WINAPI CharNextW(LPCWSTR);
3498#define CharNext WINELIB_NAME_AW(CharNext)
3499LPSTR WINAPI CharNextExA(WORD,LPCSTR,DWORD);
3500LPWSTR WINAPI CharNextExW(WORD,LPCWSTR,DWORD);
3501#define CharNextEx WINELIB_NAME_AW(CharNextEx)
3502LPSTR WINAPI CharPrevA(LPCSTR,LPCSTR);
3503LPWSTR WINAPI CharPrevW(LPCWSTR,LPCWSTR);
3504#define CharPrev WINELIB_NAME_AW(CharPrev)
3505LPSTR WINAPI CharPrevExA(WORD,LPCSTR,LPCSTR,DWORD);
3506LPWSTR WINAPI CharPrevExW(WORD,LPCWSTR,LPCWSTR,DWORD);
3507#define CharPrevEx WINELIB_NAME_AW(CharPrevEx)
3508LPSTR WINAPI CharUpperA(LPSTR);
3509LPWSTR WINAPI CharUpperW(LPWSTR);
3510#define CharUpper WINELIB_NAME_AW(CharUpper)
3511DWORD WINAPI CharUpperBuffA(LPSTR,DWORD);
3512DWORD WINAPI CharUpperBuffW(LPWSTR,DWORD);
3513#define CharUpperBuff WINELIB_NAME_AW(CharUpperBuff)
3514BOOL WINAPI CharToOemA(LPCSTR,LPSTR);
3515BOOL WINAPI CharToOemW(LPCWSTR,LPSTR);
3516#define CharToOem WINELIB_NAME_AW(CharToOem)
3517BOOL WINAPI CharToOemBuffA(LPCSTR,LPSTR,DWORD);
3518BOOL WINAPI CharToOemBuffW(LPCWSTR,LPSTR,DWORD);
3519#define CharToOemBuff WINELIB_NAME_AW(CharToOemBuff)
3520BOOL WINAPI CheckDlgButton(HWND,INT,UINT);
3521DWORD WINAPI CheckMenuItem(HMENU,UINT,UINT);
3522BOOL WINAPI CheckMenuRadioItem(HMENU,UINT,UINT,UINT,UINT);
3523BOOL WINAPI CheckRadioButton(HWND,UINT,UINT,UINT);
3524HWND WINAPI ChildWindowFromPoint(HWND,POINT);
3525HWND WINAPI ChildWindowFromPointEx(HWND,POINT,UINT);
3526BOOL WINAPI ClearCommBreak(HANDLE);
3527BOOL WINAPI ClientToScreen(HWND,LPPOINT);
3528BOOL WINAPI ClipCursor(const RECT*);
3529BOOL WINAPI CloseClipboard(void);
3530BOOL WINAPI CloseWindow(HWND);
3531#define CopyCursor(cur) ((HCURSOR)CopyIcon((HICON)(cur)))
3532HICON WINAPI CopyIcon(HICON);
3533HICON WINAPI CopyImage(HANDLE,UINT,INT,INT,UINT);
3534BOOL WINAPI CopyRect(RECT*,const RECT*);
3535INT WINAPI CountClipboardFormats(void);
3536BOOL WINAPI CreateCaret(HWND,HBITMAP,INT,INT);
3537HCURSOR WINAPI CreateCursor(HINSTANCE,INT,INT,INT,INT,LPCVOID,LPCVOID);
3538#define CreateDialogA(inst,ptr,hwnd,dlg) \
3539 CreateDialogParamA(inst,ptr,hwnd,dlg,0)
3540#define CreateDialogW(inst,ptr,hwnd,dlg) \
3541 CreateDialogParamW(inst,ptr,hwnd,dlg,0)
3542#define CreateDialog WINELIB_NAME_AW(CreateDialog)
3543#define CreateDialogIndirectA(inst,ptr,hwnd,dlg) \
3544 CreateDialogIndirectParamA(inst,ptr,hwnd,dlg,0)
3545#define CreateDialogIndirectW(inst,ptr,hwnd,dlg) \
3546 CreateDialogIndirectParamW(inst,ptr,hwnd,dlg,0)
3547#define CreateDialogIndirect WINELIB_NAME_AW(CreateDialogIndirect)
3548HWND WINAPI CreateDialogIndirectParamA(HINSTANCE,LPCVOID,HWND,
3549 DLGPROC,LPARAM);
3550HWND WINAPI CreateDialogIndirectParamW(HINSTANCE,LPCVOID,HWND,
3551 DLGPROC,LPARAM);
3552#define CreateDialogIndirectParam WINELIB_NAME_AW(CreateDialogIndirectParam)
3553HWND WINAPI CreateDialogParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
3554HWND WINAPI CreateDialogParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
3555#define CreateDialogParam WINELIB_NAME_AW(CreateDialogParam)
3556HICON WINAPI CreateIcon(HINSTANCE,INT,INT,BYTE,BYTE,LPCVOID,LPCVOID);
3557HICON WINAPI CreateIconFromResource(LPBYTE,UINT,BOOL,DWORD);
3558HICON WINAPI CreateIconFromResourceEx(LPBYTE,UINT,BOOL,DWORD,INT,INT,UINT);
3559HMENU WINAPI CreateMenu(void);
3560HMENU WINAPI CreatePopupMenu(void);
3561#define CreateWindowA(className,titleName,style,x,y,width,height,\
3562 parent,menu,instance,param) \
3563 CreateWindowExA(0,className,titleName,style,x,y,width,height,\
3564 parent,menu,instance,param)
3565#define CreateWindowW(className,titleName,style,x,y,width,height,\
3566 parent,menu,instance,param) \
3567 CreateWindowExW(0,className,titleName,style,x,y,width,height,\
3568 parent,menu,instance,param)
3569#define CreateWindow WINELIB_NAME_AW(CreateWindow)
3570HWND WINAPI CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,INT,INT,
3571 INT,INT,HWND,HMENU,HINSTANCE,LPVOID);
3572HWND WINAPI CreateWindowExW(DWORD,LPCWSTR,LPCWSTR,DWORD,INT,INT,
3573 INT,INT,HWND,HMENU,HINSTANCE,LPVOID);
3574#define CreateWindowEx WINELIB_NAME_AW(CreateWindowEx)
3575HWND WINAPI CreateMDIWindowA(LPCSTR,LPCSTR,DWORD,INT,INT,
3576 INT,INT,HWND,HINSTANCE,LPARAM);
3577HWND WINAPI CreateMDIWindowW(LPCWSTR,LPCWSTR,DWORD,INT,INT,
3578 INT,INT,HWND,HINSTANCE,LPARAM);
3579#define CreateMDIWindow WINELIB_NAME_AW(CreateMDIWindow)
3580void WINAPI CalcChildScroll(HWND,INT);
3581LRESULT WINAPI DefDlgProcA(HWND,UINT,WPARAM,LPARAM);
3582LRESULT WINAPI DefDlgProcW(HWND,UINT,WPARAM,LPARAM);
3583#define DefDlgProc WINELIB_NAME_AW(DefDlgProc)
3584HDWP WINAPI DeferWindowPos(HDWP,HWND,HWND,INT,INT,INT,INT,UINT);
3585LRESULT WINAPI DefFrameProcA(HWND,HWND,UINT,WPARAM,LPARAM);
3586LRESULT WINAPI DefFrameProcW(HWND,HWND,UINT,WPARAM,LPARAM);
3587#define DefFrameProc WINELIB_NAME_AW(DefFrameProc)
3588#define DefHookProc(code,wparam,lparam,phhook) \
3589 CallNextHookEx(*(phhook),code,wparam,lparam)
3590LRESULT WINAPI DefMDIChildProcA(HWND,UINT,WPARAM,LPARAM);
3591LRESULT WINAPI DefMDIChildProcW(HWND,UINT,WPARAM,LPARAM);
3592#define DefMDIChildProc WINELIB_NAME_AW(DefMDIChildProc)
3593LRESULT WINAPI DefWindowProcA(HWND,UINT,WPARAM,LPARAM);
3594LRESULT WINAPI DefWindowProcW(HWND,UINT,WPARAM,LPARAM);
3595#define DefWindowProc WINELIB_NAME_AW(DefWindowProc)
3596BOOL WINAPI DeleteMenu(HMENU,UINT,UINT);
3597BOOL WINAPI DestroyCaret(void);
3598BOOL WINAPI DestroyCursor(HCURSOR);
3599BOOL WINAPI DestroyIcon(HICON);
3600BOOL WINAPI DestroyMenu(HMENU);
3601BOOL WINAPI DestroyWindow(HWND);
3602#define DialogBoxA(inst,template,owner,func) \
3603 DialogBoxParamA(inst,template,owner,func,0)
3604#define DialogBoxW(inst,template,owner,func) \
3605 DialogBoxParamW(inst,template,owner,func,0)
3606#define DialogBox WINELIB_NAME_AW(DialogBox)
3607#define DialogBoxIndirectA(inst,template,owner,func) \
3608 DialogBoxIndirectParamA(inst,template,owner,func,0)
3609#define DialogBoxIndirectW(inst,template,owner,func) \
3610 DialogBoxIndirectParamW(inst,template,owner,func,0)
3611#define DialogBoxIndirect WINELIB_NAME_AW(DialogBoxIndirect)
3612INT WINAPI DialogBoxIndirectParamA(HINSTANCE,LPCVOID,HWND,DLGPROC,LPARAM);
3613INT WINAPI DialogBoxIndirectParamW(HINSTANCE,LPCVOID,HWND,DLGPROC,LPARAM);
3614#define DialogBoxIndirectParam WINELIB_NAME_AW(DialogBoxIndirectParam)
3615INT WINAPI DialogBoxParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
3616INT WINAPI DialogBoxParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
3617#define DialogBoxParam WINELIB_NAME_AW(DialogBoxParam)
3618LONG WINAPI DispatchMessageA(const MSG*);
3619LONG WINAPI DispatchMessageW(const MSG*);
3620#define DispatchMessage WINELIB_NAME_AW(DispatchMessage)
3621INT WINAPI DlgDirListA(HWND,LPSTR,INT,INT,UINT);
3622INT WINAPI DlgDirListW(HWND,LPWSTR,INT,INT,UINT);
3623#define DlgDirList WINELIB_NAME_AW(DlgDirList)
3624INT WINAPI DlgDirListComboBoxA(HWND,LPSTR,INT,INT,UINT);
3625INT WINAPI DlgDirListComboBoxW(HWND,LPWSTR,INT,INT,UINT);
3626#define DlgDirListComboBox WINELIB_NAME_AW(DlgDirListComboBox)
3627BOOL WINAPI DlgDirSelectComboBoxExA(HWND,LPSTR,INT,INT);
3628BOOL WINAPI DlgDirSelectComboBoxExW(HWND,LPWSTR,INT,INT);
3629#define DlgDirSelectComboBoxEx WINELIB_NAME_AW(DlgDirSelectComboBoxEx)
3630BOOL WINAPI DlgDirSelectExA(HWND,LPSTR,INT,INT);
3631BOOL WINAPI DlgDirSelectExW(HWND,LPWSTR,INT,INT);
3632#define DlgDirSelectEx WINELIB_NAME_AW(DlgDirSelectEx)
3633BOOL WINAPI DragDetect(HWND,POINT);
3634DWORD WINAPI DragObject(HWND,HWND,UINT,DWORD,HCURSOR);
3635BOOL WINAPI DrawAnimatedRects(HWND,int,const RECT*,const RECT*);
3636BOOL WINAPI DrawCaption(HWND,HDC,const RECT*,UINT);
3637BOOL WINAPI DrawCaptionTempA(HWND,HDC,const RECT*,HFONT,HICON,LPCSTR,UINT);
3638BOOL WINAPI DrawCaptionTempW(HWND,HDC,const RECT*,HFONT,HICON,LPCWSTR,UINT);
3639#define DrawCaptionTemp WINELIB_NAME_AW(DrawCaptionTemp)
3640BOOL WINAPI DrawEdge(HDC,LPRECT,UINT,UINT);
3641BOOL WINAPI DrawFocusRect(HDC,const RECT*);
3642BOOL WINAPI DrawFrameControl(HDC,LPRECT,UINT,UINT);
3643BOOL WINAPI DrawIcon(HDC,INT,INT,HICON);
3644BOOL WINAPI DrawIconEx(HDC,INT,INT,HICON,INT,INT,
3645 UINT,HBRUSH,UINT);
3646BOOL WINAPI DrawMenuBar(HWND);
3647BOOL WINAPI DrawStateA(HDC,HBRUSH,DRAWSTATEPROC,LPARAM,WPARAM,INT,INT,INT,INT,UINT);
3648BOOL WINAPI DrawStateW(HDC,HBRUSH,DRAWSTATEPROC,LPARAM,WPARAM,INT,INT,INT,INT,UINT);
3649#define DrawState WINELIB_NAME_AW(DrawState)
3650INT WINAPI DrawTextA(HDC,LPCSTR,INT,LPRECT,UINT);
3651INT WINAPI DrawTextW(HDC,LPCWSTR,INT,LPRECT,UINT);
3652#define DrawText WINELIB_NAME_AW(DrawText)
3653INT WINAPI DrawTextExA(HDC,LPCSTR,INT,LPRECT,UINT,LPDRAWTEXTPARAMS);
3654INT WINAPI DrawTextExW(HDC,LPWSTR,INT,LPRECT,UINT,LPDRAWTEXTPARAMS);
3655#define DrawTextEx WINELIB_NAME_AW(DrawTextEx)
3656BOOL WINAPI EmptyClipboard(void);
3657UINT WINAPI EnableMenuItem(HMENU,UINT,UINT);
3658BOOL WINAPI EnableScrollBar(HWND,INT,UINT);
3659BOOL WINAPI EnableWindow(HWND,BOOL);
3660BOOL WINAPI EndDeferWindowPos(HDWP);
3661BOOL WINAPI EndDialog(HWND,INT);
3662BOOL WINAPI EndPaint(HWND,const PAINTSTRUCT*);
3663BOOL WINAPI EnumChildWindows(HWND,WNDENUMPROC,LPARAM);
3664UINT WINAPI EnumClipboardFormats(UINT);
3665INT WINAPI EnumPropsA(HWND,PROPENUMPROCA);
3666INT WINAPI EnumPropsW(HWND,PROPENUMPROCW);
3667#define EnumProps WINELIB_NAME_AW(EnumProps)
3668BOOL WINAPI EnumWindows(WNDENUMPROC,LPARAM);
3669BOOL WINAPI EqualRect(const RECT*,const RECT*);
3670BOOL WINAPI EscapeCommFunction(HANDLE,UINT);
3671INT WINAPI ExcludeUpdateRgn(HDC,HWND);
3672#define ExitWindows(a,b) ExitWindowsEx(EWX_LOGOFF,0xffffffff)
3673INT WINAPI FillRect(HDC,const RECT*,HBRUSH);
3674HWND WINAPI FindWindowA(LPCSTR,LPCSTR);
3675HWND WINAPI FindWindowW(LPCWSTR,LPCWSTR);
3676#define FindWindow WINELIB_NAME_AW(FindWindow)
3677HWND WINAPI FindWindowExA(HWND,HWND,LPCSTR,LPCSTR);
3678HWND WINAPI FindWindowExW(HWND,HWND,LPCWSTR,LPCWSTR);
3679#define FindWindowEx WINELIB_NAME_AW(FindWindowEx)
3680BOOL WINAPI FlashWindow(HWND,BOOL);
3681INT WINAPI FrameRect(HDC,const RECT*,HBRUSH);
3682HWND WINAPI GetActiveWindow(void);
3683DWORD WINAPI GetAppCompatFlags(HTASK);
3684WORD WINAPI GetAsyncKeyState(INT);
3685HWND WINAPI GetCapture(void);
3686UINT WINAPI GetCaretBlinkTime(void);
3687BOOL WINAPI GetCaretPos(LPPOINT);
3688BOOL WINAPI GetClassInfoA(HINSTANCE,LPCSTR,WNDCLASSA *);
3689BOOL WINAPI GetClassInfoW(HINSTANCE,LPCWSTR,WNDCLASSW *);
3690#define GetClassInfo WINELIB_NAME_AW(GetClassInfo)
3691BOOL WINAPI GetClassInfoExA(HINSTANCE,LPCSTR,WNDCLASSEXA *);
3692BOOL WINAPI GetClassInfoExW(HINSTANCE,LPCWSTR,WNDCLASSEXW *);
3693#define GetClassInfoEx WINELIB_NAME_AW(GetClassInfoEx)
3694LONG WINAPI GetClassLongA(HWND,INT);
3695LONG WINAPI GetClassLongW(HWND,INT);
3696#define GetClassLong WINELIB_NAME_AW(GetClassLong)
3697INT WINAPI GetClassNameA(HWND,LPSTR,INT);
3698INT WINAPI GetClassNameW(HWND,LPWSTR,INT);
3699#define GetClassName WINELIB_NAME_AW(GetClassName)
3700INT WINAPI RealGetWindowClassA(HWND,LPSTR,INT);
3701INT WINAPI RealGetWindowClassW(HWND,LPWSTR,INT);
3702#define RealGetWindowClass WINELIB_NAME_AW(RealGetWindowClass)
3703WORD WINAPI GetClassWord(HWND,INT);
3704BOOL WINAPI GetClientRect(HWND,LPRECT);
3705HANDLE WINAPI GetClipboardData(UINT);
3706INT WINAPI GetClipboardFormatNameA(UINT,LPSTR,INT);
3707INT WINAPI GetClipboardFormatNameW(UINT,LPWSTR,INT);
3708#define GetClipboardFormatName WINELIB_NAME_AW(GetClipboardFormatName)
3709HWND WINAPI GetClipboardOwner(void);
3710HWND WINAPI GetClipboardViewer(void);
3711BOOL WINAPI GetClipCursor(LPRECT);
3712#define GetCurrentTime() GetTickCount()
3713HCURSOR WINAPI GetCursor(void);
3714BOOL WINAPI GetCursorPos(LPPOINT);
3715HDC WINAPI GetDC(HWND);
3716HDC WINAPI GetDCEx(HWND,HRGN,DWORD);
3717HWND WINAPI GetDesktopWindow(void);
3718INT WINAPI GetDlgCtrlID(HWND);
3719HWND WINAPI GetDlgItem(HWND,INT);
3720UINT WINAPI GetDlgItemInt(HWND,INT,BOOL*,BOOL);
3721INT WINAPI GetDlgItemTextA(HWND,INT,LPSTR,UINT);
3722INT WINAPI GetDlgItemTextW(HWND,INT,LPWSTR,UINT);
3723#define GetDlgItemText WINELIB_NAME_AW(GetDlgItemText)
3724UINT WINAPI GetDoubleClickTime(void);
3725HWND WINAPI GetFocus(void);
3726HWND WINAPI GetForegroundWindow(void);
3727BOOL WINAPI GetInputState(void);
3728UINT WINAPI GetInternalWindowPos(HWND,LPRECT,LPPOINT);
3729UINT WINAPI GetKBCodePage(void);
3730INT WINAPI GetKeyboardType(INT);
3731INT WINAPI GetKeyNameTextA(LONG,LPSTR,INT);
3732INT WINAPI GetKeyNameTextW(LONG,LPWSTR,INT);
3733#define GetKeyNameText WINELIB_NAME_AW(GetKeyNameText)
3734INT WINAPI GetKeyboardLayoutNameA(LPSTR);
3735INT WINAPI GetKeyboardLayoutNameW(LPWSTR);
3736#define GetKeyboardLayoutName WINELIB_NAME_AW(GetKeyboardLayoutName)
3737INT16 WINAPI GetKeyState(INT);
3738HWND WINAPI GetLastActivePopup(HWND);
3739HMENU WINAPI GetMenu(HWND);
3740INT WINAPI GetMenuItemCount(HMENU);
3741UINT WINAPI GetMenuItemID(HMENU,INT);
3742BOOL WINAPI GetMenuItemRect(HWND,HMENU,UINT,LPRECT);
3743UINT WINAPI GetMenuState(HMENU,UINT,UINT);
3744INT WINAPI GetMenuStringA(HMENU,UINT,LPSTR,INT,UINT);
3745INT WINAPI GetMenuStringW(HMENU,UINT,LPWSTR,INT,UINT);
3746#define GetMenuString WINELIB_NAME_AW(GetMenuString)
3747BOOL WINAPI GetMessageA(LPMSG,HWND,UINT,UINT);
3748BOOL WINAPI GetMessageW(LPMSG,HWND,UINT,UINT);
3749#define GetMessage WINELIB_NAME_AW(GetMessage)
3750HWND WINAPI GetNextDlgGroupItem(HWND,HWND,BOOL);
3751HWND WINAPI GetNextDlgTabItem(HWND,HWND,BOOL);
3752#define GetNextWindow GetWindow
3753HWND WINAPI GetOpenClipboardWindow(void);
3754HWND WINAPI GetParent(HWND);
3755INT WINAPI GetPriorityClipboardFormat(UINT*,INT);
3756HANDLE WINAPI GetPropA(HWND,LPCSTR);
3757HANDLE WINAPI GetPropW(HWND,LPCWSTR);
3758#define GetProp WINELIB_NAME_AW(GetProp)
3759DWORD WINAPI GetQueueStatus(UINT);
3760BOOL WINAPI GetScrollBarInfo(HWND,LONG,PSCROLLBARINFO);
3761BOOL WINAPI GetScrollInfo(HWND,INT,LPSCROLLINFO);
3762INT WINAPI GetScrollPos(HWND,INT);
3763BOOL WINAPI GetScrollRange(HWND,INT,LPINT,LPINT);
3764HWND WINAPI GetShellWindow(void);
3765HMENU WINAPI GetSubMenu(HMENU,INT);
3766COLORREF WINAPI GetSysColor(INT);
3767HBRUSH WINAPI GetSysColorBrush(INT);
3768#define GetSysModalWindow() ((HWND)0)
3769HMENU WINAPI GetSystemMenu(HWND,BOOL);
3770INT WINAPI GetSystemMetrics(INT);
3771DWORD WINAPI GetTabbedTextExtentA(HDC,LPCSTR,INT,INT,CONST INT*);
3772DWORD WINAPI GetTabbedTextExtentW(HDC,LPCWSTR,INT,INT,CONST INT*);
3773#define GetTabbedTextExtent WINELIB_NAME_AW(GetTabbedTextExtent)
3774HWND WINAPI GetTopWindow(HWND);
3775BOOL WINAPI GetUpdateRect(HWND,LPRECT,BOOL);
3776INT WINAPI GetUpdateRgn(HWND,HRGN,BOOL);
3777HWND WINAPI GetWindow(HWND,UINT);
3778HDC WINAPI GetWindowDC(HWND);
3779LONG WINAPI GetWindowLongA(HWND,INT);
3780LONG WINAPI GetWindowLongW(HWND,INT);
3781#define GetWindowLong WINELIB_NAME_AW(GetWindowLong)
3782BOOL WINAPI GetWindowPlacement(HWND,LPWINDOWPLACEMENT);
3783BOOL WINAPI GetWindowRect(HWND,LPRECT);
3784INT WINAPI GetWindowRgn(HWND,HRGN);
3785#define GetWindowTask(hwnd) ((HTASK)GetWindowThreadProcessId(hwnd,NULL))
3786INT WINAPI GetWindowTextA(HWND,LPSTR,INT);
3787INT WINAPI GetWindowTextW(HWND,LPWSTR,INT);
3788#define GetWindowText WINELIB_NAME_AW(GetWindowText)
3789INT WINAPI GetWindowTextLengthA(HWND);
3790INT WINAPI GetWindowTextLengthW(HWND);
3791#define GetWindowTextLength WINELIB_NAME_AW(GetWindowTextLength)
3792WORD WINAPI GetWindowWord(HWND,INT);
3793ATOM WINAPI GlobalAddAtomA(LPCSTR);
3794ATOM WINAPI GlobalAddAtomW(LPCWSTR);
3795#define GlobalAddAtom WINELIB_NAME_AW(GlobalAddAtom)
3796ATOM WINAPI GlobalFindAtomA(LPCSTR);
3797ATOM WINAPI GlobalFindAtomW(LPCWSTR);
3798#define GlobalFindAtom WINELIB_NAME_AW(GlobalFindAtom)
3799UINT WINAPI GlobalGetAtomNameA(ATOM,LPSTR,INT);
3800UINT WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,INT);
3801#define GlobalGetAtomName WINELIB_NAME_AW(GlobalGetAtomName)
3802BOOL WINAPI GrayStringA(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,
3803 INT,INT,INT,INT,INT);
3804BOOL WINAPI GrayStringW(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,
3805 INT,INT,INT,INT,INT);
3806#define GrayString WINELIB_NAME_AW(GrayString)
3807BOOL WINAPI HideCaret(HWND);
3808BOOL WINAPI HiliteMenuItem(HWND,HMENU,UINT,UINT);
3809BOOL WINAPI InflateRect(LPRECT,INT,INT);
3810BOOL WINAPI InSendMessage(void);
3811BOOL WINAPI InsertMenuA(HMENU,UINT,UINT,UINT,LPCSTR);
3812BOOL WINAPI InsertMenuW(HMENU,UINT,UINT,UINT,LPCWSTR);
3813#define InsertMenu WINELIB_NAME_AW(InsertMenu)
3814BOOL WINAPI InsertMenuItemA(HMENU,UINT,BOOL,const MENUITEMINFOA*);
3815BOOL WINAPI InsertMenuItemW(HMENU,UINT,BOOL,const MENUITEMINFOW*);
3816#define InsertMenuItem WINELIB_NAME_AW(InsertMenuItem)
3817BOOL WINAPI IntersectRect(LPRECT,const RECT*,const RECT*);
3818int WINAPI InternalGetWindowText(HWND hwnd, LPWSTR lpString, INT nMaxCount);
3819BOOL WINAPI InvalidateRect(HWND,const RECT*,BOOL);
3820BOOL WINAPI InvalidateRgn(HWND,HRGN,BOOL);
3821BOOL WINAPI InvertRect(HDC,const RECT*);
3822BOOL WINAPI IsCharAlphaA(CHAR);
3823BOOL WINAPI IsCharAlphaW(WCHAR);
3824#define IsCharAlpha WINELIB_NAME_AW(IsCharAlpha)
3825BOOL WINAPI IsCharAlphaNumericA(CHAR);
3826BOOL WINAPI IsCharAlphaNumericW(WCHAR);
3827#define IsCharAlphaNumeric WINELIB_NAME_AW(IsCharAlphaNumeric)
3828BOOL WINAPI IsCharLowerA(CHAR);
3829BOOL WINAPI IsCharLowerW(WCHAR);
3830#define IsCharLower WINELIB_NAME_AW(IsCharLower)
3831BOOL WINAPI IsCharUpperA(CHAR);
3832BOOL WINAPI IsCharUpperW(WCHAR);
3833#define IsCharUpper WINELIB_NAME_AW(IsCharUpper)
3834BOOL WINAPI IsChild(HWND,HWND);
3835BOOL WINAPI IsClipboardFormatAvailable(UINT);
3836BOOL WINAPI IsDialogMessageA(HWND,LPMSG);
3837BOOL WINAPI IsDialogMessageW(HWND,LPMSG);
3838#define IsDialogMessage WINELIB_NAME_AW(IsDialogMessage)
3839UINT WINAPI IsDlgButtonChecked(HWND,UINT);
3840BOOL WINAPI IsIconic(HWND);
3841BOOL WINAPI IsMenu(HMENU);
3842BOOL WINAPI IsRectEmpty(const RECT*);
3843BOOL WINAPI IsWindow(HWND);
3844BOOL WINAPI IsWindowEnabled(HWND);
3845BOOL WINAPI IsWindowVisible(HWND);
3846BOOL WINAPI IsZoomed(HWND);
3847BOOL WINAPI KillSystemTimer(HWND,UINT);
3848BOOL WINAPI KillTimer(HWND,UINT);
3849HACCEL WINAPI LoadAcceleratorsA(HINSTANCE,LPCSTR);
3850HACCEL WINAPI LoadAcceleratorsW(HINSTANCE,LPCWSTR);
3851#define LoadAccelerators WINELIB_NAME_AW(LoadAccelerators)
3852HBITMAP WINAPI LoadBitmapA(HANDLE,LPCSTR);
3853HBITMAP WINAPI LoadBitmapW(HANDLE,LPCWSTR);
3854#define LoadBitmap WINELIB_NAME_AW(LoadBitmap)
3855HCURSOR WINAPI LoadCursorA(HINSTANCE,LPCSTR);
3856HCURSOR WINAPI LoadCursorW(HINSTANCE,LPCWSTR);
3857#define LoadCursor WINELIB_NAME_AW(LoadCursor)
3858HCURSOR WINAPI LoadCursorFromFileA(LPCSTR);
3859HCURSOR WINAPI LoadCursorFromFileW(LPCWSTR);
3860#define LoadCursorFromFile WINELIB_NAME_AW(LoadCursorFromFile)
3861HICON WINAPI LoadIconA(HINSTANCE,LPCSTR);
3862HICON WINAPI LoadIconW(HINSTANCE,LPCWSTR);
3863#define LoadIcon WINELIB_NAME_AW(LoadIcon)
3864HANDLE WINAPI LoadImageA(HINSTANCE,LPCSTR,UINT,INT,INT,UINT);
3865HANDLE WINAPI LoadImageW(HINSTANCE,LPCWSTR,UINT,INT,INT,UINT);
3866#define LoadImage WINELIB_NAME_AW(LoadImage)
3867HMENU WINAPI LoadMenuA(HINSTANCE,LPCSTR);
3868HMENU WINAPI LoadMenuW(HINSTANCE,LPCWSTR);
3869#define LoadMenu WINELIB_NAME_AW(LoadMenu)
3870HMENU WINAPI LoadMenuIndirectA(LPCVOID);
3871HMENU WINAPI LoadMenuIndirectW(LPCVOID);
3872#define LoadMenuIndirect WINELIB_NAME_AW(LoadMenuIndirect)
3873INT WINAPI LoadStringA(HINSTANCE,UINT,LPSTR,INT);
3874INT WINAPI LoadStringW(HINSTANCE,UINT,LPWSTR,INT);
3875#define LoadString WINELIB_NAME_AW(LoadString)
3876BOOL WINAPI LockWindowUpdate(HWND);
3877INT WINAPI LookupIconIdFromDirectory(LPBYTE,BOOL);
3878INT WINAPI LookupIconIdFromDirectoryEx(LPBYTE,BOOL,INT,INT,UINT);
3879UINT WINAPI MapVirtualKeyA(UINT,UINT);
3880UINT WINAPI MapVirtualKeyW(UINT,UINT);
3881#define MapVirtualKey WINELIB_NAME_AW(MapVirtualKey)
3882
3883UINT WINAPI MapVirtualKeyExA(UINT,UINT,HKL);
3884UINT WINAPI MapVirtualKeyExW(UINT,UINT,HKL);
3885#define MapVirtualKeyEx WINELIB_NAME_AW(MapVirtualKeyEx)
3886
3887BOOL WINAPI MapDialogRect(HWND,LPRECT);
3888INT WINAPI MapWindowPoints(HWND,HWND,LPPOINT,UINT);
3889UINT WINAPI MenuItemFromPoint(HWND,HMENU,POINT);
3890BOOL WINAPI MessageBeep(UINT);
3891INT WINAPI MessageBoxA(HWND,LPCSTR,LPCSTR,UINT);
3892INT WINAPI MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT);
3893#define MessageBox WINELIB_NAME_AW(MessageBox)
3894INT WINAPI MessageBoxIndirectA(LPMSGBOXPARAMSA);
3895INT WINAPI MessageBoxIndirectW(LPMSGBOXPARAMSW);
3896#define MessageBoxIndirect WINELIB_NAME_AW(MessageBoxIndirect)
3897BOOL WINAPI ModifyMenuA(HMENU,UINT,UINT,UINT,LPCSTR);
3898BOOL WINAPI ModifyMenuW(HMENU,UINT,UINT,UINT,LPCWSTR);
3899#define ModifyMenu WINELIB_NAME_AW(ModifyMenu)
3900BOOL WINAPI MoveWindow(HWND,INT,INT,INT,INT,BOOL);
3901BOOL WINAPI OemToCharA(LPCSTR,LPSTR);
3902BOOL WINAPI OemToCharW(LPCSTR,LPWSTR);
3903#define OemToChar WINELIB_NAME_AW(OemToChar)
3904BOOL WINAPI OemToCharBuffA(LPCSTR,LPSTR,DWORD);
3905BOOL WINAPI OemToCharBuffW(LPCSTR,LPWSTR,DWORD);
3906#define OemToCharBuff WINELIB_NAME_AW(OemToCharBuff)
3907BOOL WINAPI OffsetRect(LPRECT,INT,INT);
3908BOOL WINAPI OpenClipboard(HWND);
3909BOOL WINAPI OpenIcon(HWND);
3910BOOL WINAPI PeekMessageA(LPMSG,HWND,UINT,UINT,UINT);
3911BOOL WINAPI PeekMessageW(LPMSG,HWND,UINT,UINT,UINT);
3912#define PeekMessage WINELIB_NAME_AW(PeekMessage)
3913#define PostAppMessageA(thread,msg,wparam,lparam) \
3914 PostThreadMessageA((DWORD)(thread),msg,wparam,lparam)
3915#define PostAppMessageW(thread,msg,wparam,lparam) \
3916 PostThreadMessageW((DWORD)(thread),msg,wparam,lparam)
3917#define PostAppMessage WINELIB_NAME_AW(PostAppMessage)
3918BOOL WINAPI PostMessageA(HWND,UINT,WPARAM,LPARAM);
3919BOOL WINAPI PostMessageW(HWND,UINT,WPARAM,LPARAM);
3920#define PostMessage WINELIB_NAME_AW(PostMessage)
3921void WINAPI PostQuitMessage(INT);
3922BOOL WINAPI PtInRect(const RECT*,POINT);
3923BOOL WINAPI RedrawWindow(HWND,const RECT*,HRGN,UINT);
3924ATOM WINAPI RegisterClassA(const WNDCLASSA *);
3925ATOM WINAPI RegisterClassW(const WNDCLASSW *);
3926#define RegisterClass WINELIB_NAME_AW(RegisterClass)
3927ATOM WINAPI RegisterClassExA(const WNDCLASSEXA *);
3928ATOM WINAPI RegisterClassExW(const WNDCLASSEXW *);
3929#define RegisterClassEx WINELIB_NAME_AW(RegisterClassEx)
3930UINT WINAPI RegisterClipboardFormatA(LPCSTR);
3931UINT WINAPI RegisterClipboardFormatW(LPCWSTR);
3932#define RegisterClipboardFormat WINELIB_NAME_AW(RegisterClipboardFormat)
3933UINT WINAPI RegisterWindowMessageA(LPCSTR);
3934UINT WINAPI RegisterWindowMessageW(LPCWSTR);
3935#define RegisterWindowMessage WINELIB_NAME_AW(RegisterWindowMessage)
3936INT WINAPI ReleaseDC(HWND,HDC);
3937BOOL WINAPI RemoveMenu(HMENU,UINT,UINT);
3938HANDLE WINAPI RemovePropA(HWND,LPCSTR);
3939HANDLE WINAPI RemovePropW(HWND,LPCWSTR);
3940#define RemoveProp WINELIB_NAME_AW(RemoveProp)
3941BOOL WINAPI ReplyMessage(LRESULT);
3942BOOL WINAPI ScreenToClient(HWND,LPPOINT);
3943VOID WINAPI ScrollChildren(HWND,UINT,WPARAM,LPARAM);
3944BOOL WINAPI ScrollDC(HDC,INT,INT,const RECT*,const RECT*,
3945 HRGN,LPRECT);
3946BOOL WINAPI ScrollWindow(HWND,INT,INT,const RECT*,const RECT*);
3947INT WINAPI ScrollWindowEx(HWND,INT,INT,const RECT*,
3948 const RECT*,HRGN,LPRECT,UINT);
3949LRESULT WINAPI SendDlgItemMessageA(HWND,INT,UINT,WPARAM,LPARAM);
3950LRESULT WINAPI SendDlgItemMessageW(HWND,INT,UINT,WPARAM,LPARAM);
3951#define SendDlgItemMessage WINELIB_NAME_AW(SendDlgItemMessage)
3952LRESULT WINAPI SendMessageA(HWND,UINT,WPARAM,LPARAM);
3953LRESULT WINAPI SendMessageW(HWND,UINT,WPARAM,LPARAM);
3954#define SendMessage WINELIB_NAME_AW(SendMessage)
3955LRESULT WINAPI SendMessageTimeoutA(HWND,UINT,WPARAM,LPARAM,UINT,
3956 UINT,LPDWORD);
3957LRESULT WINAPI SendMessageTimeoutW(HWND,UINT,WPARAM,LPARAM,UINT,
3958 UINT,LPDWORD);
3959#define SendMessageTimeout WINELIB_NAME_AW(SendMessageTimeout)
3960HWND WINAPI SetActiveWindow(HWND);
3961HWND WINAPI SetCapture(HWND);
3962BOOL WINAPI SetCaretBlinkTime(UINT);
3963BOOL WINAPI SetCaretPos(INT,INT);
3964LONG WINAPI SetClassLongA(HWND,INT,LONG);
3965LONG WINAPI SetClassLongW(HWND,INT,LONG);
3966#define SetClassLong WINELIB_NAME_AW(SetClassLong)
3967WORD WINAPI SetClassWord(HWND,INT,WORD);
3968HANDLE WINAPI SetClipboardData(UINT,HANDLE);
3969HWND WINAPI SetClipboardViewer(HWND);
3970BOOL WINAPI SetCommBreak(HANDLE);
3971HCURSOR WINAPI SetCursor(HCURSOR);
3972BOOL WINAPI SetCursorPos(INT,INT);
3973BOOL WINAPI SetDeskWallPaper(LPCSTR);
3974BOOL WINAPI SetDlgItemInt(HWND,INT,UINT,BOOL);
3975BOOL WINAPI SetDlgItemTextA(HWND,INT,LPCSTR);
3976BOOL WINAPI SetDlgItemTextW(HWND,INT,LPCWSTR);
3977#define SetDlgItemText WINELIB_NAME_AW(SetDlgItemText)
3978BOOL WINAPI SetDoubleClickTime(UINT);
3979HWND WINAPI SetFocus(HWND);
3980BOOL WINAPI SetForegroundWindow(HWND);
3981void WINAPI SetInternalWindowPos(HWND,UINT,LPRECT,LPPOINT);
3982BOOL WINAPI SetMenu(HWND,HMENU);
3983BOOL WINAPI SetMenuContextHelpId(HMENU,DWORD);
3984BOOL WINAPI SetMenuItemBitmaps(HMENU,UINT,UINT,HBITMAP,HBITMAP);
3985BOOL WINAPI SetMessageQueue(INT);
3986HWND WINAPI SetParent(HWND,HWND);
3987BOOL WINAPI SetPropA(HWND,LPCSTR,HANDLE);
3988BOOL WINAPI SetPropW(HWND,LPCWSTR,HANDLE);
3989#define SetProp WINELIB_NAME_AW(SetProp)
3990BOOL WINAPI SetRect(LPRECT,INT,INT,INT,INT);
3991BOOL WINAPI SetRectEmpty(LPRECT);
3992INT WINAPI SetScrollInfo(HWND,INT,const SCROLLINFO*,BOOL);
3993INT WINAPI SetScrollPos(HWND,INT,INT,BOOL);
3994BOOL WINAPI SetScrollRange(HWND,INT,INT,INT,BOOL);
3995BOOL WINAPI SetSysColors(INT,const INT*,const COLORREF*);
3996#define SetSysModalWindow(hwnd) ((HWND)0)
3997BOOL WINAPI SetSystemCursor(HCURSOR,DWORD);
3998BOOL WINAPI SetSystemMenu(HWND,HMENU);
3999UINT WINAPI SetSystemTimer(HWND,UINT,UINT,TIMERPROC);
4000UINT WINAPI SetTimer(HWND,UINT,UINT,TIMERPROC);
4001LONG WINAPI SetWindowLongA(HWND,INT,LONG);
4002LONG WINAPI SetWindowLongW(HWND,INT,LONG);
4003#define SetWindowLong WINELIB_NAME_AW(SetWindowLong)
4004BOOL WINAPI SetWindowPlacement(HWND,const WINDOWPLACEMENT*);
4005HHOOK WINAPI SetWindowsHookA(INT,HOOKPROC);
4006HHOOK WINAPI SetWindowsHookW(INT,HOOKPROC);
4007#define SetWindowsHook WINELIB_NAME_AW(SetWindowsHook)
4008HHOOK WINAPI SetWindowsHookExA(INT,HOOKPROC,HINSTANCE,DWORD);
4009HHOOK WINAPI SetWindowsHookExW(INT,HOOKPROC,HINSTANCE,DWORD);
4010#define SetWindowsHookEx WINELIB_NAME_AW(SetWindowsHookEx)
4011BOOL WINAPI SetWindowPos(HWND,HWND,INT,INT,INT,INT,UINT);
4012INT WINAPI SetWindowRgn(HWND,HRGN,BOOL);
4013BOOL WINAPI SetWindowTextA(HWND,LPCSTR);
4014BOOL WINAPI SetWindowTextW(HWND,LPCWSTR);
4015#define SetWindowText WINELIB_NAME_AW(SetWindowText)
4016WORD WINAPI SetWindowWord(HWND,INT,WORD);
4017BOOL WINAPI ShowCaret(HWND);
4018INT WINAPI ShowCursor(BOOL);
4019BOOL WINAPI ShowScrollBar(HWND,INT,BOOL);
4020BOOL WINAPI ShowOwnedPopups(HWND,BOOL);
4021BOOL WINAPI ShowWindow(HWND,INT);
4022BOOL WINAPI ShowWindowAsync(HWND hwnd, int nCmdShow);
4023BOOL WINAPI SubtractRect(LPRECT,const RECT*,const RECT*);
4024BOOL WINAPI SwapMouseButton(BOOL);
4025VOID WINAPI SwitchToThisWindow(HWND,BOOL);
4026BOOL WINAPI SystemParametersInfoA(UINT,UINT,LPVOID,UINT);
4027BOOL WINAPI SystemParametersInfoW(UINT,UINT,LPVOID,UINT);
4028#define SystemParametersInfo WINELIB_NAME_AW(SystemParametersInfo)
4029LONG WINAPI TabbedTextOutA(HDC,INT,INT,LPCSTR,INT,INT,const INT*,INT);
4030LONG WINAPI TabbedTextOutW(HDC,INT,INT,LPCWSTR,INT,INT,const INT*,INT);
4031#define TabbedTextOut WINELIB_NAME_AW(TabbedTextOut)
4032INT WINAPI ToAscii(UINT,UINT,LPBYTE,LPWORD,UINT);
4033INT WINAPI ToAsciiEx(UINT,UINT,LPBYTE,LPWORD,UINT,HKL);
4034BOOL WINAPI TrackPopupMenu(HMENU,UINT,INT,INT,INT,HWND,const RECT*);
4035INT WINAPI TranslateAcceleratorA(HWND,HACCEL,LPMSG);
4036INT WINAPI TranslateAcceleratorW(HWND,HACCEL,LPMSG);
4037#define TranslateAccelerator TranslateAcceleratorA
4038BOOL WINAPI TranslateMDISysAccel(HWND,LPMSG);
4039BOOL WINAPI TranslateMessage(const MSG*);
4040BOOL WINAPI UnhookWindowsHook(INT,HOOKPROC);
4041BOOL WINAPI UnhookWindowsHookEx(HHOOK);
4042BOOL WINAPI UnionRect(LPRECT,const RECT*,const RECT*);
4043BOOL WINAPI UnloadKeyboardLayout(HKL hkl);
4044BOOL WINAPI UnregisterClassA(LPCSTR,HINSTANCE);
4045BOOL WINAPI UnregisterClassW(LPCWSTR,HINSTANCE);
4046#define UnregisterClass WINELIB_NAME_AW(UnregisterClass)
4047
4048BOOL WINAPI UpdateWindow(HWND);
4049BOOL WINAPI ValidateRect(HWND,const RECT*);
4050BOOL WINAPI ValidateRgn(HWND,HRGN);
4051WORD WINAPI VkKeyScanA(CHAR);
4052WORD WINAPI VkKeyScanW(WCHAR);
4053#define VkKeyScan WINELIB_NAME_AW(VkKeyScan)
4054WORD WINAPI VkKeyScanExA(CHAR, HKL);
4055WORD WINAPI VkKeyScanExW(WCHAR, HKL);
4056#define VkKeyScanEx WINELIB_NAME_AW(VkKeyScanEx)
4057HWND WINAPI WindowFromDC(HDC);
4058HWND WINAPI WindowFromPoint(POINT);
4059BOOL WINAPI WinHelpA(HWND,LPCSTR,UINT,DWORD);
4060BOOL WINAPI WinHelpW(HWND,LPCWSTR,UINT,DWORD);
4061#define WinHelp WINELIB_NAME_AW(WinHelp)
4062DWORD WINAPI WNetAddConnectionA(LPCSTR,LPCSTR,LPCSTR);
4063DWORD WINAPI WNetAddConnectionW(LPCWSTR,LPCWSTR,LPCWSTR);
4064#define WNetAddConnection WINELIB_NAME_AW(WNetAddConnection)
4065INT WINAPIV wsnprintfA(LPSTR,UINT,LPCSTR,...);
4066INT WINAPIV wsnprintfW(LPWSTR,UINT,LPCWSTR,...);
4067#define wsnprintf WINELIB_NAME_AW(wsnprintf)
4068INT WINAPIV wsprintfA(LPSTR,LPCSTR,...);
4069INT WINAPIV wsprintfW(LPWSTR,LPCWSTR,...);
4070#define wsprintf WINELIB_NAME_AW(wsprintf)
4071INT WINAPI wvsnprintfA(LPSTR,UINT,LPCSTR, va_list);
4072INT WINAPI wvsnprintfW(LPWSTR,UINT,LPCWSTR, va_list);
4073#define wvsnprintf WINELIB_NAME_AW(wvsnprintf)
4074INT WINAPI wvsprintfA(LPSTR,LPCSTR, va_list);
4075INT WINAPI wvsprintfW(LPWSTR,LPCWSTR, va_list);
4076#define wvsprintf WINELIB_NAME_AW(wvsprintf)
4077
4078BOOL WINAPI RegisterShellHook16(HWND16,UINT16);
4079/* NOTE: This is SYSTEM.3, not USER.182, which is also named KillSystemTimer */
4080WORD WINAPI SYSTEM_KillSystemTimer( WORD );
4081
4082HRESULT WINAPI PrivateExtractIconsA(LPCSTR,INT,DWORD,DWORD,HICON*,DWORD,UINT,DWORD);
4083HRESULT WINAPI PrivateExtractIconsW(LPCWSTR,INT,DWORD,DWORD,HICON*,DWORD,UINT,DWORD);
4084
4085/* Extra functions that don't exist in the Windows API */
4086
4087HPEN WINAPI GetSysColorPen(INT);
4088HBRUSH WINAPI GetPattern55AABrush(VOID);
4089HBITMAP WINAPI GetPattern55AABitmap(VOID);
4090INT WINAPI LoadMessageA(HMODULE,UINT,WORD,LPSTR,INT);
4091INT WINAPI LoadMessageW(HMODULE,UINT,WORD,LPWSTR,INT);
4092
4093#ifndef SYSTEM
4094 #define SYSTEM _System
4095#endif
4096
4097INT SYSTEM GetOS2UpdateRgn(HWND,HRGN);
4098BOOL SYSTEM GetOS2UpdateRect(HWND,LPRECT);
4099
4100VOID WINAPI ScreenSwitchEnable16(WORD);
4101
4102#define WC_DIALOG (LPSTR)((DWORD)((WORD)( 0x8002)))
4103
4104
4105BOOL WINAPI EnumDesktopsA(HWINSTA hwinsta, DESKTOPENUMPROCA lpEnumFunc, LPARAM lParam);
4106BOOL WINAPI EnumDesktopsW(HWINSTA hwinsta, DESKTOPENUMPROCW lpEnumFunc, LPARAM lParam);
4107
4108BOOL WINAPI SendMessageCallbackA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,
4109 SENDASYNCPROC lpResultCallBack, DWORD dwData);
4110
4111BOOL WINAPI SendMessageCallbackW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,
4112 SENDASYNCPROC lpResultCallBack, DWORD dwData);
4113
4114#ifdef __cplusplus
4115}
4116#endif
4117
4118#endif /* __INCLUDE_WINUSER_H */
Note: See TracBrowser for help on using the repository browser.