VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/winuser.h@ 33876

Last change on this file since 33876 was 33656, checked in by vboxsync, 14 years ago

*: rebrand Sun (L)GPL disclaimers

  • Property svn:eol-style set to native
File size: 182.6 KB
Line 
1/*
2 * Copyright (C) the Wine project
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19/*
20 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
21 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
22 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
23 * a choice of LGPL license versions is made available with the language indicating
24 * that LGPLv2 or any later version may be used, or where a choice of which version
25 * of the LGPL is applied is otherwise unspecified.
26 */
27
28#ifndef _WINUSER_
29#define _WINUSER_
30
31#if !defined(_USER32_)
32#define WINUSERAPI DECLSPEC_IMPORT
33#else
34#define WINUSERAPI
35#endif
36
37#ifndef RC_INVOKED
38#include <stdarg.h>
39#endif
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45/* Define a bunch of callback types */
46
47#if defined(STRICT)
48typedef INT_PTR (CALLBACK *DLGPROC)(HWND,UINT,WPARAM,LPARAM);
49typedef BOOL (CALLBACK *DRAWSTATEPROC)(HDC,LPARAM,WPARAM,int,int);
50typedef INT (CALLBACK *EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT);
51typedef INT (CALLBACK *EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT);
52typedef BOOL (CALLBACK *GRAYSTRINGPROC)(HDC,LPARAM,INT);
53typedef LRESULT (CALLBACK *HOOKPROC)(INT,WPARAM,LPARAM);
54typedef BOOL (CALLBACK *NAMEENUMPROCA)(LPSTR,LPARAM);
55typedef BOOL (CALLBACK *NAMEENUMPROCW)(LPWSTR,LPARAM);
56typedef BOOL (CALLBACK *PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
57typedef BOOL (CALLBACK *PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);
58typedef BOOL (CALLBACK *PROPENUMPROCEXA)(HWND,LPSTR,HANDLE,ULONG_PTR);
59typedef BOOL (CALLBACK *PROPENUMPROCEXW)(HWND,LPWSTR,HANDLE,ULONG_PTR);
60typedef VOID (CALLBACK *SENDASYNCPROC)(HWND,UINT,ULONG_PTR,LRESULT);
61typedef VOID (CALLBACK *TIMERPROC)(HWND,UINT,UINT_PTR,DWORD);
62typedef VOID (CALLBACK *WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,
63 DWORD,DWORD);
64typedef BOOL (CALLBACK *WNDENUMPROC)(HWND,LPARAM);
65
66#else
67typedef FARPROC DLGPROC;
68typedef FARPROC DRAWSTATEPROC;
69typedef FARPROC EDITWORDBREAKPROCA;
70typedef FARPROC EDITWORDBREAKPROCW;
71typedef FARPROC GRAYSTRINGPROC;
72typedef FARPROC HOOKPROC;
73typedef FARPROC NAMEENUMPROCA;
74typedef FARPROC NAMEENUMPROCW;
75typedef FARPROC PROPENUMPROCA;
76typedef FARPROC PROPENUMPROCW;
77typedef FARPROC PROPENUMPROCEXA;
78typedef FARPROC PROPENUMPROCEXW;
79typedef FARPROC SENDASYNCPROC;
80typedef FARPROC TIMERPROC;
81typedef FARPROC WINEVENTPROC;
82typedef FARPROC WNDENUMPROC;
83#endif /* STRICT */
84
85typedef NAMEENUMPROCA WINSTAENUMPROCA;
86typedef NAMEENUMPROCA DESKTOPENUMPROCA;
87typedef NAMEENUMPROCW WINSTAENUMPROCW;
88typedef NAMEENUMPROCW DESKTOPENUMPROCW;
89
90typedef LRESULT (CALLBACK *WNDPROC)(HWND,UINT,WPARAM,LPARAM);
91
92DECL_WINELIB_TYPE_AW(DESKTOPENUMPROC)
93DECL_WINELIB_TYPE_AW(EDITWORDBREAKPROC)
94DECL_WINELIB_TYPE_AW(NAMEENUMPROC)
95DECL_WINELIB_TYPE_AW(PROPENUMPROC)
96DECL_WINELIB_TYPE_AW(PROPENUMPROCEX)
97DECL_WINELIB_TYPE_AW(WINSTAENUMPROC)
98
99
100typedef HANDLE HDWP;
101
102#define UOI_FLAGS 1
103#define UOI_NAME 2
104#define UOI_TYPE 3
105#define UOI_USER_SID 4
106
107#define WSF_VISIBLE 1
108#define DF_ALLOWOTHERACCOUNTHOOK 1
109
110typedef struct tagUSEROBJECTFLAGS {
111 BOOL fInherit;
112 BOOL fReserved;
113 DWORD dwFlags;
114} USEROBJECTFLAGS, *PUSEROBJECTFLAGS;
115
116typedef struct tagBSMINFO {
117 UINT cbSize;
118 HDESK hdesk;
119 HWND hwnd;
120 LUID luid;
121} BSMINFO, *PBSMINFO;
122
123/* Window stations */
124#define WINSTA_ENUMDESKTOPS 0x0001
125#define WINSTA_READATTRIBUTES 0x0002
126#define WINSTA_ACCESSCLIPBOARD 0x0004
127#define WINSTA_CREATEDESKTOP 0x0008
128#define WINSTA_WRITEATTRIBUTES 0x0010
129#define WINSTA_ACCESSGLOBALATOMS 0x0020
130#define WINSTA_EXITWINDOWS 0x0040
131#define WINSTA_ENUMERATE 0x0100
132#define WINSTA_READSCREEN 0x0200
133#define WINSTA_ALL_ACCESS 0x037f
134
135/* Desktops */
136#define DESKTOP_READOBJECTS 0x0001
137#define DESKTOP_CREATEWINDOW 0x0002
138#define DESKTOP_CREATEMENU 0x0004
139#define DESKTOP_HOOKCONTROL 0x0008
140#define DESKTOP_JOURNALRECORD 0x0010
141#define DESKTOP_JOURNALPLAYBACK 0x0020
142#define DESKTOP_ENUMERATE 0x0040
143#define DESKTOP_WRITEOBJECTS 0x0080
144#define DESKTOP_SWITCHDESKTOP 0x0100
145
146
147/* flags for FILTERKEYS dwFlags field */
148#define FKF_AVAILABLE 0x00000002
149#define FKF_CLICKON 0x00000040
150#define FKF_FILTERKEYSON 0x00000001
151#define FKF_HOTKEYACTIVE 0x00000004
152#define FKF_HOTKEYSOUND 0x00000010
153#define FKF_CONFIRMHOTKEY 0x00000008
154#define FKF_INDICATOR 0x00000020
155
156typedef struct tagFILTERKEYS
157{
158 UINT cbSize;
159 DWORD dwFlags;
160 DWORD iWaitMSec;
161 DWORD iDelayMSec;
162 DWORD iRepeatMSec;
163 DWORD iBounceMSec;
164} FILTERKEYS, *LPFILTERKEYS;
165
166/* flags for TOGGLEKEYS dwFlags field */
167#define TKF_AVAILABLE 0x00000002
168#define TKF_CONFIRMHOTKEY 0x00000008
169#define TKF_HOTKEYACTIVE 0x00000004
170#define TKF_HOTKEYSOUND 0x00000010
171#define TKF_TOGGLEKEYSON 0x00000001
172
173typedef struct tagTOGGLEKEYS
174{
175 DWORD cbSize;
176 DWORD dwFlags;
177} TOGGLEKEYS, *LPTOGGLEKEYS;
178
179/* flags for MOUSEKEYS dwFlags field */
180#define MKF_AVAILABLE 0x00000002
181#define MKF_CONFIRMHOTKEY 0x00000008
182#define MKF_HOTKEYACTIVE 0x00000004
183#define MKF_HOTKEYSOUND 0x00000010
184#define MKF_INDICATOR 0x00000020
185#define MKF_MOUSEKEYSON 0x00000001
186#define MKF_MODIFIERS 0x00000040
187#define MKF_REPLACENUMBERS 0x00000080
188
189typedef struct tagMOUSEKEYS
190{
191 UINT cbSize;
192 DWORD dwFlags;
193 DWORD iMaxSpeed;
194 DWORD iTimeToMaxSpeed;
195 DWORD iCtrlSpeed;
196 DWORD dwReserved1;
197 DWORD dwReserved2;
198} MOUSEKEYS, *LPMOUSEKEYS;
199
200/* struct and defines for GetMouseMovePointsEx */
201#define GMMP_USE_DISPLAY_POINTS 1
202#define GMMP_USE_HIGH_RESOLUTION_POINTS 2
203
204typedef struct tagMOUSEMOVEPOINT {
205 int x;
206 int y;
207 DWORD time;
208 ULONG_PTR dwExtraInfo;
209} MOUSEMOVEPOINT,*PMOUSEMOVEPOINT,*LPMOUSEMOVEPOINT;
210
211/* flags for STICKYKEYS dwFlags field */
212#define SKF_AUDIBLEFEEDBACK 0x00000040
213#define SKF_AVAILABLE 0x00000002
214#define SKF_CONFIRMHOTKEY 0x00000008
215#define SKF_HOTKEYACTIVE 0x00000004
216#define SKF_HOTKEYSOUND 0x00000010
217#define SKF_INDICATOR 0x00000020
218#define SKF_STICKYKEYSON 0x00000001
219#define SKF_TRISTATE 0x00000080
220#define SKF_TWOKEYSOFF 0x00000100
221
222typedef struct tagSTICKYKEYS
223{
224 DWORD cbSize;
225 DWORD dwFlags;
226} STICKYKEYS, *LPSTICKYKEYS;
227
228/* flags for ACCESSTIMEOUT dwFlags field */
229#define ATF_ONOFFFEEDBACK 0x00000002
230#define ATF_AVAILABLE 0x00000004
231#define ATF_TIMEOUTON 0x00000001
232
233typedef struct tagACCESSTIMEOUT
234{
235 UINT cbSize;
236 DWORD dwFlags;
237 DWORD iTimeOutMSec;
238} ACCESSTIMEOUT, *LPACCESSTIMEOUT;
239
240/* flags for SERIALKEYS dwFlags field */
241#define SERKF_ACTIVE 0x00000008
242#define SERKF_AVAILABLE 0x00000002
243#define SERKF_INDICATOR 0x00000004
244#define SERKF_SERIALKEYSON 0x00000001
245
246typedef struct tagSERIALKEYSA
247{
248 UINT cbSize;
249 DWORD dwFlags;
250 LPSTR lpszActivePort;
251 LPSTR lpszPort;
252 UINT iBaudRate;
253 UINT iPortState;
254 UINT iActive;
255} SERIALKEYSA, *LPSERIALKEYSA;
256
257typedef struct tagSERIALKEYSW {
258 UINT cbSize;
259 DWORD dwFlags;
260 LPWSTR lpszActivePort;
261 LPWSTR lpszPort;
262 UINT iBaudRate;
263 UINT iPortState;
264 UINT iActive;
265} SERIALKEYSW,*LPSERIALKEYSW;
266
267DECL_WINELIB_TYPE_AW(SERIALKEYS)
268DECL_WINELIB_TYPE_AW(LPSERIALKEYS)
269
270/* flags for SOUNDSENTRY dwFlags field */
271#define SSF_AVAILABLE 0x00000002
272#define SSF_SOUNDSENTRYON 0x00000001
273
274#define SSTF_BORDER 0x00000002
275#define SSTF_CHARS 0x00000001
276#define SSTF_DISPLAY 0x00000003
277#define SSTF_NONE 0x00000000
278
279#define SSGF_DISPLAY 0x00000003
280#define SSGF_NONE 0x00000000
281
282#define SSWF_DISPLAY 0x00000003
283#define SSWF_NONE 0x00000000
284#define SSWF_TITLE 0x00000001
285#define SSWF_WINDOW 0x00000002
286
287typedef struct tagSOUNDSENTRYA
288{
289 UINT cbSize;
290 DWORD dwFlags;
291 DWORD iFSTextEffect;
292 DWORD iFSTextEffectMSec;
293 DWORD iFSTextEffectColorBits;
294 DWORD iFSGrafEffect;
295 DWORD iFSGrafEffectMSec;
296 DWORD iFSGrafEffectColor;
297 DWORD iWindowsEffect;
298 DWORD iWindowsEffectMSec;
299 LPSTR lpszWindowsEffectDLL;
300 DWORD iWindowsEffectOrdinal;
301} SOUNDSENTRYA, *LPSOUNDSENTRYA;
302
303typedef struct tagSOUNDSENTRYW
304{
305 UINT cbSize;
306 DWORD dwFlags;
307 DWORD iFSTextEffect;
308 DWORD iFSTextEffectMSec;
309 DWORD iFSTextEffectColorBits;
310 DWORD iFSGrafEffect;
311 DWORD iFSGrafEffectMSec;
312 DWORD iFSGrafEffectColor;
313 DWORD iWindowsEffect;
314 DWORD iWindowsEffectMSec;
315 LPWSTR lpszWindowsEffectDLL;
316 DWORD iWindowsEffectOrdinal;
317} SOUNDSENTRYW, *LPSOUNDSENTRYW;
318
319DECL_WINELIB_TYPE_AW(SOUNDSENTRY)
320DECL_WINELIB_TYPE_AW(LPSOUNDSENTRY)
321
322/* flags for HIGHCONTRAST dwFlags field */
323#define HCF_HIGHCONTRASTON 0x00000001
324#define HCF_AVAILABLE 0x00000002
325#define HCF_HOTKEYACTIVE 0x00000004
326#define HCF_CONFIRMHOTKEY 0x00000008
327#define HCF_HOTKEYSOUND 0x00000010
328#define HCF_INDICATOR 0x00000020
329#define HCF_HOTKEYAVAILABLE 0x00000040
330
331typedef struct tagHIGHCONTRASTA
332{
333 UINT cbSize;
334 DWORD dwFlags;
335 LPSTR lpszDefaultScheme;
336} HIGHCONTRASTA, *LPHIGHCONTRASTA;
337
338typedef struct tagHIGHCONTRASTW
339{
340 UINT cbSize;
341 DWORD dwFlags;
342 LPWSTR lpszDefaultScheme;
343} HIGHCONTRASTW, *LPHIGHCONTRASTW;
344
345DECL_WINELIB_TYPE_AW(HIGHCONTRAST)
346DECL_WINELIB_TYPE_AW(LPHIGHCONTRAST)
347
348typedef struct tagEVENTMSG
349{
350 UINT message;
351 UINT paramL;
352 UINT paramH;
353 DWORD time;
354 HWND hwnd;
355} EVENTMSG, *PEVENTMSG, *LPEVENTMSG;
356
357/* WH_KEYBOARD_LL structure */
358typedef struct tagKBDLLHOOKSTRUCT
359{
360 DWORD vkCode;
361 DWORD scanCode;
362 DWORD flags;
363 DWORD time;
364 ULONG_PTR dwExtraInfo;
365} KBDLLHOOKSTRUCT, *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
366
367#define LLKHF_EXTENDED (KF_EXTENDED >> 8)
368#define LLKHF_INJECTED 0x00000010
369#define LLKHF_ALTDOWN (KF_ALTDOWN >> 8)
370#define LLKHF_UP (KF_UP >> 8)
371
372/* WH_MOUSE_LL structure */
373typedef struct tagMSLLHOOKSTRUCT
374{
375 POINT pt;
376 DWORD mouseData;
377 DWORD flags;
378 DWORD time;
379 ULONG_PTR dwExtraInfo;
380} MSLLHOOKSTRUCT, *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;
381
382#define LLMHF_INJECTED 0x00000001
383
384 /* Mouse hook structure */
385
386typedef struct
387{
388 POINT pt;
389 HWND hwnd;
390 UINT wHitTestCode;
391 ULONG_PTR dwExtraInfo;
392} MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT;
393
394
395 /* Hardware hook structure */
396
397typedef struct
398{
399 HWND hwnd;
400 UINT message;
401 WPARAM wParam;
402 LPARAM lParam;
403} HARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT;
404
405
406 /* Debug hook structure */
407
408typedef struct tagDEBUGHOOKINFO
409{
410 DWORD idThread;
411 DWORD idThreadInstaller;
412 LPARAM lParam;
413 WPARAM wParam;
414 INT code;
415} DEBUGHOOKINFO, *PDEBUGHOOKINFO, *LPDEBUGHOOKINFO;
416
417#define HKL_PREV 0
418#define HKL_NEXT 1
419
420#define KLF_ACTIVATE 0x00000001
421#define KLF_SUBSTITUTE_OK 0x00000002
422#define KLF_UNLOADPREVIOUS 0x00000004
423#define KLF_REORDER 0x00000008
424#define KLF_REPLACELANG 0x00000010
425#define KLF_NOTELLSHELL 0x00000080
426#define KLF_SETFORPROCESS 0x00000100
427#define KLF_SHIFTLOCK 0x00010000
428#define KLF_RESET 0x40000000
429
430#define KL_NAMELENGTH 9
431
432typedef struct tagMOUSEINPUT
433{
434 LONG dx;
435 LONG dy;
436 DWORD mouseData;
437 DWORD dwFlags;
438 DWORD time;
439 ULONG_PTR dwExtraInfo;
440} MOUSEINPUT, *PMOUSEINPUT, *LPMOUSEINPUT;
441
442typedef struct tagKEYBDINPUT
443{
444 WORD wVk;
445 WORD wScan;
446 DWORD dwFlags;
447 DWORD time;
448 ULONG_PTR dwExtraInfo;
449} KEYBDINPUT, *PKEYBDINPUT, *LPKEYBDINPUT;
450
451typedef struct tagHARDWAREINPUT
452{
453 DWORD uMsg;
454 WORD wParamL;
455 WORD wParamH;
456} HARDWAREINPUT, *PHARDWAREINPUT, *LPHARDWAREINPUT;
457
458#define INPUT_MOUSE 0
459#define INPUT_KEYBOARD 1
460#define INPUT_HARDWARE 2
461
462typedef struct tagINPUT
463{
464 DWORD type;
465 union
466 {
467 MOUSEINPUT mi;
468 KEYBDINPUT ki;
469 HARDWAREINPUT hi;
470 } DUMMYUNIONNAME;
471} INPUT, *PINPUT, *LPINPUT;
472
473DECLARE_HANDLE(HRAWINPUT);
474
475typedef struct tagRAWINPUTDEVICELIST
476{
477 HANDLE hDevice;
478 DWORD dwType;
479} RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST;
480
481typedef struct tagRAWHID {
482 DWORD dwSizeHid;
483 DWORD dwCount;
484 BYTE bRawData;
485} RAWHID, *LPRAWHID;
486
487typedef struct tagRAWKEYBOARD {
488 USHORT MakeCode;
489 USHORT Flags;
490 USHORT Reserved;
491 USHORT VKey;
492 UINT Message;
493 ULONG ExtraInformation;
494} RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD;
495
496typedef struct tagRAWMOUSE {
497 USHORT usFlags;
498 union {
499 ULONG ulButtons;
500 struct {
501 USHORT usButtonFlags;
502 USHORT usButtonData;
503 } DUMMYSTRUCTNAME;
504 } DUMMYUNIONNAME;
505 ULONG ulRawButtons;
506 LONG lLastX;
507 LONG lLastY;
508 ULONG ulExtraInformation;
509} RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE;
510
511typedef struct tagRAWINPUTHEADER {
512 DWORD dwType;
513 DWORD dwSize;
514 HANDLE hDevice;
515 WPARAM wParam;
516} RAWINPUTHEADER, *PRAWINPUTHEADER;
517
518typedef struct tagRAWINPUT {
519 RAWINPUTHEADER header;
520 union {
521 RAWMOUSE mouse;
522 RAWKEYBOARD keyboard;
523 RAWHID hid;
524 } data;
525} RAWINPUT, *PRAWINPUT, *LPRAWINPUT;
526
527typedef struct tagRAWINPUTDEVICE {
528 USHORT usUsagePage;
529 USHORT usUsage;
530 DWORD dwFlags;
531 HWND hwndTarget;
532} RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE;
533
534typedef struct tagRID_DEVICE_INFO_MOUSE {
535 DWORD dwId;
536 DWORD dwNumberOfButtons;
537 DWORD dwSampleRate;
538 BOOL fHasHorizontalWheel;
539} RID_DEVICE_INFO_MOUSE, *PRID_DEVICE_INFO_MOUSE;
540
541typedef struct tagRID_DEVICE_INFO_KEYBOARD {
542 DWORD dwType;
543 DWORD dwSubType;
544 DWORD dwKeyboardMode;
545 DWORD dwNumberOfFunctionKeys;
546 DWORD dwNumberOfIndicators;
547 DWORD dwNumberOfKeysTotal;
548} RID_DEVICE_INFO_KEYBOARD, *PRID_DEVICE_INFO_KEYBOARD;
549
550typedef struct tagRID_DEVICE_INFO_HID {
551 DWORD dwVendorId;
552 DWORD dwProductId;
553 DWORD dwVersionNumber;
554 USHORT usUsagePage;
555 USHORT usUsage;
556} RID_DEVICE_INFO_HID, *PRID_DEVICE_INFO_HID;
557
558typedef struct tagRID_DEVICE_INFO {
559 DWORD cbSize;
560 DWORD dwType;
561 union {
562 RID_DEVICE_INFO_MOUSE mouse;
563 RID_DEVICE_INFO_KEYBOARD keyboard;
564 RID_DEVICE_INFO_HID hid;
565 } DUMMYUNIONNAME;
566} RID_DEVICE_INFO, *PRID_DEVICE_INFO, *LPRID_DEVICE_INFO;
567
568
569typedef struct tagGUITHREADINFO
570{
571 DWORD cbSize;
572 DWORD flags;
573 HWND hwndActive;
574 HWND hwndFocus;
575 HWND hwndCapture;
576 HWND hwndMenuOwner;
577 HWND hwndMoveSize;
578 HWND hwndCaret;
579 RECT rcCaret;
580} GUITHREADINFO, *PGUITHREADINFO, *LPGUITHREADINFO;
581
582#define GUI_CARETBLINKING 0x00000001
583#define GUI_INMOVESIZE 0x00000002
584#define GUI_INMENUMODE 0x00000004
585#define GUI_SYSTEMMENUMODE 0x00000008
586#define GUI_POPUPMENUMODE 0x00000010
587#define GUI_16BITTASK 0x00000020
588
589
590/***** Dialogs *****/
591
592/* Gcc on Solaris has a version of this that we don't care about */
593#undef FSHIFT
594
595#define FVIRTKEY TRUE /* Assumed to be == TRUE */
596#define FNOINVERT 0x02
597#define FSHIFT 0x04
598#define FCONTROL 0x08
599#define FALT 0x10
600
601
602typedef struct tagANIMATIONINFO
603{
604 UINT cbSize;
605 INT iMinAnimate;
606} ANIMATIONINFO, *LPANIMATIONINFO;
607
608typedef struct tagNMHDR
609{
610 HWND hwndFrom;
611 UINT_PTR idFrom;
612 UINT code;
613} NMHDR, *LPNMHDR;
614
615typedef struct tagDRAWTEXTPARAMS
616{
617 UINT cbSize;
618 INT iTabLength;
619 INT iLeftMargin;
620 INT iRightMargin;
621 UINT uiLengthDrawn;
622} DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
623
624#define WM_USER 0x0400
625
626typedef struct
627{
628 LPARAM lParam;
629 WPARAM wParam;
630 UINT message;
631 HWND hwnd;
632} CWPSTRUCT, *PCWPSTRUCT, *LPCWPSTRUCT;
633
634typedef struct
635{
636 LRESULT lResult;
637 LPARAM lParam;
638 WPARAM wParam;
639 DWORD message;
640 HWND hwnd;
641} CWPRETSTRUCT, *PCWPRETSTRUCT, *LPCWPRETSTRUCT;
642
643typedef struct tagWINDOWPLACEMENT
644{
645 UINT length;
646 UINT flags;
647 UINT showCmd;
648 POINT ptMinPosition;
649 POINT ptMaxPosition;
650 RECT rcNormalPosition;
651} WINDOWPLACEMENT, *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT;
652
653
654 /* WINDOWPLACEMENT flags */
655#define WPF_SETMINPOSITION 0x0001
656#define WPF_RESTORETOMAXIMIZED 0x0002
657
658/***** Dialogs *****/
659
660#define IS_INTRESOURCE(x) (((ULONG_PTR)(x) >> 16) == 0)
661#define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i)))
662#define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
663
664#ifdef WINE_NO_UNICODE_MACROS /* force using a cast */
665#define MAKEINTRESOURCE(i) ((ULONG_PTR)((WORD)(i)))
666#else
667#define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE)
668#endif
669
670/* Predefined resource types */
671#define RT_CURSOR MAKEINTRESOURCE(1)
672#define RT_BITMAP MAKEINTRESOURCE(2)
673#define RT_ICON MAKEINTRESOURCE(3)
674#define RT_MENU MAKEINTRESOURCE(4)
675#define RT_DIALOG MAKEINTRESOURCE(5)
676#define RT_STRING MAKEINTRESOURCE(6)
677#define RT_FONTDIR MAKEINTRESOURCE(7)
678#define RT_FONT MAKEINTRESOURCE(8)
679#define RT_ACCELERATOR MAKEINTRESOURCE(9)
680#define RT_RCDATA MAKEINTRESOURCE(10)
681#define RT_MESSAGETABLE MAKEINTRESOURCE(11)
682#define RT_GROUP_CURSOR MAKEINTRESOURCE(12)
683#define RT_GROUP_ICON MAKEINTRESOURCE(14)
684#define RT_VERSION MAKEINTRESOURCE(16)
685#define RT_DLGINCLUDE MAKEINTRESOURCE(17)
686#define RT_PLUGPLAY MAKEINTRESOURCE(19)
687#define RT_VXD MAKEINTRESOURCE(20)
688#define RT_ANICURSOR MAKEINTRESOURCE(21)
689#define RT_ANIICON MAKEINTRESOURCE(22)
690#define RT_HTML MAKEINTRESOURCE(23)
691
692#ifndef RC_INVOKED
693#define RT_MANIFEST MAKEINTRESOURCE(24)
694#define CREATEPROCESS_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(1)
695#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(2)
696#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(3)
697#define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(1)
698#define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(16)
699#else
700#define RT_MANIFEST 24
701#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
702#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
703#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
704#define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID 1
705#define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID 16
706#endif
707
708 /* cbWndExtra bytes for dialog class */
709#define DLGWINDOWEXTRA 30
710
711/* Button control styles */
712#define BS_PUSHBUTTON 0x00000000L
713#define BS_DEFPUSHBUTTON 0x00000001L
714#define BS_CHECKBOX 0x00000002L
715#define BS_AUTOCHECKBOX 0x00000003L
716#define BS_RADIOBUTTON 0x00000004L
717#define BS_3STATE 0x00000005L
718#define BS_AUTO3STATE 0x00000006L
719#define BS_GROUPBOX 0x00000007L
720#define BS_USERBUTTON 0x00000008L
721#define BS_AUTORADIOBUTTON 0x00000009L
722#define BS_OWNERDRAW 0x0000000BL
723#define BS_LEFTTEXT 0x00000020L
724#define BS_RIGHTBUTTON BS_LEFTTEXT
725
726#define BS_TEXT 0x00000000L
727#define BS_ICON 0x00000040L
728#define BS_BITMAP 0x00000080L
729#define BS_LEFT 0x00000100L
730#define BS_RIGHT 0x00000200L
731#define BS_CENTER 0x00000300L
732#define BS_TOP 0x00000400L
733#define BS_BOTTOM 0x00000800L
734#define BS_VCENTER 0x00000C00L
735#define BS_PUSHLIKE 0x00001000L
736#define BS_MULTILINE 0x00002000L
737#define BS_NOTIFY 0x00004000L
738#define BS_FLAT 0x00008000L
739
740 /* Dialog styles */
741#define DS_ABSALIGN 0x0001
742#define DS_SYSMODAL 0x0002
743#define DS_3DLOOK 0x0004 /* win95 */
744#define DS_FIXEDSYS 0x0008 /* win95 */
745#define DS_NOFAILCREATE 0x0010 /* win95 */
746#define DS_LOCALEDIT 0x0020
747#define DS_SETFONT 0x0040
748#define DS_MODALFRAME 0x0080
749#define DS_NOIDLEMSG 0x0100
750#define DS_SETFOREGROUND 0x0200 /* win95 */
751#define DS_CONTROL 0x0400 /* win95 */
752#define DS_CENTER 0x0800 /* win95 */
753#define DS_CENTERMOUSE 0x1000 /* win95 */
754#define DS_CONTEXTHELP 0x2000 /* win95 */
755#define DS_USEPIXELS 0x8000
756#define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS)
757
758
759 /* Dialog messages */
760#define DM_GETDEFID (WM_USER+0)
761#define DM_SETDEFID (WM_USER+1)
762#define DM_REPOSITION (WM_USER+2)
763
764#define DC_HASDEFID 0x534b
765
766/* Bit flags for DRAWITEMSTRUCT.CtlType */
767#define ODT_MENU 1
768#define ODT_LISTBOX 2
769#define ODT_COMBOBOX 3
770#define ODT_BUTTON 4
771#define ODT_STATIC 5
772
773/* Bit flags for DRAWITEMSTRUCT.itemAction */
774#define ODA_DRAWENTIRE 0x1
775#define ODA_SELECT 0x2
776#define ODA_FOCUS 0x4
777
778/* Bit flags for DRAWITEMSTRUCT.itemState */
779#define ODS_SELECTED 0x0001 /* Selected */
780#define ODS_GRAYED 0x0002 /* Grayed (Menus only) */
781#define ODS_DISABLED 0x0004 /* Disabled */
782#define ODS_CHECKED 0x0008 /* Checked (Menus only) */
783#define ODS_FOCUS 0x0010 /* Has focus */
784#define ODS_DEFAULT 0x0020 /* Default */
785#define ODS_HOTLIGHT 0x0040 /* Highlighted when under mouse */
786#define ODS_INACTIVE 0x0080 /* Inactive */
787#define ODS_NOACCEL 0x0100 /* No keyboard accelerator */
788#define ODS_NOFOCUSRECT 0x0200 /* No focus rectangle */
789#define ODS_COMBOBOXEDIT 0x1000 /* Edit of a combo box */
790
791/* Edit control styles */
792#ifndef NOWINSTYLES
793#define ES_LEFT 0x00000000
794#define ES_CENTER 0x00000001
795#define ES_RIGHT 0x00000002
796#define ES_MULTILINE 0x00000004
797#define ES_UPPERCASE 0x00000008
798#define ES_LOWERCASE 0x00000010
799#define ES_PASSWORD 0x00000020
800#define ES_AUTOVSCROLL 0x00000040
801#define ES_AUTOHSCROLL 0x00000080
802#define ES_NOHIDESEL 0x00000100
803#define ES_COMBO 0x00000200 /* Undocumented. Parent is a combobox */
804#define ES_OEMCONVERT 0x00000400
805#define ES_READONLY 0x00000800
806#define ES_WANTRETURN 0x00001000
807#define ES_NUMBER 0x00002000
808#endif /* NOWINSTYLES */
809
810/* OEM Resource Ordinal Numbers */
811#ifdef OEMRESOURCE
812#define OBM_TRTYPE 32732
813#define OBM_LFARROWI 32734
814#define OBM_RGARROWI 32735
815#define OBM_DNARROWI 32736
816#define OBM_UPARROWI 32737
817#define OBM_COMBO 32738
818#define OBM_MNARROW 32739
819#define OBM_LFARROWD 32740
820#define OBM_RGARROWD 32741
821#define OBM_DNARROWD 32742
822#define OBM_UPARROWD 32743
823#define OBM_RESTORED 32744
824#define OBM_ZOOMD 32745
825#define OBM_REDUCED 32746
826#define OBM_RESTORE 32747
827#define OBM_ZOOM 32748
828#define OBM_REDUCE 32749
829#define OBM_LFARROW 32750
830#define OBM_RGARROW 32751
831#define OBM_DNARROW 32752
832#define OBM_UPARROW 32753
833#define OBM_CLOSE 32754
834#define OBM_OLD_RESTORE 32755
835#define OBM_OLD_ZOOM 32756
836#define OBM_OLD_REDUCE 32757
837#define OBM_BTNCORNERS 32758
838#define OBM_CHECKBOXES 32759
839#define OBM_CHECK 32760
840#define OBM_BTSIZE 32761
841#define OBM_OLD_LFARROW 32762
842#define OBM_OLD_RGARROW 32763
843#define OBM_OLD_DNARROW 32764
844#define OBM_OLD_UPARROW 32765
845#define OBM_SIZE 32766
846#define OBM_OLD_CLOSE 32767
847
848#define OCR_NORMAL 32512
849#define OCR_IBEAM 32513
850#define OCR_WAIT 32514
851#define OCR_CROSS 32515
852#define OCR_UP 32516
853#define OCR_SIZE 32640
854#define OCR_ICON 32641
855#define OCR_SIZENWSE 32642
856#define OCR_SIZENESW 32643
857#define OCR_SIZEWE 32644
858#define OCR_SIZENS 32645
859#define OCR_SIZEALL 32646
860#define OCR_ICOCUR 32647
861#define OCR_NO 32648
862#define OCR_HAND 32649
863#define OCR_APPSTARTING 32650
864#define OCR_HELP 32651
865
866/* only defined in wine (FIXME) */
867#define OCR_DRAGOBJECT 32653
868
869#define OIC_SAMPLE 32512
870#define OIC_HAND 32513
871#define OIC_QUES 32514
872#define OIC_BANG 32515
873#define OIC_NOTE 32516
874#define OIC_WINLOGO 32517
875#define OIC_WARNING OIC_BANG
876#define OIC_ERROR OIC_HAND
877#define OIC_INFORMATION OIC_NOTE
878#endif /* OEMRESOURCE */
879
880#ifndef NOCOLOR
881
882#define COLOR_SCROLLBAR 0
883#define COLOR_BACKGROUND 1
884#define COLOR_ACTIVECAPTION 2
885#define COLOR_INACTIVECAPTION 3
886#define COLOR_MENU 4
887#define COLOR_WINDOW 5
888#define COLOR_WINDOWFRAME 6
889#define COLOR_MENUTEXT 7
890#define COLOR_WINDOWTEXT 8
891#define COLOR_CAPTIONTEXT 9
892#define COLOR_ACTIVEBORDER 10
893#define COLOR_INACTIVEBORDER 11
894#define COLOR_APPWORKSPACE 12
895#define COLOR_HIGHLIGHT 13
896#define COLOR_HIGHLIGHTTEXT 14
897#define COLOR_BTNFACE 15
898#define COLOR_BTNSHADOW 16
899#define COLOR_GRAYTEXT 17
900#define COLOR_BTNTEXT 18
901#define COLOR_INACTIVECAPTIONTEXT 19
902#define COLOR_BTNHIGHLIGHT 20
903/* win95 colors */
904#define COLOR_3DDKSHADOW 21
905#define COLOR_3DLIGHT 22
906#define COLOR_INFOTEXT 23
907#define COLOR_INFOBK 24
908#define COLOR_DESKTOP COLOR_BACKGROUND
909#define COLOR_3DFACE COLOR_BTNFACE
910#define COLOR_3DSHADOW COLOR_BTNSHADOW
911#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
912#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
913#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
914/* win98 colors */
915#define COLOR_ALTERNATEBTNFACE 25 /* undocumented, constant's name unknown */
916#define COLOR_HOTLIGHT 26
917#define COLOR_GRADIENTACTIVECAPTION 27
918#define COLOR_GRADIENTINACTIVECAPTION 28
919/* win2k/xp colors */
920#define COLOR_MENUHILIGHT 29
921#define COLOR_MENUBAR 30
922
923 /* WM_CTLCOLOR values */
924#define CTLCOLOR_MSGBOX 0
925#define CTLCOLOR_EDIT 1
926#define CTLCOLOR_LISTBOX 2
927#define CTLCOLOR_BTN 3
928#define CTLCOLOR_DLG 4
929#define CTLCOLOR_SCROLLBAR 5
930#define CTLCOLOR_STATIC 6
931
932WINUSERAPI COLORREF WINAPI GetSysColor(INT);
933WINUSERAPI BOOL WINAPI SetSysColors(INT,const INT*,const COLORREF*);
934
935#endif /* NOCOLOR */
936
937/* Edit control messages */
938#define EM_GETSEL 0x00b0
939#define EM_SETSEL 0x00b1
940#define EM_GETRECT 0x00b2
941#define EM_SETRECT 0x00b3
942#define EM_SETRECTNP 0x00b4
943#define EM_SCROLL 0x00b5
944#define EM_LINESCROLL 0x00b6
945#define EM_SCROLLCARET 0x00b7
946#define EM_GETMODIFY 0x00b8
947#define EM_SETMODIFY 0x00b9
948#define EM_GETLINECOUNT 0x00ba
949#define EM_LINEINDEX 0x00bb
950#define EM_SETHANDLE 0x00bc
951#define EM_GETHANDLE 0x00bd
952#define EM_GETTHUMB 0x00be
953/* FIXME : missing from specs 0x00bf and 0x00c0 */
954#define EM_LINELENGTH 0x00c1
955#define EM_REPLACESEL 0x00c2
956/* FIXME : missing from specs 0x00c3 */
957#define EM_GETLINE 0x00c4
958#define EM_LIMITTEXT 0x00c5
959#define EM_CANUNDO 0x00c6
960#define EM_UNDO 0x00c7
961#define EM_FMTLINES 0x00c8
962#define EM_LINEFROMCHAR 0x00c9
963/* FIXME : missing from specs 0x00ca */
964#define EM_SETTABSTOPS 0x00cb
965#define EM_SETPASSWORDCHAR 0x00cc
966#define EM_EMPTYUNDOBUFFER 0x00cd
967#define EM_GETFIRSTVISIBLELINE 0x00ce
968#define EM_SETREADONLY 0x00cf
969#define EM_SETWORDBREAKPROC 0x00d0
970#define EM_GETWORDBREAKPROC 0x00d1
971#define EM_GETPASSWORDCHAR 0x00d2
972#define EM_SETMARGINS 0x00d3
973#define EM_GETMARGINS 0x00d4
974#define EM_GETLIMITTEXT 0x00d5
975#define EM_POSFROMCHAR 0x00d6
976#define EM_CHARFROMPOS 0x00d7
977#define EM_SETIMESTATUS 0x00d8
978#define EM_GETIMESTATUS 0x00d9
979/* a name change since win95 */
980#define EM_SETLIMITTEXT EM_LIMITTEXT
981
982/* IMESTATUS type */
983#define EMSIS_COMPOSITIONSTRING 1
984
985/* IMESTATUS type specific data */
986#define EIMES_GETCOMPSTRATONCE 0x0001
987#define EIMES_CANCELCOMPSTRINFOCUS 0x0002
988#define EIMES_COMPLETECOMPSTRKILLFOCUS 0x0004
989
990/* EDITWORDBREAKPROC code values */
991#define WB_LEFT 0
992#define WB_RIGHT 1
993#define WB_ISDELIMITER 2
994
995/* Edit control notification codes */
996#define EN_SETFOCUS 0x0100
997#define EN_KILLFOCUS 0x0200
998#define EN_CHANGE 0x0300
999#define EN_UPDATE 0x0400
1000#define EN_ERRSPACE 0x0500
1001#define EN_MAXTEXT 0x0501
1002#define EN_HSCROLL 0x0601
1003#define EN_VSCROLL 0x0602
1004
1005/* New since win95 : EM_SETMARGIN parameters */
1006#define EC_LEFTMARGIN 0x0001
1007#define EC_RIGHTMARGIN 0x0002
1008#define EC_USEFONTINFO 0xffff
1009
1010
1011 /* GetSystemMetrics() codes */
1012#define SM_CXSCREEN 0
1013#define SM_CYSCREEN 1
1014#define SM_CXVSCROLL 2
1015#define SM_CYHSCROLL 3
1016#define SM_CYCAPTION 4
1017#define SM_CXBORDER 5
1018#define SM_CYBORDER 6
1019#define SM_CXDLGFRAME 7
1020#define SM_CYDLGFRAME 8
1021#define SM_CYVTHUMB 9
1022#define SM_CXHTHUMB 10
1023#define SM_CXICON 11
1024#define SM_CYICON 12
1025#define SM_CXCURSOR 13
1026#define SM_CYCURSOR 14
1027#define SM_CYMENU 15
1028#define SM_CXFULLSCREEN 16
1029#define SM_CYFULLSCREEN 17
1030#define SM_CYKANJIWINDOW 18
1031#define SM_MOUSEPRESENT 19
1032#define SM_CYVSCROLL 20
1033#define SM_CXHSCROLL 21
1034#define SM_DEBUG 22
1035#define SM_SWAPBUTTON 23
1036#define SM_RESERVED1 24
1037#define SM_RESERVED2 25
1038#define SM_RESERVED3 26
1039#define SM_RESERVED4 27
1040#define SM_CXMIN 28
1041#define SM_CYMIN 29
1042#define SM_CXSIZE 30
1043#define SM_CYSIZE 31
1044#define SM_CXFRAME 32
1045#define SM_CYFRAME 33
1046#define SM_CXMINTRACK 34
1047#define SM_CYMINTRACK 35
1048#define SM_CXDOUBLECLK 36
1049#define SM_CYDOUBLECLK 37
1050#define SM_CXICONSPACING 38
1051#define SM_CYICONSPACING 39
1052#define SM_MENUDROPALIGNMENT 40
1053#define SM_PENWINDOWS 41
1054#define SM_DBCSENABLED 42
1055#define SM_CMOUSEBUTTONS 43
1056#define SM_CXFIXEDFRAME SM_CXDLGFRAME
1057#define SM_CYFIXEDFRAME SM_CYDLGFRAME
1058#define SM_CXSIZEFRAME SM_CXFRAME
1059#define SM_CYSIZEFRAME SM_CYFRAME
1060#define SM_SECURE 44
1061#define SM_CXEDGE 45
1062#define SM_CYEDGE 46
1063#define SM_CXMINSPACING 47
1064#define SM_CYMINSPACING 48
1065#define SM_CXSMICON 49
1066#define SM_CYSMICON 50
1067#define SM_CYSMCAPTION 51
1068#define SM_CXSMSIZE 52
1069#define SM_CYSMSIZE 53
1070#define SM_CXMENUSIZE 54
1071#define SM_CYMENUSIZE 55
1072#define SM_ARRANGE 56
1073#define SM_CXMINIMIZED 57
1074#define SM_CYMINIMIZED 58
1075#define SM_CXMAXTRACK 59
1076#define SM_CYMAXTRACK 60
1077#define SM_CXMAXIMIZED 61
1078#define SM_CYMAXIMIZED 62
1079#define SM_NETWORK 63
1080#define SM_CLEANBOOT 67
1081#define SM_CXDRAG 68
1082#define SM_CYDRAG 69
1083#define SM_SHOWSOUNDS 70
1084#define SM_CXMENUCHECK 71
1085#define SM_CYMENUCHECK 72
1086#define SM_SLOWMACHINE 73
1087#define SM_MIDEASTENABLED 74
1088#define SM_MOUSEWHEELPRESENT 75
1089#define SM_XVIRTUALSCREEN 76
1090#define SM_YVIRTUALSCREEN 77
1091#define SM_CXVIRTUALSCREEN 78
1092#define SM_CYVIRTUALSCREEN 79
1093#define SM_CMONITORS 80
1094#define SM_SAMEDISPLAYFORMAT 81
1095#define SM_IMMENABLED 82
1096#define SM_CXFOCUSBORDER 83
1097#define SM_CYFOCUSBORDER 84
1098#define SM_TABLETPC 86
1099#define SM_MEDIACENTER 87
1100#define SM_STARTER 88
1101#define SM_SERVERR2 89
1102#define SM_CMETRICS 90
1103#define SM_MOUSEHORIZONTALWHEELPRESENT 91
1104
1105#define SM_REMOTESESSION 0x1000
1106#define SM_SHUTTINGDOWN 0x2000
1107#define SM_REMOTECONTROL 0x2001
1108#define SM_CARETBLINKINGENABLED 0x2002
1109
1110#define PMB_ACTIVE 0x00000001
1111
1112/* Messages */
1113#define WM_NULL 0x0000
1114#define WM_CREATE 0x0001
1115#define WM_DESTROY 0x0002
1116#define WM_MOVE 0x0003
1117#define WM_SIZEWAIT 0x0004
1118#define WM_SIZE 0x0005
1119#define WM_ACTIVATE 0x0006
1120#define WM_SETFOCUS 0x0007
1121#define WM_KILLFOCUS 0x0008
1122#define WM_SETVISIBLE 0x0009
1123#define WM_ENABLE 0x000a
1124#define WM_SETREDRAW 0x000b
1125#define WM_SETTEXT 0x000c
1126#define WM_GETTEXT 0x000d
1127#define WM_GETTEXTLENGTH 0x000e
1128#define WM_PAINT 0x000f
1129#define WM_CLOSE 0x0010
1130#define WM_QUERYENDSESSION 0x0011
1131#define WM_QUIT 0x0012
1132#define WM_QUERYOPEN 0x0013
1133#define WM_ERASEBKGND 0x0014
1134#define WM_SYSCOLORCHANGE 0x0015
1135#define WM_ENDSESSION 0x0016
1136#define WM_SYSTEMERROR 0x0017
1137#define WM_SHOWWINDOW 0x0018
1138#define WM_CTLCOLOR 0x0019
1139#define WM_WININICHANGE 0x001a
1140#define WM_SETTINGCHANGE WM_WININICHANGE
1141#define WM_DEVMODECHANGE 0x001b
1142#define WM_ACTIVATEAPP 0x001c
1143#define WM_FONTCHANGE 0x001d
1144#define WM_TIMECHANGE 0x001e
1145#define WM_CANCELMODE 0x001f
1146#define WM_SETCURSOR 0x0020
1147#define WM_MOUSEACTIVATE 0x0021
1148#define WM_CHILDACTIVATE 0x0022
1149#define WM_QUEUESYNC 0x0023
1150#define WM_GETMINMAXINFO 0x0024
1151
1152#define WM_PAINTICON 0x0026
1153#define WM_ICONERASEBKGND 0x0027
1154#define WM_NEXTDLGCTL 0x0028
1155#define WM_ALTTABACTIVE 0x0029
1156#define WM_SPOOLERSTATUS 0x002a
1157#define WM_DRAWITEM 0x002b
1158#define WM_MEASUREITEM 0x002c
1159#define WM_DELETEITEM 0x002d
1160#define WM_VKEYTOITEM 0x002e
1161#define WM_CHARTOITEM 0x002f
1162#define WM_SETFONT 0x0030
1163#define WM_GETFONT 0x0031
1164#define WM_SETHOTKEY 0x0032
1165#define WM_GETHOTKEY 0x0033
1166#define WM_FILESYSCHANGE 0x0034
1167#define WM_ISACTIVEICON 0x0035
1168#define WM_QUERYPARKICON 0x0036
1169#define WM_QUERYDRAGICON 0x0037
1170#define WM_QUERYSAVESTATE 0x0038
1171#define WM_COMPAREITEM 0x0039
1172#define WM_TESTING 0x003a
1173
1174#define WM_GETOBJECT 0x003d
1175
1176#define WM_ACTIVATESHELLWINDOW 0x003e
1177
1178#define WM_COMPACTING 0x0041
1179
1180#define WM_COMMNOTIFY 0x0044
1181#define WM_WINDOWPOSCHANGING 0x0046
1182#define WM_WINDOWPOSCHANGED 0x0047
1183#define WM_POWER 0x0048
1184
1185 /* Win32 4.0 messages */
1186#define WM_COPYDATA 0x004a
1187#define WM_CANCELJOURNAL 0x004b
1188#define WM_KEYF1 0x004d
1189#define WM_NOTIFY 0x004e
1190#define WM_INPUTLANGCHANGEREQUEST 0x0050
1191#define WM_INPUTLANGCHANGE 0x0051
1192#define WM_TCARD 0x0052
1193#define WM_HELP 0x0053
1194#define WM_USERCHANGED 0x0054
1195#define WM_NOTIFYFORMAT 0x0055
1196
1197#define WM_CONTEXTMENU 0x007b
1198#define WM_STYLECHANGING 0x007c
1199#define WM_STYLECHANGED 0x007d
1200#define WM_DISPLAYCHANGE 0x007e
1201#define WM_GETICON 0x007f
1202#define WM_SETICON 0x0080
1203
1204 /* Non-client system messages */
1205#define WM_NCCREATE 0x0081
1206#define WM_NCDESTROY 0x0082
1207#define WM_NCCALCSIZE 0x0083
1208#define WM_NCHITTEST 0x0084
1209#define WM_NCPAINT 0x0085
1210#define WM_NCACTIVATE 0x0086
1211
1212#define WM_GETDLGCODE 0x0087
1213#define WM_SYNCPAINT 0x0088
1214#define WM_SYNCTASK 0x0089
1215
1216 /* Non-client mouse messages */
1217#define WM_NCMOUSEMOVE 0x00a0
1218#define WM_NCLBUTTONDOWN 0x00a1
1219#define WM_NCLBUTTONUP 0x00a2
1220#define WM_NCLBUTTONDBLCLK 0x00a3
1221#define WM_NCRBUTTONDOWN 0x00a4
1222#define WM_NCRBUTTONUP 0x00a5
1223#define WM_NCRBUTTONDBLCLK 0x00a6
1224#define WM_NCMBUTTONDOWN 0x00a7
1225#define WM_NCMBUTTONUP 0x00a8
1226#define WM_NCMBUTTONDBLCLK 0x00a9
1227
1228#define WM_NCXBUTTONDOWN 0x00ab
1229#define WM_NCXBUTTONUP 0x00ac
1230#define WM_NCXBUTTONDBLCLK 0x00ad
1231
1232 /* Raw input */
1233#define WM_INPUT_DEVICE_CHANGE 0x00fe
1234#define WM_INPUT 0x00ff
1235
1236 /* Keyboard messages */
1237#define WM_KEYDOWN 0x0100
1238#define WM_KEYUP 0x0101
1239#define WM_CHAR 0x0102
1240#define WM_DEADCHAR 0x0103
1241#define WM_SYSKEYDOWN 0x0104
1242#define WM_SYSKEYUP 0x0105
1243#define WM_SYSCHAR 0x0106
1244#define WM_SYSDEADCHAR 0x0107
1245#define WM_UNICHAR 0x0109
1246#define WM_KEYFIRST WM_KEYDOWN
1247#define WM_KEYLAST 0x0109
1248
1249/* Win32 4.0 messages for IME */
1250#define WM_IME_STARTCOMPOSITION 0x010d
1251#define WM_IME_ENDCOMPOSITION 0x010e
1252#define WM_IME_COMPOSITION 0x010f
1253#define WM_IME_KEYLAST 0x010f
1254
1255#define WM_INITDIALOG 0x0110
1256#define WM_COMMAND 0x0111
1257#define WM_SYSCOMMAND 0x0112
1258#define WM_TIMER 0x0113
1259
1260 /* scroll messages */
1261#define WM_HSCROLL 0x0114
1262#define WM_VSCROLL 0x0115
1263
1264/* Menu messages */
1265#define WM_INITMENU 0x0116
1266#define WM_INITMENUPOPUP 0x0117
1267
1268#define WM_MENUSELECT 0x011F
1269#define WM_MENUCHAR 0x0120
1270#define WM_ENTERIDLE 0x0121
1271
1272#define WM_MENURBUTTONUP 0x0122
1273#define WM_MENUDRAG 0x0123
1274#define WM_MENUGETOBJECT 0x0124
1275#define WM_UNINITMENUPOPUP 0x0125
1276#define WM_MENUCOMMAND 0x0126
1277
1278#define WM_CHANGEUISTATE 0x0127
1279#define WM_UPDATEUISTATE 0x0128
1280#define WM_QUERYUISTATE 0x0129
1281
1282/* UI flags for WM_*UISTATE */
1283/* for low-order word of wparam */
1284#define UIS_SET 1
1285#define UIS_CLEAR 2
1286#define UIS_INITIALIZE 3
1287/* for hi-order word of wparam */
1288#define UISF_HIDEFOCUS 0x1
1289#define UISF_HIDEACCEL 0x2
1290#define UISF_ACTIVE 0x4
1291
1292#define WM_LBTRACKPOINT 0x0131
1293
1294 /* Win32 CTLCOLOR messages */
1295#define WM_CTLCOLORMSGBOX 0x0132
1296#define WM_CTLCOLOREDIT 0x0133
1297#define WM_CTLCOLORLISTBOX 0x0134
1298#define WM_CTLCOLORBTN 0x0135
1299#define WM_CTLCOLORDLG 0x0136
1300#define WM_CTLCOLORSCROLLBAR 0x0137
1301#define WM_CTLCOLORSTATIC 0x0138
1302
1303#define MN_GETHMENU 0x01E1
1304
1305 /* Mouse messages */
1306#define WM_MOUSEMOVE 0x0200
1307#define WM_LBUTTONDOWN 0x0201
1308#define WM_LBUTTONUP 0x0202
1309#define WM_LBUTTONDBLCLK 0x0203
1310#define WM_RBUTTONDOWN 0x0204
1311#define WM_RBUTTONUP 0x0205
1312#define WM_RBUTTONDBLCLK 0x0206
1313#define WM_MBUTTONDOWN 0x0207
1314#define WM_MBUTTONUP 0x0208
1315#define WM_MBUTTONDBLCLK 0x0209
1316#define WM_MOUSEWHEEL 0x020A
1317#define WM_XBUTTONDOWN 0x020B
1318#define WM_XBUTTONUP 0x020C
1319#define WM_XBUTTONDBLCLK 0x020D
1320#define WM_MOUSEHWHEEL 0x020E
1321
1322#define XBUTTON1 0x0001
1323#define XBUTTON2 0x0002
1324
1325#define WM_MOUSEFIRST 0x0200
1326#define WM_MOUSELAST 0x020E
1327
1328#define WHEEL_DELTA 120
1329#define WHEEL_PAGESCROLL (UINT_MAX)
1330#define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam))
1331
1332#define WM_PARENTNOTIFY 0x0210
1333#define WM_ENTERMENULOOP 0x0211
1334#define WM_EXITMENULOOP 0x0212
1335#define WM_NEXTMENU 0x0213
1336
1337 /* Win32 4.0 messages */
1338#define WM_SIZING 0x0214
1339#define WM_CAPTURECHANGED 0x0215
1340#define WM_MOVING 0x0216
1341#define WM_POWERBROADCAST 0x0218
1342#define WM_DEVICECHANGE 0x0219
1343
1344/* wParam for WM_SIZING message */
1345#define WMSZ_LEFT 1
1346#define WMSZ_RIGHT 2
1347#define WMSZ_TOP 3
1348#define WMSZ_TOPLEFT 4
1349#define WMSZ_TOPRIGHT 5
1350#define WMSZ_BOTTOM 6
1351#define WMSZ_BOTTOMLEFT 7
1352#define WMSZ_BOTTOMRIGHT 8
1353
1354/* wParam for WM_POWERBROADCAST */
1355#define PBT_APMQUERYSUSPEND 0x0000
1356#define PBT_APMQUERYSTANDBY 0x0001
1357#define PBT_APMQUERYSUSPENDFAILED 0x0002
1358#define PBT_APMQUERYSTANDBYFAILED 0x0003
1359#define PBT_APMSUSPEND 0x0004
1360#define PBT_APMSTANDBY 0x0005
1361#define PBT_APMRESUMECRITICAL 0x0006
1362#define PBT_APMRESUMESUSPEND 0x0007
1363#define PBT_APMRESUMESTANDBY 0x0008
1364#define PBT_APMBATTERYLOW 0x0009
1365#define PBT_APMPOWERSTATUSCHANGE 0x000A
1366#define PBT_APMOEMEVENT 0x000B
1367#define PBT_APMRESUMEAUTOMATIC 0x0012
1368
1369#define PBTF_APMRESUMEFROMFAILURE 0x00000001
1370
1371 /* MDI messages */
1372#define WM_MDICREATE 0x0220
1373#define WM_MDIDESTROY 0x0221
1374#define WM_MDIACTIVATE 0x0222
1375#define WM_MDIRESTORE 0x0223
1376#define WM_MDINEXT 0x0224
1377#define WM_MDIMAXIMIZE 0x0225
1378#define WM_MDITILE 0x0226
1379#define WM_MDICASCADE 0x0227
1380#define WM_MDIICONARRANGE 0x0228
1381#define WM_MDIGETACTIVE 0x0229
1382#define WM_MDIREFRESHMENU 0x0234
1383
1384 /* D&D messages */
1385#define WM_DROPOBJECT 0x022A
1386#define WM_QUERYDROPOBJECT 0x022B
1387#define WM_BEGINDRAG 0x022C
1388#define WM_DRAGLOOP 0x022D
1389#define WM_DRAGSELECT 0x022E
1390#define WM_DRAGMOVE 0x022F
1391#define WM_MDISETMENU 0x0230
1392
1393#define WM_ENTERSIZEMOVE 0x0231
1394#define WM_EXITSIZEMOVE 0x0232
1395#define WM_DROPFILES 0x0233
1396
1397
1398/* Win32 4.0 messages for IME */
1399#define WM_IME_SETCONTEXT 0x0281
1400#define WM_IME_NOTIFY 0x0282
1401#define WM_IME_CONTROL 0x0283
1402#define WM_IME_COMPOSITIONFULL 0x0284
1403#define WM_IME_SELECT 0x0285
1404#define WM_IME_CHAR 0x0286
1405/* Win32 5.0 messages for IME */
1406#define WM_IME_REQUEST 0x0288
1407
1408/* Win32 4.0 messages for IME */
1409#define WM_IME_KEYDOWN 0x0290
1410#define WM_IME_KEYUP 0x0291
1411
1412#define WM_NCMOUSEHOVER 0x02A0
1413#define WM_MOUSEHOVER 0x02A1
1414#define WM_MOUSELEAVE 0x02A3
1415#define WM_NCMOUSELEAVE 0x02A2
1416
1417#define WM_WTSSESSION_CHANGE 0x02B1
1418
1419#define WM_TABLET_FIRST 0x02c0
1420#define WM_TABLET_LAST 0x02df
1421
1422/* Clipboard command messages */
1423#define WM_CUT 0x0300
1424#define WM_COPY 0x0301
1425#define WM_PASTE 0x0302
1426#define WM_CLEAR 0x0303
1427#define WM_UNDO 0x0304
1428
1429/* Clipboard owner messages */
1430#define WM_RENDERFORMAT 0x0305
1431#define WM_RENDERALLFORMATS 0x0306
1432#define WM_DESTROYCLIPBOARD 0x0307
1433
1434/* Clipboard viewer messages */
1435#define WM_DRAWCLIPBOARD 0x0308
1436#define WM_PAINTCLIPBOARD 0x0309
1437#define WM_VSCROLLCLIPBOARD 0x030A
1438#define WM_SIZECLIPBOARD 0x030B
1439#define WM_ASKCBFORMATNAME 0x030C
1440#define WM_CHANGECBCHAIN 0x030D
1441#define WM_HSCROLLCLIPBOARD 0x030E
1442
1443#define WM_QUERYNEWPALETTE 0x030F
1444#define WM_PALETTEISCHANGING 0x0310
1445#define WM_PALETTECHANGED 0x0311
1446#define WM_HOTKEY 0x0312
1447
1448#define WM_PRINT 0x0317
1449#define WM_PRINTCLIENT 0x0318
1450#define WM_APPCOMMAND 0x0319
1451#define WM_THEMECHANGED 0x031A
1452#define WM_CLIPBOARDUPDATE 0x031D
1453
1454#define WM_DWMCOMPOSITIONCHANGED 0x031E
1455#define WM_DWMNCRENDERINGCHANGED 0x031F
1456#define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320
1457#define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321
1458
1459#define WM_GETTITLEBARINFOEX 0x033F
1460
1461#define WM_HANDHELDFIRST 0x0358
1462#define WM_HANDHELDLAST 0x035F
1463
1464#define WM_AFXFIRST 0x0360
1465#define WM_AFXLAST 0x037F
1466
1467#define WM_PENWINFIRST 0x0380
1468#define WM_PENWINLAST 0x038F
1469
1470#define WM_APP 0x8000
1471
1472#define UNICODE_NOCHAR 0xFFFF
1473
1474/* MsgWaitForMultipleObjectsEx flags */
1475#define MWMO_WAITALL 0x0001
1476#define MWMO_ALERTABLE 0x0002
1477#define MWMO_INPUTAVAILABLE 0x0004
1478
1479/* WM_GETDLGCODE values */
1480#define DLGC_WANTARROWS 0x0001
1481#define DLGC_WANTTAB 0x0002
1482#define DLGC_WANTALLKEYS 0x0004
1483#define DLGC_WANTMESSAGE 0x0004
1484#define DLGC_HASSETSEL 0x0008
1485#define DLGC_DEFPUSHBUTTON 0x0010
1486#define DLGC_UNDEFPUSHBUTTON 0x0020
1487#define DLGC_RADIOBUTTON 0x0040
1488#define DLGC_WANTCHARS 0x0080
1489#define DLGC_STATIC 0x0100
1490#define DLGC_BUTTON 0x2000
1491
1492/* Standard dialog button IDs */
1493#define IDOK 1
1494#define IDCANCEL 2
1495#define IDABORT 3
1496#define IDRETRY 4
1497#define IDIGNORE 5
1498#define IDYES 6
1499#define IDNO 7
1500#define IDCLOSE 8
1501#define IDHELP 9
1502#define IDTRYAGAIN 10
1503#define IDCONTINUE 11
1504
1505#ifndef IDTIMEOUT
1506#define IDTIMEOUT 32000
1507#endif
1508
1509/* Used for EnumDisplaySettingsEx */
1510#define ENUM_CURRENT_SETTINGS ((DWORD) -1)
1511#define ENUM_REGISTRY_SETTINGS ((DWORD) -2)
1512
1513/* Used for PrintWindow */
1514#define PW_CLIENTONLY 0x00000001
1515
1516/****** Window classes ******/
1517
1518typedef struct tagCREATESTRUCTA
1519{
1520 LPVOID lpCreateParams;
1521 HINSTANCE hInstance;
1522 HMENU hMenu;
1523 HWND hwndParent;
1524 INT cy;
1525 INT cx;
1526 INT y;
1527 INT x;
1528 LONG style;
1529 LPCSTR lpszName;
1530 LPCSTR lpszClass;
1531 DWORD dwExStyle;
1532} CREATESTRUCTA, *LPCREATESTRUCTA;
1533
1534typedef struct tagCREATESTRUCTW
1535{
1536 LPVOID lpCreateParams;
1537 HINSTANCE hInstance;
1538 HMENU hMenu;
1539 HWND hwndParent;
1540 INT cy;
1541 INT cx;
1542 INT y;
1543 INT x;
1544 LONG style;
1545 LPCWSTR lpszName;
1546 LPCWSTR lpszClass;
1547 DWORD dwExStyle;
1548} CREATESTRUCTW, *LPCREATESTRUCTW;
1549
1550DECL_WINELIB_TYPE_AW(CREATESTRUCT)
1551DECL_WINELIB_TYPE_AW(LPCREATESTRUCT)
1552
1553typedef struct tagPAINTSTRUCT
1554{
1555 HDC hdc;
1556 BOOL fErase;
1557 RECT rcPaint;
1558 BOOL fRestore;
1559 BOOL fIncUpdate;
1560 BYTE rgbReserved[32];
1561} PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT;
1562
1563typedef struct tagCLIENTCREATESTRUCT
1564{
1565 HMENU hWindowMenu;
1566 UINT idFirstChild;
1567} CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
1568
1569
1570typedef struct tagMDICREATESTRUCTA
1571{
1572 LPCSTR szClass;
1573 LPCSTR szTitle;
1574 HINSTANCE hOwner;
1575 INT x;
1576 INT y;
1577 INT cx;
1578 INT cy;
1579 DWORD style;
1580 LPARAM lParam;
1581} MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
1582
1583typedef struct tagMDICREATESTRUCTW
1584{
1585 LPCWSTR szClass;
1586 LPCWSTR szTitle;
1587 HINSTANCE hOwner;
1588 INT x;
1589 INT y;
1590 INT cx;
1591 INT cy;
1592 DWORD style;
1593 LPARAM lParam;
1594} MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
1595
1596DECL_WINELIB_TYPE_AW(MDICREATESTRUCT)
1597DECL_WINELIB_TYPE_AW(LPMDICREATESTRUCT)
1598
1599#define MDITILE_VERTICAL 0x0000
1600#define MDITILE_HORIZONTAL 0x0001
1601#define MDITILE_SKIPDISABLED 0x0002
1602#define MDITILE_ZORDER 0x0004
1603
1604#define MDIS_ALLCHILDSTYLES 0x0001
1605
1606typedef struct tagSTYLESTRUCT {
1607 DWORD styleOld;
1608 DWORD styleNew;
1609} STYLESTRUCT, *LPSTYLESTRUCT;
1610
1611#define WC_DIALOG MAKEINTATOM(0x8002)
1612
1613 /* Offsets for GetWindowLong() and GetWindowWord() */
1614#define GWL_EXSTYLE (-20)
1615#define GWL_STYLE (-16)
1616#if !defined _WIN64 && !defined __WINESRC__
1617# define GWL_USERDATA (-21)
1618# define GWL_ID (-12)
1619# define GWL_HWNDPARENT (-8)
1620# define GWL_HINSTANCE (-6)
1621# define GWL_WNDPROC (-4)
1622# define DWL_MSGRESULT 0
1623# define DWL_DLGPROC 4
1624# define DWL_USER 8
1625#endif /* _WIN64 && __WINESRC__ */
1626
1627 /* Offsets for GetWindowLongPtr() and SetWindowLongPtr() */
1628#define GWLP_USERDATA (-21)
1629#define GWLP_ID (-12)
1630#define GWLP_HWNDPARENT (-8)
1631#define GWLP_HINSTANCE (-6)
1632#define GWLP_WNDPROC (-4)
1633#define DWLP_MSGRESULT 0
1634#define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT)
1635#define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC)
1636
1637 /* GetWindow() constants */
1638#define GW_HWNDFIRST 0
1639#define GW_HWNDLAST 1
1640#define GW_HWNDNEXT 2
1641#define GW_HWNDPREV 3
1642#define GW_OWNER 4
1643#define GW_CHILD 5
1644
1645/* GetAncestor() constants */
1646#define GA_PARENT 1
1647#define GA_ROOT 2
1648#define GA_ROOTOWNER 3
1649
1650 /* WM_GETMINMAXINFO struct */
1651typedef struct tagMINMAXINFO
1652{
1653 POINT ptReserved;
1654 POINT ptMaxSize;
1655 POINT ptMaxPosition;
1656 POINT ptMinTrackSize;
1657 POINT ptMaxTrackSize;
1658} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
1659
1660
1661 /* RedrawWindow() flags */
1662#define RDW_INVALIDATE 0x0001
1663#define RDW_INTERNALPAINT 0x0002
1664#define RDW_ERASE 0x0004
1665#define RDW_VALIDATE 0x0008
1666#define RDW_NOINTERNALPAINT 0x0010
1667#define RDW_NOERASE 0x0020
1668#define RDW_NOCHILDREN 0x0040
1669#define RDW_ALLCHILDREN 0x0080
1670#define RDW_UPDATENOW 0x0100
1671#define RDW_ERASENOW 0x0200
1672#define RDW_FRAME 0x0400
1673#define RDW_NOFRAME 0x0800
1674
1675/* debug flags */
1676#define DBGFILL_ALLOC 0xfd
1677#define DBGFILL_FREE 0xfb
1678#define DBGFILL_BUFFER 0xf9
1679#define DBGFILL_STACK 0xf7
1680
1681 /* WM_WINDOWPOSCHANGING/CHANGED struct */
1682typedef struct tagWINDOWPOS
1683{
1684 HWND hwnd;
1685 HWND hwndInsertAfter;
1686 INT x;
1687 INT y;
1688 INT cx;
1689 INT cy;
1690 UINT flags;
1691} WINDOWPOS, *PWINDOWPOS, *LPWINDOWPOS;
1692
1693
1694 /* WM_MOUSEACTIVATE return values */
1695#define MA_ACTIVATE 1
1696#define MA_ACTIVATEANDEAT 2
1697#define MA_NOACTIVATE 3
1698#define MA_NOACTIVATEANDEAT 4
1699
1700 /* WM_ACTIVATE wParam values */
1701#define WA_INACTIVE 0
1702#define WA_ACTIVE 1
1703#define WA_CLICKACTIVE 2
1704
1705/* WM_GETICON/WM_SETICON params values */
1706#define ICON_SMALL 0
1707#define ICON_BIG 1
1708#define ICON_SMALL2 2
1709
1710 /* WM_NCCALCSIZE parameter structure */
1711typedef struct
1712{
1713 RECT rgrc[3];
1714 WINDOWPOS *lppos;
1715} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
1716
1717
1718 /* WM_NCCALCSIZE return flags */
1719#define WVR_ALIGNTOP 0x0010
1720#define WVR_ALIGNLEFT 0x0020
1721#define WVR_ALIGNBOTTOM 0x0040
1722#define WVR_ALIGNRIGHT 0x0080
1723#define WVR_HREDRAW 0x0100
1724#define WVR_VREDRAW 0x0200
1725#define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW)
1726#define WVR_VALIDRECTS 0x0400
1727
1728 /* WM_NCHITTEST return codes */
1729#define HTERROR (-2)
1730#define HTTRANSPARENT (-1)
1731#define HTNOWHERE 0
1732#define HTCLIENT 1
1733#define HTCAPTION 2
1734#define HTSYSMENU 3
1735#define HTSIZE 4
1736#define HTMENU 5
1737#define HTHSCROLL 6
1738#define HTVSCROLL 7
1739#define HTMINBUTTON 8
1740#define HTMAXBUTTON 9
1741#define HTLEFT 10
1742#define HTRIGHT 11
1743#define HTTOP 12
1744#define HTTOPLEFT 13
1745#define HTTOPRIGHT 14
1746#define HTBOTTOM 15
1747#define HTBOTTOMLEFT 16
1748#define HTBOTTOMRIGHT 17
1749#define HTBORDER 18
1750#define HTGROWBOX HTSIZE
1751#define HTREDUCE HTMINBUTTON
1752#define HTZOOM HTMAXBUTTON
1753#define HTOBJECT 19
1754#define HTCLOSE 20
1755#define HTHELP 21
1756#define HTSIZEFIRST HTLEFT
1757#define HTSIZELAST HTBOTTOMRIGHT
1758
1759/* SendMessageTimeout flags */
1760#define SMTO_NORMAL 0x0000
1761#define SMTO_BLOCK 0x0001
1762#define SMTO_ABORTIFHUNG 0x0002
1763#define SMTO_NOTIMEOUTIFNOTHUNG 0x0008
1764
1765 /* WM_SYSCOMMAND parameters */
1766#ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */
1767#undef SC_SIZE
1768#endif
1769#define SC_SIZE 0xf000
1770#define SC_MOVE 0xf010
1771#define SC_MINIMIZE 0xf020
1772#define SC_MAXIMIZE 0xf030
1773#define SC_NEXTWINDOW 0xf040
1774#define SC_PREVWINDOW 0xf050
1775#define SC_CLOSE 0xf060
1776#define SC_VSCROLL 0xf070
1777#define SC_HSCROLL 0xf080
1778#define SC_MOUSEMENU 0xf090
1779#define SC_KEYMENU 0xf100
1780#define SC_ARRANGE 0xf110
1781#define SC_RESTORE 0xf120
1782#define SC_TASKLIST 0xf130
1783#define SC_SCREENSAVE 0xf140
1784#define SC_HOTKEY 0xf150
1785 /* Win32 4.0 */
1786#define SC_DEFAULT 0xf160
1787#define SC_MONITORPOWER 0xf170
1788#define SC_CONTEXTHELP 0xf180
1789#define SC_SEPARATOR 0xf00f
1790
1791/* obsolete names(SC_ICON and SC_ZOOM) */
1792#define SC_ICON SC_MINIMIZE
1793#define SC_ZOOM SC_MAXIMIZE
1794
1795#ifndef NOWINSTYLES
1796#define CS_VREDRAW 0x00000001
1797#define CS_HREDRAW 0x00000002
1798#define CS_KEYCVTWINDOW 0x00000004
1799#define CS_DBLCLKS 0x00000008
1800#define CS_OWNDC 0x00000020
1801#define CS_CLASSDC 0x00000040
1802#define CS_PARENTDC 0x00000080
1803#define CS_NOKEYCVT 0x00000100
1804#define CS_NOCLOSE 0x00000200
1805#define CS_SAVEBITS 0x00000800
1806#define CS_BYTEALIGNCLIENT 0x00001000
1807#define CS_BYTEALIGNWINDOW 0x00002000
1808#define CS_GLOBALCLASS 0x00004000
1809#define CS_IME 0x00010000
1810#define CS_DROPSHADOW 0x00020000
1811#endif /* NOWINSTYLES */
1812
1813#define PRF_CHECKVISIBLE 0x00000001L
1814#define PRF_NONCLIENT 0x00000002L
1815#define PRF_CLIENT 0x00000004L
1816#define PRF_ERASEBKGND 0x00000008L
1817#define PRF_CHILDREN 0x00000010L
1818#define PRF_OWNED 0x00000020L
1819
1820 /* Offsets for GetClassLong() and GetClassWord() */
1821#if !defined _WIN64 && !defined __WINESRC__
1822# define GCL_MENUNAME (-8)
1823# define GCL_HBRBACKGROUND (-10)
1824# define GCL_HCURSOR (-12)
1825# define GCL_HICON (-14)
1826# define GCL_HMODULE (-16)
1827# define GCL_WNDPROC (-24)
1828# define GCL_HICONSM (-34)
1829#endif /* _WIN64 && __WINESRC__ */
1830
1831#define GCL_CBWNDEXTRA (-18)
1832#define GCL_CBCLSEXTRA (-20)
1833#define GCL_STYLE (-26)
1834#define GCW_ATOM (-32)
1835
1836#define GCLP_MENUNAME (-8)
1837#define GCLP_HBRBACKGROUND (-10)
1838#define GCLP_HCURSOR (-12)
1839#define GCLP_HICON (-14)
1840#define GCLP_HMODULE (-16)
1841#define GCLP_WNDPROC (-24)
1842#define GCLP_HICONSM (-34)
1843
1844/* BroadcastSystemMessage flags */
1845#define BSM_ALLCOMPONENTS 0x00000000
1846#define BSM_VXDS 0x00000001
1847#define BSM_NETDRIVER 0x00000002
1848#define BSM_INSTALLABLEDRIVERS 0x00000004
1849#define BSM_APPLICATIONS 0x00000008
1850#define BSM_ALLDESKTOPS 0x00000010
1851
1852#define BSF_QUERY 0x00000001
1853#define BSF_IGNORECURRENTTASK 0x00000002
1854#define BSF_FLUSHDISK 0x00000004
1855#define BSF_NOHANG 0x00000008
1856#define BSF_POSTMESSAGE 0x00000010
1857#define BSF_FORCEIFHUNG 0x00000020
1858#define BSF_NOTIMEOUTIFNOTHUNG 0x00000040
1859#define BSF_ALLOWSFW 0x00000080
1860#define BSF_SENDNOTIFYMESSAGE 0x00000100
1861#define BSF_RETURNHDESK 0x00000200
1862#define BSF_LUID 0x00000400
1863
1864#define BROADCAST_QUERY_DENY 0x424D5144
1865
1866/***** Window hooks *****/
1867
1868 /* Hook values */
1869#define WH_MIN (-1)
1870#define WH_MSGFILTER (-1)
1871#define WH_JOURNALRECORD 0
1872#define WH_JOURNALPLAYBACK 1
1873#define WH_KEYBOARD 2
1874#define WH_GETMESSAGE 3
1875#define WH_CALLWNDPROC 4
1876#define WH_CBT 5
1877#define WH_SYSMSGFILTER 6
1878#define WH_MOUSE 7
1879#define WH_HARDWARE 8
1880#define WH_DEBUG 9
1881#define WH_SHELL 10
1882#define WH_FOREGROUNDIDLE 11
1883#define WH_CALLWNDPROCRET 12
1884#define WH_KEYBOARD_LL 13
1885#define WH_MOUSE_LL 14
1886#define WH_MAX 14
1887
1888#define WH_MINHOOK WH_MIN
1889#define WH_MAXHOOK WH_MAX
1890
1891 /* Hook action codes */
1892#define HC_ACTION 0
1893#define HC_GETNEXT 1
1894#define HC_SKIP 2
1895#define HC_NOREMOVE 3
1896#define HC_NOREM HC_NOREMOVE
1897#define HC_SYSMODALON 4
1898#define HC_SYSMODALOFF 5
1899
1900 /* CallMsgFilter() values */
1901#define MSGF_DIALOGBOX 0
1902#define MSGF_MESSAGEBOX 1
1903#define MSGF_MENU 2
1904#define MSGF_MOVE 3
1905#define MSGF_SIZE 4
1906#define MSGF_SCROLLBAR 5
1907#define MSGF_NEXTWINDOW 6
1908#define MSGF_MAX 8
1909#define MSGF_USER 0x1000
1910#define MSGF_DDEMGR 0x8001
1911
1912typedef struct tagWNDCLASSA
1913{
1914 UINT style;
1915 WNDPROC lpfnWndProc;
1916 INT cbClsExtra;
1917 INT cbWndExtra;
1918 HINSTANCE hInstance;
1919 HICON hIcon;
1920 HCURSOR hCursor;
1921 HBRUSH hbrBackground;
1922 LPCSTR lpszMenuName;
1923 LPCSTR lpszClassName;
1924} WNDCLASSA, *PWNDCLASSA, *LPWNDCLASSA;
1925
1926typedef struct tagWNDCLASSW
1927{
1928 UINT style;
1929 WNDPROC lpfnWndProc;
1930 INT cbClsExtra;
1931 INT cbWndExtra;
1932 HINSTANCE hInstance;
1933 HICON hIcon;
1934 HCURSOR hCursor;
1935 HBRUSH hbrBackground;
1936 LPCWSTR lpszMenuName;
1937 LPCWSTR lpszClassName;
1938} WNDCLASSW, *PWNDCLASSW, *LPWNDCLASSW;
1939
1940DECL_WINELIB_TYPE_AW(WNDCLASS)
1941DECL_WINELIB_TYPE_AW(PWNDCLASS)
1942DECL_WINELIB_TYPE_AW(LPWNDCLASS)
1943
1944typedef struct tagCOPYDATASTRUCT {
1945 ULONG_PTR dwData;
1946 DWORD cbData;
1947 PVOID lpData;
1948} COPYDATASTRUCT, *PCOPYDATASTRUCT;
1949
1950typedef struct tagMDINEXTMENU {
1951 HMENU hmenuIn;
1952 HMENU hmenuNext;
1953 HWND hwndNext;
1954} MDINEXTMENU, *PMDINEXTMENU, *LPMDINEXTMENU;
1955
1956typedef struct tagMULTIKEYHELPA
1957{
1958 DWORD mkSize;
1959 CHAR mkKeylist;
1960 CHAR szKeyphrase[1];
1961} MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA;
1962
1963typedef struct tagMULTIKEYHELPW
1964{
1965 DWORD mkSize;
1966 WCHAR mkKeylist;
1967 WCHAR szKeyphrase[1];
1968} MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW;
1969
1970DECL_WINELIB_TYPE_AW(MULTIKEYHELP)
1971DECL_WINELIB_TYPE_AW(PMULTIKEYHELP)
1972DECL_WINELIB_TYPE_AW(LPMULTIKEYHELP)
1973
1974typedef struct tagHELPWININFOA {
1975 int wStructSize;
1976 int x;
1977 int y;
1978 int dx;
1979 int dy;
1980 int wMax;
1981 CHAR rgchMember[2];
1982} HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA;
1983
1984typedef struct tagHELPWININFOW {
1985 int wStructSize;
1986 int x;
1987 int y;
1988 int dx;
1989 int dy;
1990 int wMax;
1991 WCHAR rgchMember[2];
1992} HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW;
1993
1994DECL_WINELIB_TYPE_AW(HELPWININFO)
1995DECL_WINELIB_TYPE_AW(PHELPWININFO)
1996DECL_WINELIB_TYPE_AW(LPHELPWININFO)
1997
1998#define HELP_CONTEXT 0x0001
1999#define HELP_QUIT 0x0002
2000#define HELP_INDEX 0x0003
2001#define HELP_CONTENTS 0x0003
2002#define HELP_HELPONHELP 0x0004
2003#define HELP_SETINDEX 0x0005
2004#define HELP_SETCONTENTS 0x0005
2005#define HELP_CONTEXTPOPUP 0x0008
2006#define HELP_FORCEFILE 0x0009
2007#define HELP_KEY 0x0101
2008#define HELP_COMMAND 0x0102
2009#define HELP_PARTIALKEY 0x0105
2010#define HELP_MULTIKEY 0x0201
2011#define HELP_SETWINPOS 0x0203
2012#define HELP_CONTEXTMENU 0x000a
2013#define HELP_FINDER 0x000b
2014#define HELP_WM_HELP 0x000c
2015#define HELP_SETPOPUP_POS 0x000d
2016
2017#define HELP_TCARD 0x8000
2018#define HELP_TCARD_DATA 0x0010
2019#define HELP_TCARD_OTHER_CALLER 0x0011
2020
2021
2022#define IDH_NO_HELP 28440
2023#define IDH_MISSING_CONTEXT 28441
2024#define IDH_GENERIC_HELP_BUTTON 28442
2025#define IDH_OK 28443
2026#define IDH_CANCEL 28444
2027#define IDH_HELP 28445
2028
2029
2030 /* ChangeDisplaySettings return codes */
2031
2032#define DISP_CHANGE_SUCCESSFUL 0
2033#define DISP_CHANGE_RESTART 1
2034#define DISP_CHANGE_FAILED (-1)
2035#define DISP_CHANGE_BADMODE (-2)
2036#define DISP_CHANGE_NOTUPDATED (-3)
2037#define DISP_CHANGE_BADFLAGS (-4)
2038#define DISP_CHANGE_BADPARAM (-5)
2039#define DISP_CHANGE_BADDUALVIEW (-6)
2040
2041/* ChangeDisplaySettings.dwFlags */
2042#define CDS_UPDATEREGISTRY 0x00000001
2043#define CDS_TEST 0x00000002
2044#define CDS_FULLSCREEN 0x00000004
2045#define CDS_GLOBAL 0x00000008
2046#define CDS_SET_PRIMARY 0x00000010
2047#define CDS_VIDEOPARAMETERS 0x00000020
2048#define CDS_NORESET 0x10000000
2049#define CDS_SETRECT 0x20000000
2050#define CDS_RESET 0x40000000
2051
2052typedef struct tagWNDCLASSEXA
2053{
2054 UINT cbSize;
2055 UINT style;
2056 WNDPROC lpfnWndProc;
2057 INT cbClsExtra;
2058 INT cbWndExtra;
2059 HINSTANCE hInstance;
2060 HICON hIcon;
2061 HCURSOR hCursor;
2062 HBRUSH hbrBackground;
2063 LPCSTR lpszMenuName;
2064 LPCSTR lpszClassName;
2065 HICON hIconSm;
2066} WNDCLASSEXA, *PWNDCLASSEXA, *LPWNDCLASSEXA;
2067
2068typedef struct tagWNDCLASSEXW
2069{
2070 UINT cbSize;
2071 UINT style;
2072 WNDPROC lpfnWndProc;
2073 INT cbClsExtra;
2074 INT cbWndExtra;
2075 HINSTANCE hInstance;
2076 HICON hIcon;
2077 HCURSOR hCursor;
2078 HBRUSH hbrBackground;
2079 LPCWSTR lpszMenuName;
2080 LPCWSTR lpszClassName;
2081 HICON hIconSm;
2082} WNDCLASSEXW, *PWNDCLASSEXW, *LPWNDCLASSEXW;
2083
2084DECL_WINELIB_TYPE_AW(WNDCLASSEX)
2085DECL_WINELIB_TYPE_AW(PWNDCLASSEX)
2086DECL_WINELIB_TYPE_AW(LPWNDCLASSEX)
2087
2088typedef struct tagMSG
2089{
2090 HWND hwnd;
2091 UINT message;
2092 WPARAM wParam;
2093 LPARAM lParam;
2094 DWORD time;
2095 POINT pt;
2096} MSG, *PMSG, *LPMSG;
2097
2098#define POINTSTOPOINT(pt, pts) { (pt).x = (pts).x; (pt).y = (pts).y; }
2099#define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y)))
2100
2101#define MAKELPARAM(low,high) ((LPARAM)(DWORD)MAKELONG(low,high))
2102#define MAKEWPARAM(low,high) ((WPARAM)(DWORD)MAKELONG(low,high))
2103#define MAKELRESULT(low,high) ((LRESULT)(DWORD)MAKELONG(low,high))
2104
2105/* Cursors / Icons */
2106
2107typedef struct _ICONINFO {
2108 BOOL fIcon;
2109 DWORD xHotspot;
2110 DWORD yHotspot;
2111 HBITMAP hbmMask;
2112 HBITMAP hbmColor;
2113} ICONINFO, *PICONINFO;
2114
2115
2116typedef struct tagCURSORINFO
2117{
2118 DWORD cbSize;
2119 DWORD flags;
2120 HCURSOR hCursor;
2121 POINT ptScreenPos;
2122} CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
2123
2124#define CURSOR_SHOWING 0x00000001
2125
2126/* this is the 6 byte accel struct used in Win32 when presented to the user */
2127typedef struct tagACCEL
2128{
2129#ifdef WORDS_BIGENDIAN
2130 WORD fVirt;
2131 WORD key;
2132 DWORD cmd;
2133#else
2134 BYTE fVirt;
2135 WORD key;
2136 WORD cmd;
2137#endif
2138} ACCEL, *LPACCEL;
2139
2140
2141/* Flags for TrackPopupMenu */
2142#define TPM_LEFTBUTTON 0x0000
2143#define TPM_RECURSE 0x0001
2144#define TPM_RIGHTBUTTON 0x0002
2145#define TPM_LEFTALIGN 0x0000
2146#define TPM_CENTERALIGN 0x0004
2147#define TPM_RIGHTALIGN 0x0008
2148#define TPM_TOPALIGN 0x0000
2149#define TPM_VCENTERALIGN 0x0010
2150#define TPM_BOTTOMALIGN 0x0020
2151#define TPM_HORIZONTAL 0x0000
2152#define TPM_VERTICAL 0x0040
2153#define TPM_NONOTIFY 0x0080
2154#define TPM_RETURNCMD 0x0100
2155#define TPM_HORPOSANIMATION 0x0400
2156#define TPM_HORNEGANIMATION 0x0800
2157#define TPM_VERPOSANIMATION 0x1000
2158#define TPM_VERNEGANIMATION 0x2000
2159#define TPM_NOANIMATION 0x4000
2160#define TPM_LAYOUTRTL 0x8000
2161
2162typedef struct tagTPMPARAMS
2163{
2164 UINT cbSize;
2165 RECT rcExclude;
2166} TPMPARAMS, *LPTPMPARAMS;
2167
2168
2169/*
2170 * Combobox information
2171 */
2172typedef struct tagCOMBOBOXINFO
2173{
2174 DWORD cbSize;
2175 RECT rcItem;
2176 RECT rcButton;
2177 DWORD stateButton;
2178 HWND hwndCombo;
2179 HWND hwndItem;
2180 HWND hwndList;
2181} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
2182
2183typedef struct tagMENUITEMINFOA {
2184 UINT cbSize;
2185 UINT fMask;
2186 UINT fType;
2187 UINT fState;
2188 UINT wID;
2189 HMENU hSubMenu;
2190 HBITMAP hbmpChecked;
2191 HBITMAP hbmpUnchecked;
2192 ULONG_PTR dwItemData;
2193 LPSTR dwTypeData;
2194 UINT cch;
2195 HBITMAP hbmpItem;
2196} MENUITEMINFOA, *LPMENUITEMINFOA;
2197
2198typedef struct tagMENUITEMINFOW {
2199 UINT cbSize;
2200 UINT fMask;
2201 UINT fType;
2202 UINT fState;
2203 UINT wID;
2204 HMENU hSubMenu;
2205 HBITMAP hbmpChecked;
2206 HBITMAP hbmpUnchecked;
2207 ULONG_PTR dwItemData;
2208 LPWSTR dwTypeData;
2209 UINT cch;
2210 HBITMAP hbmpItem;
2211} MENUITEMINFOW, *LPMENUITEMINFOW;
2212
2213DECL_WINELIB_TYPE_AW(MENUITEMINFO)
2214DECL_WINELIB_TYPE_AW(LPMENUITEMINFO)
2215typedef const MENUITEMINFOA *LPCMENUITEMINFOA;
2216typedef const MENUITEMINFOW *LPCMENUITEMINFOW;
2217DECL_WINELIB_TYPE_AW(LPCMENUITEMINFO)
2218
2219typedef struct tagMENUBARINFO {
2220 DWORD cbSize;
2221 RECT rcBar;
2222 HMENU hMenu;
2223 HWND hwndMenu;
2224 BOOL fBarFocused:1;
2225 BOOL fFocused:1;
2226} MENUBARINFO, *PMENUBARINFO, *LPMENUBARINFO;
2227
2228typedef struct tagMENUINFO {
2229 DWORD cbSize;
2230 DWORD fMask;
2231 DWORD dwStyle;
2232 UINT cyMax;
2233 HBRUSH hbrBack;
2234 DWORD dwContextHelpID;
2235 ULONG_PTR dwMenuData;
2236} MENUINFO, *LPMENUINFO;
2237
2238typedef const MENUINFO *LPCMENUINFO;
2239
2240#define MIM_MAXHEIGHT 0x00000001
2241#define MIM_BACKGROUND 0x00000002
2242#define MIM_HELPID 0x00000004
2243#define MIM_MENUDATA 0x00000008
2244#define MIM_STYLE 0x00000010
2245#define MIM_APPLYTOSUBMENUS 0x80000000
2246
2247#define MNS_NOCHECK 0x80000000
2248#define MNS_MODELESS 0x40000000
2249#define MNS_DRAGDROP 0x20000000
2250#define MNS_AUTODISMISS 0x10000000
2251#define MNS_NOTIFYBYPOS 0x08000000
2252#define MNS_CHECKORBMP 0x04000000
2253
2254typedef struct {
2255 WORD versionNumber;
2256 WORD offset;
2257} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
2258
2259
2260typedef struct {
2261 WORD mtOption;
2262 WORD mtID;
2263 WCHAR mtString[1];
2264} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
2265
2266
2267typedef VOID MENUTEMPLATE;
2268typedef PVOID *LPMENUTEMPLATE;
2269
2270/* Field specifiers for MENUITEMINFO[AW] type. */
2271#define MIIM_STATE 0x00000001
2272#define MIIM_ID 0x00000002
2273#define MIIM_SUBMENU 0x00000004
2274#define MIIM_CHECKMARKS 0x00000008
2275#define MIIM_TYPE 0x00000010
2276#define MIIM_DATA 0x00000020
2277#define MIIM_STRING 0x00000040
2278#define MIIM_BITMAP 0x00000080
2279#define MIIM_FTYPE 0x00000100
2280
2281#define HBMMENU_CALLBACK ((HBITMAP) -1)
2282#define HBMMENU_SYSTEM ((HBITMAP) 1)
2283#define HBMMENU_MBAR_RESTORE ((HBITMAP) 2)
2284#define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3)
2285#define HBMMENU_MBAR_CLOSE ((HBITMAP) 5)
2286#define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6)
2287#define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7)
2288#define HBMMENU_POPUP_CLOSE ((HBITMAP) 8)
2289#define HBMMENU_POPUP_RESTORE ((HBITMAP) 9)
2290#define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10)
2291#define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11)
2292
2293/* WM_H/VSCROLL commands */
2294#define SB_LINEUP 0
2295#define SB_LINELEFT 0
2296#define SB_LINEDOWN 1
2297#define SB_LINERIGHT 1
2298#define SB_PAGEUP 2
2299#define SB_PAGELEFT 2
2300#define SB_PAGEDOWN 3
2301#define SB_PAGERIGHT 3
2302#define SB_THUMBPOSITION 4
2303#define SB_THUMBTRACK 5
2304#define SB_TOP 6
2305#define SB_LEFT 6
2306#define SB_BOTTOM 7
2307#define SB_RIGHT 7
2308#define SB_ENDSCROLL 8
2309
2310/* Scroll bar selection constants */
2311#define SB_HORZ 0
2312#define SB_VERT 1
2313#define SB_CTL 2
2314#define SB_BOTH 3
2315
2316/* Scrollbar styles */
2317#ifndef NOWINSTYLES
2318#define SBS_HORZ 0x0000L
2319#define SBS_VERT 0x0001L
2320#define SBS_TOPALIGN 0x0002L
2321#define SBS_LEFTALIGN 0x0002L
2322#define SBS_BOTTOMALIGN 0x0004L
2323#define SBS_RIGHTALIGN 0x0004L
2324#define SBS_SIZEBOXTOPLEFTALIGN 0x0002L
2325#define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
2326#define SBS_SIZEBOX 0x0008L
2327#define SBS_SIZEGRIP 0x0010L
2328#endif /* NOWINSTYLES */
2329
2330/* EnableScrollBar() flags */
2331#define ESB_ENABLE_BOTH 0x0000
2332#define ESB_DISABLE_BOTH 0x0003
2333
2334#define ESB_DISABLE_LEFT 0x0001
2335#define ESB_DISABLE_RIGHT 0x0002
2336
2337#define ESB_DISABLE_UP 0x0001
2338#define ESB_DISABLE_DOWN 0x0002
2339
2340#define ESB_DISABLE_LTUP ESB_DISABLE_LEFT
2341#define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT
2342
2343/* Win32 button control messages */
2344#define BM_GETCHECK 0x00f0
2345#define BM_SETCHECK 0x00f1
2346#define BM_GETSTATE 0x00f2
2347#define BM_SETSTATE 0x00f3
2348#define BM_SETSTYLE 0x00f4
2349#define BM_CLICK 0x00f5
2350#define BM_GETIMAGE 0x00f6
2351#define BM_SETIMAGE 0x00f7
2352/* Winelib button control messages */
2353
2354/* Button notification codes */
2355#define BN_CLICKED 0
2356#define BN_PAINT 1
2357#define BN_HILITE 2
2358#define BN_PUSHED BN_HILITE
2359#define BN_UNHILITE 3
2360#define BN_UNPUSHED BN_UNHILITE
2361#define BN_DISABLE 4
2362#define BN_DOUBLECLICKED 5
2363#define BN_DBLCLK BN_DOUBLECLICKED
2364#define BN_SETFOCUS 6
2365#define BN_KILLFOCUS 7
2366
2367/* Button states */
2368#define BST_UNCHECKED 0x0000
2369#define BST_CHECKED 0x0001
2370#define BST_INDETERMINATE 0x0002
2371#define BST_PUSHED 0x0004
2372#define BST_FOCUS 0x0008
2373
2374/* Static Control Styles */
2375#define SS_LEFT 0x00000000L
2376#define SS_CENTER 0x00000001L
2377#define SS_RIGHT 0x00000002L
2378#define SS_ICON 0x00000003L
2379#define SS_BLACKRECT 0x00000004L
2380#define SS_GRAYRECT 0x00000005L
2381#define SS_WHITERECT 0x00000006L
2382#define SS_BLACKFRAME 0x00000007L
2383#define SS_GRAYFRAME 0x00000008L
2384#define SS_WHITEFRAME 0x00000009L
2385#define SS_USERITEM 0x0000000AL
2386#define SS_SIMPLE 0x0000000BL
2387#define SS_LEFTNOWORDWRAP 0x0000000CL
2388#define SS_OWNERDRAW 0x0000000DL
2389#define SS_BITMAP 0x0000000EL
2390#define SS_ENHMETAFILE 0x0000000FL
2391#define SS_ETCHEDHORZ 0x00000010L
2392#define SS_ETCHEDVERT 0x00000011L
2393#define SS_ETCHEDFRAME 0x00000012L
2394#define SS_TYPEMASK 0x0000001FL
2395
2396#define SS_REALSIZECONTROL 0x00000040L
2397#define SS_NOPREFIX 0x00000080L
2398#define SS_NOTIFY 0x00000100L
2399#define SS_CENTERIMAGE 0x00000200L
2400#define SS_RIGHTJUST 0x00000400L
2401#define SS_REALSIZEIMAGE 0x00000800L
2402#define SS_SUNKEN 0x00001000L
2403#define SS_EDITCONTROL 0x00002000L
2404#define SS_ENDELLIPSIS 0x00004000L
2405#define SS_PATHELLIPSIS 0x00008000L
2406#define SS_WORDELLIPSIS 0x0000C000L
2407#define SS_ELLIPSISMASK 0x0000C000L
2408
2409/* Static Control Messages */
2410#define STM_SETICON 0x0170
2411#define STM_GETICON 0x0171
2412#define STM_SETIMAGE 0x0172
2413#define STM_GETIMAGE 0x0173
2414#define STM_MSGMAX 0x0174
2415
2416#define STN_CLICKED 0
2417#define STN_DBLCLK 1
2418#define STN_ENABLE 2
2419#define STN_DISABLE 3
2420
2421/* Scrollbar messages */
2422#define SBM_SETPOS 0x00e0
2423#define SBM_GETPOS 0x00e1
2424#define SBM_SETRANGE 0x00e2
2425#define SBM_GETRANGE 0x00e3
2426#define SBM_ENABLE_ARROWS 0x00e4
2427#define SBM_SETRANGEREDRAW 0x00e6
2428#define SBM_SETSCROLLINFO 0x00e9
2429#define SBM_GETSCROLLINFO 0x00ea
2430#define SBM_GETSCROLLBARINFO 0x00eb
2431
2432/* Scrollbar info */
2433typedef struct tagSCROLLINFO
2434{
2435 UINT cbSize;
2436 UINT fMask;
2437 INT nMin;
2438 INT nMax;
2439 UINT nPage;
2440 INT nPos;
2441 INT nTrackPos;
2442} SCROLLINFO, *LPSCROLLINFO;
2443
2444typedef const SCROLLINFO *LPCSCROLLINFO;
2445
2446#define CCHILDREN_SCROLLBAR 5
2447
2448typedef struct tagSCROLLBARINFO
2449{
2450 DWORD cbSize; /* Size of SCROLLBARINFO struct */
2451 RECT rcScrollBar; /* Coordinates of the scroll bar */
2452 INT dxyLineButton; /* Height or width */
2453 INT xyThumbTop; /* Position of the top or the left */
2454 INT xyThumbBottom; /* Position of the bottom or the right */
2455 INT reserved;
2456 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
2457} SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO;
2458
2459/* GetScrollInfo() flags */
2460#define SIF_RANGE 0x0001
2461#define SIF_PAGE 0x0002
2462#define SIF_POS 0x0004
2463#define SIF_DISABLENOSCROLL 0x0008
2464#define SIF_TRACKPOS 0x0010
2465#define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
2466
2467/* Listbox styles */
2468#ifndef NOWINSTYLES
2469#define LBS_NOTIFY 0x0001
2470#define LBS_SORT 0x0002
2471#define LBS_NOREDRAW 0x0004
2472#define LBS_MULTIPLESEL 0x0008
2473#define LBS_OWNERDRAWFIXED 0x0010
2474#define LBS_OWNERDRAWVARIABLE 0x0020
2475#define LBS_HASSTRINGS 0x0040
2476#define LBS_USETABSTOPS 0x0080
2477#define LBS_NOINTEGRALHEIGHT 0x0100
2478#define LBS_MULTICOLUMN 0x0200
2479#define LBS_WANTKEYBOARDINPUT 0x0400
2480#define LBS_EXTENDEDSEL 0x0800
2481#define LBS_DISABLENOSCROLL 0x1000
2482#define LBS_NODATA 0x2000
2483#define LBS_NOSEL 0x4000
2484#define LBS_COMBOBOX 0x8000
2485#define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
2486#endif /* NOWINSTYLES */
2487
2488/* Listbox messages */
2489#define LB_ADDSTRING 0x0180
2490#define LB_INSERTSTRING 0x0181
2491#define LB_DELETESTRING 0x0182
2492#define LB_SELITEMRANGEEX 0x0183
2493#define LB_RESETCONTENT 0x0184
2494#define LB_SETSEL 0x0185
2495#define LB_SETCURSEL 0x0186
2496#define LB_GETSEL 0x0187
2497#define LB_GETCURSEL 0x0188
2498#define LB_GETTEXT 0x0189
2499#define LB_GETTEXTLEN 0x018a
2500#define LB_GETCOUNT 0x018b
2501#define LB_SELECTSTRING 0x018c
2502#define LB_DIR 0x018d
2503#define LB_GETTOPINDEX 0x018e
2504#define LB_FINDSTRING 0x018f
2505#define LB_GETSELCOUNT 0x0190
2506#define LB_GETSELITEMS 0x0191
2507#define LB_SETTABSTOPS 0x0192
2508#define LB_GETHORIZONTALEXTENT 0x0193
2509#define LB_SETHORIZONTALEXTENT 0x0194
2510#define LB_SETCOLUMNWIDTH 0x0195
2511#define LB_ADDFILE 0x0196
2512#define LB_SETTOPINDEX 0x0197
2513#define LB_GETITEMRECT 0x0198
2514#define LB_GETITEMDATA 0x0199
2515#define LB_SETITEMDATA 0x019a
2516#define LB_SELITEMRANGE 0x019b
2517#define LB_SETANCHORINDEX 0x019c
2518#define LB_GETANCHORINDEX 0x019d
2519#define LB_SETCARETINDEX 0x019e
2520#define LB_GETCARETINDEX 0x019f
2521#define LB_SETITEMHEIGHT 0x01a0
2522#define LB_GETITEMHEIGHT 0x01a1
2523#define LB_FINDSTRINGEXACT 0x01a2
2524#define LB_CARETON 0x01a3
2525#define LB_CARETOFF 0x01a4
2526#define LB_SETLOCALE 0x01a5
2527#define LB_GETLOCALE 0x01a6
2528#define LB_SETCOUNT 0x01a7
2529#define LB_INITSTORAGE 0x01a8
2530#define LB_ITEMFROMPOINT 0x01a9
2531#define LB_GETLISTBOXINFO 0x01b2
2532#define LB_MSGMAX 0x01b3
2533
2534/* Listbox notification codes */
2535#define LBN_ERRSPACE (-2)
2536#define LBN_SELCHANGE 1
2537#define LBN_DBLCLK 2
2538#define LBN_SELCANCEL 3
2539#define LBN_SETFOCUS 4
2540#define LBN_KILLFOCUS 5
2541
2542/* Listbox message return values */
2543#define LB_OKAY 0
2544#define LB_ERR (-1)
2545#define LB_ERRSPACE (-2)
2546
2547#define LB_CTLCODE 0L
2548
2549/* Combo box styles */
2550#ifndef NOWINSTYLES
2551#define CBS_SIMPLE 0x0001L
2552#define CBS_DROPDOWN 0x0002L
2553#define CBS_DROPDOWNLIST 0x0003L
2554#define CBS_OWNERDRAWFIXED 0x0010L
2555#define CBS_OWNERDRAWVARIABLE 0x0020L
2556#define CBS_AUTOHSCROLL 0x0040L
2557#define CBS_OEMCONVERT 0x0080L
2558#define CBS_SORT 0x0100L
2559#define CBS_HASSTRINGS 0x0200L
2560#define CBS_NOINTEGRALHEIGHT 0x0400L
2561#define CBS_DISABLENOSCROLL 0x0800L
2562
2563#define CBS_UPPERCASE 0x2000L
2564#define CBS_LOWERCASE 0x4000L
2565#endif /* NOWINSTYLES */
2566
2567/* Combo box messages */
2568#define CB_GETEDITSEL 0x0140
2569#define CB_LIMITTEXT 0x0141
2570#define CB_SETEDITSEL 0x0142
2571#define CB_ADDSTRING 0x0143
2572#define CB_DELETESTRING 0x0144
2573#define CB_DIR 0x0145
2574#define CB_GETCOUNT 0x0146
2575#define CB_GETCURSEL 0x0147
2576#define CB_GETLBTEXT 0x0148
2577#define CB_GETLBTEXTLEN 0x0149
2578#define CB_INSERTSTRING 0x014a
2579#define CB_RESETCONTENT 0x014b
2580#define CB_FINDSTRING 0x014c
2581#define CB_SELECTSTRING 0x014d
2582#define CB_SETCURSEL 0x014e
2583#define CB_SHOWDROPDOWN 0x014f
2584#define CB_GETITEMDATA 0x0150
2585#define CB_SETITEMDATA 0x0151
2586#define CB_GETDROPPEDCONTROLRECT 0x0152
2587#define CB_SETITEMHEIGHT 0x0153
2588#define CB_GETITEMHEIGHT 0x0154
2589#define CB_SETEXTENDEDUI 0x0155
2590#define CB_GETEXTENDEDUI 0x0156
2591#define CB_GETDROPPEDSTATE 0x0157
2592#define CB_FINDSTRINGEXACT 0x0158
2593#define CB_SETLOCALE 0x0159
2594#define CB_GETLOCALE 0x015a
2595#define CB_GETTOPINDEX 0x015b
2596#define CB_SETTOPINDEX 0x015c
2597#define CB_GETHORIZONTALEXTENT 0x015d
2598#define CB_SETHORIZONTALEXTENT 0x015e
2599#define CB_GETDROPPEDWIDTH 0x015f
2600#define CB_SETDROPPEDWIDTH 0x0160
2601#define CB_INITSTORAGE 0x0161
2602#define CB_MULTIPLEADDSTRING 0x0163
2603#define CB_GETCOMBOBOXINFO 0x0164
2604#define CB_MSGMAX 0x0165
2605
2606/* Combo box notification codes */
2607#define CBN_ERRSPACE (-1)
2608#define CBN_SELCHANGE 1
2609#define CBN_DBLCLK 2
2610#define CBN_SETFOCUS 3
2611#define CBN_KILLFOCUS 4
2612#define CBN_EDITCHANGE 5
2613#define CBN_EDITUPDATE 6
2614#define CBN_DROPDOWN 7
2615#define CBN_CLOSEUP 8
2616#define CBN_SELENDOK 9
2617#define CBN_SELENDCANCEL 10
2618
2619/* Combo box message return values */
2620#define CB_OKAY 0
2621#define CB_ERR (-1)
2622#define CB_ERRSPACE (-2)
2623
2624#define MB_OK 0x00000000
2625#define MB_OKCANCEL 0x00000001
2626#define MB_ABORTRETRYIGNORE 0x00000002
2627#define MB_YESNOCANCEL 0x00000003
2628#define MB_YESNO 0x00000004
2629#define MB_RETRYCANCEL 0x00000005
2630#define MB_CANCELTRYCONTINUE 0x00000006
2631#define MB_TYPEMASK 0x0000000F
2632
2633#define MB_ICONHAND 0x00000010
2634#define MB_ICONQUESTION 0x00000020
2635#define MB_ICONEXCLAMATION 0x00000030
2636#define MB_ICONASTERISK 0x00000040
2637#define MB_USERICON 0x00000080
2638#define MB_ICONMASK 0x000000F0
2639
2640#define MB_ICONINFORMATION MB_ICONASTERISK
2641#define MB_ICONSTOP MB_ICONHAND
2642#define MB_ICONWARNING MB_ICONEXCLAMATION
2643#define MB_ICONERROR MB_ICONHAND
2644
2645#define MB_DEFBUTTON1 0x00000000
2646#define MB_DEFBUTTON2 0x00000100
2647#define MB_DEFBUTTON3 0x00000200
2648#define MB_DEFBUTTON4 0x00000300
2649#define MB_DEFMASK 0x00000F00
2650
2651#define MB_APPLMODAL 0x00000000
2652#define MB_SYSTEMMODAL 0x00001000
2653#define MB_TASKMODAL 0x00002000
2654#define MB_MODEMASK 0x00003000
2655
2656#define MB_HELP 0x00004000
2657#define MB_NOFOCUS 0x00008000
2658#define MB_MISCMASK 0x0000C000
2659
2660#define MB_SETFOREGROUND 0x00010000
2661#define MB_DEFAULT_DESKTOP_ONLY 0x00020000
2662#define MB_SERVICE_NOTIFICATION 0x00040000
2663#define MB_TOPMOST 0x00040000
2664#define MB_RIGHT 0x00080000
2665#define MB_RTLREADING 0x00100000
2666
2667#define HELPINFO_WINDOW 0x0001
2668#define HELPINFO_MENUITEM 0x0002
2669
2670/* Structure pointed to by lParam of WM_HELP */
2671typedef struct tagHELPINFO
2672{
2673 UINT cbSize; /* Size in bytes of this struct */
2674 INT iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */
2675 INT iCtrlId; /* Control Id or a Menu item Id. */
2676 HANDLE hItemHandle; /* hWnd of control or hMenu. */
2677 DWORD_PTR dwContextId; /* Context Id associated with this item */
2678 POINT MousePos; /* Mouse Position in screen co-ordinates */
2679} HELPINFO,*LPHELPINFO;
2680
2681typedef void (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
2682
2683typedef struct tagMSGBOXPARAMSA
2684{
2685 UINT cbSize;
2686 HWND hwndOwner;
2687 HINSTANCE hInstance;
2688 LPCSTR lpszText;
2689 LPCSTR lpszCaption;
2690 DWORD dwStyle;
2691 LPCSTR lpszIcon;
2692 DWORD_PTR dwContextHelpId;
2693 MSGBOXCALLBACK lpfnMsgBoxCallback;
2694 DWORD dwLanguageId;
2695} MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA;
2696
2697typedef struct tagMSGBOXPARAMSW
2698{
2699 UINT cbSize;
2700 HWND hwndOwner;
2701 HINSTANCE hInstance;
2702 LPCWSTR lpszText;
2703 LPCWSTR lpszCaption;
2704 DWORD dwStyle;
2705 LPCWSTR lpszIcon;
2706 DWORD_PTR dwContextHelpId;
2707 MSGBOXCALLBACK lpfnMsgBoxCallback;
2708 DWORD dwLanguageId;
2709} MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW;
2710
2711DECL_WINELIB_TYPE_AW(MSGBOXPARAMS)
2712DECL_WINELIB_TYPE_AW(PMSGBOXPARAMS)
2713DECL_WINELIB_TYPE_AW(LPMSGBOXPARAMS)
2714
2715#define MONITOR_DEFAULTTONULL 0x00000000
2716#define MONITOR_DEFAULTTOPRIMARY 0x00000001
2717#define MONITOR_DEFAULTTONEAREST 0x00000002
2718
2719#define MONITORINFOF_PRIMARY 0x00000001
2720
2721#ifndef CCHDEVICENAME
2722#define CCHDEVICENAME 32
2723#endif
2724
2725typedef struct tagMONITORINFO
2726{
2727 DWORD cbSize;
2728 RECT rcMonitor;
2729 RECT rcWork;
2730 DWORD dwFlags;
2731} MONITORINFO, *LPMONITORINFO;
2732
2733typedef struct tagMONITORINFOEXA
2734{ /* the 4 first entries are the same as MONITORINFO */
2735 DWORD cbSize;
2736 RECT rcMonitor;
2737 RECT rcWork;
2738 DWORD dwFlags;
2739 CHAR szDevice[CCHDEVICENAME];
2740} MONITORINFOEXA, *LPMONITORINFOEXA;
2741
2742typedef struct tagMONITORINFOEXW
2743{ /* the 4 first entries are the same as MONITORINFO */
2744 DWORD cbSize;
2745 RECT rcMonitor;
2746 RECT rcWork;
2747 DWORD dwFlags;
2748 WCHAR szDevice[CCHDEVICENAME];
2749} MONITORINFOEXW, *LPMONITORINFOEXW;
2750
2751DECL_WINELIB_TYPE_AW(MONITORINFOEX)
2752DECL_WINELIB_TYPE_AW(LPMONITORINFOEX)
2753
2754typedef BOOL (CALLBACK *MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
2755
2756#include <pshpack2.h>
2757
2758typedef struct tagDLGTEMPLATE
2759{
2760 DWORD style;
2761 DWORD dwExtendedStyle;
2762 WORD cdit;
2763 short x;
2764 short y;
2765 short cx;
2766 short cy;
2767} DLGTEMPLATE;
2768
2769typedef DLGTEMPLATE *LPDLGTEMPLATEA;
2770typedef DLGTEMPLATE *LPDLGTEMPLATEW;
2771DECL_WINELIB_TYPE_AW(LPDLGTEMPLATE)
2772typedef const DLGTEMPLATE *LPCDLGTEMPLATEA;
2773typedef const DLGTEMPLATE *LPCDLGTEMPLATEW;
2774DECL_WINELIB_TYPE_AW(LPCDLGTEMPLATE)
2775
2776typedef struct tagDLGITEMTEMPLATE
2777{
2778 DWORD style;
2779 DWORD dwExtendedStyle;
2780 short x;
2781 short y;
2782 short cx;
2783 short cy;
2784 WORD id;
2785} DLGITEMTEMPLATE;
2786
2787typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
2788typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
2789DECL_WINELIB_TYPE_AW(PDLGITEMTEMPLATE)
2790typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
2791typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
2792DECL_WINELIB_TYPE_AW(LPDLGITEMTEMPLATE)
2793
2794#include <poppack.h>
2795
2796 /* CBT hook values */
2797#define HCBT_MOVESIZE 0
2798#define HCBT_MINMAX 1
2799#define HCBT_QS 2
2800#define HCBT_CREATEWND 3
2801#define HCBT_DESTROYWND 4
2802#define HCBT_ACTIVATE 5
2803#define HCBT_CLICKSKIPPED 6
2804#define HCBT_KEYSKIPPED 7
2805#define HCBT_SYSCOMMAND 8
2806#define HCBT_SETFOCUS 9
2807
2808 /* CBT hook structures */
2809
2810typedef struct tagCBT_CREATEWNDA
2811{
2812 CREATESTRUCTA *lpcs;
2813 HWND hwndInsertAfter;
2814} CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
2815
2816typedef struct tagCBT_CREATEWNDW
2817{
2818 CREATESTRUCTW *lpcs;
2819 HWND hwndInsertAfter;
2820} CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
2821
2822DECL_WINELIB_TYPE_AW(CBT_CREATEWND)
2823DECL_WINELIB_TYPE_AW(LPCBT_CREATEWND)
2824
2825typedef struct tagCBTACTIVATESTRUCT
2826{
2827 BOOL fMouse;
2828 HWND hWndActive;
2829} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
2830
2831
2832/* modifiers for RegisterHotKey */
2833#define MOD_ALT 0x0001
2834#define MOD_CONTROL 0x0002
2835#define MOD_SHIFT 0x0004
2836#define MOD_WIN 0x0008
2837
2838/* ids for RegisterHotKey */
2839#define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */
2840#define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */
2841
2842 /* keybd_event flags */
2843#define KEYEVENTF_EXTENDEDKEY 0x0001
2844#define KEYEVENTF_KEYUP 0x0002
2845#define KEYEVENTF_UNICODE 0x0004
2846#define KEYEVENTF_SCANCODE 0x0008
2847
2848 /* mouse_event flags */
2849#define MOUSEEVENTF_MOVE 0x0001
2850#define MOUSEEVENTF_LEFTDOWN 0x0002
2851#define MOUSEEVENTF_LEFTUP 0x0004
2852#define MOUSEEVENTF_RIGHTDOWN 0x0008
2853#define MOUSEEVENTF_RIGHTUP 0x0010
2854#define MOUSEEVENTF_MIDDLEDOWN 0x0020
2855#define MOUSEEVENTF_MIDDLEUP 0x0040
2856#define MOUSEEVENTF_XDOWN 0x0080
2857#define MOUSEEVENTF_XUP 0x0100
2858#define MOUSEEVENTF_WHEEL 0x0800
2859#define MOUSEEVENTF_HWHEEL 0x1000
2860#define MOUSEEVENTF_ABSOLUTE 0x8000
2861
2862/* ExitWindows() flags */
2863#define EW_RESTARTWINDOWS 0x0042
2864#define EW_REBOOTSYSTEM 0x0043
2865#define EW_EXITANDEXECAPP 0x0044
2866
2867/* ExitWindowsEx() flags */
2868#define EWX_LOGOFF 0
2869#define EWX_SHUTDOWN 1
2870#define EWX_REBOOT 2
2871#define EWX_FORCE 4
2872#define EWX_POWEROFF 8
2873#define EWX_FORCEIFHUNG 16
2874
2875/* SetLastErrorEx types */
2876#define SLE_ERROR 0x00000001
2877#define SLE_MINORERROR 0x00000002
2878#define SLE_WARNING 0x00000003
2879
2880/* Predefined resources */
2881#define IDI_APPLICATION MAKEINTRESOURCE(32512)
2882#define IDI_HAND MAKEINTRESOURCE(32513)
2883#define IDI_QUESTION MAKEINTRESOURCE(32514)
2884#define IDI_EXCLAMATION MAKEINTRESOURCE(32515)
2885#define IDI_ASTERISK MAKEINTRESOURCE(32516)
2886#define IDI_WINLOGO MAKEINTRESOURCE(32517)
2887
2888#define IDI_WARNING IDI_EXCLAMATION
2889#define IDI_ERROR IDI_HAND
2890#define IDI_INFORMATION IDI_ASTERISK
2891
2892#define IDC_ARROW MAKEINTRESOURCE(32512)
2893#define IDC_IBEAM MAKEINTRESOURCE(32513)
2894#define IDC_WAIT MAKEINTRESOURCE(32514)
2895#define IDC_CROSS MAKEINTRESOURCE(32515)
2896#define IDC_UPARROW MAKEINTRESOURCE(32516)
2897#define IDC_SIZE MAKEINTRESOURCE(32640)
2898#define IDC_ICON MAKEINTRESOURCE(32641)
2899#define IDC_SIZENWSE MAKEINTRESOURCE(32642)
2900#define IDC_SIZENESW MAKEINTRESOURCE(32643)
2901#define IDC_SIZEWE MAKEINTRESOURCE(32644)
2902#define IDC_SIZENS MAKEINTRESOURCE(32645)
2903#define IDC_SIZEALL MAKEINTRESOURCE(32646)
2904#define IDC_NO MAKEINTRESOURCE(32648)
2905#define IDC_HAND MAKEINTRESOURCE(32649)
2906#define IDC_APPSTARTING MAKEINTRESOURCE(32650)
2907#define IDC_HELP MAKEINTRESOURCE(32651)
2908
2909#define MNC_IGNORE 0
2910#define MNC_CLOSE 1
2911#define MNC_EXECUTE 2
2912#define MNC_SELECT 3
2913
2914/* SystemParametersInfo */
2915#define SPI_GETBEEP 1
2916#define SPI_SETBEEP 2
2917#define SPI_GETMOUSE 3
2918#define SPI_SETMOUSE 4
2919#define SPI_GETBORDER 5
2920#define SPI_SETBORDER 6
2921#define SPI_GETKEYBOARDSPEED 10
2922#define SPI_SETKEYBOARDSPEED 11
2923#define SPI_LANGDRIVER 12
2924#define SPI_ICONHORIZONTALSPACING 13
2925#define SPI_GETSCREENSAVETIMEOUT 14
2926#define SPI_SETSCREENSAVETIMEOUT 15
2927#define SPI_GETSCREENSAVEACTIVE 16
2928#define SPI_SETSCREENSAVEACTIVE 17
2929#define SPI_GETGRIDGRANULARITY 18
2930#define SPI_SETGRIDGRANULARITY 19
2931#define SPI_SETDESKWALLPAPER 20
2932#define SPI_SETDESKPATTERN 21
2933#define SPI_GETKEYBOARDDELAY 22
2934#define SPI_SETKEYBOARDDELAY 23
2935#define SPI_ICONVERTICALSPACING 24
2936#define SPI_GETICONTITLEWRAP 25
2937#define SPI_SETICONTITLEWRAP 26
2938#define SPI_GETMENUDROPALIGNMENT 27
2939#define SPI_SETMENUDROPALIGNMENT 28
2940#define SPI_SETDOUBLECLKWIDTH 29
2941#define SPI_SETDOUBLECLKHEIGHT 30
2942#define SPI_GETICONTITLELOGFONT 31
2943#define SPI_SETDOUBLECLICKTIME 32
2944#define SPI_SETMOUSEBUTTONSWAP 33
2945#define SPI_SETICONTITLELOGFONT 34
2946#define SPI_GETFASTTASKSWITCH 35
2947#define SPI_SETFASTTASKSWITCH 36
2948#define SPI_SETDRAGFULLWINDOWS 37
2949#define SPI_GETDRAGFULLWINDOWS 38
2950#define SPI_GETNONCLIENTMETRICS 41
2951#define SPI_SETNONCLIENTMETRICS 42
2952#define SPI_GETMINIMIZEDMETRICS 43
2953#define SPI_SETMINIMIZEDMETRICS 44
2954#define SPI_GETICONMETRICS 45
2955#define SPI_SETICONMETRICS 46
2956#define SPI_SETWORKAREA 47
2957#define SPI_GETWORKAREA 48
2958#define SPI_SETPENWINDOWS 49
2959#define SPI_GETFILTERKEYS 50
2960#define SPI_SETFILTERKEYS 51
2961#define SPI_GETTOGGLEKEYS 52
2962#define SPI_SETTOGGLEKEYS 53
2963#define SPI_GETMOUSEKEYS 54
2964#define SPI_SETMOUSEKEYS 55
2965#define SPI_GETSHOWSOUNDS 56
2966#define SPI_SETSHOWSOUNDS 57
2967#define SPI_GETSTICKYKEYS 58
2968#define SPI_SETSTICKYKEYS 59
2969#define SPI_GETACCESSTIMEOUT 60
2970#define SPI_SETACCESSTIMEOUT 61
2971#define SPI_GETSERIALKEYS 62
2972#define SPI_SETSERIALKEYS 63
2973#define SPI_GETSOUNDSENTRY 64
2974#define SPI_SETSOUNDSENTRY 65
2975#define SPI_GETHIGHCONTRAST 66
2976#define SPI_SETHIGHCONTRAST 67
2977#define SPI_GETKEYBOARDPREF 68
2978#define SPI_SETKEYBOARDPREF 69
2979#define SPI_GETSCREENREADER 70
2980#define SPI_SETSCREENREADER 71
2981#define SPI_GETANIMATION 72
2982#define SPI_SETANIMATION 73
2983#define SPI_GETFONTSMOOTHING 74
2984#define SPI_SETFONTSMOOTHING 75
2985#define SPI_SETDRAGWIDTH 76
2986#define SPI_SETDRAGHEIGHT 77
2987#define SPI_SETHANDHELD 78
2988#define SPI_GETLOWPOWERTIMEOUT 79
2989#define SPI_GETPOWEROFFTIMEOUT 80
2990#define SPI_SETLOWPOWERTIMEOUT 81
2991#define SPI_SETPOWEROFFTIMEOUT 82
2992#define SPI_GETLOWPOWERACTIVE 83
2993#define SPI_GETPOWEROFFACTIVE 84
2994#define SPI_SETLOWPOWERACTIVE 85
2995#define SPI_SETPOWEROFFACTIVE 86
2996#define SPI_SETCURSORS 87
2997#define SPI_SETICONS 88
2998#define SPI_GETDEFAULTINPUTLANG 89
2999#define SPI_SETDEFAULTINPUTLANG 90
3000#define SPI_SETLANGTOGGLE 91
3001#define SPI_GETWINDOWSEXTENSION 92
3002#define SPI_SETMOUSETRAILS 93
3003#define SPI_GETMOUSETRAILS 94
3004#define SPI_GETSNAPTODEFBUTTON 95
3005#define SPI_SETSNAPTODEFBUTTON 96
3006#define SPI_SETSCREENSAVERRUNNING 97
3007#define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING
3008#define SPI_GETMOUSEHOVERWIDTH 98
3009#define SPI_SETMOUSEHOVERWIDTH 99
3010#define SPI_GETMOUSEHOVERHEIGHT 100
3011#define SPI_SETMOUSEHOVERHEIGHT 101
3012#define SPI_GETMOUSEHOVERTIME 102
3013#define SPI_SETMOUSEHOVERTIME 103
3014#define SPI_GETWHEELSCROLLLINES 104
3015#define SPI_SETWHEELSCROLLLINES 105
3016#define SPI_GETMENUSHOWDELAY 106
3017#define SPI_SETMENUSHOWDELAY 107
3018#define SPI_GETWHEELSCROLLCHARS 108
3019#define SPI_SETWHEELSCROLLCHARS 109
3020#define SPI_GETSHOWIMEUI 110
3021#define SPI_SETSHOWIMEUI 111
3022#define SPI_GETMOUSESPEED 112
3023#define SPI_SETMOUSESPEED 113
3024#define SPI_GETSCREENSAVERRUNNING 114
3025#define SPI_GETDESKWALLPAPER 115
3026
3027#define SPI_GETACTIVEWINDOWTRACKING 0x1000
3028#define SPI_SETACTIVEWINDOWTRACKING 0x1001
3029#define SPI_GETMENUANIMATION 0x1002
3030#define SPI_SETMENUANIMATION 0x1003
3031#define SPI_GETCOMBOBOXANIMATION 0x1004
3032#define SPI_SETCOMBOBOXANIMATION 0x1005
3033#define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006
3034#define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007
3035#define SPI_GETGRADIENTCAPTIONS 0x1008
3036#define SPI_SETGRADIENTCAPTIONS 0x1009
3037#define SPI_GETKEYBOARDCUES 0x100A
3038#define SPI_SETKEYBOARDCUES 0x100B
3039#define SPI_GETMENUUNDERLINES SPI_GETKEYBOARDCUES
3040#define SPI_SETMENUUNDERLINES SPI_SETKEYBOARDCUES
3041#define SPI_GETACTIVEWNDTRKZORDER 0x100C
3042#define SPI_SETACTIVEWNDTRKZORDER 0x100D
3043#define SPI_GETHOTTRACKING 0x100E
3044#define SPI_SETHOTTRACKING 0x100F
3045#define SPI_GETMENUFADE 0x1012
3046#define SPI_SETMENUFADE 0x1013
3047#define SPI_GETSELECTIONFADE 0x1014
3048#define SPI_SETSELECTIONFADE 0x1015
3049#define SPI_GETTOOLTIPANIMATION 0x1016
3050#define SPI_SETTOOLTIPANIMATION 0x1017
3051#define SPI_GETTOOLTIPFADE 0x1018
3052#define SPI_SETTOOLTIPFADE 0x1019
3053#define SPI_GETCURSORSHADOW 0x101A
3054#define SPI_SETCURSORSHADOW 0x101B
3055#define SPI_GETMOUSESONAR 0x101C
3056#define SPI_SETMOUSESONAR 0x101D
3057#define SPI_GETMOUSECLICKLOCK 0x101E
3058#define SPI_SETMOUSECLICKLOCK 0x101F
3059#define SPI_GETMOUSEVANISH 0x1020
3060#define SPI_SETMOUSEVANISH 0x1021
3061#define SPI_GETFLATMENU 0x1022
3062#define SPI_SETFLATMENU 0x1023
3063#define SPI_GETDROPSHADOW 0x1024
3064#define SPI_SETDROPSHADOW 0x1025
3065#define SPI_GETBLOCKSENDINPUTRESETS 0x1026
3066#define SPI_SETBLOCKSENDINPUTRESETS 0x1027
3067#define SPI_GETUIEFFECTS 0x103E
3068#define SPI_SETUIEFFECTS 0x103F
3069#define SPI_GETDISABLEOVERLAPPEDCONTENT 0x1040
3070#define SPI_SETDISABLEOVERLAPPEDCONTENT 0x1041
3071#define SPI_GETCLIENTAREAANIMATION 0x1042
3072#define SPI_SETCLIENTAREAANIMATION 0x1043
3073#define SPI_GETCLEARTYPE 0x1048
3074#define SPI_SETCLEARTYPE 0x1049
3075#define SPI_GETSPEECHRECOGNITION 0x104A
3076#define SPI_SETSPEECHRECOGNITION 0x104B
3077#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
3078#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
3079#define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
3080#define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
3081#define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
3082#define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
3083#define SPI_GETCARETWIDTH 0x2006
3084#define SPI_SETCARETWIDTH 0x2007
3085#define SPI_GETMOUSECLICKLOCKTIME 0x2008
3086#define SPI_SETMOUSECLICKLOCKTIME 0x2009
3087#define SPI_GETFONTSMOOTHINGTYPE 0x200A
3088#define SPI_SETFONTSMOOTHINGTYPE 0x200B
3089#define SPI_GETFONTSMOOTHINGCONTRAST 0x200C
3090#define SPI_SETFONTSMOOTHINGCONTRAST 0x200D
3091#define SPI_GETFOCUSBORDERWIDTH 0x200E
3092#define SPI_SETFOCUSBORDERWIDTH 0x200F
3093#define SPI_GETFOCUSBORDERHEIGHT 0x2010
3094#define SPI_SETFOCUSBORDERHEIGHT 0x2011
3095#define SPI_GETFONTSMOOTHINGORIENTATION 0x2012
3096#define SPI_SETFONTSMOOTHINGORIENTATION 0x2013
3097
3098#define FE_FONTSMOOTHINGSTANDARD 0x0001
3099#define FE_FONTSMOOTHINGCLEARTYPE 0x0002
3100#define FE_FONTSMOOTHINGDOCKING 0x8000
3101
3102#define FE_FONTSMOOTHINGORIENTATIONBGR 0x0000
3103#define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001
3104
3105#define SETWALLPAPER_DEFAULT ((LPWSTR)-1)
3106
3107/* SystemParametersInfo flags */
3108
3109#define SPIF_UPDATEINIFILE 1
3110#define SPIF_SENDWININICHANGE 2
3111#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
3112
3113#if defined(_WINGDI_) && !defined(NOGDI)
3114typedef struct tagNONCLIENTMETRICSA {
3115 UINT cbSize;
3116 INT iBorderWidth;
3117 INT iScrollWidth;
3118 INT iScrollHeight;
3119 INT iCaptionWidth;
3120 INT iCaptionHeight;
3121 LOGFONTA lfCaptionFont;
3122 INT iSmCaptionWidth;
3123 INT iSmCaptionHeight;
3124 LOGFONTA lfSmCaptionFont;
3125 INT iMenuWidth;
3126 INT iMenuHeight;
3127 LOGFONTA lfMenuFont;
3128 LOGFONTA lfStatusFont;
3129 LOGFONTA lfMessageFont;
3130} NONCLIENTMETRICSA, *PNONCLIENTMETRICSA, *LPNONCLIENTMETRICSA;
3131
3132typedef struct tagNONCLIENTMETRICSW {
3133 UINT cbSize;
3134 INT iBorderWidth;
3135 INT iScrollWidth;
3136 INT iScrollHeight;
3137 INT iCaptionWidth;
3138 INT iCaptionHeight;
3139 LOGFONTW lfCaptionFont;
3140 INT iSmCaptionWidth;
3141 INT iSmCaptionHeight;
3142 LOGFONTW lfSmCaptionFont;
3143 INT iMenuWidth;
3144 INT iMenuHeight;
3145 LOGFONTW lfMenuFont;
3146 LOGFONTW lfStatusFont;
3147 LOGFONTW lfMessageFont;
3148} NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, *LPNONCLIENTMETRICSW;
3149
3150DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS)
3151DECL_WINELIB_TYPE_AW(PNONCLIENTMETRICS)
3152DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS)
3153
3154typedef struct tagICONMETRICSA {
3155 UINT cbSize;
3156 int iHorzSpacing;
3157 int iVertSpacing;
3158 int iTitleWrap;
3159 LOGFONTA lfFont;
3160} ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA;
3161
3162typedef struct tagICONMETRICSW {
3163 UINT cbSize;
3164 int iHorzSpacing;
3165 int iVertSpacing;
3166 int iTitleWrap;
3167 LOGFONTW lfFont;
3168} ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW;
3169
3170DECL_WINELIB_TYPE_AW(ICONMETRICS)
3171DECL_WINELIB_TYPE_AW(PICONMETRICS)
3172DECL_WINELIB_TYPE_AW(LPICONMETRICS)
3173
3174typedef struct tagUPDATELAYEREDWINDOWINFO
3175{
3176 DWORD cbSize;
3177 HDC hdcDst;
3178 POINT CONST* pptDst;
3179 SIZE CONST* psize;
3180 HDC hdcSrc;
3181 POINT CONST* pptSrc;
3182 COLORREF crKey;
3183 BLENDFUNCTION CONST* pblend;
3184 DWORD dwFlags;
3185 RECT CONST* prcDirty;
3186} UPDATELAYEREDWINDOWINFO, *PUPDATELAYEREDWINDOWINFO;
3187
3188#endif /* defined(_WINGDI_) && !defined(NOGDI) */
3189
3190#define ARW_BOTTOMLEFT 0x0000L
3191#define ARW_BOTTOMRIGHT 0x0001L
3192#define ARW_TOPLEFT 0x0002L
3193#define ARW_TOPRIGHT 0x0003L
3194#define ARW_STARTMASK 0x0003L
3195#define ARW_STARTRIGHT 0x0001L
3196#define ARW_STARTTOP 0x0002L
3197
3198#define ARW_LEFT 0x0000L
3199#define ARW_RIGHT 0x0000L
3200#define ARW_UP 0x0004L
3201#define ARW_DOWN 0x0004L
3202#define ARW_HIDE 0x0008L
3203
3204typedef struct tagMINIMIZEDMETRICS {
3205 UINT cbSize;
3206 int iWidth;
3207 int iHorzGap;
3208 int iVertGap;
3209 int iArrange;
3210} MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS;
3211
3212#ifndef NOWINSTYLES
3213
3214/* Window Styles */
3215#define WS_OVERLAPPED 0x00000000L
3216#define WS_POPUP 0x80000000L
3217#define WS_CHILD 0x40000000L
3218#define WS_MINIMIZE 0x20000000L
3219#define WS_VISIBLE 0x10000000L
3220#define WS_DISABLED 0x08000000L
3221#define WS_CLIPSIBLINGS 0x04000000L
3222#define WS_CLIPCHILDREN 0x02000000L
3223#define WS_MAXIMIZE 0x01000000L
3224#define WS_CAPTION 0x00C00000L
3225#define WS_BORDER 0x00800000L
3226#define WS_DLGFRAME 0x00400000L
3227#define WS_VSCROLL 0x00200000L
3228#define WS_HSCROLL 0x00100000L
3229#define WS_SYSMENU 0x00080000L
3230#define WS_THICKFRAME 0x00040000L
3231#define WS_GROUP 0x00020000L
3232#define WS_TABSTOP 0x00010000L
3233#define WS_MINIMIZEBOX 0x00020000L
3234#define WS_MAXIMIZEBOX 0x00010000L
3235#define WS_TILED WS_OVERLAPPED
3236#define WS_ICONIC WS_MINIMIZE
3237#define WS_SIZEBOX WS_THICKFRAME
3238#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
3239#define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
3240#define WS_CHILDWINDOW (WS_CHILD)
3241#define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW)
3242
3243/* Window extended styles */
3244#define WS_EX_DLGMODALFRAME 0x00000001L
3245#define WS_EX_DRAGDETECT 0x00000002L
3246#define WS_EX_NOPARENTNOTIFY 0x00000004L
3247#define WS_EX_TOPMOST 0x00000008L
3248#define WS_EX_ACCEPTFILES 0x00000010L
3249#define WS_EX_TRANSPARENT 0x00000020L
3250#define WS_EX_MDICHILD 0x00000040L
3251#define WS_EX_TOOLWINDOW 0x00000080L
3252#define WS_EX_WINDOWEDGE 0x00000100L
3253#define WS_EX_CLIENTEDGE 0x00000200L
3254#define WS_EX_CONTEXTHELP 0x00000400L
3255#define WS_EX_RIGHT 0x00001000L
3256#define WS_EX_LEFT 0x00000000L
3257#define WS_EX_RTLREADING 0x00002000L
3258#define WS_EX_LTRREADING 0x00000000L
3259#define WS_EX_LEFTSCROLLBAR 0x00004000L
3260#define WS_EX_RIGHTSCROLLBAR 0x00000000L
3261#define WS_EX_CONTROLPARENT 0x00010000L
3262#define WS_EX_STATICEDGE 0x00020000L
3263#define WS_EX_APPWINDOW 0x00040000L
3264#define WS_EX_LAYERED 0x00080000L
3265#define WS_EX_NOINHERITLAYOUT 0x00100000L
3266#define WS_EX_LAYOUTRTL 0x00400000L
3267#define WS_EX_COMPOSITED 0x02000000L
3268#define WS_EX_NOACTIVATE 0x08000000L
3269
3270#define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE|WS_EX_CLIENTEDGE)
3271#define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST)
3272
3273#endif /* NOWINSTYLES */
3274
3275/* Window scrolling */
3276#define SW_SCROLLCHILDREN 0x0001
3277#define SW_INVALIDATE 0x0002
3278#define SW_ERASE 0x0004
3279
3280/* CreateWindow() coordinates */
3281#define CW_USEDEFAULT ((INT)0x80000000)
3282
3283/* ChildWindowFromPointEx Flags */
3284#define CWP_ALL 0x0000
3285#define CWP_SKIPINVISIBLE 0x0001
3286#define CWP_SKIPDISABLED 0x0002
3287#define CWP_SKIPTRANSPARENT 0x0004
3288
3289 /* PeekMessage() options */
3290#define PM_NOREMOVE 0x0000
3291#define PM_REMOVE 0x0001
3292#define PM_NOYIELD 0x0002
3293#define PM_QS_INPUT (QS_INPUT << 16)
3294#define PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16)
3295#define PM_QS_PAINT (QS_PAINT << 16)
3296#define PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16)
3297
3298/* AnimateWindow() flags */
3299#define AW_SLIDE 0x00040000
3300#define AW_ACTIVATE 0x00020000
3301#define AW_BLEND 0x00080000
3302#define AW_HIDE 0x00010000
3303#define AW_CENTER 0x00000010
3304#define AW_HOR_POSITIVE 0x00000001
3305#define AW_HOR_NEGATIVE 0x00000002
3306#define AW_VER_POSITIVE 0x00000004
3307#define AW_VER_NEGATIVE 0x00000008
3308
3309/* FlashWindowEx() flags */
3310#define FLASHW_STOP 0x00000000
3311#define FLASHW_CAPTION 0x00000001
3312#define FLASHW_TRAY 0x00000002
3313#define FLASHW_ALL (FLASHW_CAPTION|FLASHW_TRAY)
3314#define FLASHW_TIMER 0x00000004
3315#define FLASHW_TIMERNOFG 0x0000000C
3316
3317typedef struct {
3318 UINT cbSize;
3319 HWND hwnd;
3320 DWORD dwFlags;
3321 UINT uCount;
3322 DWORD dwTimeout;
3323} FLASHWINFO, *PFLASHWINFO;
3324
3325/* WM_SHOWWINDOW lParam codes */
3326#define SW_PARENTCLOSING 1
3327#define SW_OTHERZOOM 2
3328#define SW_PARENTOPENING 3
3329#define SW_OTHERUNZOOM 4
3330
3331/* SetLayeredWindowAttributes() flags */
3332#define LWA_COLORKEY 0x00000001
3333#define LWA_ALPHA 0x00000002
3334
3335/* UpdateLayeredWindow() flags */
3336#define ULW_COLORKEY 0x00000001
3337#define ULW_ALPHA 0x00000002
3338#define ULW_OPAQUE 0x00000004
3339#define ULW_EX_NORESIZE 0x00000008
3340
3341 /* ShowWindow() codes */
3342#define SW_HIDE 0
3343#define SW_SHOWNORMAL 1
3344#define SW_NORMAL 1
3345#define SW_SHOWMINIMIZED 2
3346#define SW_SHOWMAXIMIZED 3
3347#define SW_MAXIMIZE 3
3348#define SW_SHOWNOACTIVATE 4
3349#define SW_SHOW 5
3350#define SW_MINIMIZE 6
3351#define SW_SHOWMINNOACTIVE 7
3352#define SW_SHOWNA 8
3353#define SW_RESTORE 9
3354#define SW_SHOWDEFAULT 10
3355#define SW_FORCEMINIMIZE 11
3356#define SW_MAX 11
3357#define SW_NORMALNA 0xCC /* undoc. flag in MinMaximize */
3358
3359 /* WM_SIZE message wParam values */
3360#define SIZE_RESTORED 0
3361#define SIZE_MINIMIZED 1
3362#define SIZE_MAXIMIZED 2
3363#define SIZE_MAXSHOW 3
3364#define SIZE_MAXHIDE 4
3365#define SIZENORMAL SIZE_RESTORED
3366#define SIZEICONIC SIZE_MINIMIZED
3367#define SIZEFULLSCREEN SIZE_MAXIMIZED
3368#define SIZEZOOMSHOW SIZE_MAXSHOW
3369#define SIZEZOOMHIDE SIZE_MAXHIDE
3370
3371/* SetWindowPos() and WINDOWPOS flags */
3372#define SWP_NOSIZE 0x0001
3373#define SWP_NOMOVE 0x0002
3374#define SWP_NOZORDER 0x0004
3375#define SWP_NOREDRAW 0x0008
3376#define SWP_NOACTIVATE 0x0010
3377#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */
3378#define SWP_SHOWWINDOW 0x0040
3379#define SWP_HIDEWINDOW 0x0080
3380#define SWP_NOCOPYBITS 0x0100
3381#define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
3382
3383#define SWP_DRAWFRAME SWP_FRAMECHANGED
3384#define SWP_NOREPOSITION SWP_NOOWNERZORDER
3385
3386#define SWP_NOSENDCHANGING 0x0400
3387#define SWP_DEFERERASE 0x2000
3388#define SWP_ASYNCWINDOWPOS 0x4000
3389
3390/* undocumented SWP flags - from SDK 3.1 */
3391#define SWP_NOCLIENTSIZE 0x0800
3392#define SWP_NOCLIENTMOVE 0x1000
3393#define SWP_STATECHANGED 0x8000
3394
3395#define HWND_DESKTOP ((HWND)0)
3396#define HWND_BROADCAST ((HWND)0xffff)
3397
3398/* SetWindowPos() hwndInsertAfter field values */
3399#define HWND_TOP ((HWND)0)
3400#define HWND_BOTTOM ((HWND)1)
3401#define HWND_TOPMOST ((HWND)-1)
3402#define HWND_NOTOPMOST ((HWND)-2)
3403#define HWND_MESSAGE ((HWND)-3)
3404
3405/* GetDCEx flags */
3406#define DCX_WINDOW 0x00000001
3407#define DCX_CACHE 0x00000002
3408#define DCX_NORESETATTRS 0x00000004
3409#define DCX_CLIPCHILDREN 0x00000008
3410#define DCX_CLIPSIBLINGS 0x00000010
3411#define DCX_PARENTCLIP 0x00000020
3412#define DCX_EXCLUDERGN 0x00000040
3413#define DCX_INTERSECTRGN 0x00000080
3414#define DCX_EXCLUDEUPDATE 0x00000100
3415#define DCX_INTERSECTUPDATE 0x00000200
3416#define DCX_LOCKWINDOWUPDATE 0x00000400
3417#define DCX_USESTYLE 0x00010000
3418#define DCX_NORECOMPUTE 0x00100000
3419#define DCX_VALIDATE 0x00200000
3420
3421#define MF_INSERT 0x0000
3422#define MF_CHANGE 0x0080
3423#define MF_APPEND 0x0100
3424#define MF_DELETE 0x0200
3425#define MF_REMOVE 0x1000
3426#define MF_END 0x0080
3427
3428#define MF_ENABLED 0x0000
3429#define MF_GRAYED 0x0001
3430#define MF_DISABLED 0x0002
3431#define MF_STRING 0x0000
3432#define MF_BITMAP 0x0004
3433#define MF_UNCHECKED 0x0000
3434#define MF_CHECKED 0x0008
3435#define MF_POPUP 0x0010
3436#define MF_MENUBARBREAK 0x0020
3437#define MF_MENUBREAK 0x0040
3438#define MF_UNHILITE 0x0000
3439#define MF_HILITE 0x0080
3440#define MF_OWNERDRAW 0x0100
3441#define MF_USECHECKBITMAPS 0x0200
3442#define MF_BYCOMMAND 0x0000
3443#define MF_BYPOSITION 0x0400
3444#define MF_SEPARATOR 0x0800
3445#define MF_DEFAULT 0x1000
3446#define MF_SYSMENU 0x2000
3447#define MF_HELP 0x4000
3448#define MF_RIGHTJUSTIFY 0x4000
3449#define MF_MOUSESELECT 0x8000
3450
3451/* Flags for extended menu item types. */
3452#define MFT_STRING MF_STRING
3453#define MFT_BITMAP MF_BITMAP
3454#define MFT_MENUBARBREAK MF_MENUBARBREAK
3455#define MFT_MENUBREAK MF_MENUBREAK
3456#define MFT_OWNERDRAW MF_OWNERDRAW
3457#define MFT_RADIOCHECK 0x00000200L
3458#define MFT_SEPARATOR MF_SEPARATOR
3459#define MFT_RIGHTORDER 0x00002000L
3460#define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY
3461
3462/* Flags for extended menu item states. */
3463#define MFS_GRAYED 0x00000003L
3464#define MFS_DISABLED MFS_GRAYED
3465#define MFS_CHECKED MF_CHECKED
3466#define MFS_HILITE MF_HILITE
3467#define MFS_ENABLED MF_ENABLED
3468#define MFS_UNCHECKED MF_UNCHECKED
3469#define MFS_UNHILITE MF_UNHILITE
3470#define MFS_DEFAULT MF_DEFAULT
3471#define MFS_MASK 0x0000108BL
3472#define MFS_HOTTRACKDRAWN 0x10000000L
3473#define MFS_CACHEDBMP 0x20000000L
3474#define MFS_BOTTOMGAPDROP 0x40000000L
3475#define MFS_TOPGAPDROP 0x80000000L
3476#define MFS_GAPDROP 0xC0000000L
3477
3478/* for GetMenuDefaultItem */
3479#define GMDI_USEDISABLED 0x0001L
3480#define GMDI_GOINTOPOPUPS 0x0002L
3481
3482/* DrawText() flags */
3483#define DT_TOP 0x00000000
3484#define DT_LEFT 0x00000000
3485#define DT_CENTER 0x00000001
3486#define DT_RIGHT 0x00000002
3487#define DT_VCENTER 0x00000004
3488#define DT_BOTTOM 0x00000008
3489#define DT_WORDBREAK 0x00000010
3490#define DT_SINGLELINE 0x00000020
3491#define DT_EXPANDTABS 0x00000040
3492#define DT_TABSTOP 0x00000080
3493#define DT_NOCLIP 0x00000100
3494#define DT_EXTERNALLEADING 0x00000200
3495#define DT_CALCRECT 0x00000400
3496#define DT_NOPREFIX 0x00000800
3497#define DT_INTERNAL 0x00001000
3498#define DT_EDITCONTROL 0x00002000
3499#define DT_PATH_ELLIPSIS 0x00004000
3500#define DT_END_ELLIPSIS 0x00008000
3501#define DT_MODIFYSTRING 0x00010000
3502#define DT_RTLREADING 0x00020000
3503#define DT_WORD_ELLIPSIS 0x00040000
3504#define DT_NOFULLWIDTHCHARBREAK 0x00080000
3505#define DT_HIDEPREFIX 0x00100000
3506#define DT_PREFIXONLY 0x00200000
3507
3508/* DrawCaption()/DrawCaptionTemp() flags */
3509#define DC_ACTIVE 0x0001
3510#define DC_SMALLCAP 0x0002
3511#define DC_ICON 0x0004
3512#define DC_TEXT 0x0008
3513#define DC_INBUTTON 0x0010
3514#define DC_GRADIENT 0x0020
3515#define DC_BUTTONS 0x1000
3516
3517/* DrawEdge() flags */
3518#define BDR_RAISEDOUTER 0x0001
3519#define BDR_SUNKENOUTER 0x0002
3520#define BDR_RAISEDINNER 0x0004
3521#define BDR_SUNKENINNER 0x0008
3522
3523#define BDR_OUTER 0x0003
3524#define BDR_INNER 0x000c
3525#define BDR_RAISED 0x0005
3526#define BDR_SUNKEN 0x000a
3527
3528#define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
3529#define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
3530#define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER)
3531#define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER)
3532
3533/* border flags */
3534#define BF_LEFT 0x0001
3535#define BF_TOP 0x0002
3536#define BF_RIGHT 0x0004
3537#define BF_BOTTOM 0x0008
3538#define BF_DIAGONAL 0x0010
3539#define BF_MIDDLE 0x0800 /* Fill in the middle */
3540#define BF_SOFT 0x1000 /* For softer buttons */
3541#define BF_ADJUST 0x2000 /* Calculate the space left over */
3542#define BF_FLAT 0x4000 /* For flat rather than 3D borders */
3543#define BF_MONO 0x8000 /* For monochrome borders */
3544#define BF_TOPLEFT (BF_TOP | BF_LEFT)
3545#define BF_TOPRIGHT (BF_TOP | BF_RIGHT)
3546#define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT)
3547#define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT)
3548#define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
3549#define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT)
3550#define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT)
3551#define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
3552#define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
3553
3554/* DrawFrameControl() uType's */
3555
3556#define DFC_CAPTION 1
3557#define DFC_MENU 2
3558#define DFC_SCROLL 3
3559#define DFC_BUTTON 4
3560#define DFC_POPUPMENU 5
3561
3562/* uState's */
3563
3564#define DFCS_CAPTIONCLOSE 0x0000
3565#define DFCS_CAPTIONMIN 0x0001
3566#define DFCS_CAPTIONMAX 0x0002
3567#define DFCS_CAPTIONRESTORE 0x0003
3568#define DFCS_CAPTIONHELP 0x0004 /* Windows 95 only */
3569
3570#define DFCS_MENUARROW 0x0000
3571#define DFCS_MENUCHECK 0x0001
3572#define DFCS_MENUBULLET 0x0002
3573#define DFCS_MENUARROWRIGHT 0x0004
3574
3575#define DFCS_SCROLLUP 0x0000
3576#define DFCS_SCROLLDOWN 0x0001
3577#define DFCS_SCROLLLEFT 0x0002
3578#define DFCS_SCROLLRIGHT 0x0003
3579#define DFCS_SCROLLCOMBOBOX 0x0005
3580#define DFCS_SCROLLSIZEGRIP 0x0008
3581#define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
3582
3583#define DFCS_BUTTONCHECK 0x0000
3584#define DFCS_BUTTONRADIOIMAGE 0x0001
3585#define DFCS_BUTTONRADIOMASK 0x0002 /* to draw nonsquare button */
3586#define DFCS_BUTTONRADIO 0x0004
3587#define DFCS_BUTTON3STATE 0x0008
3588#define DFCS_BUTTONPUSH 0x0010
3589
3590/* additional state of the control */
3591
3592#define DFCS_INACTIVE 0x0100
3593#define DFCS_PUSHED 0x0200
3594#define DFCS_CHECKED 0x0400
3595#define DFCS_TRANSPARENT 0x0800
3596#define DFCS_HOT 0x1000
3597#define DFCS_ADJUSTRECT 0x2000 /* exclude surrounding edge */
3598#define DFCS_FLAT 0x4000
3599#define DFCS_MONO 0x8000
3600
3601
3602/* Image type */
3603#define DST_COMPLEX 0x0000
3604#define DST_TEXT 0x0001
3605#define DST_PREFIXTEXT 0x0002
3606#define DST_ICON 0x0003
3607#define DST_BITMAP 0x0004
3608
3609/* State type */
3610#define DSS_NORMAL 0x0000
3611#define DSS_UNION 0x0010 /* Gray string appearance */
3612#define DSS_DISABLED 0x0020
3613#define DSS_DEFAULT 0x0040 /* Make it bold */
3614#define DSS_MONO 0x0080
3615#define DSS_HIDEPREFIX 0x0200
3616#define DSS_PREFIXONLY 0x0400
3617#define DSS_RIGHT 0x8000
3618
3619/* UserObjectInformation classes */
3620#define UOI_FLAGS 1
3621#define UOI_NAME 2
3622#define UOI_TYPE 3
3623#define UOI_USER_SID 4
3624
3625
3626/* Sent as the lParam of a WM_DRAWITEM message to instruct how an
3627 * owner drawn control is to be drawn */
3628typedef struct tagDRAWITEMSTRUCT
3629{
3630 UINT CtlType; /* Type of control (ODT_* flags from "winuser.h") */
3631 UINT CtlID; /* Control ID */
3632 UINT itemID; /* Menu item ID */
3633 UINT itemAction; /* Action to perform (ODA_* flags from "winuser.h") */
3634 UINT itemState; /* Item state (ODS_* flags from "winuser.h") */
3635 HWND hwndItem; /* Control window */
3636 HDC hDC; /* Device context to draw to */
3637 RECT rcItem; /* Position of the control in hDC */
3638 ULONG_PTR itemData; /* Extra data added by the application, if any */
3639} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;
3640
3641
3642typedef struct tagMEASUREITEMSTRUCT
3643{
3644 UINT CtlType;
3645 UINT CtlID;
3646 UINT itemID;
3647 UINT itemWidth;
3648 UINT itemHeight;
3649 ULONG_PTR itemData;
3650} MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;
3651
3652
3653typedef struct tagDELETEITEMSTRUCT
3654{
3655 UINT CtlType;
3656 UINT CtlID;
3657 UINT itemID;
3658 HWND hwndItem;
3659 ULONG_PTR itemData;
3660} DELETEITEMSTRUCT, *PDELETEITEMSTRUCT, *LPDELETEITEMSTRUCT;
3661
3662
3663typedef struct tagCOMPAREITEMSTRUCT
3664{
3665 UINT CtlType;
3666 UINT CtlID;
3667 HWND hwndItem;
3668 UINT itemID1;
3669 ULONG_PTR itemData1;
3670 UINT itemID2;
3671 ULONG_PTR itemData2;
3672 DWORD dwLocaleId;
3673} COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT;
3674
3675
3676/* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */
3677#define KF_EXTENDED 0x0100
3678#define KF_DLGMODE 0x0800
3679#define KF_MENUMODE 0x1000
3680#define KF_ALTDOWN 0x2000
3681#define KF_REPEAT 0x4000
3682#define KF_UP 0x8000
3683
3684/* Virtual key codes */
3685#define VK_LBUTTON 0x01
3686#define VK_RBUTTON 0x02
3687#define VK_CANCEL 0x03
3688#define VK_MBUTTON 0x04
3689#define VK_XBUTTON1 0x05
3690#define VK_XBUTTON2 0x06
3691/* 0x07 Undefined */
3692#define VK_BACK 0x08
3693#define VK_TAB 0x09
3694/* 0x0A-0x0B Undefined */
3695#define VK_CLEAR 0x0C
3696#define VK_RETURN 0x0D
3697/* 0x0E-0x0F Undefined */
3698#define VK_SHIFT 0x10
3699#define VK_CONTROL 0x11
3700#define VK_MENU 0x12
3701#define VK_PAUSE 0x13
3702#define VK_CAPITAL 0x14
3703
3704#define VK_KANA 0x15
3705#define VK_HANGEUL 0x15
3706#define VK_HANGUL 0x15
3707#define VK_JUNJA 0x17
3708#define VK_FINAL 0x18
3709#define VK_HANJA 0x19
3710#define VK_KANJI 0x19
3711
3712/* 0x1A Undefined */
3713#define VK_ESCAPE 0x1B
3714
3715#define VK_CONVERT 0x1C
3716#define VK_NONCONVERT 0x1D
3717#define VK_ACCEPT 0x1E
3718#define VK_MODECHANGE 0x1F
3719
3720#define VK_SPACE 0x20
3721#define VK_PRIOR 0x21
3722#define VK_NEXT 0x22
3723#define VK_END 0x23
3724#define VK_HOME 0x24
3725#define VK_LEFT 0x25
3726#define VK_UP 0x26
3727#define VK_RIGHT 0x27
3728#define VK_DOWN 0x28
3729#define VK_SELECT 0x29
3730#define VK_PRINT 0x2A /* OEM specific in Windows 3.1 SDK */
3731#define VK_EXECUTE 0x2B
3732#define VK_SNAPSHOT 0x2C
3733#define VK_INSERT 0x2D
3734#define VK_DELETE 0x2E
3735#define VK_HELP 0x2F
3736/* VK_0 - VK-9 0x30-0x39 Use ASCII instead */
3737/* 0x3A-0x40 Undefined */
3738/* VK_A - VK_Z 0x41-0x5A Use ASCII instead */
3739#define VK_LWIN 0x5B
3740#define VK_RWIN 0x5C
3741#define VK_APPS 0x5D
3742/* 0x5E Unassigned */
3743#define VK_SLEEP 0x5F
3744#define VK_NUMPAD0 0x60
3745#define VK_NUMPAD1 0x61
3746#define VK_NUMPAD2 0x62
3747#define VK_NUMPAD3 0x63
3748#define VK_NUMPAD4 0x64
3749#define VK_NUMPAD5 0x65
3750#define VK_NUMPAD6 0x66
3751#define VK_NUMPAD7 0x67
3752#define VK_NUMPAD8 0x68
3753#define VK_NUMPAD9 0x69
3754#define VK_MULTIPLY 0x6A
3755#define VK_ADD 0x6B
3756#define VK_SEPARATOR 0x6C
3757#define VK_SUBTRACT 0x6D
3758#define VK_DECIMAL 0x6E
3759#define VK_DIVIDE 0x6F
3760#define VK_F1 0x70
3761#define VK_F2 0x71
3762#define VK_F3 0x72
3763#define VK_F4 0x73
3764#define VK_F5 0x74
3765#define VK_F6 0x75
3766#define VK_F7 0x76
3767#define VK_F8 0x77
3768#define VK_F9 0x78
3769#define VK_F10 0x79
3770#define VK_F11 0x7A
3771#define VK_F12 0x7B
3772#define VK_F13 0x7C
3773#define VK_F14 0x7D
3774#define VK_F15 0x7E
3775#define VK_F16 0x7F
3776#define VK_F17 0x80
3777#define VK_F18 0x81
3778#define VK_F19 0x82
3779#define VK_F20 0x83
3780#define VK_F21 0x84
3781#define VK_F22 0x85
3782#define VK_F23 0x86
3783#define VK_F24 0x87
3784/* 0x88-0x8F Unassigned */
3785#define VK_NUMLOCK 0x90
3786#define VK_SCROLL 0x91
3787#define VK_OEM_NEC_EQUAL 0x92
3788#define VK_OEM_FJ_JISHO 0x92
3789#define VK_OEM_FJ_MASSHOU 0x93
3790#define VK_OEM_FJ_TOUROKU 0x94
3791#define VK_OEM_FJ_LOYA 0x95
3792#define VK_OEM_FJ_ROYA 0x96
3793/* 0x97-0x9F Unassigned */
3794/*
3795 * differencing between right and left shift/control/alt key.
3796 * Used only by GetAsyncKeyState() and GetKeyState().
3797 */
3798#define VK_LSHIFT 0xA0
3799#define VK_RSHIFT 0xA1
3800#define VK_LCONTROL 0xA2
3801#define VK_RCONTROL 0xA3
3802#define VK_LMENU 0xA4
3803#define VK_RMENU 0xA5
3804
3805#define VK_BROWSER_BACK 0xA6
3806#define VK_BROWSER_FORWARD 0xA7
3807#define VK_BROWSER_REFRESH 0xA8
3808#define VK_BROWSER_STOP 0xA9
3809#define VK_BROWSER_SEARCH 0xAA
3810#define VK_BROWSER_FAVORITES 0xAB
3811#define VK_BROWSER_HOME 0xAC
3812#define VK_VOLUME_MUTE 0xAD
3813#define VK_VOLUME_DOWN 0xAE
3814#define VK_VOLUME_UP 0xAF
3815#define VK_MEDIA_NEXT_TRACK 0xB0
3816#define VK_MEDIA_PREV_TRACK 0xB1
3817#define VK_MEDIA_STOP 0xB2
3818#define VK_MEDIA_PLAY_PAUSE 0xB3
3819#define VK_LAUNCH_MAIL 0xB4
3820#define VK_LAUNCH_MEDIA_SELECT 0xB5
3821#define VK_LAUNCH_APP1 0xB6
3822#define VK_LAUNCH_APP2 0xB7
3823
3824/* 0xB8-0xB9 Unassigned */
3825#define VK_OEM_1 0xBA
3826#define VK_OEM_PLUS 0xBB
3827#define VK_OEM_COMMA 0xBC
3828#define VK_OEM_MINUS 0xBD
3829#define VK_OEM_PERIOD 0xBE
3830#define VK_OEM_2 0xBF
3831#define VK_OEM_3 0xC0
3832/* 0xC1-0xDA Unassigned */
3833#define VK_OEM_4 0xDB
3834#define VK_OEM_5 0xDC
3835#define VK_OEM_6 0xDD
3836#define VK_OEM_7 0xDE
3837#define VK_OEM_8 0xDF
3838/* 0xE0 OEM specific */
3839#define VK_OEM_AX 0xE1 /* "AX" key on Japanese AX keyboard */
3840#define VK_OEM_102 0xE2 /* "<>" or "\|" on RT 102-key keyboard */
3841#define VK_ICO_HELP 0xE3 /* Help key on ICO */
3842#define VK_ICO_00 0xE4 /* 00 key on ICO */
3843#define VK_PROCESSKEY 0xE5
3844
3845/* 0xE6 OEM specific */
3846#define VK_PACKET 0xE7
3847/* 0xE8 Unassigned */
3848/* 0xE9-0xF5 OEM specific */
3849
3850#define VK_ATTN 0xF6
3851#define VK_CRSEL 0xF7
3852#define VK_EXSEL 0xF8
3853#define VK_EREOF 0xF9
3854#define VK_PLAY 0xFA
3855#define VK_ZOOM 0xFB
3856#define VK_NONAME 0xFC
3857#define VK_PA1 0xFD
3858#define VK_OEM_CLEAR 0xFE
3859
3860/* MapVirtualKey translation types */
3861#define MAPVK_VK_TO_VSC 0
3862#define MAPVK_VSC_TO_VK 1
3863#define MAPVK_VK_TO_CHAR 2
3864#define MAPVK_VSC_TO_VK_EX 3
3865#define MAPVK_VK_TO_VSC_EX 4
3866
3867 /* Key status flags for mouse events */
3868#define MK_LBUTTON 0x0001
3869#define MK_RBUTTON 0x0002
3870#define MK_SHIFT 0x0004
3871#define MK_CONTROL 0x0008
3872#define MK_MBUTTON 0x0010
3873#define MK_XBUTTON1 0x0020
3874#define MK_XBUTTON2 0x0040
3875
3876
3877#define TME_HOVER 0x00000001
3878#define TME_LEAVE 0x00000002
3879#define TME_NONCLIENT 0x00000010
3880#define TME_QUERY 0x40000000
3881#define TME_CANCEL 0x80000000
3882
3883#define HOVER_DEFAULT 0xFFFFFFFF
3884
3885typedef struct tagTRACKMOUSEEVENT {
3886 DWORD cbSize;
3887 DWORD dwFlags;
3888 HWND hwndTrack;
3889 DWORD dwHoverTime;
3890} TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT;
3891
3892 /* Queue status flags */
3893#define QS_KEY 0x0001
3894#define QS_MOUSEMOVE 0x0002
3895#define QS_MOUSEBUTTON 0x0004
3896#define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON)
3897#define QS_POSTMESSAGE 0x0008
3898#define QS_TIMER 0x0010
3899#define QS_PAINT 0x0020
3900#define QS_SENDMESSAGE 0x0040
3901#define QS_HOTKEY 0x0080
3902#define QS_ALLPOSTMESSAGE 0x0100
3903#define QS_RAWINPUT 0x0400
3904#define QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT)
3905#define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
3906#define QS_ALLINPUT (QS_ALLEVENTS | QS_SENDMESSAGE)
3907
3908/* Extra (undocumented) queue wake bits - see "Undoc. Windows" */
3909#define QS_SMRESULT 0x8000
3910
3911/* InSendMessageEx flags */
3912#define ISMEX_NOSEND 0x00000000
3913#define ISMEX_SEND 0x00000001
3914#define ISMEX_NOTIFY 0x00000002
3915#define ISMEX_CALLBACK 0x00000004
3916#define ISMEX_REPLIED 0x00000008
3917
3918#define DDL_READWRITE 0x0000
3919#define DDL_READONLY 0x0001
3920#define DDL_HIDDEN 0x0002
3921#define DDL_SYSTEM 0x0004
3922#define DDL_DIRECTORY 0x0010
3923#define DDL_ARCHIVE 0x0020
3924
3925#define DDL_POSTMSGS 0x2000
3926#define DDL_DRIVES 0x4000
3927#define DDL_EXCLUSIVE 0x8000
3928
3929 /* Shell hook values */
3930#define HSHELL_WINDOWCREATED 1
3931#define HSHELL_WINDOWDESTROYED 2
3932#define HSHELL_ACTIVATESHELLWINDOW 3
3933#define HSHELL_WINDOWACTIVATED 4
3934#define HSHELL_GETMINRECT 5
3935#define HSHELL_REDRAW 6
3936#define HSHELL_TASKMAN 7
3937#define HSHELL_LANGUAGE 8
3938#define HSHELL_SYSMENU 9
3939#define HSHELL_ENDTASK 10
3940#define HSHELL_ACCESSIBILITYSTATE 11
3941#define HSHELL_APPCOMMAND 12
3942#define HSHELL_WINDOWREPLACED 13
3943#define HSHELL_WINDOWREPLACING 14
3944
3945#define HSHELL_HIGHBIT 0x8000
3946#define HSHELL_FLASH (HSHELL_REDRAW|HSHELL_HIGHBIT)
3947#define HSHELL_RUDEAPPACTIVATED (HSHELL_WINDOWACTIVATED|HSHELL_HIGHBIT)
3948
3949/* App commands */
3950#define APPCOMMAND_BROWSER_BACKWARD 1
3951#define APPCOMMAND_BROWSER_FORWARD 2
3952#define APPCOMMAND_BROWSER_REFRESH 3
3953#define APPCOMMAND_BROWSER_STOP 4
3954#define APPCOMMAND_BROWSER_SEARCH 5
3955#define APPCOMMAND_BROWSER_FAVORITES 6
3956#define APPCOMMAND_BROWSER_HOME 7
3957#define APPCOMMAND_VOLUME_MUTE 8
3958#define APPCOMMAND_VOLUME_DOWN 9
3959#define APPCOMMAND_VOLUME_UP 10
3960#define APPCOMMAND_MEDIA_NEXTTRACK 11
3961#define APPCOMMAND_MEDIA_PREVIOUSTRACK 12
3962#define APPCOMMAND_MEDIA_STOP 13
3963#define APPCOMMAND_MEDIA_PLAY_PAUSE 14
3964#define APPCOMMAND_LAUNCH_MAIL 15
3965#define APPCOMMAND_LAUNCH_MEDIA_SELECT 16
3966#define APPCOMMAND_LAUNCH_APP1 17
3967#define APPCOMMAND_LAUNCH_APP2 18
3968#define APPCOMMAND_BASS_DOWN 19
3969#define APPCOMMAND_BASS_BOOST 20
3970#define APPCOMMAND_BASS_UP 21
3971#define APPCOMMAND_TREBLE_DOWN 22
3972#define APPCOMMAND_TREBLE_UP 23
3973#define APPCOMMAND_MICROPHONE_VOLUME_MUTE 24
3974#define APPCOMMAND_MICROPHONE_VOLUME_DOWN 25
3975#define APPCOMMAND_MICROPHONE_VOLUME_UP 26
3976#define APPCOMMAND_HELP 27
3977#define APPCOMMAND_FIND 28
3978#define APPCOMMAND_NEW 29
3979#define APPCOMMAND_OPEN 30
3980#define APPCOMMAND_CLOSE 31
3981#define APPCOMMAND_SAVE 32
3982#define APPCOMMAND_PRINT 33
3983#define APPCOMMAND_UNDO 34
3984#define APPCOMMAND_REDO 35
3985#define APPCOMMAND_COPY 36
3986#define APPCOMMAND_CUT 37
3987#define APPCOMMAND_PASTE 38
3988#define APPCOMMAND_REPLY_TO_MAIL 39
3989#define APPCOMMAND_FORWARD_MAIL 40
3990#define APPCOMMAND_SEND_MAIL 41
3991#define APPCOMMAND_SPELL_CHECK 42
3992#define APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE 43
3993#define APPCOMMAND_MIC_ON_OFF_TOGGLE 44
3994#define APPCOMMAND_CORRECTION_LIST 45
3995#define APPCOMMAND_MEDIA_PLAY 46
3996#define APPCOMMAND_MEDIA_PAUSE 47
3997#define APPCOMMAND_MEDIA_RECORD 48
3998#define APPCOMMAND_MEDIA_FAST_FORWARD 49
3999#define APPCOMMAND_MEDIA_REWIND 50
4000#define APPCOMMAND_MEDIA_CHANNEL_UP 51
4001#define APPCOMMAND_MEDIA_CHANNEL_DOWN 52
4002#define APPCOMMAND_DELETE 53
4003#define APPCOMMAND_DWM_FLIP3D 54
4004
4005#define FAPPCOMMAND_MOUSE 0x8000
4006#define FAPPCOMMAND_KEY 0
4007#define FAPPCOMMAND_OEM 0x1000
4008#define FAPPCOMMAND_MASK 0xF000
4009
4010#define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK))
4011#define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK))
4012#define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM
4013#define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam))
4014#define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam)
4015
4016/* Predefined Clipboard Formats */
4017#define CF_TEXT 1
4018#define CF_BITMAP 2
4019#define CF_METAFILEPICT 3
4020#define CF_SYLK 4
4021#define CF_DIF 5
4022#define CF_TIFF 6
4023#define CF_OEMTEXT 7
4024#define CF_DIB 8
4025#define CF_PALETTE 9
4026#define CF_PENDATA 10
4027#define CF_RIFF 11
4028#define CF_WAVE 12
4029#define CF_UNICODETEXT 13
4030#define CF_ENHMETAFILE 14
4031#define CF_HDROP 15
4032#define CF_LOCALE 16
4033#define CF_DIBV5 17
4034#define CF_MAX 18
4035
4036#define CF_OWNERDISPLAY 0x0080
4037#define CF_DSPTEXT 0x0081
4038#define CF_DSPBITMAP 0x0082
4039#define CF_DSPMETAFILEPICT 0x0083
4040#define CF_DSPENHMETAFILE 0x008E
4041
4042/* "Private" formats don't get GlobalFree()'d */
4043#define CF_PRIVATEFIRST 0x0200
4044#define CF_PRIVATELAST 0x02FF
4045
4046/* "GDIOBJ" formats do get DeleteObject()'d */
4047#define CF_GDIOBJFIRST 0x0300
4048#define CF_GDIOBJLAST 0x03FF
4049
4050
4051/* types of LoadImage */
4052#define IMAGE_BITMAP 0
4053#define IMAGE_ICON 1
4054#define IMAGE_CURSOR 2
4055#define IMAGE_ENHMETAFILE 3
4056
4057/* loadflags to LoadImage */
4058#define LR_DEFAULTCOLOR 0x0000
4059#define LR_MONOCHROME 0x0001
4060#define LR_COLOR 0x0002
4061#define LR_COPYRETURNORG 0x0004
4062#define LR_COPYDELETEORG 0x0008
4063#define LR_LOADFROMFILE 0x0010
4064#define LR_LOADTRANSPARENT 0x0020
4065#define LR_DEFAULTSIZE 0x0040
4066#define LR_VGA_COLOR 0x0080
4067#define LR_LOADMAP3DCOLORS 0x1000
4068#define LR_CREATEDIBSECTION 0x2000
4069#define LR_COPYFROMRESOURCE 0x4000
4070#define LR_SHARED 0x8000
4071
4072/* Flags for DrawIconEx. */
4073#define DI_MASK 0x0001
4074#define DI_IMAGE 0x0002
4075#define DI_NORMAL (DI_MASK | DI_IMAGE)
4076#define DI_COMPAT 0x0004
4077#define DI_DEFAULTSIZE 0x0008
4078#define DI_NOMIRROR 0x0010
4079
4080/* WM_NOTIFYFORMAT commands and return values */
4081#define NFR_ANSI 1
4082#define NFR_UNICODE 2
4083#define NF_QUERY 3
4084#define NF_REQUERY 4
4085
4086/* RegisterDeviceNotification stuff */
4087typedef PVOID HDEVNOTIFY;
4088typedef HDEVNOTIFY *PHDEVNOTIFY;
4089
4090#define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000
4091
4092/* used for GetWindowInfo() */
4093
4094#define WS_ACTIVECAPTION 0x0001
4095
4096typedef struct tagWINDOWINFO {
4097 DWORD cbSize;
4098 RECT rcWindow;
4099 RECT rcClient;
4100 DWORD dwStyle;
4101 DWORD dwExStyle;
4102 DWORD dwWindowStatus;
4103 UINT cxWindowBorders;
4104 UINT cyWindowBorders;
4105 ATOM atomWindowType;
4106 WORD wCreatorVersion;
4107} WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO;
4108
4109/* used for GetTitleBarInfo() */
4110
4111#define CCHILDREN_TITLEBAR 5
4112
4113typedef struct tagTITLEBARINFO {
4114 DWORD cbSize;
4115 RECT rcTitleBar;
4116 DWORD rgstate[CCHILDREN_TITLEBAR+1];
4117} TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO;
4118
4119/* used by GetLastInputInfo */
4120typedef struct tagLASTINPUTINFO {
4121 UINT cbSize;
4122 DWORD dwTime;
4123} LASTINPUTINFO, *PLASTINPUTINFO;
4124
4125/* used by GetAltTabInfo */
4126typedef struct
4127{
4128 DWORD cbSize;
4129 INT cItems;
4130 INT cColumns;
4131 INT cRows;
4132 INT iColFocus;
4133 INT iRowFocus;
4134 INT cxItem;
4135 INT cyItem;
4136 POINT ptStart;
4137} ALTTABINFO, *PALTTABINFO, *LPALTTABINFO;
4138
4139/* SetWinEventHook() flags */
4140#define WINEVENT_OUTOFCONTEXT 0x0
4141#define WINEVENT_SKIPOWNTHREAD 0x1
4142#define WINEVENT_SKIPOWNPROCESS 0x2
4143#define WINEVENT_INCONTEXT 0x4
4144
4145#define ENDSESSION_LOGOFF 0x80000000
4146
4147/* Object Id's */
4148#define CHILDID_SELF 0
4149#define INDEXID_OBJECT 0
4150#define INDEXID_CONTAINER 0
4151
4152/* System object Id's */
4153#define OBJID_WINDOW 0
4154#define OBJID_SYSMENU -1
4155#define OBJID_TITLEBAR -2
4156#define OBJID_MENU -3
4157#define OBJID_CLIENT -4
4158#define OBJID_VSCROLL -5
4159#define OBJID_HSCROLL -6
4160#define OBJID_SIZEGRIP -7
4161#define OBJID_CARET -8
4162#define OBJID_CURSOR -9
4163#define OBJID_ALERT -10
4164#define OBJID_SOUND -11
4165#define OBJID_QUERYCLASSNAMEIDX -12
4166#define OBJID_NATIVEOM -16
4167
4168/* User event Id limits */
4169#define EVENT_MIN 0x00000001
4170#define EVENT_MAX 0x7FFFFFFF
4171
4172/* System events */
4173#define EVENT_SYSTEM_SOUND 0x01
4174#define EVENT_SYSTEM_ALERT 0x02
4175#define EVENT_SYSTEM_FOREGROUND 0x03
4176#define EVENT_SYSTEM_MENUSTART 0x04
4177#define EVENT_SYSTEM_MENUEND 0x05
4178#define EVENT_SYSTEM_MENUPOPUPSTART 0x06
4179#define EVENT_SYSTEM_MENUPOPUPEND 0x07
4180#define EVENT_SYSTEM_CAPTURESTART 0x08
4181#define EVENT_SYSTEM_CAPTUREEND 0x09
4182#define EVENT_SYSTEM_MOVESIZESTART 0x0A
4183#define EVENT_SYSTEM_MOVESIZEEND 0x0B
4184#define EVENT_SYSTEM_CONTEXTHELPSTART 0x0C
4185#define EVENT_SYSTEM_CONTEXTHELPEND 0x0D
4186#define EVENT_SYSTEM_DRAGDROPSTART 0x0E
4187#define EVENT_SYSTEM_DRAGDROPEND 0x0F
4188#define EVENT_SYSTEM_DIALOGSTART 0x10
4189#define EVENT_SYSTEM_DIALOGEND 0x11
4190#define EVENT_SYSTEM_SCROLLINGSTART 0x12
4191#define EVENT_SYSTEM_SCROLLINGEND 0x13
4192#define EVENT_SYSTEM_SWITCHSTART 0x14
4193#define EVENT_SYSTEM_SWITCHEND 0x15
4194#define EVENT_SYSTEM_MINIMIZESTART 0x16
4195#define EVENT_SYSTEM_MINIMIZEEND 0x17
4196
4197/* Console events */
4198#define EVENT_CONSOLE_CARET 0x4001
4199#define EVENT_CONSOLE_UPDATE_REGION 0x4002
4200#define EVENT_CONSOLE_UPDATE_SIMPLE 0x4003
4201#define EVENT_CONSOLE_UPDATE_SCROLL 0x4004
4202#define EVENT_CONSOLE_LAYOUT 0x4005
4203#define EVENT_CONSOLE_START_APPLICATION 0x4006
4204#define EVENT_CONSOLE_END_APPLICATION 0x4007
4205
4206#define CONSOLE_APPLICATION_16BIT 0x1
4207#define CONSOLE_CARET_SELECTION 0x1
4208#define CONSOLE_CARET_VISIBLE 0x2
4209
4210/* Object events */
4211#define EVENT_OBJECT_CREATE 0x8000
4212#define EVENT_OBJECT_DESTROY 0x8001
4213#define EVENT_OBJECT_SHOW 0x8002
4214#define EVENT_OBJECT_HIDE 0x8003
4215#define EVENT_OBJECT_REORDER 0x8004
4216#define EVENT_OBJECT_FOCUS 0x8005
4217#define EVENT_OBJECT_SELECTION 0x8006
4218#define EVENT_OBJECT_SELECTIONADD 0x8007
4219#define EVENT_OBJECT_SELECTIONREMOVE 0x8008
4220#define EVENT_OBJECT_SELECTIONWITHIN 0x8009
4221#define EVENT_OBJECT_STATECHANGE 0x800A
4222#define EVENT_OBJECT_LOCATIONCHANGE 0x800B
4223#define EVENT_OBJECT_NAMECHANGE 0x800C
4224#define EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D
4225#define EVENT_OBJECT_VALUECHANGE 0x800E
4226#define EVENT_OBJECT_PARENTCHANGE 0x800F
4227#define EVENT_OBJECT_HELPCHANGE 0x8010
4228#define EVENT_OBJECT_DEFACTIONCHANGE 0x8011
4229#define EVENT_OBJECT_ACCELERATORCHANGE 0x8012
4230
4231/* Sound events */
4232#define SOUND_SYSTEM_STARTUP 1
4233#define SOUND_SYSTEM_SHUTDOWN 2
4234#define SOUND_SYSTEM_BEEP 3
4235#define SOUND_SYSTEM_ERROR 4
4236#define SOUND_SYSTEM_QUESTION 5
4237#define SOUND_SYSTEM_WARNING 6
4238#define SOUND_SYSTEM_INFORMATION 7
4239#define SOUND_SYSTEM_MAXIMIZE 8
4240#define SOUND_SYSTEM_MINIMIZE 9
4241#define SOUND_SYSTEM_RESTOREUP 10
4242#define SOUND_SYSTEM_RESTOREDOWN 11
4243#define SOUND_SYSTEM_APPSTART 12
4244#define SOUND_SYSTEM_FAULT 13
4245#define SOUND_SYSTEM_APPEND 14
4246#define SOUND_SYSTEM_MENUCOMMAND 15
4247#define SOUND_SYSTEM_MENUPOPUP 16
4248#define CSOUND_SYSTEM 16
4249
4250/* Alert events */
4251#define ALERT_SYSTEM_INFORMATIONAL 1
4252#define ALERT_SYSTEM_WARNING 2
4253#define ALERT_SYSTEM_ERROR 3
4254#define ALERT_SYSTEM_QUERY 4
4255#define ALERT_SYSTEM_CRITICAL 5
4256#define CALERT_SYSTEM 6
4257
4258/* System state flags */
4259#define STATE_SYSTEM_UNAVAILABLE 0x00000001
4260#define STATE_SYSTEM_SELECTED 0x00000002
4261#define STATE_SYSTEM_FOCUSED 0x00000004
4262#define STATE_SYSTEM_PRESSED 0x00000008
4263#define STATE_SYSTEM_CHECKED 0x00000010
4264#define STATE_SYSTEM_MIXED 0x00000020
4265#define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED
4266#define STATE_SYSTEM_READONLY 0x00000040
4267#define STATE_SYSTEM_HOTTRACKED 0x00000080
4268#define STATE_SYSTEM_DEFAULT 0x00000100
4269#define STATE_SYSTEM_EXPANDED 0x00000200
4270#define STATE_SYSTEM_COLLAPSED 0x00000400
4271#define STATE_SYSTEM_BUSY 0x00000800
4272#define STATE_SYSTEM_FLOATING 0x00001000
4273#define STATE_SYSTEM_MARQUEED 0x00002000
4274#define STATE_SYSTEM_ANIMATED 0x00004000
4275#define STATE_SYSTEM_INVISIBLE 0x00008000
4276#define STATE_SYSTEM_OFFSCREEN 0x00010000
4277#define STATE_SYSTEM_SIZEABLE 0x00020000
4278#define STATE_SYSTEM_MOVEABLE 0x00040000
4279#define STATE_SYSTEM_SELFVOICING 0x00080000
4280#define STATE_SYSTEM_FOCUSABLE 0x00100000
4281#define STATE_SYSTEM_SELECTABLE 0x00200000
4282#define STATE_SYSTEM_LINKED 0x00400000
4283#define STATE_SYSTEM_TRAVERSED 0x00800000
4284#define STATE_SYSTEM_MULTISELECTABLE 0x01000000
4285#define STATE_SYSTEM_EXTSELECTABLE 0x02000000
4286#define STATE_SYSTEM_ALERT_LOW 0x04000000
4287#define STATE_SYSTEM_ALERT_MEDIUM 0x08000000
4288#define STATE_SYSTEM_ALERT_HIGH 0x10000000
4289#define STATE_SYSTEM_PROTECTED 0x20000000
4290#define STATE_SYSTEM_VALID 0x3FFFFFFF
4291
4292/* Lock codes for LockSetForegroundWindow */
4293#define LSFW_LOCK 1
4294#define LSFW_UNLOCK 2
4295
4296/* Values for AllowSetForegroundWindow */
4297#define ASFW_ANY ((DWORD)-1)
4298
4299#define EnumTaskWindows(handle,proc,lparam) \
4300 EnumThreadWindows(handle,proc,lparam)
4301#define OemToAnsiA OemToCharA
4302#define OemToAnsiW OemToCharW
4303#define OemToAnsi WINELIB_NAME_AW(OemToAnsi)
4304#define OemToAnsiBuffA OemToCharBuffA
4305#define OemToAnsiBuffW OemToCharBuffW
4306#define OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff)
4307#define AnsiToOemA CharToOemA
4308#define AnsiToOemW CharToOemW
4309#define AnsiToOem WINELIB_NAME_AW(AnsiToOem)
4310#define AnsiToOemBuffA CharToOemBuffA
4311#define AnsiToOemBuffW CharToOemBuffW
4312#define AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff)
4313
4314#if defined(_WINGDI_) && !defined(NOGDI)
4315WINUSERAPI LONG WINAPI ChangeDisplaySettingsA(LPDEVMODEA,DWORD);
4316WINUSERAPI LONG WINAPI ChangeDisplaySettingsW(LPDEVMODEW,DWORD);
4317#define ChangeDisplaySettings WINELIB_NAME_AW(ChangeDisplaySettings)
4318WINUSERAPI LONG WINAPI ChangeDisplaySettingsExA(LPCSTR,LPDEVMODEA,HWND,DWORD,LPVOID);
4319WINUSERAPI LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR,LPDEVMODEW,HWND,DWORD,LPVOID);
4320#define ChangeDisplaySettingsEx WINELIB_NAME_AW(ChangeDisplaySettingsEx)
4321WINUSERAPI HDESK WINAPI CreateDesktopA(LPCSTR,LPCSTR,LPDEVMODEA,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
4322WINUSERAPI HDESK WINAPI CreateDesktopW(LPCWSTR,LPCWSTR,LPDEVMODEW,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
4323#define CreateDesktop WINELIB_NAME_AW(CreateDesktop)
4324WINUSERAPI BOOL WINAPI EnumDisplayDevicesA(LPCSTR,DWORD,LPDISPLAY_DEVICEA,DWORD);
4325WINUSERAPI BOOL WINAPI EnumDisplayDevicesW(LPCWSTR,DWORD,LPDISPLAY_DEVICEW,DWORD);
4326#define EnumDisplayDevices WINELIB_NAME_AW(EnumDisplayDevices)
4327WINUSERAPI BOOL WINAPI EnumDisplaySettingsA(LPCSTR,DWORD,LPDEVMODEA);
4328WINUSERAPI BOOL WINAPI EnumDisplaySettingsW(LPCWSTR,DWORD,LPDEVMODEW);
4329#define EnumDisplaySettings WINELIB_NAME_AW(EnumDisplaySettings)
4330WINUSERAPI BOOL WINAPI EnumDisplaySettingsExA(LPCSTR,DWORD,LPDEVMODEA,DWORD);
4331WINUSERAPI BOOL WINAPI EnumDisplaySettingsExW(LPCWSTR,DWORD,LPDEVMODEW,DWORD);
4332#define EnumDisplaySettingsEx WINELIB_NAME_AW(EnumDisplaySettingsEx)
4333WINUSERAPI BOOL WINAPI UpdateLayeredWindow(HWND,HDC,POINT*,SIZE*,HDC,POINT*,COLORREF,BLENDFUNCTION*,DWORD);
4334WINUSERAPI BOOL WINAPI UpdateLayeredWindowIndirect(HWND,UPDATELAYEREDWINDOWINFO CONST*);
4335#endif /* defined(_WINGDI_) && !defined(NOGDI) */
4336
4337WINUSERAPI HKL WINAPI ActivateKeyboardLayout(HKL,UINT);
4338WINUSERAPI BOOL WINAPI AdjustWindowRect(LPRECT,DWORD,BOOL);
4339WINUSERAPI BOOL WINAPI AdjustWindowRectEx(LPRECT,DWORD,BOOL,DWORD);
4340WINUSERAPI BOOL WINAPI AllowSetForegroundWindow(DWORD);
4341WINUSERAPI BOOL WINAPI AnimateWindow(HWND,DWORD,DWORD);
4342#define AnsiLowerA CharLowerA
4343#define AnsiLowerW CharLowerW
4344#define AnsiLower WINELIB_NAME_AW(AnsiLower)
4345#define AnsiLowerBuffA CharLowerBuffA
4346#define AnsiLowerBuffW CharLowerBuffW
4347#define AnsiLowerBuff WINELIB_NAME_AW(AnsiLowerBuff)
4348#define AnsiNextA CharNextA
4349#define AnsiNextW CharNextW
4350#define AnsiNext WINELIB_NAME_AW(AnsiNext)
4351#define AnsiPrevA CharPrevA
4352#define AnsiPrevW CharPrevW
4353#define AnsiPrev WINELIB_NAME_AW(AnsiPrev)
4354#define AnsiUpperA CharUpperA
4355#define AnsiUpperW CharUpperW
4356#define AnsiUpper WINELIB_NAME_AW(AnsiUpper)
4357#define AnsiUpperBuffA CharUpperBuffA
4358#define AnsiUpperBuffW CharUpperBuffW
4359#define AnsiUpperBuff WINELIB_NAME_AW(AnsiUpperBuff)
4360WINUSERAPI BOOL WINAPI AnyPopup(void);
4361WINUSERAPI BOOL WINAPI AppendMenuA(HMENU,UINT,UINT_PTR,LPCSTR);
4362WINUSERAPI BOOL WINAPI AppendMenuW(HMENU,UINT,UINT_PTR,LPCWSTR);
4363#define AppendMenu WINELIB_NAME_AW(AppendMenu)
4364WINUSERAPI UINT WINAPI ArrangeIconicWindows(HWND);
4365WINUSERAPI BOOL WINAPI AttachThreadInput(DWORD,DWORD,BOOL);
4366WINUSERAPI HDWP WINAPI BeginDeferWindowPos(INT);
4367WINUSERAPI HDC WINAPI BeginPaint(HWND,LPPAINTSTRUCT);
4368WINUSERAPI BOOL WINAPI BringWindowToTop(HWND);
4369WINUSERAPI LONG WINAPI BroadcastSystemMessageA(DWORD,LPDWORD,UINT,WPARAM,LPARAM);
4370WINUSERAPI LONG WINAPI BroadcastSystemMessageW(DWORD,LPDWORD,UINT,WPARAM,LPARAM);
4371#define BroadcastSystemMessage WINELIB_NAME_AW(BroadcastSystemMessage)
4372WINUSERAPI LONG WINAPI BroadcastSystemMessageExA(DWORD,LPDWORD,UINT,WPARAM,LPARAM,PBSMINFO);
4373WINUSERAPI LONG WINAPI BroadcastSystemMessageExW(DWORD,LPDWORD,UINT,WPARAM,LPARAM,PBSMINFO);
4374#define BroadcastSystemMessageEx WINELIB_NAME_AW(BroadcastSystemMessageEx)
4375WINUSERAPI void WINAPI CalcChildScroll(HWND, INT);
4376WINUSERAPI BOOL WINAPI CallMsgFilterA(LPMSG,INT);
4377WINUSERAPI BOOL WINAPI CallMsgFilterW(LPMSG,INT);
4378#define CallMsgFilter WINELIB_NAME_AW(CallMsgFilter)
4379WINUSERAPI LRESULT WINAPI CallNextHookEx(HHOOK,INT,WPARAM,LPARAM);
4380WINUSERAPI LRESULT WINAPI CallWindowProcA(WNDPROC,HWND,UINT,WPARAM,LPARAM);
4381WINUSERAPI LRESULT WINAPI CallWindowProcW(WNDPROC,HWND,UINT,WPARAM,LPARAM);
4382#define CallWindowProc WINELIB_NAME_AW(CallWindowProc)
4383WINUSERAPI WORD WINAPI CascadeWindows(HWND, UINT, const RECT *, UINT, const HWND *);
4384WINUSERAPI BOOL WINAPI ChangeClipboardChain(HWND,HWND);
4385WINUSERAPI BOOL WINAPI ChangeMenuA(HMENU,UINT,LPCSTR,UINT,UINT);
4386WINUSERAPI BOOL WINAPI ChangeMenuW(HMENU,UINT,LPCWSTR,UINT,UINT);
4387#define ChangeMenu WINELIB_NAME_AW(ChangeMenu)
4388WINUSERAPI LPSTR WINAPI CharLowerA(LPSTR);
4389WINUSERAPI LPWSTR WINAPI CharLowerW(LPWSTR);
4390#define CharLower WINELIB_NAME_AW(CharLower)
4391WINUSERAPI DWORD WINAPI CharLowerBuffA(LPSTR,DWORD);
4392WINUSERAPI DWORD WINAPI CharLowerBuffW(LPWSTR,DWORD);
4393#define CharLowerBuff WINELIB_NAME_AW(CharLowerBuff)
4394WINUSERAPI LPSTR WINAPI CharNextA(LPCSTR);
4395WINUSERAPI LPWSTR WINAPI CharNextW(LPCWSTR);
4396#define CharNext WINELIB_NAME_AW(CharNext)
4397WINUSERAPI LPSTR WINAPI CharNextExA(WORD,LPCSTR,DWORD);
4398/* no CharNextExW (doesn't make sense) */
4399WINUSERAPI LPSTR WINAPI CharPrevA(LPCSTR,LPCSTR);
4400WINUSERAPI LPWSTR WINAPI CharPrevW(LPCWSTR,LPCWSTR);
4401#define CharPrev WINELIB_NAME_AW(CharPrev)
4402WINUSERAPI LPSTR WINAPI CharPrevExA(WORD,LPCSTR,LPCSTR,DWORD);
4403/* no CharPrevExW (doesn't make sense) */
4404WINUSERAPI LPSTR WINAPI CharUpperA(LPSTR);
4405WINUSERAPI LPWSTR WINAPI CharUpperW(LPWSTR);
4406#define CharUpper WINELIB_NAME_AW(CharUpper)
4407WINUSERAPI DWORD WINAPI CharUpperBuffA(LPSTR,DWORD);
4408WINUSERAPI DWORD WINAPI CharUpperBuffW(LPWSTR,DWORD);
4409#define CharUpperBuff WINELIB_NAME_AW(CharUpperBuff)
4410WINUSERAPI BOOL WINAPI CharToOemA(LPCSTR,LPSTR);
4411WINUSERAPI BOOL WINAPI CharToOemW(LPCWSTR,LPSTR);
4412#define CharToOem WINELIB_NAME_AW(CharToOem)
4413WINUSERAPI BOOL WINAPI CharToOemBuffA(LPCSTR,LPSTR,DWORD);
4414WINUSERAPI BOOL WINAPI CharToOemBuffW(LPCWSTR,LPSTR,DWORD);
4415#define CharToOemBuff WINELIB_NAME_AW(CharToOemBuff)
4416WINUSERAPI BOOL WINAPI CheckDlgButton(HWND,INT,UINT);
4417WINUSERAPI DWORD WINAPI CheckMenuItem(HMENU,UINT,UINT);
4418WINUSERAPI BOOL WINAPI CheckMenuRadioItem(HMENU,UINT,UINT,UINT,UINT);
4419WINUSERAPI BOOL WINAPI CheckRadioButton(HWND,int,int,int);
4420WINUSERAPI HWND WINAPI ChildWindowFromPoint(HWND,POINT);
4421WINUSERAPI HWND WINAPI ChildWindowFromPointEx(HWND,POINT,UINT);
4422WINUSERAPI BOOL WINAPI ClientToScreen(HWND,LPPOINT);
4423WINUSERAPI BOOL WINAPI ClipCursor(const RECT*);
4424WINUSERAPI BOOL WINAPI CloseClipboard(void);
4425WINUSERAPI BOOL WINAPI CloseDesktop(HDESK);
4426WINUSERAPI BOOL WINAPI CloseWindow(HWND);
4427WINUSERAPI BOOL WINAPI CloseWindowStation(HWINSTA);
4428WINUSERAPI INT WINAPI CopyAcceleratorTableA(HACCEL,LPACCEL,INT);
4429WINUSERAPI INT WINAPI CopyAcceleratorTableW(HACCEL,LPACCEL,INT);
4430#define CopyAcceleratorTable WINELIB_NAME_AW(CopyAcceleratorTable)
4431#define CopyCursor(cur) ((HCURSOR)CopyIcon((HICON)(cur)))
4432WINUSERAPI HICON WINAPI CopyIcon(HICON);
4433WINUSERAPI HANDLE WINAPI CopyImage(HANDLE,UINT,INT,INT,UINT);
4434WINUSERAPI BOOL WINAPI CopyRect(RECT*,const RECT*);
4435WINUSERAPI INT WINAPI CountClipboardFormats(void);
4436WINUSERAPI HACCEL WINAPI CreateAcceleratorTableA(LPACCEL,INT);
4437WINUSERAPI HACCEL WINAPI CreateAcceleratorTableW(LPACCEL,INT);
4438#define CreateAcceleratorTable WINELIB_NAME_AW(CreateAcceleratorTable)
4439WINUSERAPI HICON WINAPI CreateIconIndirect(PICONINFO);
4440WINUSERAPI BOOL WINAPI CreateCaret(HWND,HBITMAP,INT,INT);
4441WINUSERAPI HCURSOR WINAPI CreateCursor(HINSTANCE,INT,INT,INT,INT,LPCVOID,LPCVOID);
4442#define CreateDialogA(inst,ptr,hwnd,dlg) CreateDialogParamA(inst,ptr,hwnd,dlg,0)
4443#define CreateDialogW(inst,ptr,hwnd,dlg) CreateDialogParamW(inst,ptr,hwnd,dlg,0)
4444#define CreateDialog WINELIB_NAME_AW(CreateDialog)
4445#define CreateDialogIndirectA(inst,ptr,hwnd,dlg) CreateDialogIndirectParamA(inst,ptr,hwnd,dlg,0)
4446#define CreateDialogIndirectW(inst,ptr,hwnd,dlg) CreateDialogIndirectParamW(inst,ptr,hwnd,dlg,0)
4447#define CreateDialogIndirect WINELIB_NAME_AW(CreateDialogIndirect)
4448WINUSERAPI HWND WINAPI CreateDialogIndirectParamA(HINSTANCE,LPCDLGTEMPLATEA,HWND,DLGPROC,LPARAM);
4449WINUSERAPI HWND WINAPI CreateDialogIndirectParamW(HINSTANCE,LPCDLGTEMPLATEW,HWND,DLGPROC,LPARAM);
4450#define CreateDialogIndirectParam WINELIB_NAME_AW(CreateDialogIndirectParam)
4451WINUSERAPI HWND WINAPI CreateDialogParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
4452WINUSERAPI HWND WINAPI CreateDialogParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
4453#define CreateDialogParam WINELIB_NAME_AW(CreateDialogParam)
4454WINUSERAPI HICON WINAPI CreateIcon(HINSTANCE,INT,INT,BYTE,BYTE,LPCVOID,LPCVOID);
4455WINUSERAPI HICON WINAPI CreateIconFromResource(LPBYTE,UINT,BOOL,DWORD);
4456WINUSERAPI HICON WINAPI CreateIconFromResourceEx(LPBYTE,UINT,BOOL,DWORD,INT,INT,UINT);
4457WINUSERAPI HMENU WINAPI CreateMenu(void);
4458WINUSERAPI HMENU WINAPI CreatePopupMenu(void);
4459#define CreateWindowA(className,titleName,style,x,y,width,height,parent,menu,instance,param) CreateWindowExA(0,className,titleName,style,x,y,width,height,parent,menu,instance,param)
4460#define CreateWindowW(className,titleName,style,x,y,width,height,parent,menu,instance,param) CreateWindowExW(0,className,titleName,style,x,y,width,height,parent,menu,instance,param)
4461#define CreateWindow WINELIB_NAME_AW(CreateWindow)
4462WINUSERAPI HWND WINAPI CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,INT,INT,INT,INT,HWND,HMENU,HINSTANCE,LPVOID);
4463WINUSERAPI HWND WINAPI CreateWindowExW(DWORD,LPCWSTR,LPCWSTR,DWORD,INT,INT,INT,INT,HWND,HMENU,HINSTANCE,LPVOID);
4464#define CreateWindowEx WINELIB_NAME_AW(CreateWindowEx)
4465WINUSERAPI HWINSTA WINAPI CreateWindowStationA(LPCSTR,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
4466WINUSERAPI HWINSTA WINAPI CreateWindowStationW(LPCWSTR,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
4467#define CreateWindowStation WINELIB_NAME_AW(CreateWindowStation)
4468WINUSERAPI HWND WINAPI CreateMDIWindowA(LPCSTR,LPCSTR,DWORD,INT,INT,INT,INT,HWND,HINSTANCE,LPARAM);
4469WINUSERAPI HWND WINAPI CreateMDIWindowW(LPCWSTR,LPCWSTR,DWORD,INT,INT,INT,INT,HWND,HINSTANCE,LPARAM);
4470#define CreateMDIWindow WINELIB_NAME_AW(CreateMDIWindow)
4471WINUSERAPI LRESULT WINAPI DefDlgProcA(HWND,UINT,WPARAM,LPARAM);
4472WINUSERAPI LRESULT WINAPI DefDlgProcW(HWND,UINT,WPARAM,LPARAM);
4473#define DefDlgProc WINELIB_NAME_AW(DefDlgProc)
4474WINUSERAPI HDWP WINAPI DeferWindowPos(HDWP,HWND,HWND,INT,INT,INT,INT,UINT);
4475WINUSERAPI LRESULT WINAPI DefFrameProcA(HWND,HWND,UINT,WPARAM,LPARAM);
4476WINUSERAPI LRESULT WINAPI DefFrameProcW(HWND,HWND,UINT,WPARAM,LPARAM);
4477#define DefFrameProc WINELIB_NAME_AW(DefFrameProc)
4478#define DefHookProc(code,wparam,lparam,phhook) CallNextHookEx(*(phhook),code,wparam,lparam)
4479WINUSERAPI LRESULT WINAPI DefMDIChildProcA(HWND,UINT,WPARAM,LPARAM);
4480WINUSERAPI LRESULT WINAPI DefMDIChildProcW(HWND,UINT,WPARAM,LPARAM);
4481#define DefMDIChildProc WINELIB_NAME_AW(DefMDIChildProc)
4482WINUSERAPI LRESULT WINAPI DefRawInputProc(PRAWINPUT*,INT,UINT);
4483WINUSERAPI LRESULT WINAPI DefWindowProcA(HWND,UINT,WPARAM,LPARAM);
4484WINUSERAPI LRESULT WINAPI DefWindowProcW(HWND,UINT,WPARAM,LPARAM);
4485#define DefWindowProc WINELIB_NAME_AW(DefWindowProc)
4486WINUSERAPI BOOL WINAPI DeleteMenu(HMENU,UINT,UINT);
4487WINUSERAPI BOOL WINAPI DestroyAcceleratorTable(HACCEL);
4488WINUSERAPI BOOL WINAPI DestroyCaret(void);
4489WINUSERAPI BOOL WINAPI DestroyCursor(HCURSOR);
4490WINUSERAPI BOOL WINAPI DestroyIcon(HICON);
4491WINUSERAPI BOOL WINAPI DestroyMenu(HMENU);
4492WINUSERAPI BOOL WINAPI DestroyWindow(HWND);
4493#define DialogBoxA(inst,template,owner,func) DialogBoxParamA(inst,template,owner,func,0)
4494#define DialogBoxW(inst,template,owner,func) DialogBoxParamW(inst,template,owner,func,0)
4495#define DialogBox WINELIB_NAME_AW(DialogBox)
4496#define DialogBoxIndirectA(inst,template,owner,func) DialogBoxIndirectParamA(inst,template,owner,func,0)
4497#define DialogBoxIndirectW(inst,template,owner,func) DialogBoxIndirectParamW(inst,template,owner,func,0)
4498#define DialogBoxIndirect WINELIB_NAME_AW(DialogBoxIndirect)
4499WINUSERAPI INT_PTR WINAPI DialogBoxIndirectParamA(HINSTANCE,LPCDLGTEMPLATEA,HWND,DLGPROC,LPARAM);
4500WINUSERAPI INT_PTR WINAPI DialogBoxIndirectParamW(HINSTANCE,LPCDLGTEMPLATEW,HWND,DLGPROC,LPARAM);
4501#define DialogBoxIndirectParam WINELIB_NAME_AW(DialogBoxIndirectParam)
4502WINUSERAPI INT_PTR WINAPI DialogBoxParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
4503WINUSERAPI INT_PTR WINAPI DialogBoxParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
4504#define DialogBoxParam WINELIB_NAME_AW(DialogBoxParam)
4505WINUSERAPI LRESULT WINAPI DispatchMessageA(const MSG*);
4506WINUSERAPI LRESULT WINAPI DispatchMessageW(const MSG*);
4507#define DispatchMessage WINELIB_NAME_AW(DispatchMessage)
4508WINUSERAPI INT WINAPI DlgDirListA(HWND,LPSTR,INT,INT,UINT);
4509WINUSERAPI INT WINAPI DlgDirListW(HWND,LPWSTR,INT,INT,UINT);
4510#define DlgDirList WINELIB_NAME_AW(DlgDirList)
4511WINUSERAPI INT WINAPI DlgDirListComboBoxA(HWND,LPSTR,INT,INT,UINT);
4512WINUSERAPI INT WINAPI DlgDirListComboBoxW(HWND,LPWSTR,INT,INT,UINT);
4513#define DlgDirListComboBox WINELIB_NAME_AW(DlgDirListComboBox)
4514WINUSERAPI BOOL WINAPI DlgDirSelectComboBoxExA(HWND,LPSTR,INT,INT);
4515WINUSERAPI BOOL WINAPI DlgDirSelectComboBoxExW(HWND,LPWSTR,INT,INT);
4516#define DlgDirSelectComboBoxEx WINELIB_NAME_AW(DlgDirSelectComboBoxEx)
4517WINUSERAPI BOOL WINAPI DlgDirSelectExA(HWND,LPSTR,INT,INT);
4518WINUSERAPI BOOL WINAPI DlgDirSelectExW(HWND,LPWSTR,INT,INT);
4519#define DlgDirSelectEx WINELIB_NAME_AW(DlgDirSelectEx)
4520WINUSERAPI BOOL WINAPI DragDetect(HWND,POINT);
4521WINUSERAPI DWORD WINAPI DragObject(HWND,HWND,UINT,ULONG_PTR,HCURSOR);
4522WINUSERAPI BOOL WINAPI DrawAnimatedRects(HWND,int,const RECT*,const RECT*);
4523WINUSERAPI BOOL WINAPI DrawCaption(HWND,HDC,const RECT*,UINT);
4524WINUSERAPI BOOL WINAPI DrawCaptionTempA(HWND,HDC,const RECT*,HFONT,HICON,LPCSTR,UINT);
4525WINUSERAPI BOOL WINAPI DrawCaptionTempW(HWND,HDC,const RECT*,HFONT,HICON,LPCWSTR,UINT);
4526#define DrawCaptionTemp WINELIB_NAME_AW(DrawCaptionTemp)
4527WINUSERAPI BOOL WINAPI DrawEdge(HDC,LPRECT,UINT,UINT);
4528WINUSERAPI BOOL WINAPI DrawFocusRect(HDC,const RECT*);
4529WINUSERAPI BOOL WINAPI DrawFrameControl(HDC,LPRECT,UINT,UINT);
4530WINUSERAPI BOOL WINAPI DrawIcon(HDC,INT,INT,HICON);
4531WINUSERAPI BOOL WINAPI DrawIconEx(HDC,INT,INT,HICON,INT,INT,UINT,HBRUSH,UINT);
4532WINUSERAPI BOOL WINAPI DrawMenuBar(HWND);
4533WINUSERAPI BOOL WINAPI DrawStateA(HDC,HBRUSH,DRAWSTATEPROC,LPARAM,WPARAM,INT,INT,INT,INT,UINT);
4534WINUSERAPI BOOL WINAPI DrawStateW(HDC,HBRUSH,DRAWSTATEPROC,LPARAM,WPARAM,INT,INT,INT,INT,UINT);
4535#define DrawState WINELIB_NAME_AW(DrawState)
4536WINUSERAPI INT WINAPI DrawTextA(HDC,LPCSTR,INT,LPRECT,UINT);
4537WINUSERAPI INT WINAPI DrawTextW(HDC,LPCWSTR,INT,LPRECT,UINT);
4538#define DrawText WINELIB_NAME_AW(DrawText)
4539WINUSERAPI INT WINAPI DrawTextExA(HDC,LPSTR,INT,LPRECT,UINT,LPDRAWTEXTPARAMS);
4540WINUSERAPI INT WINAPI DrawTextExW(HDC,LPWSTR,INT,LPRECT,UINT,LPDRAWTEXTPARAMS);
4541#define DrawTextEx WINELIB_NAME_AW(DrawTextEx)
4542WINUSERAPI BOOL WINAPI EmptyClipboard(void);
4543WINUSERAPI BOOL WINAPI EnableMenuItem(HMENU,UINT,UINT);
4544WINUSERAPI BOOL WINAPI EnableScrollBar(HWND,UINT,UINT);
4545WINUSERAPI BOOL WINAPI EnableWindow(HWND,BOOL);
4546WINUSERAPI BOOL WINAPI EndDeferWindowPos(HDWP);
4547WINUSERAPI BOOL WINAPI EndDialog(HWND,INT_PTR);
4548WINUSERAPI BOOL WINAPI EndMenu(void);
4549WINUSERAPI BOOL WINAPI EndPaint(HWND,const PAINTSTRUCT*);
4550WINUSERAPI BOOL WINAPI EnumChildWindows(HWND,WNDENUMPROC,LPARAM);
4551WINUSERAPI UINT WINAPI EnumClipboardFormats(UINT);
4552WINUSERAPI BOOL WINAPI EnumDesktopsA(HWINSTA,DESKTOPENUMPROCA,LPARAM);
4553WINUSERAPI BOOL WINAPI EnumDesktopsW(HWINSTA,DESKTOPENUMPROCW,LPARAM);
4554#define EnumDesktops WINELIB_NAME_AW(EnumDesktops)
4555WINUSERAPI BOOL WINAPI EnumDesktopWindows(HDESK,WNDENUMPROC,LPARAM);
4556WINUSERAPI BOOL WINAPI EnumDisplayMonitors(HDC,LPRECT,MONITORENUMPROC,LPARAM);
4557WINUSERAPI INT WINAPI EnumPropsA(HWND,PROPENUMPROCA);
4558WINUSERAPI INT WINAPI EnumPropsW(HWND,PROPENUMPROCW);
4559#define EnumProps WINELIB_NAME_AW(EnumProps)
4560WINUSERAPI INT WINAPI EnumPropsExA(HWND,PROPENUMPROCEXA,LPARAM);
4561WINUSERAPI INT WINAPI EnumPropsExW(HWND,PROPENUMPROCEXW,LPARAM);
4562#define EnumPropsEx WINELIB_NAME_AW(EnumPropsEx)
4563WINUSERAPI BOOL WINAPI EnumThreadWindows(DWORD,WNDENUMPROC,LPARAM);
4564WINUSERAPI BOOL WINAPI EnumWindows(WNDENUMPROC,LPARAM);
4565WINUSERAPI BOOL WINAPI EnumWindowStationsA(WINSTAENUMPROCA,LPARAM);
4566WINUSERAPI BOOL WINAPI EnumWindowStationsW(WINSTAENUMPROCW,LPARAM);
4567#define EnumWindowStations WINELIB_NAME_AW(EnumWindowStations)
4568WINUSERAPI BOOL WINAPI EqualRect(const RECT*,const RECT*);
4569WINUSERAPI INT WINAPI ExcludeUpdateRgn(HDC,HWND);
4570#define ExitWindows(a,b) ExitWindowsEx(EWX_LOGOFF,0xffffffff)
4571WINUSERAPI BOOL WINAPI ExitWindowsEx(UINT,DWORD);
4572WINUSERAPI INT WINAPI FillRect(HDC,const RECT*,HBRUSH);
4573WINUSERAPI HWND WINAPI FindWindowA(LPCSTR,LPCSTR);
4574WINUSERAPI HWND WINAPI FindWindowW(LPCWSTR,LPCWSTR);
4575#define FindWindow WINELIB_NAME_AW(FindWindow)
4576WINUSERAPI HWND WINAPI FindWindowExA(HWND,HWND,LPCSTR,LPCSTR);
4577WINUSERAPI HWND WINAPI FindWindowExW(HWND,HWND,LPCWSTR,LPCWSTR);
4578#define FindWindowEx WINELIB_NAME_AW(FindWindowEx)
4579WINUSERAPI BOOL WINAPI FlashWindow(HWND,BOOL);
4580WINUSERAPI BOOL WINAPI FlashWindowEx(PFLASHWINFO);
4581WINUSERAPI INT WINAPI FrameRect(HDC,const RECT*,HBRUSH);
4582WINUSERAPI HWND WINAPI GetActiveWindow(void);
4583WINUSERAPI BOOL WINAPI GetAltTabInfoA(HWND,INT,PALTTABINFO,LPSTR,UINT);
4584WINUSERAPI BOOL WINAPI GetAltTabInfoW(HWND,INT,PALTTABINFO,LPWSTR,UINT);
4585#define GetAltTabInfo WINELIB_NAME_AW(GetAltTabInfo)
4586WINUSERAPI HWND WINAPI GetAncestor(HWND,UINT);
4587WINUSERAPI DWORD WINAPI GetAppCompatFlags(HTASK);
4588WINUSERAPI SHORT WINAPI GetAsyncKeyState(INT);
4589WINUSERAPI HWND WINAPI GetCapture(void);
4590WINUSERAPI UINT WINAPI GetCaretBlinkTime(void);
4591WINUSERAPI BOOL WINAPI GetCaretPos(LPPOINT);
4592WINUSERAPI BOOL WINAPI GetClassInfoA(HINSTANCE,LPCSTR,WNDCLASSA *);
4593WINUSERAPI BOOL WINAPI GetClassInfoW(HINSTANCE,LPCWSTR,WNDCLASSW *);
4594#define GetClassInfo WINELIB_NAME_AW(GetClassInfo)
4595WINUSERAPI BOOL WINAPI GetClassInfoExA(HINSTANCE,LPCSTR,WNDCLASSEXA *);
4596WINUSERAPI BOOL WINAPI GetClassInfoExW(HINSTANCE,LPCWSTR,WNDCLASSEXW *);
4597#define GetClassInfoEx WINELIB_NAME_AW(GetClassInfoEx)
4598WINUSERAPI DWORD WINAPI GetClassLongA(HWND,INT);
4599WINUSERAPI DWORD WINAPI GetClassLongW(HWND,INT);
4600#define GetClassLong WINELIB_NAME_AW(GetClassLong)
4601#ifdef _WIN64
4602WINUSERAPI ULONG_PTR WINAPI GetClassLongPtrA(HWND,INT);
4603WINUSERAPI ULONG_PTR WINAPI GetClassLongPtrW(HWND,INT);
4604#else
4605#define GetClassLongPtrA GetClassLongA
4606#define GetClassLongPtrW GetClassLongW
4607#endif
4608#define GetClassLongPtr WINELIB_NAME_AW(GetClassLongPtr)
4609WINUSERAPI INT WINAPI GetClassNameA(HWND,LPSTR,INT);
4610WINUSERAPI INT WINAPI GetClassNameW(HWND,LPWSTR,INT);
4611#define GetClassName WINELIB_NAME_AW(GetClassName)
4612WINUSERAPI WORD WINAPI GetClassWord(HWND,INT);
4613WINUSERAPI BOOL WINAPI GetClientRect(HWND,LPRECT);
4614WINUSERAPI HANDLE WINAPI GetClipboardData(UINT);
4615WINUSERAPI INT WINAPI GetClipboardFormatNameA(UINT,LPSTR,INT);
4616WINUSERAPI INT WINAPI GetClipboardFormatNameW(UINT,LPWSTR,INT);
4617#define GetClipboardFormatName WINELIB_NAME_AW(GetClipboardFormatName)
4618WINUSERAPI HWND WINAPI GetClipboardOwner(void);
4619WINUSERAPI DWORD WINAPI GetClipboardSequenceNumber(VOID);
4620WINUSERAPI HWND WINAPI GetClipboardViewer(void);
4621WINUSERAPI BOOL WINAPI GetClipCursor(LPRECT);
4622WINUSERAPI BOOL WINAPI GetComboBoxInfo(HWND,PCOMBOBOXINFO);
4623WINUSERAPI HCURSOR WINAPI GetCursor(void);
4624WINUSERAPI BOOL WINAPI GetCursorInfo(PCURSORINFO);
4625WINUSERAPI BOOL WINAPI GetCursorPos(LPPOINT);
4626WINUSERAPI HDC WINAPI GetDC(HWND);
4627WINUSERAPI HDC WINAPI GetDCEx(HWND,HRGN,DWORD);
4628WINUSERAPI HWND WINAPI GetDesktopWindow(void);
4629WINUSERAPI DWORD WINAPI GetDialogBaseUnits(void);
4630WINUSERAPI INT WINAPI GetDlgCtrlID(HWND);
4631WINUSERAPI HWND WINAPI GetDlgItem(HWND,INT);
4632WINUSERAPI UINT WINAPI GetDlgItemInt(HWND,INT,BOOL*,BOOL);
4633WINUSERAPI UINT WINAPI GetDlgItemTextA(HWND,INT,LPSTR,INT);
4634WINUSERAPI UINT WINAPI GetDlgItemTextW(HWND,INT,LPWSTR,INT);
4635#define GetDlgItemText WINELIB_NAME_AW(GetDlgItemText)
4636WINUSERAPI UINT WINAPI GetDoubleClickTime(void);
4637WINUSERAPI HWND WINAPI GetFocus(void);
4638WINUSERAPI HWND WINAPI GetForegroundWindow(void);
4639WINUSERAPI BOOL WINAPI GetGUIThreadInfo(DWORD,GUITHREADINFO*);
4640WINUSERAPI BOOL WINAPI GetIconInfo(HICON,PICONINFO);
4641WINUSERAPI BOOL WINAPI GetInputState(void);
4642WINUSERAPI UINT WINAPI GetInternalWindowPos(HWND,LPRECT,LPPOINT);
4643WINUSERAPI UINT WINAPI GetKBCodePage(void);
4644WINUSERAPI HKL WINAPI GetKeyboardLayout(DWORD);
4645WINUSERAPI UINT WINAPI GetKeyboardLayoutList(INT,HKL *);
4646WINUSERAPI BOOL WINAPI GetKeyboardState(LPBYTE);
4647WINUSERAPI INT WINAPI GetKeyboardType(INT);
4648WINUSERAPI INT WINAPI GetKeyNameTextA(LONG,LPSTR,INT);
4649WINUSERAPI INT WINAPI GetKeyNameTextW(LONG,LPWSTR,INT);
4650#define GetKeyNameText WINELIB_NAME_AW(GetKeyNameText)
4651WINUSERAPI BOOL WINAPI GetKeyboardLayoutNameA(LPSTR);
4652WINUSERAPI BOOL WINAPI GetKeyboardLayoutNameW(LPWSTR);
4653#define GetKeyboardLayoutName WINELIB_NAME_AW(GetKeyboardLayoutName)
4654WINUSERAPI SHORT WINAPI GetKeyState(INT);
4655WINUSERAPI HWND WINAPI GetLastActivePopup(HWND);
4656WINUSERAPI BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO);
4657WINUSERAPI UINT WINAPI GetRawInputBuffer(PRAWINPUT,PUINT,UINT);
4658WINUSERAPI UINT WINAPI GetRawInputData(HRAWINPUT,UINT,LPVOID,PUINT,UINT);
4659WINUSERAPI UINT WINAPI GetRawInputDeviceInfoA(HANDLE,UINT,LPVOID,PUINT);
4660WINUSERAPI UINT WINAPI GetRawInputDeviceInfoW(HANDLE,UINT,LPVOID,PUINT);
4661#define GetRawInputDeviceInfo WINELIB_NAME_AW(GetRawInputDeviceInfo)
4662WINUSERAPI UINT WINAPI GetRawInputDeviceList(PRAWINPUTDEVICELIST,PUINT,UINT);
4663WINUSERAPI BOOL WINAPI GetLayeredWindowAttributes(HWND,COLORREF*,BYTE*,DWORD*);
4664WINUSERAPI HMENU WINAPI GetMenu(HWND);
4665WINUSERAPI BOOL WINAPI GetMenuBarInfo(HWND,LONG,LONG,PMENUBARINFO);
4666WINUSERAPI DWORD WINAPI GetMenuCheckMarkDimensions(void);
4667WINUSERAPI DWORD WINAPI GetMenuContextHelpId(HMENU);
4668WINUSERAPI UINT WINAPI GetMenuDefaultItem(HMENU,UINT,UINT);
4669WINUSERAPI BOOL WINAPI GetMenuInfo(HMENU,LPMENUINFO);
4670WINUSERAPI INT WINAPI GetMenuItemCount(HMENU);
4671WINUSERAPI UINT WINAPI GetMenuItemID(HMENU,INT);
4672WINUSERAPI BOOL WINAPI GetMenuItemInfoA(HMENU,UINT,BOOL,MENUITEMINFOA*);
4673WINUSERAPI BOOL WINAPI GetMenuItemInfoW(HMENU,UINT,BOOL,MENUITEMINFOW*);
4674#define GetMenuItemInfo WINELIB_NAME_AW(GetMenuItemInfo)
4675WINUSERAPI BOOL WINAPI GetMenuItemRect(HWND,HMENU,UINT,LPRECT);
4676WINUSERAPI UINT WINAPI GetMenuState(HMENU,UINT,UINT);
4677WINUSERAPI INT WINAPI GetMenuStringA(HMENU,UINT,LPSTR,INT,UINT);
4678WINUSERAPI INT WINAPI GetMenuStringW(HMENU,UINT,LPWSTR,INT,UINT);
4679#define GetMenuString WINELIB_NAME_AW(GetMenuString)
4680WINUSERAPI BOOL WINAPI GetMessageA(LPMSG,HWND,UINT,UINT);
4681WINUSERAPI BOOL WINAPI GetMessageW(LPMSG,HWND,UINT,UINT);
4682#define GetMessage WINELIB_NAME_AW(GetMessage)
4683WINUSERAPI LPARAM WINAPI GetMessageExtraInfo(void);
4684WINUSERAPI DWORD WINAPI GetMessagePos(void);
4685WINUSERAPI LONG WINAPI GetMessageTime(void);
4686WINUSERAPI BOOL WINAPI GetMonitorInfoA(HMONITOR,LPMONITORINFO);
4687WINUSERAPI BOOL WINAPI GetMonitorInfoW(HMONITOR,LPMONITORINFO);
4688#define GetMonitorInfo WINELIB_NAME_AW(GetMonitorInfo)
4689WINUSERAPI HWND WINAPI GetNextDlgGroupItem(HWND,HWND,BOOL);
4690WINUSERAPI HWND WINAPI GetNextDlgTabItem(HWND,HWND,BOOL);
4691#define GetNextWindow GetWindow
4692WINUSERAPI HWND WINAPI GetOpenClipboardWindow(void);
4693WINUSERAPI HWND WINAPI GetParent(HWND);
4694WINUSERAPI INT WINAPI GetPriorityClipboardFormat(UINT*,INT);
4695WINUSERAPI BOOL WINAPI GetProcessDefaultLayout(DWORD*);
4696WINUSERAPI HANDLE WINAPI GetPropA(HWND,LPCSTR);
4697WINUSERAPI HANDLE WINAPI GetPropW(HWND,LPCWSTR);
4698#define GetProp WINELIB_NAME_AW(GetProp)
4699WINUSERAPI DWORD WINAPI GetQueueStatus(UINT);
4700WINUSERAPI BOOL WINAPI GetScrollInfo(HWND,INT,LPSCROLLINFO);
4701WINUSERAPI BOOL WINAPI GetScrollBarInfo(HWND,LONG,LPSCROLLBARINFO);
4702WINUSERAPI INT WINAPI GetScrollPos(HWND,INT);
4703WINUSERAPI BOOL WINAPI GetScrollRange(HWND,INT,LPINT,LPINT);
4704WINUSERAPI HWND WINAPI GetShellWindow(void);
4705WINUSERAPI HMENU WINAPI GetSubMenu(HMENU,INT);
4706WINUSERAPI HBRUSH WINAPI GetSysColorBrush(INT);
4707#define GetSysModalWindow() ((HWND)0)
4708WINUSERAPI HMENU WINAPI GetSystemMenu(HWND,BOOL);
4709WINUSERAPI INT WINAPI GetSystemMetrics(INT);
4710WINUSERAPI DWORD WINAPI GetTabbedTextExtentA(HDC,LPCSTR,INT,INT,const INT*);
4711WINUSERAPI DWORD WINAPI GetTabbedTextExtentW(HDC,LPCWSTR,INT,INT,const INT*);
4712#define GetTabbedTextExtent WINELIB_NAME_AW(GetTabbedTextExtent)
4713WINUSERAPI BOOL WINAPI GetTitleBarInfo(HWND,PTITLEBARINFO);
4714WINUSERAPI HDESK WINAPI GetThreadDesktop(DWORD);
4715WINUSERAPI HWND WINAPI GetTopWindow(HWND);
4716WINUSERAPI BOOL WINAPI GetUpdateRect(HWND,LPRECT,BOOL);
4717WINUSERAPI INT WINAPI GetUpdateRgn(HWND,HRGN,BOOL);
4718WINUSERAPI BOOL WINAPI GetUserObjectInformationA(HANDLE,INT,LPVOID,DWORD,LPDWORD);
4719WINUSERAPI BOOL WINAPI GetUserObjectInformationW(HANDLE,INT,LPVOID,DWORD,LPDWORD);
4720#define GetUserObjectInformation WINELIB_NAME_AW(GetUserObjectInformation)
4721WINUSERAPI BOOL WINAPI GetUserObjectSecurity(HANDLE,PSECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
4722WINUSERAPI HWND WINAPI GetWindow(HWND,UINT);
4723WINUSERAPI DWORD WINAPI GetWindowContextHelpId(HWND);
4724WINUSERAPI HDC WINAPI GetWindowDC(HWND);
4725WINUSERAPI BOOL WINAPI GetWindowInfo(HWND, PWINDOWINFO);
4726WINUSERAPI LONG WINAPI GetWindowLongA(HWND,INT);
4727WINUSERAPI LONG WINAPI GetWindowLongW(HWND,INT);
4728#define GetWindowLong WINELIB_NAME_AW(GetWindowLong)
4729#ifdef _WIN64
4730WINUSERAPI LONG_PTR WINAPI GetWindowLongPtrA(HWND,INT);
4731WINUSERAPI LONG_PTR WINAPI GetWindowLongPtrW(HWND,INT);
4732#else
4733#define GetWindowLongPtrA GetWindowLongA
4734#define GetWindowLongPtrW GetWindowLongW
4735#endif
4736#define GetWindowLongPtr WINELIB_NAME_AW(GetWindowLongPtr)
4737WINUSERAPI UINT WINAPI GetWindowModuleFileNameA(HWND,LPSTR,UINT);
4738WINUSERAPI UINT WINAPI GetWindowModuleFileNameW(HWND,LPWSTR,UINT);
4739#define GetWindowModuleFileName WINELIB_NAME_AW(GetWindowModuleFileName)
4740WINUSERAPI BOOL WINAPI GetWindowPlacement(HWND,LPWINDOWPLACEMENT);
4741WINUSERAPI BOOL WINAPI GetWindowRect(HWND,LPRECT);
4742WINUSERAPI INT WINAPI GetWindowRgn(HWND,HRGN);
4743WINUSERAPI HWINSTA WINAPI GetProcessWindowStation(void);
4744#define GetWindowTask(hwnd) ((HTASK)GetWindowThreadProcessId(hwnd,NULL))
4745WINUSERAPI INT WINAPI GetWindowTextA(HWND,LPSTR,INT);
4746WINUSERAPI INT WINAPI GetWindowTextW(HWND,LPWSTR,INT);
4747#define GetWindowText WINELIB_NAME_AW(GetWindowText)
4748WINUSERAPI INT WINAPI GetWindowTextLengthA(HWND);
4749WINUSERAPI INT WINAPI GetWindowTextLengthW(HWND);
4750#define GetWindowTextLength WINELIB_NAME_AW(GetWindowTextLength)
4751WINUSERAPI DWORD WINAPI GetWindowThreadProcessId(HWND,LPDWORD);
4752WINUSERAPI WORD WINAPI GetWindowWord(HWND,INT);
4753WINUSERAPI BOOL WINAPI GrayStringA(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,INT,INT,INT,INT,INT);
4754WINUSERAPI BOOL WINAPI GrayStringW(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,INT,INT,INT,INT,INT);
4755#define GrayString WINELIB_NAME_AW(GrayString)
4756WINUSERAPI BOOL WINAPI HideCaret(HWND);
4757WINUSERAPI BOOL WINAPI HiliteMenuItem(HWND,HMENU,UINT,UINT);
4758WINUSERAPI BOOL WINAPI InflateRect(LPRECT,INT,INT);
4759WINUSERAPI BOOL WINAPI InSendMessage(void);
4760WINUSERAPI DWORD WINAPI InSendMessageEx(LPVOID);
4761WINUSERAPI BOOL WINAPI InsertMenuA(HMENU,UINT,UINT,UINT_PTR,LPCSTR);
4762WINUSERAPI BOOL WINAPI InsertMenuW(HMENU,UINT,UINT,UINT_PTR,LPCWSTR);
4763#define InsertMenu WINELIB_NAME_AW(InsertMenu)
4764WINUSERAPI BOOL WINAPI InsertMenuItemA(HMENU,UINT,BOOL,const MENUITEMINFOA*);
4765WINUSERAPI BOOL WINAPI InsertMenuItemW(HMENU,UINT,BOOL,const MENUITEMINFOW*);
4766#define InsertMenuItem WINELIB_NAME_AW(InsertMenuItem)
4767WINUSERAPI INT WINAPI InternalGetWindowText(HWND,LPWSTR,INT);
4768WINUSERAPI BOOL WINAPI IntersectRect(LPRECT,const RECT*,const RECT*);
4769WINUSERAPI BOOL WINAPI InvalidateRect(HWND,const RECT*,BOOL);
4770WINUSERAPI BOOL WINAPI InvalidateRgn(HWND,HRGN,BOOL);
4771WINUSERAPI BOOL WINAPI InvertRect(HDC,const RECT*);
4772WINUSERAPI BOOL WINAPI IsCharAlphaA(CHAR);
4773WINUSERAPI BOOL WINAPI IsCharAlphaW(WCHAR);
4774#define IsCharAlpha WINELIB_NAME_AW(IsCharAlpha)
4775WINUSERAPI BOOL WINAPI IsCharAlphaNumericA(CHAR);
4776WINUSERAPI BOOL WINAPI IsCharAlphaNumericW(WCHAR);
4777#define IsCharAlphaNumeric WINELIB_NAME_AW(IsCharAlphaNumeric)
4778WINUSERAPI BOOL WINAPI IsCharLowerA(CHAR);
4779WINUSERAPI BOOL WINAPI IsCharLowerW(WCHAR);
4780#define IsCharLower WINELIB_NAME_AW(IsCharLower)
4781WINUSERAPI BOOL WINAPI IsCharUpperA(CHAR);
4782WINUSERAPI BOOL WINAPI IsCharUpperW(WCHAR);
4783#define IsCharUpper WINELIB_NAME_AW(IsCharUpper)
4784WINUSERAPI BOOL WINAPI IsChild(HWND,HWND);
4785WINUSERAPI BOOL WINAPI IsClipboardFormatAvailable(UINT);
4786WINUSERAPI BOOL WINAPI IsDialogMessageA(HWND,LPMSG);
4787WINUSERAPI BOOL WINAPI IsDialogMessageW(HWND,LPMSG);
4788#define IsDialogMessage WINELIB_NAME_AW(IsDialogMessage)
4789WINUSERAPI UINT WINAPI IsDlgButtonChecked(HWND,int);
4790WINUSERAPI BOOL WINAPI IsHungAppWindow(HWND);
4791WINUSERAPI BOOL WINAPI IsIconic(HWND);
4792WINUSERAPI BOOL WINAPI IsMenu(HMENU);
4793WINUSERAPI BOOL WINAPI IsRectEmpty(const RECT*);
4794WINUSERAPI BOOL WINAPI IsWinEventHookInstalled(DWORD);
4795WINUSERAPI BOOL WINAPI IsWindow(HWND);
4796WINUSERAPI BOOL WINAPI IsWindowEnabled(HWND);
4797WINUSERAPI BOOL WINAPI IsWindowUnicode(HWND);
4798WINUSERAPI BOOL WINAPI IsWindowVisible(HWND);
4799WINUSERAPI BOOL WINAPI IsZoomed(HWND);
4800WINUSERAPI BOOL WINAPI KillSystemTimer(HWND,UINT_PTR);
4801WINUSERAPI BOOL WINAPI KillTimer(HWND,UINT_PTR);
4802WINUSERAPI HACCEL WINAPI LoadAcceleratorsA(HINSTANCE,LPCSTR);
4803WINUSERAPI HACCEL WINAPI LoadAcceleratorsW(HINSTANCE,LPCWSTR);
4804#define LoadAccelerators WINELIB_NAME_AW(LoadAccelerators)
4805WINUSERAPI HBITMAP WINAPI LoadBitmapA(HINSTANCE,LPCSTR);
4806WINUSERAPI HBITMAP WINAPI LoadBitmapW(HINSTANCE,LPCWSTR);
4807#define LoadBitmap WINELIB_NAME_AW(LoadBitmap)
4808WINUSERAPI HCURSOR WINAPI LoadCursorA(HINSTANCE,LPCSTR);
4809WINUSERAPI HCURSOR WINAPI LoadCursorW(HINSTANCE,LPCWSTR);
4810#define LoadCursor WINELIB_NAME_AW(LoadCursor)
4811WINUSERAPI HCURSOR WINAPI LoadCursorFromFileA(LPCSTR);
4812WINUSERAPI HCURSOR WINAPI LoadCursorFromFileW(LPCWSTR);
4813#define LoadCursorFromFile WINELIB_NAME_AW(LoadCursorFromFile)
4814WINUSERAPI HICON WINAPI LoadIconA(HINSTANCE,LPCSTR);
4815WINUSERAPI HICON WINAPI LoadIconW(HINSTANCE,LPCWSTR);
4816#define LoadIcon WINELIB_NAME_AW(LoadIcon)
4817WINUSERAPI HANDLE WINAPI LoadImageA(HINSTANCE,LPCSTR,UINT,INT,INT,UINT);
4818WINUSERAPI HANDLE WINAPI LoadImageW(HINSTANCE,LPCWSTR,UINT,INT,INT,UINT);
4819#define LoadImage WINELIB_NAME_AW(LoadImage)
4820WINUSERAPI HKL WINAPI LoadKeyboardLayoutA(LPCSTR,UINT);
4821WINUSERAPI HKL WINAPI LoadKeyboardLayoutW(LPCWSTR,UINT);
4822#define LoadKeyboardLayout WINELIB_NAME_AW(LoadKeyboardLayout)
4823WINUSERAPI HMENU WINAPI LoadMenuA(HINSTANCE,LPCSTR);
4824WINUSERAPI HMENU WINAPI LoadMenuW(HINSTANCE,LPCWSTR);
4825#define LoadMenu WINELIB_NAME_AW(LoadMenu)
4826WINUSERAPI HMENU WINAPI LoadMenuIndirectA(LPCVOID);
4827WINUSERAPI HMENU WINAPI LoadMenuIndirectW(LPCVOID);
4828#define LoadMenuIndirect WINELIB_NAME_AW(LoadMenuIndirect)
4829WINUSERAPI INT WINAPI LoadStringA(HINSTANCE,UINT,LPSTR,INT);
4830WINUSERAPI INT WINAPI LoadStringW(HINSTANCE,UINT,LPWSTR,INT);
4831#define LoadString WINELIB_NAME_AW(LoadString)
4832WINUSERAPI BOOL WINAPI LockSetForegroundWindow(UINT);
4833WINUSERAPI BOOL WINAPI LockWindowUpdate(HWND);
4834WINUSERAPI INT WINAPI LookupIconIdFromDirectory(LPBYTE,BOOL);
4835WINUSERAPI INT WINAPI LookupIconIdFromDirectoryEx(LPBYTE,BOOL,INT,INT,UINT);
4836WINUSERAPI UINT WINAPI MapVirtualKeyA(UINT,UINT);
4837WINUSERAPI UINT WINAPI MapVirtualKeyW(UINT,UINT);
4838#define MapVirtualKey WINELIB_NAME_AW(MapVirtualKey)
4839WINUSERAPI UINT WINAPI MapVirtualKeyExA(UINT,UINT,HKL);
4840WINUSERAPI UINT WINAPI MapVirtualKeyExW(UINT,UINT,HKL);
4841#define MapVirtualKeyEx WINELIB_NAME_AW(MapVirtualKeyEx)
4842WINUSERAPI BOOL WINAPI MapDialogRect(HWND,LPRECT);
4843WINUSERAPI INT WINAPI MapWindowPoints(HWND,HWND,LPPOINT,UINT);
4844WINUSERAPI INT WINAPI MenuItemFromPoint(HWND,HMENU,POINT);
4845WINUSERAPI BOOL WINAPI MessageBeep(UINT);
4846WINUSERAPI INT WINAPI MessageBoxA(HWND,LPCSTR,LPCSTR,UINT);
4847WINUSERAPI INT WINAPI MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT);
4848#define MessageBox WINELIB_NAME_AW(MessageBox)
4849WINUSERAPI INT WINAPI MessageBoxExA(HWND,LPCSTR,LPCSTR,UINT,WORD);
4850WINUSERAPI INT WINAPI MessageBoxExW(HWND,LPCWSTR,LPCWSTR,UINT,WORD);
4851#define MessageBoxEx WINELIB_NAME_AW(MessageBoxEx)
4852WINUSERAPI INT WINAPI MessageBoxIndirectA(LPMSGBOXPARAMSA);
4853WINUSERAPI INT WINAPI MessageBoxIndirectW(LPMSGBOXPARAMSW);
4854#define MessageBoxIndirect WINELIB_NAME_AW(MessageBoxIndirect)
4855WINUSERAPI BOOL WINAPI ModifyMenuA(HMENU,UINT,UINT,UINT_PTR,LPCSTR);
4856WINUSERAPI BOOL WINAPI ModifyMenuW(HMENU,UINT,UINT,UINT_PTR,LPCWSTR);
4857#define ModifyMenu WINELIB_NAME_AW(ModifyMenu)
4858WINUSERAPI HMONITOR WINAPI MonitorFromPoint(POINT,DWORD);
4859WINUSERAPI HMONITOR WINAPI MonitorFromRect(LPRECT,DWORD);
4860WINUSERAPI HMONITOR WINAPI MonitorFromWindow(HWND,DWORD);
4861WINUSERAPI BOOL WINAPI MoveWindow(HWND,INT,INT,INT,INT,BOOL);
4862WINUSERAPI DWORD WINAPI MsgWaitForMultipleObjects(DWORD,CONST HANDLE*,BOOL,DWORD,DWORD);
4863WINUSERAPI DWORD WINAPI MsgWaitForMultipleObjectsEx(DWORD,CONST HANDLE*,DWORD,DWORD,DWORD);
4864WINUSERAPI VOID WINAPI NotifyWinEvent(DWORD,HWND,LONG,LONG);
4865WINUSERAPI DWORD WINAPI OemKeyScan(WORD);
4866WINUSERAPI BOOL WINAPI OemToCharA(LPCSTR,LPSTR);
4867WINUSERAPI BOOL WINAPI OemToCharW(LPCSTR,LPWSTR);
4868#define OemToChar WINELIB_NAME_AW(OemToChar)
4869WINUSERAPI BOOL WINAPI OemToCharBuffA(LPCSTR,LPSTR,DWORD);
4870WINUSERAPI BOOL WINAPI OemToCharBuffW(LPCSTR,LPWSTR,DWORD);
4871#define OemToCharBuff WINELIB_NAME_AW(OemToCharBuff)
4872WINUSERAPI BOOL WINAPI OffsetRect(LPRECT,INT,INT);
4873WINUSERAPI BOOL WINAPI OpenClipboard(HWND);
4874WINUSERAPI HDESK WINAPI OpenDesktopA(LPCSTR,DWORD,BOOL,ACCESS_MASK);
4875WINUSERAPI HDESK WINAPI OpenDesktopW(LPCWSTR,DWORD,BOOL,ACCESS_MASK);
4876#define OpenDesktop WINELIB_NAME_AW(OpenDesktop)
4877WINUSERAPI BOOL WINAPI OpenIcon(HWND);
4878WINUSERAPI HDESK WINAPI OpenInputDesktop(DWORD,BOOL,ACCESS_MASK);
4879WINUSERAPI HWINSTA WINAPI OpenWindowStationA(LPCSTR,BOOL,ACCESS_MASK);
4880WINUSERAPI HWINSTA WINAPI OpenWindowStationW(LPCWSTR,BOOL,ACCESS_MASK);
4881#define OpenWindowStation WINELIB_NAME_AW(OpenWindowStation)
4882WINUSERAPI BOOL WINAPI PaintDesktop(HDC);
4883WINUSERAPI BOOL WINAPI PeekMessageA(LPMSG,HWND,UINT,UINT,UINT);
4884WINUSERAPI BOOL WINAPI PeekMessageW(LPMSG,HWND,UINT,UINT,UINT);
4885#define PeekMessage WINELIB_NAME_AW(PeekMessage)
4886#define PostAppMessageA(thread,msg,wparam,lparam) PostThreadMessageA((DWORD)(thread),msg,wparam,lparam)
4887#define PostAppMessageW(thread,msg,wparam,lparam) PostThreadMessageW((DWORD)(thread),msg,wparam,lparam)
4888#define PostAppMessage WINELIB_NAME_AW(PostAppMessage)
4889WINUSERAPI BOOL WINAPI PostMessageA(HWND,UINT,WPARAM,LPARAM);
4890WINUSERAPI BOOL WINAPI PostMessageW(HWND,UINT,WPARAM,LPARAM);
4891#define PostMessage WINELIB_NAME_AW(PostMessage)
4892WINUSERAPI void WINAPI PostQuitMessage(INT);
4893WINUSERAPI BOOL WINAPI PostThreadMessageA(DWORD,UINT,WPARAM,LPARAM);
4894WINUSERAPI BOOL WINAPI PostThreadMessageW(DWORD,UINT,WPARAM,LPARAM);
4895#define PostThreadMessage WINELIB_NAME_AW(PostThreadMessage)
4896WINUSERAPI UINT WINAPI PrivateExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
4897WINUSERAPI UINT WINAPI PrivateExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
4898WINUSERAPI UINT WINAPI PrivateExtractIconsA(LPCSTR,int,int,int,HICON*,UINT*,UINT,UINT);
4899WINUSERAPI UINT WINAPI PrivateExtractIconsW(LPCWSTR,int,int,int,HICON*,UINT*,UINT,UINT);
4900WINUSERAPI BOOL WINAPI PtInRect(const RECT*,POINT);
4901WINUSERAPI HWND WINAPI RealChildWindowFromPoint(HWND,POINT);
4902WINUSERAPI UINT WINAPI RealGetWindowClassA(HWND,LPSTR,UINT);
4903WINUSERAPI UINT WINAPI RealGetWindowClassW(HWND,LPWSTR,UINT);
4904#define RealGetWindowClass WINELIB_NAME_AW(RealGetWindowClass)
4905WINUSERAPI BOOL WINAPI RedrawWindow(HWND,const RECT*,HRGN,UINT);
4906WINUSERAPI ATOM WINAPI RegisterClassA(const WNDCLASSA *);
4907WINUSERAPI ATOM WINAPI RegisterClassW(const WNDCLASSW *);
4908#define RegisterClass WINELIB_NAME_AW(RegisterClass)
4909WINUSERAPI ATOM WINAPI RegisterClassExA(const WNDCLASSEXA *);
4910WINUSERAPI ATOM WINAPI RegisterClassExW(const WNDCLASSEXW *);
4911#define RegisterClassEx WINELIB_NAME_AW(RegisterClassEx)
4912WINUSERAPI UINT WINAPI RegisterClipboardFormatA(LPCSTR);
4913WINUSERAPI UINT WINAPI RegisterClipboardFormatW(LPCWSTR);
4914#define RegisterClipboardFormat WINELIB_NAME_AW(RegisterClipboardFormat)
4915WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationA(HANDLE,LPVOID,DWORD);
4916WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationW(HANDLE,LPVOID,DWORD);
4917#define RegisterDeviceNotification WINELIB_NAME_AW(RegisterDeviceNotification)
4918WINUSERAPI BOOL WINAPI RegisterHotKey(HWND,INT,UINT,UINT);
4919WINUSERAPI BOOL WINAPI RegisterRawInputDevices(PRAWINPUTDEVICE,UINT,UINT);
4920WINUSERAPI UINT WINAPI RegisterWindowMessageA(LPCSTR);
4921WINUSERAPI UINT WINAPI RegisterWindowMessageW(LPCWSTR);
4922#define RegisterWindowMessage WINELIB_NAME_AW(RegisterWindowMessage)
4923WINUSERAPI BOOL WINAPI ReleaseCapture(void);
4924WINUSERAPI INT WINAPI ReleaseDC(HWND,HDC);
4925WINUSERAPI BOOL WINAPI RemoveMenu(HMENU,UINT,UINT);
4926WINUSERAPI HANDLE WINAPI RemovePropA(HWND,LPCSTR);
4927WINUSERAPI HANDLE WINAPI RemovePropW(HWND,LPCWSTR);
4928#define RemoveProp WINELIB_NAME_AW(RemoveProp)
4929WINUSERAPI BOOL WINAPI ReplyMessage(LRESULT);
4930WINUSERAPI BOOL WINAPI ScreenToClient(HWND,LPPOINT);
4931WINUSERAPI VOID WINAPI ScrollChildren(HWND,UINT,WPARAM,LPARAM);
4932WINUSERAPI BOOL WINAPI ScrollDC(HDC,INT,INT,const RECT*,const RECT*,HRGN,LPRECT);
4933WINUSERAPI BOOL WINAPI ScrollWindow(HWND,INT,INT,const RECT*,const RECT*);
4934WINUSERAPI INT WINAPI ScrollWindowEx(HWND,INT,INT,const RECT*,const RECT*,HRGN,LPRECT,UINT);
4935WINUSERAPI LRESULT WINAPI SendDlgItemMessageA(HWND,INT,UINT,WPARAM,LPARAM);
4936WINUSERAPI LRESULT WINAPI SendDlgItemMessageW(HWND,INT,UINT,WPARAM,LPARAM);
4937#define SendDlgItemMessage WINELIB_NAME_AW(SendDlgItemMessage)
4938WINUSERAPI UINT WINAPI SendInput(UINT,LPINPUT,int);
4939WINUSERAPI LRESULT WINAPI SendMessageA(HWND,UINT,WPARAM,LPARAM);
4940WINUSERAPI LRESULT WINAPI SendMessageW(HWND,UINT,WPARAM,LPARAM);
4941#define SendMessage WINELIB_NAME_AW(SendMessage)
4942WINUSERAPI BOOL WINAPI SendMessageCallbackA(HWND,UINT,WPARAM,LPARAM,SENDASYNCPROC,ULONG_PTR);
4943WINUSERAPI BOOL WINAPI SendMessageCallbackW(HWND,UINT,WPARAM,LPARAM,SENDASYNCPROC,ULONG_PTR);
4944#define SendMessageCallback WINELIB_NAME_AW(SendMessageCallback)
4945WINUSERAPI LRESULT WINAPI SendMessageTimeoutA(HWND,UINT,WPARAM,LPARAM,UINT,UINT,PDWORD_PTR);
4946WINUSERAPI LRESULT WINAPI SendMessageTimeoutW(HWND,UINT,WPARAM,LPARAM,UINT,UINT,PDWORD_PTR);
4947#define SendMessageTimeout WINELIB_NAME_AW(SendMessageTimeout)
4948WINUSERAPI BOOL WINAPI SendNotifyMessageA(HWND,UINT,WPARAM,LPARAM);
4949WINUSERAPI BOOL WINAPI SendNotifyMessageW(HWND,UINT,WPARAM,LPARAM);
4950#define SendNotifyMessage WINELIB_NAME_AW(SendNotifyMessage)
4951WINUSERAPI HWND WINAPI SetActiveWindow(HWND);
4952WINUSERAPI HWND WINAPI SetCapture(HWND);
4953WINUSERAPI BOOL WINAPI SetCaretBlinkTime(UINT);
4954WINUSERAPI BOOL WINAPI SetCaretPos(INT,INT);
4955WINUSERAPI DWORD WINAPI SetClassLongA(HWND,INT,LONG);
4956WINUSERAPI DWORD WINAPI SetClassLongW(HWND,INT,LONG);
4957#define SetClassLong WINELIB_NAME_AW(SetClassLong)
4958#ifdef _WIN64
4959WINUSERAPI ULONG_PTR WINAPI SetClassLongPtrA(HWND,INT,LONG_PTR);
4960WINUSERAPI ULONG_PTR WINAPI SetClassLongPtrW(HWND,INT,LONG_PTR);
4961#else
4962#define SetClassLongPtrA SetClassLongA
4963#define SetClassLongPtrW SetClassLongW
4964#endif
4965#define SetClassLongPtr WINELIB_NAME_AW(SetClassLongPtr)
4966WINUSERAPI WORD WINAPI SetClassWord(HWND,INT,WORD);
4967WINUSERAPI HANDLE WINAPI SetClipboardData(UINT,HANDLE);
4968WINUSERAPI HWND WINAPI SetClipboardViewer(HWND);
4969WINUSERAPI HCURSOR WINAPI SetCursor(HCURSOR);
4970WINUSERAPI BOOL WINAPI SetCursorPos(INT,INT);
4971WINUSERAPI VOID WINAPI SetDebugErrorLevel(DWORD);
4972WINUSERAPI BOOL WINAPI SetDeskWallPaper(LPCSTR);
4973WINUSERAPI BOOL WINAPI SetDlgItemInt(HWND,INT,UINT,BOOL);
4974WINUSERAPI BOOL WINAPI SetDlgItemTextA(HWND,INT,LPCSTR);
4975WINUSERAPI BOOL WINAPI SetDlgItemTextW(HWND,INT,LPCWSTR);
4976#define SetDlgItemText WINELIB_NAME_AW(SetDlgItemText)
4977WINUSERAPI BOOL WINAPI SetDoubleClickTime(UINT);
4978WINUSERAPI HWND WINAPI SetFocus(HWND);
4979WINUSERAPI BOOL WINAPI SetForegroundWindow(HWND);
4980WINUSERAPI void WINAPI SetInternalWindowPos(HWND,UINT,LPRECT,LPPOINT);
4981WINUSERAPI BOOL WINAPI SetKeyboardState(LPBYTE);
4982WINUSERAPI VOID WINAPI SetLastErrorEx(DWORD,DWORD);
4983WINUSERAPI BOOL WINAPI SetLayeredWindowAttributes(HWND,COLORREF,BYTE,DWORD);
4984WINUSERAPI BOOL WINAPI SetMenu(HWND,HMENU);
4985WINUSERAPI BOOL WINAPI SetMenuContextHelpId(HMENU,DWORD);
4986WINUSERAPI BOOL WINAPI SetMenuDefaultItem(HMENU,UINT,UINT);
4987WINUSERAPI BOOL WINAPI SetMenuInfo(HMENU,LPCMENUINFO);
4988WINUSERAPI BOOL WINAPI SetMenuItemBitmaps(HMENU,UINT,UINT,HBITMAP,HBITMAP);
4989WINUSERAPI BOOL WINAPI SetMenuItemInfoA(HMENU,UINT,BOOL,const MENUITEMINFOA*);
4990WINUSERAPI BOOL WINAPI SetMenuItemInfoW(HMENU,UINT,BOOL,const MENUITEMINFOW*);
4991#define SetMenuItemInfo WINELIB_NAME_AW(SetMenuItemInfo)
4992WINUSERAPI LPARAM WINAPI SetMessageExtraInfo(LPARAM);
4993WINUSERAPI BOOL WINAPI SetMessageQueue(INT);
4994WINUSERAPI BOOL WINAPI SetProcessDefaultLayout(DWORD);
4995WINUSERAPI BOOL WINAPI SetProcessWindowStation(HWINSTA);
4996WINUSERAPI HWND WINAPI SetParent(HWND,HWND);
4997WINUSERAPI BOOL WINAPI SetPropA(HWND,LPCSTR,HANDLE);
4998WINUSERAPI BOOL WINAPI SetPropW(HWND,LPCWSTR,HANDLE);
4999#define SetProp WINELIB_NAME_AW(SetProp)
5000WINUSERAPI BOOL WINAPI SetRect(LPRECT,INT,INT,INT,INT);
5001WINUSERAPI BOOL WINAPI SetRectEmpty(LPRECT);
5002WINUSERAPI INT WINAPI SetScrollInfo(HWND,INT,const SCROLLINFO*,BOOL);
5003WINUSERAPI INT WINAPI SetScrollPos(HWND,INT,INT,BOOL);
5004WINUSERAPI BOOL WINAPI SetScrollRange(HWND,INT,INT,INT,BOOL);
5005#define SetSysModalWindow(hwnd) ((HWND)0)
5006WINUSERAPI BOOL WINAPI SetSystemCursor(HCURSOR,DWORD);
5007WINUSERAPI BOOL WINAPI SetSystemMenu(HWND,HMENU);
5008WINUSERAPI UINT_PTR WINAPI SetSystemTimer(HWND,UINT_PTR,UINT,TIMERPROC);
5009WINUSERAPI BOOL WINAPI SetThreadDesktop(HDESK);
5010WINUSERAPI UINT_PTR WINAPI SetTimer(HWND,UINT_PTR,UINT,TIMERPROC);
5011WINUSERAPI BOOL WINAPI SetUserObjectInformationA(HANDLE,INT,LPVOID,DWORD);
5012WINUSERAPI BOOL WINAPI SetUserObjectInformationW(HANDLE,INT,LPVOID,DWORD);
5013#define SetUserObjectInformation WINELIB_NAME_AW(SetUserObjectInformation)
5014WINUSERAPI BOOL WINAPI SetUserObjectSecurity(HANDLE,PSECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
5015WINUSERAPI BOOL WINAPI SetWindowContextHelpId(HWND,DWORD);
5016WINUSERAPI LONG WINAPI SetWindowLongA(HWND,INT,LONG);
5017WINUSERAPI LONG WINAPI SetWindowLongW(HWND,INT,LONG);
5018#define SetWindowLong WINELIB_NAME_AW(SetWindowLong)
5019#ifdef _WIN64
5020WINUSERAPI LONG_PTR WINAPI SetWindowLongPtrA(HWND,INT,LONG_PTR);
5021WINUSERAPI LONG_PTR WINAPI SetWindowLongPtrW(HWND,INT,LONG_PTR);
5022#else
5023#define SetWindowLongPtrA SetWindowLongA
5024#define SetWindowLongPtrW SetWindowLongW
5025#endif
5026#define SetWindowLongPtr WINELIB_NAME_AW(SetWindowLongPtr)
5027WINUSERAPI BOOL WINAPI SetWindowPlacement(HWND,const WINDOWPLACEMENT*);
5028WINUSERAPI HHOOK WINAPI SetWindowsHookA(INT,HOOKPROC);
5029WINUSERAPI HHOOK WINAPI SetWindowsHookW(INT,HOOKPROC);
5030#define SetWindowsHook WINELIB_NAME_AW(SetWindowsHook)
5031WINUSERAPI HHOOK WINAPI SetWindowsHookExA(INT,HOOKPROC,HINSTANCE,DWORD);
5032WINUSERAPI HHOOK WINAPI SetWindowsHookExW(INT,HOOKPROC,HINSTANCE,DWORD);
5033#define SetWindowsHookEx WINELIB_NAME_AW(SetWindowsHookEx)
5034WINUSERAPI BOOL WINAPI SetWindowPos(HWND,HWND,INT,INT,INT,INT,UINT);
5035WINUSERAPI INT WINAPI SetWindowRgn(HWND,HRGN,BOOL);
5036WINUSERAPI BOOL WINAPI SetWindowTextA(HWND,LPCSTR);
5037WINUSERAPI BOOL WINAPI SetWindowTextW(HWND,LPCWSTR);
5038#define SetWindowText WINELIB_NAME_AW(SetWindowText)
5039WINUSERAPI WORD WINAPI SetWindowWord(HWND,INT,WORD);
5040WINUSERAPI HWINEVENTHOOK WINAPI SetWinEventHook(DWORD,DWORD,HMODULE,WINEVENTPROC,DWORD,DWORD,DWORD);
5041WINUSERAPI BOOL WINAPI ShowCaret(HWND);
5042WINUSERAPI INT WINAPI ShowCursor(BOOL);
5043WINUSERAPI BOOL WINAPI ShowScrollBar(HWND,INT,BOOL);
5044WINUSERAPI BOOL WINAPI ShowOwnedPopups(HWND,BOOL);
5045WINUSERAPI BOOL WINAPI ShowWindow(HWND,INT);
5046WINUSERAPI BOOL WINAPI ShowWindowAsync(HWND,INT);
5047WINUSERAPI BOOL WINAPI SubtractRect(LPRECT,const RECT*,const RECT*);
5048WINUSERAPI BOOL WINAPI SwapMouseButton(BOOL);
5049WINUSERAPI BOOL WINAPI SwitchDesktop(HDESK);
5050WINUSERAPI VOID WINAPI SwitchToThisWindow(HWND,BOOL);
5051WINUSERAPI BOOL WINAPI SystemParametersInfoA(UINT,UINT,LPVOID,UINT);
5052WINUSERAPI BOOL WINAPI SystemParametersInfoW(UINT,UINT,LPVOID,UINT);
5053#define SystemParametersInfo WINELIB_NAME_AW(SystemParametersInfo)
5054WINUSERAPI LONG WINAPI TabbedTextOutA(HDC,INT,INT,LPCSTR,INT,INT,const INT*,INT);
5055WINUSERAPI LONG WINAPI TabbedTextOutW(HDC,INT,INT,LPCWSTR,INT,INT,const INT*,INT);
5056#define TabbedTextOut WINELIB_NAME_AW(TabbedTextOut)
5057WINUSERAPI WORD WINAPI TileWindows (HWND,UINT,const RECT *,UINT,const HWND *);
5058WINUSERAPI INT WINAPI ToAscii(UINT,UINT,const BYTE *,LPWORD,UINT);
5059WINUSERAPI INT WINAPI ToAsciiEx(UINT,UINT,const BYTE *,LPWORD,UINT,HKL);
5060WINUSERAPI INT WINAPI ToUnicode(UINT,UINT,const BYTE *,LPWSTR,int,UINT);
5061WINUSERAPI INT WINAPI ToUnicodeEx(UINT,UINT,const BYTE *,LPWSTR,int,UINT,HKL);
5062WINUSERAPI BOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT);
5063WINUSERAPI BOOL WINAPI TrackPopupMenu(HMENU,UINT,INT,INT,INT,HWND,const RECT*);
5064WINUSERAPI BOOL WINAPI TrackPopupMenuEx(HMENU,UINT,INT,INT,HWND,LPTPMPARAMS);
5065WINUSERAPI INT WINAPI TranslateAcceleratorA(HWND,HACCEL,LPMSG);
5066WINUSERAPI INT WINAPI TranslateAcceleratorW(HWND,HACCEL,LPMSG);
5067#define TranslateAccelerator WINELIB_NAME_AW(TranslateAccelerator)
5068WINUSERAPI BOOL WINAPI TranslateMDISysAccel(HWND,LPMSG);
5069WINUSERAPI BOOL WINAPI TranslateMessage(const MSG*);
5070WINUSERAPI BOOL WINAPI UnhookWinEvent(HWINEVENTHOOK);
5071WINUSERAPI BOOL WINAPI UnhookWindowsHook(INT,HOOKPROC);
5072WINUSERAPI BOOL WINAPI UnhookWindowsHookEx(HHOOK);
5073WINUSERAPI BOOL WINAPI UnloadKeyboardLayout(HKL);
5074WINUSERAPI BOOL WINAPI UnionRect(LPRECT,const RECT*,const RECT*);
5075WINUSERAPI BOOL WINAPI UnregisterClassA(LPCSTR,HINSTANCE);
5076WINUSERAPI BOOL WINAPI UnregisterClassW(LPCWSTR,HINSTANCE);
5077#define UnregisterClass WINELIB_NAME_AW(UnregisterClass)
5078WINUSERAPI BOOL WINAPI UnregisterDeviceNotification(HDEVNOTIFY);
5079WINUSERAPI BOOL WINAPI UnregisterHotKey(HWND,INT);
5080WINUSERAPI BOOL WINAPI UpdateWindow(HWND);
5081WINUSERAPI UINT WINAPI UserRealizePalette(HDC);
5082WINUSERAPI BOOL WINAPI ValidateRect(HWND,const RECT*);
5083WINUSERAPI BOOL WINAPI ValidateRgn(HWND,HRGN);
5084WINUSERAPI SHORT WINAPI VkKeyScanA(CHAR);
5085WINUSERAPI SHORT WINAPI VkKeyScanW(WCHAR);
5086#define VkKeyScan WINELIB_NAME_AW(VkKeyScan)
5087WINUSERAPI WORD WINAPI VkKeyScanExA(CHAR, HKL);
5088WINUSERAPI WORD WINAPI VkKeyScanExW(WCHAR, HKL);
5089#define VkKeyScanEx WINELIB_NAME_AW(VkKeyScanEx)
5090WINUSERAPI DWORD WINAPI WaitForInputIdle(HANDLE,DWORD);
5091WINUSERAPI BOOL WINAPI WaitMessage(void);
5092WINUSERAPI HWND WINAPI WindowFromDC(HDC);
5093WINUSERAPI HWND WINAPI WindowFromPoint(POINT);
5094WINUSERAPI BOOL WINAPI WinHelpA(HWND,LPCSTR,UINT,ULONG_PTR);
5095WINUSERAPI BOOL WINAPI WinHelpW(HWND,LPCWSTR,UINT,ULONG_PTR);
5096#define WinHelp WINELIB_NAME_AW(WinHelp)
5097WINUSERAPI VOID WINAPI keybd_event(BYTE,BYTE,DWORD,ULONG_PTR);
5098WINUSERAPI VOID WINAPI mouse_event(DWORD,DWORD,DWORD,DWORD,ULONG_PTR);
5099WINUSERAPI INT WINAPIV wsprintfA(LPSTR,LPCSTR,...);
5100WINUSERAPI INT WINAPIV wsprintfW(LPWSTR,LPCWSTR,...);
5101#define wsprintf WINELIB_NAME_AW(wsprintf)
5102WINUSERAPI INT WINAPI wvsprintfA(LPSTR,LPCSTR,__ms_va_list);
5103WINUSERAPI INT WINAPI wvsprintfW(LPWSTR,LPCWSTR,__ms_va_list);
5104#define wvsprintf WINELIB_NAME_AW(wvsprintf)
5105
5106/* Undocumented functions */
5107
5108/* NOTE: This is SYSTEM.3, not USER.182, which is also named KillSystemTimer */
5109WORD WINAPI SYSTEM_KillSystemTimer( WORD );
5110
5111#ifdef __cplusplus
5112}
5113#endif
5114
5115#endif /* _WINUSER_ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette