- fix a typo
[reactos.git] / reactos / include / psdk / winuser.h
index 8b1f35a..7976f5b 100644 (file)
@@ -1,13 +1,17 @@
 #ifndef _WINUSER_H
 #define _WINUSER_H
-#if __GNUC__ >= 3
-#pragma GCC system_header
-#endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#if !defined(_USER32_)
+#define WINUSERAPI DECLSPEC_IMPORT
+#else
+#define WINUSERAPI
+#endif
+
+
 #define WC_DIALOG MAKEINTATOM(0x8002)
 #define FALT   16
 #define FCONTROL       8
@@ -98,6 +102,26 @@ extern "C" {
 #define CF_GDIOBJFIRST 768
 #define CF_GDIOBJLAST  1023
 
+/* Win32 4.0 messages for IME */
+#define WM_IME_SETCONTEXT           0x0281
+#define WM_IME_NOTIFY               0x0282
+#define WM_IME_CONTROL              0x0283
+#define WM_IME_COMPOSITIONFULL      0x0284
+#define WM_IME_SELECT               0x0285
+#define WM_IME_CHAR                 0x0286
+/* Win32 5.0 messages for IME */
+#define WM_IME_REQUEST              0x0288
+
+/* Win32 4.0 messages for IME */
+#define WM_IME_KEYDOWN              0x0290
+#define WM_IME_KEYUP                0x0291
+
+/* Win32 4.0 messages for IME */
+#define WM_IME_STARTCOMPOSITION     0x010d
+#define WM_IME_ENDCOMPOSITION       0x010e
+#define WM_IME_COMPOSITION          0x010f
+#define WM_IME_KEYLAST              0x010f
+
 #define HKL_NEXT       1
 #define HKL_PREV       0
 #define KLF_ACTIVATE   1
@@ -514,6 +538,8 @@ extern "C" {
 #define DSS_UNION      16
 #define DSS_DISABLED   32
 #define DSS_MONO       128
+#define        DSS_HIDEPREFIX  0x0200
+#define        DSS_PREFIXONLY  0x0400
 #define DSS_RIGHT      0x8000
 #define DT_BOTTOM      8
 #define DT_CALCRECT    1024
@@ -536,6 +562,9 @@ extern "C" {
 #define DT_VCENTER     4
 #define DT_WORDBREAK   16
 #define DT_INTERNAL    4096
+#define DT_NOFULLWIDTHCHARBREAK        524288
+#define DT_HIDEPREFIX  1048576
+#define DT_PREFIXONLY  2097152
 #define WB_ISDELIMITER 2
 #define WB_LEFT        0
 #define WB_RIGHT       1
@@ -614,7 +643,7 @@ extern "C" {
 #define CS_BYTEALIGNCLIENT 4096
 #define CS_BYTEALIGNWINDOW 8192
 #define CS_KEYCVTWINDOW 4
-#define CS_NOKEYCVT 256
+#define CS_NOKEYCVT 256 // Class Name to Version
 #define CS_CLASSDC 64
 #define CS_DBLCLKS 8
 #define CS_GLOBALCLASS 16384
@@ -974,7 +1003,6 @@ extern "C" {
 #define SM_CXMAXIMIZED 61
 #define SM_CYMAXIMIZED 62
 #define SM_NETWORK 63
-#define LR_DEFAULTSIZE 64
 #define SM_CLEANBOOT 67
 #define SM_CXDRAG 68
 #define SM_CYDRAG 69
@@ -990,17 +1018,38 @@ extern "C" {
 #define SM_CYVIRTUALSCREEN 79
 #define SM_CMONITORS 80
 #define SM_SAMEDISPLAYFORMAT 81
-#if (_WIN32_WINNT < 0x0400)
-#define SM_CMETRICS 76
-#else
-#define SM_CMETRICS 83
-#endif
-#if(_WIN32_WINNT >= 0x0501)
+#if(_WIN32_WINNT >= 0x0500)
+#define SM_IMMENABLED 82
+#endif /* _WIN32_WINNT >= 0x0500 */
+#if (_WIN32_WINNT >= 0x0501)
 #define SM_CXFOCUSBORDER 83
 #define SM_CYFOCUSBORDER 84
+#define SM_TABLETPC      86
+#define SM_MEDIACENTER   87
+#define SM_STARTER       88
+#define SM_SERVERR2      89
+#endif /* _WIN32_WINNT >= 0x0501 */
+#if (_WIN32_WINNT >= 0x0600)
+#define SM_MOUSEHORIZONTALWHEELPRESENT 91
+#define SM_CXPADDEDBORDER 92
+#endif /* _WIN32_WINNT >= 0x0600 */
+
+#define SM_REMOTESESSION 0x1000
+#if (_WIN32_WINNT >= 0x0501)
 #define SM_SHUTTINGDOWN 0x2000
+#define SM_REMOTECONTROL 0x2001
 #endif /* _WIN32_WINNT >= 0x0501 */
-#define SM_REMOTESESSION 0X1000
+
+#if (WINVER < 0x0500) && ((_WIN32_WINNT < 0x0400) || !defined(_WIN32_WINNT))
+#define SM_CMETRICS 76
+#elif (WINVER == 0x500)
+#define SM_CMETRICS 83
+#elif (WINVER == 0x501)
+#define SM_CMETRICS 90
+#else
+#define SM_CMETRICS 93
+#endif
+
 #define ARW_BOTTOMLEFT 0
 #define ARW_BOTTOMRIGHT 1
 #define ARW_HIDE 8
@@ -1021,6 +1070,7 @@ extern "C" {
 #define LR_COPYDELETEORG 8
 #define LR_LOADFROMFILE 16
 #define LR_LOADTRANSPARENT 32
+#define LR_DEFAULTSIZE 64
 #define LR_LOADREALSIZE 128
 #define LR_LOADMAP3DCOLORS 4096
 #define LR_CREATEDIBSECTION 8192
@@ -1140,6 +1190,12 @@ extern "C" {
 #define SMTO_ABORTIFHUNG 2
 #define SMTO_BLOCK 1
 #define SMTO_NORMAL 0
+#if (WINVER >= 0x0500)
+#define SMTO_NOTIMEOUTIFNOTHUNG 8
+#endif
+#if (WINVER >= 0x0600)
+#define SMTO_ERRORONEXIT 32
+#endif
 #define SIF_ALL 23
 #define SIF_PAGE 2
 #define SIF_POS 4
@@ -1586,6 +1642,7 @@ extern "C" {
 #define WM_MEASUREITEM 44
 #if (WINVER >= 0x0500)
 #define WM_MENURBUTTONUP 290
+#define WM_UNINITMENUPOPUP 293
 #endif
 #define WM_MENUCHAR 288
 #define WM_MENUCOMMAND 294
@@ -1666,7 +1723,6 @@ extern "C" {
 #define WM_TCARD 82
 #define WM_TIMECHANGE 30
 #define WM_TIMER 275
-#define WM_SYSTIMER 280
 #define WM_UNDO 772
 #define WM_USER 1024
 #define WM_USERCHANGED 84
@@ -1680,6 +1736,7 @@ extern "C" {
 #define WM_KEYLAST 264
 #define WM_SYNCPAINT  136
 #define WM_MOUSEACTIVATE 33
+#define WM_MOUSEFIRST 512
 #define WM_MOUSEMOVE 512
 #define WM_LBUTTONDOWN 513
 #define WM_LBUTTONUP 514
@@ -1690,13 +1747,20 @@ extern "C" {
 #define WM_MBUTTONDOWN 519
 #define WM_MBUTTONUP 520
 #define WM_MBUTTONDBLCLK 521
+#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
 #define WM_MOUSEWHEEL 522
-#define WM_MOUSEFIRST 512
+#endif
 #if (_WIN32_WINNT >= 0x0500)
 #define WM_XBUTTONDOWN 523
 #define WM_XBUTTONUP 524
 #define WM_XBUTTONDBLCLK 525
+#endif
+#if (_WIN32_WINNT >= 0x0500)
 #define WM_MOUSELAST 525
+#elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
+#define WM_MOUSELAST 522
+#else
+#define WM_MOUSELAST 521
 #endif
 #define WM_MOUSEHOVER 0x2A1
 #define WM_MOUSELEAVE 0x2A3
@@ -1713,14 +1777,6 @@ extern "C" {
 #define WM_CHANGEUISTATE 295
 #define WM_UPDATEUISTATE 296
 #define WM_QUERYUISTATE 297
-#define UIS_SET 1
-#define UIS_CLEAR 2
-#define UIS_INITIALIZE 3
-#define UISF_HIDEFOCUS 1
-#define UISF_HIDEACCEL 2
-#if(_WIN32_WINNT >= 0x0501)
-#define UISF_ACTIVE 4
-#endif /* _WIN32_WINNT >= 0x0501 */
 #endif /* _WIN32_WINNT >= 0x0500 */
 #endif /* _WIN32_WCE */
 #define BM_CLICK 245
@@ -2141,6 +2197,14 @@ extern "C" {
 #define VK_NONAME      0xFC
 #define VK_PA1 0xFD
 #define VK_OEM_CLEAR   0xFE
+
+/* MapVirtualKey translation types */
+#define MAPVK_VK_TO_VSC     0
+#define MAPVK_VSC_TO_VK     1
+#define MAPVK_VK_TO_CHAR    2
+#define MAPVK_VSC_TO_VK_EX  3
+#define MAPVK_VK_TO_VSC_EX  4
+
 #define TME_HOVER      1
 #define TME_LEAVE      2
 #define TME_NONCLIENT   0x00000010
@@ -2396,14 +2460,10 @@ extern "C" {
 #define HBMMENU_POPUP_RESTORE ((HBITMAP)9)
 #define HBMMENU_POPUP_MAXIMIZE ((HBITMAP)10)
 #define HBMMENU_POPUP_MINIMIZE ((HBITMAP)11)
-#define MOD_ALT 1
-#define MOD_CONTROL 2
-#define MOD_SHIFT 4
-#define MOD_WIN 8
-#define MOD_IGNORE_ALL_MODIFIER 1024
-#define MOD_ON_KEYUP  2048
-#define MOD_RIGHT 16384
-#define MOD_LEFT 32768
+#define MOD_ALT         0x0001
+#define MOD_CONTROL     0x0002
+#define MOD_SHIFT       0x0004
+#define MOD_WIN         0x0008
 #define LLKHF_EXTENDED 0x00000001
 #define LLKHF_INJECTED 0x00000010
 #define LLKHF_ALTDOWN  0x00000020
@@ -2441,6 +2501,8 @@ extern "C" {
 #define OBJID_CURSOR 0xFFFFFFF7
 #define OBJID_ALERT 0xFFFFFFF6
 #define OBJID_SOUND 0xFFFFFFF5
+#define OBJID_QUERYCLASSNAMEIDX 0xFFFFFFF4
+#define OBJID_NATIVEOM 0xFFFFFF0
 #define GUI_CARETBLINKING 0x00000001
 #define GUI_INMOVESIZE 0x00000002
 #define GUI_INMENUMODE 0x00000004
@@ -2533,6 +2595,10 @@ extern "C" {
 #define LWA_COLORKEY 1
 #define LWA_ALPHA 2
 #endif
+#define ULW_COLORKEY        0x00000001
+#define ULW_ALPHA           0x00000002
+#define ULW_OPAQUE          0x00000004
+#define ULW_EX_NORESIZE     0x00000008
 #define GA_PARENT 1
 #define GA_ROOT 2
 #define GA_ROOTOWNER 3
@@ -2563,10 +2629,10 @@ extern "C" {
 #define RIM_TYPEMOUSE    0x00000000
 #define RIM_TYPEKEYBOARD 0x00000001
 #define RIM_TYPEHID      0x00000002
-#define MOUSE_MOVE_RELATIVE      0x00000000
-#define MOUSE_MOVE_ABSOLUTE      0x00000001
-#define MOUSE_VIRTUAL_DESKTOP    0x00000002
-#define MOUSE_ATTRIBUTES_CHANGED 0x00000004
+#define MOUSE_MOVE_RELATIVE               0
+#define MOUSE_MOVE_ABSOLUTE               1
+#define MOUSE_VIRTUAL_DESKTOP             0x02
+#define MOUSE_ATTRIBUTES_CHANGED          0x04
 #define RI_MOUSE_LEFT_BUTTON_DOWN   0x0001
 #define RI_MOUSE_LEFT_BUTTON_UP     0x0002
 #define RI_MOUSE_RIGHT_BUTTON_DOWN  0x0004
@@ -2749,7 +2815,7 @@ typedef struct tagCWPRETSTRUCT {
        WPARAM wParam;
        DWORD message;
        HWND hwnd;
-} CWPRETSTRUCT;
+} CWPRETSTRUCT,*PCWPRETSTRUCT, *LPCWPRETSTRUCT;
 typedef struct tagCWPSTRUCT {
        LPARAM lParam;
        WPARAM wParam;
@@ -2789,7 +2855,6 @@ typedef struct {
        short cx;
        short cy;
 } DLGTEMPLATE,*LPDLGTEMPLATE,*LPDLGTEMPLATEA,*LPDLGTEMPLATEW;
-typedef const DLGTEMPLATE *LPCDLGTEMPLATE;
 typedef const DLGTEMPLATE *LPCDLGTEMPLATEA;
 typedef const DLGTEMPLATE *LPCDLGTEMPLATEW;
 #ifdef UNICODE
@@ -3014,7 +3079,7 @@ typedef struct tagHIGHCONTRASTW {
        DWORD dwFlags;
        LPWSTR lpszDefaultScheme;
 } HIGHCONTRASTW,*LPHIGHCONTRASTW;
-#ifndef NOGDI
+#if defined(_WINGDI_) && !defined(NOGDI)
 typedef struct tagICONMETRICSA {
        UINT cbSize;
        int iHorzSpacing;
@@ -3046,7 +3111,7 @@ typedef struct tagMOUSEKEYS{
        DWORD dwReserved1;
        DWORD dwReserved2;
 } MOUSEKEYS,*LPMOUSEKEYS;
-#ifndef NOGDI
+#if defined(_WINGDI_) && !defined(NOGDI)
 typedef struct tagNONCLIENTMETRICSA {
        UINT cbSize;
        int iBorderWidth;
@@ -3142,6 +3207,20 @@ typedef struct tagMOUSEHOOKSTRUCT {
        UINT wHitTestCode;
        DWORD dwExtraInfo;
 } MOUSEHOOKSTRUCT,*LPMOUSEHOOKSTRUCT,*PMOUSEHOOKSTRUCT;
+#if ( _WIN32_WINNT >= 0x0500 )
+#ifdef __cplusplus
+typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT
+{
+        DWORD   mouseData;
+} MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;
+#else
+typedef struct tagMOUSEHOOKSTRUCTEX
+{
+        MOUSEHOOKSTRUCT MOUSEHOOKSTRUCT;
+        DWORD   mouseData;
+} MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;
+#endif
+#endif
 typedef struct tagTRACKMOUSEEVENT {
        DWORD cbSize;
        DWORD dwFlags;
@@ -3539,7 +3618,7 @@ LRESULT WINAPI CallWindowProcA(WNDPROC,HWND,UINT,WPARAM,LPARAM);
 LRESULT WINAPI CallWindowProcW(WNDPROC,HWND,UINT,WPARAM,LPARAM);
 WORD WINAPI CascadeWindows(HWND,UINT,LPCRECT,UINT,const HWND*);
 BOOL WINAPI ChangeClipboardChain(HWND,HWND);
-#ifndef NOGDI
+#if defined(_WINGDI_) && !defined(NOGDI)
 LONG WINAPI ChangeDisplaySettingsA(PDEVMODEA,DWORD);
 LONG WINAPI ChangeDisplaySettingsW(PDEVMODEW,DWORD);
 LONG WINAPI ChangeDisplaySettingsExA(LPCSTR,LPDEVMODEA,HWND,DWORD,LPVOID);
@@ -3590,7 +3669,7 @@ HACCEL WINAPI CreateAcceleratorTableA(LPACCEL,int);
 HACCEL WINAPI CreateAcceleratorTableW(LPACCEL,int);
 BOOL WINAPI CreateCaret(HWND,HBITMAP,int,int);
 HCURSOR WINAPI CreateCursor(HINSTANCE,int,int,int,int,PCVOID,PCVOID);
-#ifndef NOGDI
+#if defined(_WINGDI_) && !defined(NOGDI)
 HDESK WINAPI CreateDesktopA(LPCSTR,LPCSTR,LPDEVMODEA,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
 HDESK WINAPI CreateDesktopW(LPCWSTR,LPCWSTR,LPDEVMODEW,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
 #endif
@@ -3691,7 +3770,7 @@ BOOL WINAPI EnumDesktopsA(HWINSTA,DESKTOPENUMPROCA,LPARAM);
 BOOL WINAPI EnumDesktopsW(HWINSTA,DESKTOPENUMPROCW,LPARAM);
 BOOL WINAPI EnumDesktopWindows(HDESK,WNDENUMPROC,LPARAM);
 BOOL WINAPI EnumDisplayMonitors(HDC,LPCRECT,MONITORENUMPROC,LPARAM);
-#ifndef NOGDI
+#if defined(_WINGDI_) && !defined(NOGDI)
 BOOL WINAPI EnumDisplaySettingsA(LPCSTR,DWORD,PDEVMODEA);
 BOOL WINAPI EnumDisplaySettingsW(LPCWSTR,DWORD,PDEVMODEW);
 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
@@ -4107,7 +4186,7 @@ int WINAPI SetScrollInfo(HWND,int,LPCSCROLLINFO,BOOL);
 int WINAPI SetScrollPos(HWND,int,int,BOOL);
 BOOL WINAPI SetScrollRange(HWND,int,int,int,BOOL);
 BOOL WINAPI SetSysColors(int,const INT *,const COLORREF *);
-HANDLE WINAPI SetSysColorsTemp(const COLORREF *, const HBRUSH *, int);
+DWORD WINAPI SetSysColorsTemp(const COLORREF *, const HBRUSH *, DWORD);
 #define SetSysModalWindow(h) (NULL)
 BOOL WINAPI SetSystemCursor(HCURSOR,DWORD);
 BOOL WINAPI SetThreadDesktop(HDESK);
@@ -4202,8 +4281,22 @@ BOOL WINAPI LockSetForegroundWindow(UINT);
 #endif
 #if (_WIN32_WINNT >= 0x0500)
 BOOL WINAPI SetLayeredWindowAttributes(HWND,COLORREF,BYTE,DWORD);
-#ifndef NOGDI
+#if defined(_WINGDI_) && !defined(NOGDI)
 BOOL WINAPI UpdateLayeredWindow(HWND,HDC,POINT*,SIZE*,HDC,POINT*,COLORREF,BLENDFUNCTION*,DWORD);
+typedef struct tagUPDATELAYEREDWINDOWINFO
+{
+    DWORD                cbSize;
+    HDC                  hdcDst;
+    POINT CONST*         pptDst;
+    SIZE CONST*          psize;
+    HDC                  hdcSrc;
+    POINT CONST*         pptSrc;
+    COLORREF             crKey;
+    BLENDFUNCTION CONST* pblend;
+    DWORD                dwFlags;
+    RECT CONST*          prcDirty;
+} UPDATELAYEREDWINDOWINFO, *PUPDATELAYEREDWINDOWINFO;
+BOOL WINAPI UpdateLayeredWindowIndirect(HWND,UPDATELAYEREDWINDOWINFO CONST*);
 #endif
 #endif
 #if (_WIN32_WINNT >= 0x0501)
@@ -4535,7 +4628,7 @@ typedef MONITORINFOEXA MONITORINFOEX, *LPMONITORINFOEX;
 #define WinHelp WinHelpA
 #define wsprintf wsprintfA
 #define wvsprintf wvsprintfA
-#ifndef NOGDI
+#if defined(_WINGDI_) && !defined(NOGDI)
 typedef ICONMETRICSA ICONMETRICS,*LPICONMETRICS;
 typedef NONCLIENTMETRICSA NONCLIENTMETRICS,*LPNONCLIENTMETRICS;
 #define ChangeDisplaySettings ChangeDisplaySettingsA