[USER32]
[reactos.git] / reactos / include / psdk / winuser.h
index e935c7c..21cdf04 100644 (file)
@@ -5,6 +5,12 @@
 extern "C" {
 #endif
 
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable:4201)
+#pragma warning(disable:4820)
+#endif
+
 #if !defined(_USER32_)
 #define WINUSERAPI DECLSPEC_IMPORT
 #else
@@ -174,11 +180,6 @@ extern "C" {
 #define BROADCAST_QUERY_DENY   1112363332
 #define ENUM_CURRENT_SETTINGS  ((DWORD)-1)
 #define ENUM_REGISTRY_SETTINGS ((DWORD)-2)
-#define DM_BITSPERPEL  0x40000
-#define DM_PELSWIDTH   0x80000
-#define DM_PELSHEIGHT  0x100000
-#define DM_DISPLAYFLAGS 0x200000
-#define DM_DISPLAYFREQUENCY 0x400000
 #define CDS_UPDATEREGISTRY     1
 #define CDS_TEST       2
 #define CDS_FULLSCREEN 4
@@ -298,6 +299,9 @@ extern "C" {
 #define ES_LOWERCASE 16
 #define ES_MULTILINE 4
 #define ES_NOHIDESEL 256
+#ifdef _WINE
+#define ES_COMBO 0x200   /* Undocumented. Parent is a combobox */
+#endif
 #define ES_NUMBER 0x2000
 #define ES_OEMCONVERT 0x400
 #define ES_PASSWORD 32
@@ -385,6 +389,7 @@ extern "C" {
 #define WS_EX_COMPOSITED 0x2000000 /* XP */
 #define WS_EX_CONTEXTHELP 0x400
 #define WS_EX_CONTROLPARENT 0x10000
+#define WS_EX_DRAGDETECT 0x00000002L
 #define WS_EX_DLGMODALFRAME 1
 #define WS_EX_LAYERED 0x80000   /* w2k */
 #define WS_EX_LAYOUTRTL 0x400000 /* w98, w2k */
@@ -517,6 +522,7 @@ extern "C" {
 #define DSS_NORMAL     0
 #define DSS_UNION      16
 #define DSS_DISABLED   32
+#define        DSS_DEFAULT     64
 #define DSS_MONO       128
 #define        DSS_HIDEPREFIX  0x0200
 #define        DSS_PREFIXONLY  0x0400
@@ -592,8 +598,8 @@ extern "C" {
 #define RT_RCDATA MAKEINTRESOURCE(10)
 #define RT_MESSAGETABLE MAKEINTRESOURCE(11)
 #define DIFFERENCE 11
-#define RT_GROUP_CURSOR MAKEINTRESOURCE((DWORD)RT_CURSOR+DIFFERENCE)
-#define RT_GROUP_ICON MAKEINTRESOURCE((DWORD)RT_ICON+DIFFERENCE)
+#define RT_GROUP_CURSOR MAKEINTRESOURCE((ULONG_PTR)RT_CURSOR+DIFFERENCE)
+#define RT_GROUP_ICON MAKEINTRESOURCE((ULONG_PTR)RT_ICON+DIFFERENCE)
 #define RT_VERSION MAKEINTRESOURCE(16)
 #define RT_DLGINCLUDE MAKEINTRESOURCE(17)
 #define RT_PLUGPLAY MAKEINTRESOURCE(19)
@@ -863,6 +869,8 @@ extern "C" {
 #endif
 #define QS_SENDMESSAGE 64
 #define QS_TIMER 16
+/* Extra (undocumented) queue wake bits - see "Undoc. Windows" */
+#define QS_SMRESULT 0x8000
 
 #define USER_TIMER_MAXIMUM  2147483647
 #define USER_TIMER_MINIMUM  10
@@ -870,37 +878,38 @@ extern "C" {
 #define MWMO_WAITALL 1
 #define MWMO_ALERTABLE 2
 #define MWMO_INPUTAVAILABLE 4
-#define COLOR_3DDKSHADOW 21
-#define COLOR_3DFACE 15
-#define COLOR_3DHILIGHT 20
-#define COLOR_3DHIGHLIGHT 20
-#define COLOR_3DLIGHT 22
-#define COLOR_BTNHILIGHT 20
-#define COLOR_3DSHADOW 16
-#define COLOR_ACTIVEBORDER 10
+
+#define COLOR_SCROLLBAR 0
+#define COLOR_BACKGROUND 1
+#define COLOR_DESKTOP COLOR_BACKGROUND
 #define COLOR_ACTIVECAPTION 2
+#define COLOR_INACTIVECAPTION 3
+#define COLOR_MENU 4
+#define COLOR_WINDOW 5
+#define COLOR_WINDOWFRAME 6
+#define COLOR_MENUTEXT 7
+#define COLOR_WINDOWTEXT 8
+#define COLOR_CAPTIONTEXT 9
+#define COLOR_ACTIVEBORDER 10
+#define COLOR_INACTIVEBORDER 11
 #define COLOR_APPWORKSPACE 12
-#define COLOR_BACKGROUND 1
-#define COLOR_DESKTOP 1
+#define COLOR_HIGHLIGHT 13
+#define COLOR_HIGHLIGHTTEXT 14
 #define COLOR_BTNFACE 15
-#define COLOR_BTNHIGHLIGHT 20
+#define COLOR_3DFACE COLOR_BTNFACE
 #define COLOR_BTNSHADOW 16
-#define COLOR_BTNTEXT 18
-#define COLOR_CAPTIONTEXT 9
+#define COLOR_3DSHADOW COLOR_BTNSHADOW
 #define COLOR_GRAYTEXT 17
-#define COLOR_HIGHLIGHT 13
-#define COLOR_HIGHLIGHTTEXT 14
-#define COLOR_INACTIVEBORDER 11
-#define COLOR_INACTIVECAPTION 3
+#define COLOR_BTNTEXT 18
 #define COLOR_INACTIVECAPTIONTEXT 19
-#define COLOR_INFOBK 24
+#define COLOR_BTNHIGHLIGHT 20
+#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
+#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
+#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
+#define COLOR_3DDKSHADOW 21
+#define COLOR_3DLIGHT 22
 #define COLOR_INFOTEXT 23
-#define COLOR_MENU 4
-#define COLOR_MENUTEXT 7
-#define COLOR_SCROLLBAR 0
-#define COLOR_WINDOW 5
-#define COLOR_WINDOWFRAME 6
-#define COLOR_WINDOWTEXT 8
+#define COLOR_INFOBK 24
 #define COLOR_HOTLIGHT 26
 #define COLOR_GRADIENTACTIVECAPTION 27
 #define COLOR_GRADIENTINACTIVECAPTION 28
@@ -908,6 +917,7 @@ extern "C" {
 #define COLOR_MENUHILIGHT 29
 #define COLOR_MENUBAR 30
 #endif
+
 #define CTLCOLOR_MSGBOX 0
 #define CTLCOLOR_EDIT 1
 #define CTLCOLOR_LISTBOX 2
@@ -1132,6 +1142,7 @@ extern "C" {
 #define MSGF_NEXTWINDOW 6
 #define MSGF_MAINLOOP 8
 #define MSGF_USER 4096
+#define MSGF_MAX  8
 #define MOUSEEVENTF_MOVE 1
 #define MOUSEEVENTF_LEFTDOWN 2
 #define MOUSEEVENTF_LEFTUP 4
@@ -1139,6 +1150,8 @@ extern "C" {
 #define MOUSEEVENTF_RIGHTUP 16
 #define MOUSEEVENTF_MIDDLEDOWN 32
 #define MOUSEEVENTF_MIDDLEUP 64
+#define MOUSEEVENTF_XDOWN 128
+#define MOUSEEVENTF_XUP 256
 #define MOUSEEVENTF_WHEEL 0x0800
 #define MOUSEEVENTF_ABSOLUTE 32768
 #define PM_NOREMOVE 0
@@ -1199,6 +1212,10 @@ extern "C" {
 #define SWP_NOSENDCHANGING 1024
 #define SWP_DEFERERASE 8192
 #define SWP_ASYNCWINDOWPOS  16384
+/* undocumented SWP flags - from SDK 3.1 */
+#define SWP_NOCLIENTSIZE 0x0800
+#define SWP_NOCLIENTMOVE 0x1000
+#define SWP_STATECHANGED 0x8000
 
 #define HSHELL_WINDOWCREATED 1
 #define HSHELL_WINDOWDESTROYED 2
@@ -1328,6 +1345,19 @@ extern "C" {
 #define SPI_SETICONTITLELOGFONT 0x0022
 #define SPI_GETFASTTASKSWITCH 0x0023
 #define SPI_SETFASTTASKSWITCH 0x0024
+#if(WINVER >= 0x0400)
+    #define SPI_SETDRAGFULLWINDOWS 0x0025
+    #define SPI_GETDRAGFULLWINDOWS 0x0026
+    #define SPI_GETNONCLIENTMETRICS 0x0029
+    #define SPI_SETNONCLIENTMETRICS 0x002A
+    #define SPI_GETMINIMIZEDMETRICS 0x002B
+    #define SPI_SETMINIMIZEDMETRICS 0x002C
+    #define SPI_GETICONMETRICS 0x002D
+    #define SPI_SETICONMETRICS 0x002E
+    #define SPI_SETWORKAREA 0x002F
+    #define SPI_GETWORKAREA 0x0030
+    #define SPI_SETPENWINDOWS 0x0031
+#endif
 #define SPI_GETFILTERKEYS 0x0032
 #define SPI_SETFILTERKEYS 0x0033
 #define SPI_GETTOGGLEKEYS 0x0034
@@ -1340,21 +1370,13 @@ extern "C" {
 #define SPI_SETSTICKYKEYS 0x003B
 #define SPI_GETACCESSTIMEOUT 0x003C
 #define SPI_SETACCESSTIMEOUT 0x003D
+#if(WINVER >= 0x0400)
+    #define SPI_GETSERIALKEYS 0x003E
+    #define SPI_SETSERIALKEYS 0x003F
+#endif
 #define SPI_GETSOUNDSENTRY 0x0040
 #define SPI_SETSOUNDSENTRY 0x0041
-
 #if(WINVER >= 0x0400)
-    #define SPI_SETDRAGFULLWINDOWS 0x0025
-    #define SPI_GETDRAGFULLWINDOWS 0x0026
-    #define SPI_GETNONCLIENTMETRICS 0x0029
-    #define SPI_SETNONCLIENTMETRICS 0x002A
-    #define SPI_GETMINIMIZEDMETRICS 0x002B
-    #define SPI_SETMINIMIZEDMETRICS 0x002C
-    #define SPI_GETICONMETRICS 0x002D
-    #define SPI_SETICONMETRICS 0x002E
-    #define SPI_SETWORKAREA 0x002F
-    #define SPI_GETWORKAREA 0x0030
-    #define SPI_SETPENWINDOWS 0x0031
     #define SPI_GETHIGHCONTRAST 0x0042
     #define SPI_SETHIGHCONTRAST 0x0043
     #define SPI_GETKEYBOARDPREF 0x0044
@@ -1384,17 +1406,15 @@ extern "C" {
     #define SPI_GETWINDOWSEXTENSION 0x005C
     #define SPI_SETMOUSETRAILS 0x005D
     #define SPI_GETMOUSETRAILS 0x005E
-    #define SPI_SCREENSAVERRUNNING 0x0061
-    #define SPI_SETSCREENSAVERRUNNING SPI_SCREENSAVERRUNNING
-    #define SPI_GETSERIALKEYS 0x003E
-    #define SPI_SETSERIALKEYS 0x003F
 #endif
-
 #if(_WIN32_WINNT >= 0x0400)
     #define SPI_GETSNAPTODEFBUTTON 0x005F
     #define SPI_SETSNAPTODEFBUTTON 0x0060
 #endif
-
+#if(WINVER >= 0x0400)
+    #define SPI_SCREENSAVERRUNNING 0x0061
+    #define SPI_SETSCREENSAVERRUNNING SPI_SCREENSAVERRUNNING
+#endif
 #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
     #define SPI_GETMOUSEHOVERWIDTH 0x0062
     #define SPI_SETMOUSEHOVERWIDTH 0x0063
@@ -1406,19 +1426,25 @@ extern "C" {
     #define SPI_SETWHEELSCROLLLINES 0x0069
     #define SPI_GETMENUSHOWDELAY 0x006A
     #define SPI_SETMENUSHOWDELAY 0x006B
+    #if (_WIN32_WINNT >= 0x0600)
+        #define SPI_GETWHEELSCROLLCHARS 0x006C
+        #define SPI_SETWHEELSCROLLCHARS 0x006D
+    #endif
     #define SPI_GETSHOWIMEUI 0x006E
     #define SPI_SETSHOWIMEUI 0x006F
-    /* Correct ? */
-    #define SPI_GETWHEELSCROLLCHARS 0x006C
 #endif
-
 #if(WINVER >= 0x0500)
     #define SPI_GETMOUSESPEED 0x0070
     #define SPI_SETMOUSESPEED 0x0071
     #define SPI_GETSCREENSAVERRUNNING 0x0072
     #define SPI_GETDESKWALLPAPER 0x0073
 #endif
-
+#if(WINVER >= 0x0600)
+    #define SPI_GETAUDIODESCRIPTION 0x0074
+    #define SPI_SETAUDIODESCRIPTION 0x0075
+    #define SPI_GETSCREENSAVESECURE 0x0076
+    #define SPI_SETSCREENSAVESECURE 0x0077
+#endif
 #if(WINVER >= 0x0500)
     #define SPI_GETACTIVEWINDOWTRACKING 0x1000
     #define SPI_SETACTIVEWINDOWTRACKING 0x1001
@@ -1448,17 +1474,6 @@ extern "C" {
     #define SPI_SETTOOLTIPFADE 0x1019
     #define SPI_GETCURSORSHADOW 0x101A
     #define SPI_SETCURSORSHADOW 0x101B
-    #define SPI_GETUIEFFECTS 0x103E
-    #define SPI_SETUIEFFECTS 0x103F
-    #define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
-    #define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
-    #define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
-    #define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
-    #define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
-    #define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
-    #define SPI_GETCARETWIDTH 0x2006
-    #define SPI_SETCARETWIDTH 0x2007
-
     #if(_WIN32_WINNT >= 0x0501)
         #define SPI_GETMOUSESONAR 0x101C
         #define SPI_SETMOUSESONAR 0x101D
@@ -1473,13 +1488,31 @@ extern "C" {
         #define SPI_GETBLOCKSENDINPUTRESETS 0x1026
         #define SPI_SETBLOCKSENDINPUTRESETS 0x1027
     #endif
-
+    #define SPI_GETUIEFFECTS 0x103E
+    #define SPI_SETUIEFFECTS 0x103F
+    #if(_WIN32_WINNT >= 0x0600)
+        #define SPI_GETDISABLEOVERLAPPEDCONTENT 0x1040
+        #define SPI_SETDISABLEOVERLAPPEDCONTENT 0x1041
+        #define SPI_GETCLIENTAREAANIMATION 0x1042
+        #define SPI_SETCLIENTAREAANIMATION 0x1043
+        #define SPI_GETCLEARTYPE 0x1048
+        #define SPI_SETCLEARTYPE 0x1049
+        #define SPI_GETSPEECHRECOGNITION 0x104A
+        #define SPI_SETSPEECHRECOGNITION 0x104B
+    #endif
+    #define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
+    #define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
+    #define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
+    #define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
+    #define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
+    #define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
+    #define SPI_GETCARETWIDTH 0x2006
+    #define SPI_SETCARETWIDTH 0x2007
     #if(_WIN32_WINNT >= 0x0501)
         #define SPI_GETMOUSECLICKLOCKTIME 0x2008
         #define SPI_SETMOUSECLICKLOCKTIME 0x2009
         #define SPI_GETFONTSMOOTHINGTYPE 0x200A
         #define SPI_SETFONTSMOOTHINGTYPE 0x200B
-
         #define SPI_GETFONTSMOOTHINGCONTRAST 0x200C
         #define SPI_SETFONTSMOOTHINGCONTRAST 0x200D
         #define SPI_GETFOCUSBORDERWIDTH 0x200E
@@ -1541,6 +1574,9 @@ extern "C" {
 #define WM_ACTIVATE 6
 #define WM_SETFOCUS 7
 #define WM_KILLFOCUS 8
+#ifdef _WINE
+#define WM_SETVISIBLE 9
+#endif
 #define WM_ENABLE 10
 #define WM_SETREDRAW 11
 #define WM_SETTEXT 12
@@ -1580,8 +1616,13 @@ extern "C" {
 #define WM_GETFONT 49
 #define WM_SETHOTKEY 50
 #define WM_GETHOTKEY 51
+#define WM_ISACTIVEICON 53
+#define WM_QUERYPARKICON 54
 #define WM_QUERYDRAGICON 55
 #define WM_COMPAREITEM 57
+#if (WINVER >= 0x0500)
+#define WM_GETOBJECT 61
+#endif /* (WINVER >= 0x0500) */
 #define WM_COMPACTING 65
 #define WM_COMMNOTIFY 68               /* obsolete */
 #define WM_WINDOWPOSCHANGING 70
@@ -1631,6 +1672,7 @@ extern "C" {
 #define WM_NCXBUTTONDBLCLK 173
 #endif /* (_WIN32_WINNT >= 0x0500) */
 
+#define WM_KEYF1 0x004d
 #define WM_KEYFIRST 256
 #define WM_KEYDOWN 256
 #define WM_KEYUP 257
@@ -1664,6 +1706,7 @@ extern "C" {
 #define WM_VSCROLL 277
 #define WM_INITMENU 278
 #define WM_INITMENUPOPUP 279
+#define WM_SYSTIMER 280
 #define WM_MENUSELECT 287
 #define WM_MENUCHAR 288
 #define WM_ENTERIDLE 289
@@ -1683,6 +1726,15 @@ extern "C" {
 #endif /* _WIN32_WCE */
 #endif /* (WINVER >= 0x0500) */
 
+/* D&D messages */
+#define WM_DROPOBJECT      0x022A
+#define WM_QUERYDROPOBJECT  0x022B
+#define WM_BEGINDRAG       0x022C
+#define WM_DRAGLOOP        0x022D
+#define WM_DRAGSELECT      0x022E
+#define WM_DRAGMOVE        0x022F
+
+#define WM_CTLCOLOR 25
 #define WM_CTLCOLORMSGBOX 306
 #define WM_CTLCOLOREDIT 307
 #define WM_CTLCOLORLISTBOX 308
@@ -1690,8 +1742,10 @@ extern "C" {
 #define WM_CTLCOLORDLG 310
 #define WM_CTLCOLORSCROLLBAR 311
 #define WM_CTLCOLORSTATIC 312
+#define MN_GETHMENU 481
 #define WM_MOUSEFIRST 512
 #define WM_MOUSEMOVE 512
+#define WM_LBTRACKPOINT 0x0131
 #define WM_LBUTTONDOWN 513
 #define WM_LBUTTONUP 514
 #define WM_LBUTTONDBLCLK 515
@@ -1780,6 +1834,13 @@ extern "C" {
 #define WM_HOTKEY 786
 #define WM_PRINT 791
 #define WM_PRINTCLIENT 792
+#define WM_APPCOMMAND 793
+
+#define WM_DWMCOMPOSITIONCHANGED 0x031E
+#define WM_DWMNCRENDERINGCHANGED 0x031F
+#define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320
+#define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321
+
 #define WM_HANDHELDFIRST 856
 #define WM_HANDHELDLAST 863
 #define WM_AFXFIRST 864
@@ -1788,7 +1849,10 @@ extern "C" {
 #define WM_PENWINLAST 911
 #define WM_USER 1024
 #define WM_APP 32768
+#define WM_GETTITLEBARINFOEX 0x033F
 
+#define XBUTTON1      0x0001
+#define XBUTTON2      0x0002
 
 #if (_WIN32_WINNT >= 0x0400)
 #define WHEEL_DELTA 120
@@ -1852,6 +1916,7 @@ extern "C" {
 #define CB_SETLOCALE 345
 #define CB_SETTOPINDEX 348
 #define CB_SHOWDROPDOWN 335
+#define CB_MSGMAX 357
 #define CBN_CLOSEUP 8
 #define CBN_DBLCLK 2
 #define CBN_DROPDOWN 7
@@ -1912,6 +1977,10 @@ extern "C" {
 #define EN_VSCROLL 1538
 #define LB_ADDFILE 406
 #define LB_ADDSTRING 384
+#ifdef _WINE
+#define LB_CARETON 419
+#define LB_CARETOFF 420
+#endif
 #define LB_DELETESTRING 386
 #define LB_DIR 397
 #define LB_FINDSTRING 399
@@ -1960,11 +2029,16 @@ extern "C" {
 #define SBM_ENABLE_ARROWS 228
 #define SBM_GETPOS 225
 #define SBM_GETRANGE 227
-#define SBM_GETSCROLLINFO 234
 #define SBM_SETPOS 224
 #define SBM_SETRANGE 226
 #define SBM_SETRANGEREDRAW 230
+#if (_WIN32_WINNT >= 0x0400)
+#define SBM_GETSCROLLINFO 234
 #define SBM_SETSCROLLINFO 233
+#endif
+#if (_WIN32_WINNT >= 0x0501)
+#define SBM_GETSCROLLBARINFO 235
+#endif
 #define STM_GETICON 369
 #define STM_GETIMAGE 371
 #define STM_SETICON 368
@@ -2000,6 +2074,9 @@ extern "C" {
 #define DCX_INTERSECTRGN 128
 #define DCX_VALIDATE 0x200000
 #define DCX_EXCLUDEUPDATE   0x100
+#ifdef _WINE
+#define DCX_USESTYLE     0x10000
+#endif
 #define GMDI_GOINTOPOPUPS 2
 #define GMDI_USEDISABLED 1
 #define FKF_AVAILABLE 2
@@ -2149,6 +2226,7 @@ extern "C" {
 #define VK_F24 0x87
 #define VK_NUMLOCK     0x90
 #define VK_SCROLL      0x91
+#define VK_OEM_NEC_EQUAL       0x92
 #define VK_LSHIFT      0xA0
 #define VK_RSHIFT      0xA1
 #define VK_LCONTROL    0xA2
@@ -2192,6 +2270,8 @@ extern "C" {
 #if (_WIN32_WINNT >= 0x0500)
 #define VK_OEM_102     0xE2
 #endif
+#define VK_ICO_HELP    0xE3  /* Help key on ICO */
+#define VK_ICO_00      0xE4  /* 00 key on ICO */
 #define VK_PROCESSKEY  0xE5
 #if (_WIN32_WINNT >= 0x0500)
 #define VK_PACKET      0xE7
@@ -2403,8 +2483,18 @@ extern "C" {
 #define ODS_DISABLED 4
 #define ODS_CHECKED 8
 #define ODS_FOCUS 16
+#if(WINVER >= 0x0400)
 #define ODS_DEFAULT 32
 #define ODS_COMBOBOXEDIT 4096
+#endif
+#if(WINVER >= 0x0500)
+#define ODS_HOTLIGHT        0x0040
+#define ODS_INACTIVE        0x0080
+#if(_WIN32_WINNT >= 0x0500)
+#define ODS_NOACCEL         0x0100
+#define ODS_NOFOCUSRECT     0x0200
+#endif
+#endif
 #define IDHOT_SNAPWINDOW (-1)
 #define IDHOT_SNAPDESKTOP (-2)
 #define DBWF_LPARAMPOINTER 0x8000
@@ -2500,13 +2590,15 @@ extern "C" {
 #endif /* (WINVER >= 0x0500) */
 #define CURSOR_SHOWING 0x00000001
 #define WS_ACTIVECAPTION 0x00000001
-#if (_WIN32_WINNT >= 0x0403)
-#define INPUT_MOUSE 0x00000000
-#define INPUT_KEYBOARD 0x00000001
-#define INPUT_HARDWARE 0x00000002
-#endif /* (_WIN32_WINNT >= 0x0403) */
+#if (_WIN32_WINNT >= 0x0400)
+#define INPUT_MOUSE 0
+#define INPUT_KEYBOARD 1
+#define INPUT_HARDWARE 2
+#endif /* (_WIN32_WINNT >= 0x0400) */
 #if (WINVER >= 0x0400)
 #define ENDSESSION_LOGOFF 0x80000000
+#define ENDSESSION_CRITICAL 0x40000000
+#define ENDSESSION_CLOSEAPP 0x00000001
 #endif
 #if (WINVER >= 0x0500)
 #define CHILDID_SELF 0
@@ -2748,20 +2840,25 @@ typedef void(CALLBACK *SENDASYNCPROC)(HWND,UINT,DWORD,LRESULT);
 DECLARE_HANDLE(HHOOK);
 DECLARE_HANDLE(HDWP);
 DECLARE_HANDLE(HDEVNOTIFY);
+typedef HDEVNOTIFY *PHDEVNOTIFY;
+
 typedef struct tagACCEL {
        BYTE fVirt;
        WORD key;
        WORD cmd;
 } ACCEL,*LPACCEL;
+
 typedef struct tagACCESSTIMEOUT {
        UINT cbSize;
        DWORD dwFlags;
        DWORD iTimeOutMSec;
 } ACCESSTIMEOUT, *LPACCESSTIMEOUT;
+
 typedef struct tagANIMATIONINFO {
        UINT cbSize;
        int iMinAnimate;
 } ANIMATIONINFO,*LPANIMATIONINFO;
+
 typedef struct tagCREATESTRUCTA {
        LPVOID  lpCreateParams;
        HINSTANCE       hInstance;
@@ -2776,6 +2873,7 @@ typedef struct tagCREATESTRUCTA {
        LPCSTR  lpszClass;
        DWORD   dwExStyle;
 } CREATESTRUCTA,*LPCREATESTRUCTA;
+
 typedef struct tagCREATESTRUCTW {
        LPVOID  lpCreateParams;
        HINSTANCE       hInstance;
@@ -2790,37 +2888,44 @@ typedef struct tagCREATESTRUCTW {
        LPCWSTR lpszClass;
        DWORD   dwExStyle;
 } CREATESTRUCTW,*LPCREATESTRUCTW;
+
 typedef struct tagCBT_CREATEWNDA {
        LPCREATESTRUCTA lpcs;
        HWND    hwndInsertAfter;
 } CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
+
 typedef struct tagCBT_CREATEWNDW {
        LPCREATESTRUCTW lpcs;
        HWND    hwndInsertAfter;
 } CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
+
 typedef struct tagCBTACTIVATESTRUCT {
        BOOL fMouse;
        HWND hWndActive;
 } CBTACTIVATESTRUCT,*LPCBTACTIVATESTRUCT;
+
 typedef struct tagCLIENTCREATESTRUCT {
        HANDLE  hWindowMenu;
        UINT    idFirstChild;
 } CLIENTCREATESTRUCT,*LPCLIENTCREATESTRUCT;
+
 typedef struct tagCOMPAREITEMSTRUCT {
        UINT    CtlType;
        UINT    CtlID;
        HWND    hwndItem;
        UINT    itemID1;
-       DWORD   itemData1;
+       ULONG_PTR       itemData1;
        UINT    itemID2;
-       DWORD   itemData2;
+       ULONG_PTR       itemData2;
        DWORD   dwLocaleId;
-} COMPAREITEMSTRUCT,*LPCOMPAREITEMSTRUCT;
+} COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT,*LPCOMPAREITEMSTRUCT;
+
 typedef struct tagCOPYDATASTRUCT {
-       DWORD dwData;
+       ULONG_PTR dwData;
        DWORD cbData;
        PVOID lpData;
 } COPYDATASTRUCT,*PCOPYDATASTRUCT;
+
 typedef struct tagCURSORSHAPE {
        int xHotSpot;
        int yHotSpot;
@@ -2830,6 +2935,7 @@ typedef struct tagCURSORSHAPE {
     BYTE Planes;
     BYTE BitsPixel;
 } CURSORSHAPE,*LPCURSORSHAPE;
+
 typedef struct tagCWPRETSTRUCT {
        LRESULT lResult;
        LPARAM lParam;
@@ -2837,12 +2943,14 @@ typedef struct tagCWPRETSTRUCT {
        DWORD message;
        HWND hwnd;
 } CWPRETSTRUCT,*PCWPRETSTRUCT, *LPCWPRETSTRUCT;
+
 typedef struct tagCWPSTRUCT {
        LPARAM lParam;
        WPARAM wParam;
        UINT message;
        HWND hwnd;
 } CWPSTRUCT,*PCWPSTRUCT, *LPCWPSTRUCT;
+
 typedef struct tagDEBUGHOOKINFO {
        DWORD idThread;
        DWORD idThreadInstaller;
@@ -2850,14 +2958,16 @@ typedef struct tagDEBUGHOOKINFO {
        WPARAM wParam;
        int code;
 } DEBUGHOOKINFO,*PDEBUGHOOKINFO,*LPDEBUGHOOKINFO;
+
 typedef struct tagDELETEITEMSTRUCT {
        UINT CtlType;
        UINT CtlID;
        UINT itemID;
        HWND hwndItem;
-       UINT itemData;
+       ULONG_PTR itemData;
 } DELETEITEMSTRUCT,*PDELETEITEMSTRUCT,*LPDELETEITEMSTRUCT;
-#pragma pack(push,2)
+
+#include <pshpack2.h>
 typedef struct {
        DWORD style;
        DWORD dwExtendedStyle;
@@ -2867,6 +2977,7 @@ typedef struct {
        short cy;
        WORD id;
 } DLGITEMTEMPLATE,*LPDLGITEMTEMPLATE;
+
 typedef struct {
        DWORD style;
        DWORD dwExtendedStyle;
@@ -2876,14 +2987,23 @@ typedef struct {
        short cx;
        short cy;
 } DLGTEMPLATE,*LPDLGTEMPLATE,*LPDLGTEMPLATEA,*LPDLGTEMPLATEW;
+
 typedef const DLGTEMPLATE *LPCDLGTEMPLATEA;
 typedef const DLGTEMPLATE *LPCDLGTEMPLATEW;
+typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
+typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
+DECL_WINELIB_TYPE_AW(PDLGITEMTEMPLATE)
+typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
+typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
+
+
 #ifdef UNICODE
 typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE;
 #else
 typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE;
 #endif // UNICODE
-#pragma pack(pop)
+#include <poppack.h>
+
 typedef struct tagDRAWITEMSTRUCT {
        UINT CtlType;
        UINT CtlID;
@@ -2893,8 +3013,9 @@ typedef struct tagDRAWITEMSTRUCT {
        HWND hwndItem;
        HDC     hDC;
        RECT rcItem;
-       DWORD itemData;
+       ULONG_PTR itemData;
 } DRAWITEMSTRUCT,*LPDRAWITEMSTRUCT,*PDRAWITEMSTRUCT;
+
 typedef struct {
        UINT cbSize;
        int iTabLength;
@@ -2902,6 +3023,7 @@ typedef struct {
        int iRightMargin;
        UINT uiLengthDrawn;
 } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
+
 typedef struct tagPAINTSTRUCT {
        HDC     hdc;
        BOOL fErase;
@@ -2909,7 +3031,8 @@ typedef struct tagPAINTSTRUCT {
        BOOL fRestore;
        BOOL fIncUpdate;
        BYTE rgbReserved[32];
-} PAINTSTRUCT,*LPPAINTSTRUCT;
+} PAINTSTRUCT, *PPAINTSTRUCT,*LPPAINTSTRUCT;
+
 typedef struct tagMSG {
        HWND hwnd;
        UINT message;
@@ -2918,6 +3041,7 @@ typedef struct tagMSG {
        DWORD time;
        POINT pt;
 } MSG,*LPMSG,*PMSG;
+
 typedef struct _ICONINFO {
        BOOL fIcon;
        DWORD xHotspot;
@@ -2925,11 +3049,13 @@ typedef struct _ICONINFO {
        HBITMAP hbmMask;
        HBITMAP hbmColor;
 } ICONINFO,*PICONINFO;
+
 typedef struct tagNMHDR {
        HWND hwndFrom;
-       UINT idFrom;
+       UINT_PTR idFrom;
        UINT code;
 } NMHDR,*LPNMHDR;
+
 typedef struct _WNDCLASSA {
        UINT style;
        WNDPROC lpfnWndProc;
@@ -2942,6 +3068,7 @@ typedef struct _WNDCLASSA {
        LPCSTR lpszMenuName;
        LPCSTR lpszClassName;
 } WNDCLASSA,*LPWNDCLASSA,*PWNDCLASSA;
+
 typedef struct _WNDCLASSW {
        UINT style;
        WNDPROC lpfnWndProc;
@@ -2954,6 +3081,7 @@ typedef struct _WNDCLASSW {
        LPCWSTR lpszMenuName;
        LPCWSTR lpszClassName;
 } WNDCLASSW,*LPWNDCLASSW,*PWNDCLASSW;
+
 typedef struct _WNDCLASSEXA {
        UINT cbSize;
        UINT style;
@@ -2968,6 +3096,7 @@ typedef struct _WNDCLASSEXA {
        LPCSTR lpszClassName;
        HICON hIconSm;
 } WNDCLASSEXA,*LPWNDCLASSEXA,*PWNDCLASSEXA;
+
 typedef struct _WNDCLASSEXW {
        UINT cbSize;
        UINT style;
@@ -2982,6 +3111,7 @@ typedef struct _WNDCLASSEXW {
        LPCWSTR lpszClassName;
        HICON hIconSm;
 } WNDCLASSEXW,*LPWNDCLASSEXW,*PWNDCLASSEXW;
+
 typedef struct tagMENUITEMINFOA {
        UINT cbSize;
        UINT fMask;
@@ -2991,7 +3121,7 @@ typedef struct tagMENUITEMINFOA {
        HMENU hSubMenu;
        HBITMAP hbmpChecked;
        HBITMAP hbmpUnchecked;
-       DWORD dwItemData;
+       ULONG_PTR dwItemData;
        LPSTR dwTypeData;
        UINT cch;
 #if (_WIN32_WINNT >= 0x0500)
@@ -2999,6 +3129,7 @@ typedef struct tagMENUITEMINFOA {
 #endif
 } MENUITEMINFOA,*LPMENUITEMINFOA;
 typedef const MENUITEMINFOA *LPCMENUITEMINFOA;
+
 typedef struct tagMENUITEMINFOW {
        UINT cbSize;
        UINT fMask;
@@ -3008,14 +3139,16 @@ typedef struct tagMENUITEMINFOW {
        HMENU hSubMenu;
        HBITMAP hbmpChecked;
        HBITMAP hbmpUnchecked;
-       DWORD dwItemData;
+       ULONG_PTR dwItemData;
        LPWSTR dwTypeData;
        UINT cch;
 #if (_WIN32_WINNT >= 0x0500)
        HBITMAP hbmpItem;
 #endif
 } MENUITEMINFOW,*LPMENUITEMINFOW;
+
 typedef const MENUITEMINFOW *LPCMENUITEMINFOW;
+
 typedef struct tagSCROLLINFO {
        UINT cbSize;
        UINT fMask;
@@ -3026,6 +3159,7 @@ typedef struct tagSCROLLINFO {
        int nTrackPos;
 } SCROLLINFO,*LPSCROLLINFO;
 typedef const SCROLLINFO *LPCSCROLLINFO;
+
 typedef struct _WINDOWPLACEMENT {
        UINT length;
        UINT flags;
@@ -3034,25 +3168,31 @@ typedef struct _WINDOWPLACEMENT {
        POINT ptMaxPosition;
        RECT rcNormalPosition;
 } WINDOWPLACEMENT,*LPWINDOWPLACEMENT,*PWINDOWPLACEMENT;
+
 typedef struct {
        WORD versionNumber;
        WORD offset;
-} MENUITEMTEMPLATEHEADER;
+} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
+
 typedef struct {
        WORD mtOption;
        WORD mtID;
        WCHAR mtString[1];
-} MENUITEMTEMPLATE;
+} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
+
 typedef void MENUTEMPLATE,MENUTEMPLATEA,MENUTEMPLATEW,*LPMENUTEMPLATEA,*LPMENUTEMPLATEW,*LPMENUTEMPLATE;
+
 typedef struct tagHELPINFO {
        UINT cbSize;
        int iContextType;
        int iCtrlId;
        HANDLE hItemHandle;
-       DWORD dwContextId;
+       DWORD_PTR dwContextId;
        POINT MousePos;
 } HELPINFO,*LPHELPINFO;
+
 typedef void(CALLBACK *MSGBOXCALLBACK)(LPHELPINFO);
+
 typedef struct {
        UINT cbSize;
        HWND hwndOwner;
@@ -3061,10 +3201,11 @@ typedef struct {
        LPCSTR lpszCaption;
        DWORD dwStyle;
        LPCSTR lpszIcon;
-       DWORD dwContextHelpId;
+       DWORD_PTR dwContextHelpId;
        MSGBOXCALLBACK lpfnMsgBoxCallback;
        DWORD dwLanguageId;
 } MSGBOXPARAMSA,*PMSGBOXPARAMSA,*LPMSGBOXPARAMSA;
+
 typedef struct {
        UINT cbSize;
        HWND hwndOwner;
@@ -3073,15 +3214,17 @@ typedef struct {
        LPCWSTR lpszCaption;
        DWORD dwStyle;
        LPCWSTR lpszIcon;
-       DWORD dwContextHelpId;
+       DWORD_PTR dwContextHelpId;
        MSGBOXCALLBACK lpfnMsgBoxCallback;
        DWORD dwLanguageId;
 } MSGBOXPARAMSW,*PMSGBOXPARAMSW,*LPMSGBOXPARAMSW;
+
 typedef struct tagUSEROBJECTFLAGS {
        BOOL fInherit;
        BOOL fReserved;
        DWORD dwFlags;
-} USEROBJECTFLAGS;
+} USEROBJECTFLAGS, *PUSEROBJECTFLAGS;
+
 typedef struct tagFILTERKEYS {
        UINT cbSize;
        DWORD dwFlags;
@@ -3090,16 +3233,19 @@ typedef struct tagFILTERKEYS {
        DWORD iRepeatMSec;
        DWORD iBounceMSec;
 } FILTERKEYS, *LPFILTERKEYS;
+
 typedef struct tagHIGHCONTRASTA {
        UINT cbSize;
        DWORD dwFlags;
        LPSTR lpszDefaultScheme;
 } HIGHCONTRASTA,*LPHIGHCONTRASTA;
+
 typedef struct tagHIGHCONTRASTW {
        UINT cbSize;
        DWORD dwFlags;
        LPWSTR lpszDefaultScheme;
 } HIGHCONTRASTW,*LPHIGHCONTRASTW;
+
 #if defined(_WINGDI_) && !defined(NOGDI)
 typedef struct tagICONMETRICSA {
        UINT cbSize;
@@ -3108,6 +3254,7 @@ typedef struct tagICONMETRICSA {
        int iTitleWrap;
        LOGFONTA lfFont;
 } ICONMETRICSA,*LPICONMETRICSA;
+
 typedef struct tagICONMETRICSW {
        UINT cbSize;
        int iHorzSpacing;
@@ -3115,14 +3262,22 @@ typedef struct tagICONMETRICSW {
        int iTitleWrap;
        LOGFONTW lfFont;
 } ICONMETRICSW,*LPICONMETRICSW;
+
+#ifdef UNICODE
+typedef ICONMETRICSW ICONMETRICS,*LPICONMETRICS;
+#else /* UNICODE */
+typedef ICONMETRICSA ICONMETRICS,*LPICONMETRICS;
+#endif /* UNICODE */
 #endif /*  NOGDI */
+
 typedef struct tagMINIMIZEDMETRICS {
        UINT cbSize;
        int iWidth;
        int iHorzGap;
        int iVertGap;
        int iArrange;
-} MINIMIZEDMETRICS,*LPMINIMIZEDMETRICS;
+} MINIMIZEDMETRICS, *PMINIMIZEDMETRICS,*LPMINIMIZEDMETRICS;
+
 typedef struct tagMOUSEKEYS{
        UINT cbSize;
        DWORD dwFlags;
@@ -3132,6 +3287,7 @@ typedef struct tagMOUSEKEYS{
        DWORD dwReserved1;
        DWORD dwReserved2;
 } MOUSEKEYS,*LPMOUSEKEYS;
+
 #if defined(_WINGDI_) && !defined(NOGDI)
 typedef struct tagNONCLIENTMETRICSA {
        UINT cbSize;
@@ -3149,7 +3305,8 @@ typedef struct tagNONCLIENTMETRICSA {
        LOGFONTA lfMenuFont;
        LOGFONTA lfStatusFont;
        LOGFONTA lfMessageFont;
-} NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
+} NONCLIENTMETRICSA, *PNONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
+
 typedef struct tagNONCLIENTMETRICSW {
        UINT cbSize;
        int iBorderWidth;
@@ -3166,8 +3323,15 @@ typedef struct tagNONCLIENTMETRICSW {
        LOGFONTW lfMenuFont;
        LOGFONTW lfStatusFont;
        LOGFONTW lfMessageFont;
-} NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
+} NONCLIENTMETRICSW, *PNONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
+
+#ifdef UNICODE
+typedef NONCLIENTMETRICSW NONCLIENTMETRICS,*LPNONCLIENTMETRICS;
+#else /* UNICODE */
+typedef NONCLIENTMETRICSA NONCLIENTMETRICS,*LPNONCLIENTMETRICS;
+#endif /* UNICODE */
 #endif
+
 typedef struct tagSERIALKEYSA {
        UINT cbSize;
        DWORD dwFlags;
@@ -3177,6 +3341,7 @@ typedef struct tagSERIALKEYSA {
        UINT iPortState;
        UINT iActive;
 } SERIALKEYSA,*LPSERIALKEYSA;
+
 typedef struct tagSERIALKEYSW {
        UINT cbSize;
        DWORD dwFlags;
@@ -3186,6 +3351,7 @@ typedef struct tagSERIALKEYSW {
        UINT iPortState;
        UINT iActive;
 } SERIALKEYSW,*LPSERIALKEYSW;
+
 typedef struct tagSOUNDSENTRYA {
        UINT cbSize;
        DWORD dwFlags;
@@ -3200,6 +3366,7 @@ typedef struct tagSOUNDSENTRYA {
        LPSTR lpszWindowsEffectDLL;
        DWORD iWindowsEffectOrdinal;
 } SOUNDSENTRYA,*LPSOUNDSENTRYA;
+
 typedef struct tagSOUNDSENTRYW {
        UINT cbSize;
        DWORD dwFlags;
@@ -3214,20 +3381,31 @@ typedef struct tagSOUNDSENTRYW {
        LPWSTR lpszWindowsEffectDLL;
        DWORD iWindowsEffectOrdinal;
 } SOUNDSENTRYW,*LPSOUNDSENTRYW;
+
 typedef struct tagSTICKYKEYS {
        DWORD cbSize;
        DWORD dwFlags;
 } STICKYKEYS,*LPSTICKYKEYS;
+
 typedef struct tagTOGGLEKEYS {
        DWORD cbSize;
        DWORD dwFlags;
 } TOGGLEKEYS, *LPTOGGLEKEYS;
+
 typedef struct tagMOUSEHOOKSTRUCT {
        POINT pt;
        HWND hwnd;
        UINT wHitTestCode;
-       DWORD dwExtraInfo;
+       ULONG_PTR dwExtraInfo;
 } MOUSEHOOKSTRUCT,*LPMOUSEHOOKSTRUCT,*PMOUSEHOOKSTRUCT;
+
+typedef struct tagHARDWAREHOOKSTRUCT {
+    HWND    hwnd;
+    UINT    message;
+    WPARAM  wParam;
+    LPARAM  lParam;
+} HARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT;
+
 #if ( _WIN32_WINNT >= 0x0500 )
 #ifdef __cplusplus
 typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT
@@ -3242,16 +3420,19 @@ typedef struct tagMOUSEHOOKSTRUCTEX
 } MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;
 #endif
 #endif
+
 typedef struct tagTRACKMOUSEEVENT {
        DWORD cbSize;
        DWORD dwFlags;
        HWND  hwndTrack;
        DWORD dwHoverTime;
 } TRACKMOUSEEVENT,*LPTRACKMOUSEEVENT;
+
 typedef struct tagTPMPARAMS {
        UINT cbSize;
        RECT rcExclude;
 } TPMPARAMS,*LPTPMPARAMS;
+
 typedef struct tagEVENTMSG {
        UINT message;
        UINT paramL;
@@ -3259,6 +3440,7 @@ typedef struct tagEVENTMSG {
        DWORD time;
        HWND hwnd;
 } EVENTMSG,*PEVENTMSGMSG,*LPEVENTMSGMSG,*PEVENTMSG,*LPEVENTMSG;
+
 typedef struct _WINDOWPOS {
        HWND hwnd;
        HWND hwndInsertAfter;
@@ -3268,10 +3450,12 @@ typedef struct _WINDOWPOS {
        int cy;
        UINT flags;
 } WINDOWPOS,*PWINDOWPOS,*LPWINDOWPOS;
+
 typedef struct tagNCCALCSIZE_PARAMS {
        RECT rgrc[3];
        PWINDOWPOS lppos;
 } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
+
 typedef struct tagMDICREATESTRUCTA {
        LPCSTR szClass;
        LPCSTR szTitle;
@@ -3283,6 +3467,7 @@ typedef struct tagMDICREATESTRUCTA {
        DWORD style;
        LPARAM lParam;
 } MDICREATESTRUCTA,*LPMDICREATESTRUCTA;
+
 typedef struct tagMDICREATESTRUCTW {
        LPCWSTR szClass;
        LPCWSTR szTitle;
@@ -3294,6 +3479,7 @@ typedef struct tagMDICREATESTRUCTW {
        DWORD style;
        LPARAM lParam;
 } MDICREATESTRUCTW,*LPMDICREATESTRUCTW;
+
 typedef struct tagMINMAXINFO {
        POINT ptReserved;
        POINT ptMaxSize;
@@ -3301,38 +3487,44 @@ typedef struct tagMINMAXINFO {
        POINT ptMinTrackSize;
        POINT ptMaxTrackSize;
 } MINMAXINFO,*PMINMAXINFO,*LPMINMAXINFO;
+
 typedef struct tagMDINEXTMENU {
        HMENU hmenuIn;
        HMENU hmenuNext;
        HWND hwndNext;
 } MDINEXTMENU,*PMDINEXTMENU,*LPMDINEXTMENU;
+
 typedef struct tagMEASUREITEMSTRUCT {
        UINT CtlType;
        UINT CtlID;
        UINT itemID;
        UINT itemWidth;
        UINT itemHeight;
-       DWORD itemData;
+       ULONG_PTR itemData;
 } MEASUREITEMSTRUCT,*PMEASUREITEMSTRUCT,*LPMEASUREITEMSTRUCT;
+
 typedef struct tagDROPSTRUCT {
        HWND hwndSource;
        HWND hwndSink;
        DWORD wFmt;
-       DWORD dwData;
+       ULONG_PTR dwData;
        POINT ptDrop;
        DWORD dwControlData;
 } DROPSTRUCT,*PDROPSTRUCT,*LPDROPSTRUCT;
+
 typedef DWORD HELPPOLY;
 typedef struct tagMULTIKEYHELPA {
        DWORD mkSize;
        CHAR mkKeylist;
        CHAR szKeyphrase[1];
 } MULTIKEYHELPA,*PMULTIKEYHELPA,*LPMULTIKEYHELPA;
+
 typedef struct tagMULTIKEYHELPW {
        DWORD mkSize;
        WCHAR mkKeylist;
        WCHAR szKeyphrase[1];
 } MULTIKEYHELPW,*PMULTIKEYHELPW,*LPMULTIKEYHELPW;
+
 typedef struct tagHELPWININFOA {
        int wStructSize;
        int x;
@@ -3342,6 +3534,7 @@ typedef struct tagHELPWININFOA {
        int wMax;
        CHAR rgchMember[2];
 } HELPWININFOA,*PHELPWININFOA,*LPHELPWININFOA;
+
 typedef struct tagHELPWININFOW {
        int wStructSize;
        int x;
@@ -3351,10 +3544,12 @@ typedef struct tagHELPWININFOW {
        int wMax;
        WCHAR rgchMember[2];
 } HELPWININFOW,*PHELPWININFOW,*LPHELPWININFOW;
+
 typedef struct tagSTYLESTRUCT {
        DWORD styleOld;
        DWORD styleNew;
 } STYLESTRUCT,*LPSTYLESTRUCT;
+
 typedef struct tagALTTABINFO {
        DWORD cbSize;
        int   cItems;
@@ -3366,6 +3561,7 @@ typedef struct tagALTTABINFO {
        int   cyItem;
        POINT ptStart;
 } ALTTABINFO,*PALTTABINFO,*LPALTTABINFO;
+
 typedef struct tagCOMBOBOXINFO {
        DWORD cbSize;
        RECT rcItem;
@@ -3375,12 +3571,14 @@ typedef struct tagCOMBOBOXINFO {
        HWND hwndItem;
        HWND hwndList;
 } COMBOBOXINFO,*PCOMBOBOXINFO,*LPCOMBOBOXINFO;
+
 typedef struct tagCURSORINFO {
        DWORD cbSize;
        DWORD flags;
        HCURSOR hCursor;
        POINT ptScreenPos;
 } CURSORINFO,*PCURSORINFO,*LPCURSORINFO;
+
 typedef struct tagMENUBARINFO {
        DWORD cbSize;
        RECT  rcBar;
@@ -3389,6 +3587,7 @@ typedef struct tagMENUBARINFO {
        BOOL  fBarFocused:1;
        BOOL  fFocused:1;
 } MENUBARINFO,*PMENUBARINFO;
+
 typedef struct tagMENUINFO {
        DWORD cbSize;
        DWORD fMask;
@@ -3398,8 +3597,10 @@ typedef struct tagMENUINFO {
        DWORD   dwContextHelpID;
        ULONG_PTR dwMenuData;
 } MENUINFO,*LPMENUINFO;
+
 typedef MENUINFO CONST *LPCMENUINFO;
 #define CCHILDREN_SCROLLBAR 5
+
 typedef struct tagSCROLLBARINFO {
        DWORD cbSize;
        RECT  rcScrollBar;
@@ -3409,12 +3610,15 @@ typedef struct tagSCROLLBARINFO {
        int   reserved;
        DWORD rgstate[CCHILDREN_SCROLLBAR+1];
 } SCROLLBARINFO,*PSCROLLBARINFO,*LPSCROLLBARINFO;
+
 #define CCHILDREN_TITLEBAR 5
+
 typedef struct tagTITLEBARINFO {
        DWORD cbSize;
        RECT  rcTitleBar;
        DWORD rgstate[CCHILDREN_TITLEBAR+1];
 } TITLEBARINFO,*PTITLEBARINFO,*LPTITLEBARINFO;
+
 typedef struct tagWINDOWINFO {
        DWORD cbSize;
        RECT  rcWindow;
@@ -3427,16 +3631,19 @@ typedef struct tagWINDOWINFO {
        ATOM  atomWindowType;
        WORD  wCreatorVersion;
 } WINDOWINFO,*PWINDOWINFO,*LPWINDOWINFO;
+
 typedef struct tagLASTINPUTINFO {
        UINT cbSize;
        DWORD dwTime;
 } LASTINPUTINFO,*PLASTINPUTINFO;
+
 typedef struct tagMONITORINFO {
        DWORD cbSize;
        RECT rcMonitor;
        RECT rcWork;
        DWORD dwFlags;
 } MONITORINFO,*LPMONITORINFO;
+
 #define CCHDEVICENAME 32
 typedef struct tagMONITORINFOEXA {
        DWORD   cbSize;
@@ -3445,6 +3652,7 @@ typedef struct tagMONITORINFOEXA {
        DWORD   dwFlags;
        CHAR    szDevice[CCHDEVICENAME];
 } MONITORINFOEXA,*LPMONITORINFOEXA;
+
 typedef struct tagMONITORINFOEXW {
        DWORD   cbSize;
        RECT    rcMonitor;
@@ -3452,13 +3660,15 @@ typedef struct tagMONITORINFOEXW {
        DWORD   dwFlags;
        WCHAR   szDevice[CCHDEVICENAME];
 } MONITORINFOEXW,*LPMONITORINFOEXW;
+
 typedef struct tagKBDLLHOOKSTRUCT {
        DWORD vkCode;
        DWORD scanCode;
        DWORD flags;
        DWORD time;
-       DWORD dwExtraInfo;
+       ULONG_PTR dwExtraInfo;
 } KBDLLHOOKSTRUCT,*LPKBDLLHOOKSTRUCT,*PKBDLLHOOKSTRUCT;
+
 typedef struct tagMSLLHOOKSTRUCT
 {
        POINT pt;
@@ -3467,6 +3677,7 @@ typedef struct tagMSLLHOOKSTRUCT
        DWORD time;
        ULONG_PTR dwExtraInfo;
 } MSLLHOOKSTRUCT, *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;
+
 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
 typedef struct {
   UINT  cbSize;
@@ -3476,6 +3687,7 @@ typedef struct {
   DWORD dwTimeout;
 } FLASHWINFO,*PFLASHWINFO;
 #endif /* (WINVER >= 0x0500 || _WIN32_WINDOWS >= 0x0410) */
+
 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0490)
 typedef struct tagMOUSEMOVEPOINT {
   int x;
@@ -3484,7 +3696,8 @@ typedef struct tagMOUSEMOVEPOINT {
   ULONG_PTR dwExtraInfo;
 } MOUSEMOVEPOINT,*PMOUSEMOVEPOINT,*LPMOUSEMOVEPOINT;
 #endif
-#if (_WIN32_WINNT >= 0x0403)
+
+#if (_WIN32_WINNT >= 0x0400)
 typedef struct tagMOUSEINPUT {
   LONG dx;
   LONG dy;
@@ -3492,19 +3705,22 @@ typedef struct tagMOUSEINPUT {
   DWORD dwFlags;
   DWORD time;
   ULONG_PTR dwExtraInfo;
-} MOUSEINPUT,*PMOUSEINPUT;
+} MOUSEINPUT,*PMOUSEINPUT, *LPMOUSEINPUT;
+
 typedef struct tagKEYBDINPUT {
   WORD wVk;
   WORD wScan;
   DWORD dwFlags;
   DWORD time;
   ULONG_PTR dwExtraInfo;
-} KEYBDINPUT,*PKEYBDINPUT;
+} KEYBDINPUT, *PKEYBDINPUT, *LPKEYBDINPUT;
+
 typedef struct tagHARDWAREINPUT {
   DWORD uMsg;
   WORD wParamL;
   WORD wParamH;
-} HARDWAREINPUT,*PHARDWAREINPUT;
+} HARDWAREINPUT, *PHARDWAREINPUT, *LPHARDWAREINPUT;
+
 typedef struct tagINPUT {
   DWORD type;
   _ANONYMOUS_UNION union {
@@ -3513,7 +3729,8 @@ typedef struct tagINPUT {
                HARDWAREINPUT hi;
   } DUMMYUNIONNAME;
 } INPUT,*PINPUT,*LPINPUT;
-#endif /* (_WIN32_WINNT >= 0x0403) */
+#endif /* (_WIN32_WINNT >= 0x0400) */
+
 #if (WINVER >= 0x0500)
 typedef struct tagGUITHREADINFO {
        DWORD cbSize;
@@ -3526,8 +3743,10 @@ typedef struct tagGUITHREADINFO {
        HWND hwndCaret;
        RECT rcCaret;
 } GUITHREADINFO,*PGUITHREADINFO,*LPGUITHREADINFO;
+
 typedef VOID (CALLBACK *WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,DWORD,DWORD);
 #endif /* (WINVER >= 0x0500) */
+
 #if (_WIN32_WINNT >= 0x0501)
 typedef struct {
        UINT  cbSize;
@@ -3536,12 +3755,14 @@ typedef struct {
        LUID  luid;
 } BSMINFO,*PBSMINFO;
 DECLARE_HANDLE(HRAWINPUT);
+
 typedef struct tagRAWINPUTHEADER {
        DWORD dwType;
        DWORD dwSize;
        HANDLE hDevice;
        WPARAM wParam;
 } RAWINPUTHEADER,*PRAWINPUTHEADER;
+
 typedef struct tagRAWMOUSE {
        USHORT usFlags;
        _ANONYMOUS_UNION union {
@@ -3556,6 +3777,7 @@ typedef struct tagRAWMOUSE {
        LONG lLastY;
        ULONG ulExtraInformation;
 } RAWMOUSE,*PRAWMOUSE,*LPRAWMOUSE;
+
 typedef struct tagRAWKEYBOARD {
        USHORT MakeCode;
        USHORT Flags;
@@ -3564,11 +3786,13 @@ typedef struct tagRAWKEYBOARD {
        UINT Message;
        ULONG ExtraInformation;
 } RAWKEYBOARD,*PRAWKEYBOARD,*LPRAWKEYBOARD;
+
 typedef struct tagRAWHID {
        DWORD dwSizeHid;
        DWORD dwCount;
        BYTE bRawData;
 } RAWHID,*PRAWHID,*LPRAWHID;
+
 typedef struct tagRAWINPUT {
        RAWINPUTHEADER header;
        union {
@@ -3577,13 +3801,16 @@ typedef struct tagRAWINPUT {
                RAWHID      hid;
        } data;
 } RAWINPUT,*PRAWINPUT,*LPRAWINPUT;
+
 typedef struct tagRAWINPUTDEVICE {
        USHORT usUsagePage;
        USHORT usUsage;
        DWORD dwFlags;
        HWND hwndTarget;
 } RAWINPUTDEVICE,*PRAWINPUTDEVICE,*LPRAWINPUTDEVICE;
+
 typedef const RAWINPUTDEVICE *PCRAWINPUTDEVICE;
+
 typedef struct tagRAWINPUTDEVICELIST {
        HANDLE hDevice;
        DWORD dwType;
@@ -3625,13 +3852,14 @@ HDC WINAPI BeginPaint(HWND,LPPAINTSTRUCT);
 BOOL WINAPI BringWindowToTop(HWND);
 long WINAPI BroadcastSystemMessage(DWORD,LPDWORD,UINT,WPARAM,LPARAM);
 #if (_WIN32_WINNT >= 0x0400)
-long WINAPI BroadcastSystemMessageA(DWORD,LPDWORD,UINT,WPARAM,LPARAM);
-long WINAPI BroadcastSystemMessageW(DWORD,LPDWORD,UINT,WPARAM,LPARAM);
+LONG WINAPI BroadcastSystemMessageA(DWORD,LPDWORD,UINT,WPARAM,LPARAM);
+LONG WINAPI BroadcastSystemMessageW(DWORD,LPDWORD,UINT,WPARAM,LPARAM);
 #endif /* (_WIN32_WINNT >= 0x0400) */
 #if (_WIN32_WINNT >= 0x0501)
-long WINAPI BroadcastSystemMessageExA(DWORD,LPDWORD,UINT,WPARAM,LPARAM,PBSMINFO);
-long WINAPI BroadcastSystemMessageExW(DWORD,LPDWORD,UINT,WPARAM,LPARAM,PBSMINFO);
+LONG WINAPI BroadcastSystemMessageExA(DWORD,LPDWORD,UINT,WPARAM,LPARAM,PBSMINFO);
+LONG WINAPI BroadcastSystemMessageExW(DWORD,LPDWORD,UINT,WPARAM,LPARAM,PBSMINFO);
 #endif /* (_WIN32_WINNT >= 0x0501) */
+void WINAPI CalcChildScroll(HWND, INT);
 BOOL WINAPI CallMsgFilterA(LPMSG,INT);
 BOOL WINAPI CallMsgFilterW(LPMSG,INT);
 LRESULT WINAPI CallNextHookEx(HHOOK,int,WPARAM,LPARAM);
@@ -3689,7 +3917,7 @@ int WINAPI CountClipboardFormats(void);
 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);
+HCURSOR WINAPI CreateCursor(HINSTANCE,int,int,int,int,CONST VOID*,CONST VOID*);
 #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);
@@ -3715,8 +3943,8 @@ HMENU WINAPI CreatePopupMenu(void);
 HWND WINAPI CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID);
 HWND WINAPI CreateWindowExW(DWORD,LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID);
 #ifndef NOWINDOWSTATION
-HWINSTA WINAPI CreateWindowStationA(LPSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
-HWINSTA WINAPI CreateWindowStationW(LPWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES);
+HWINSTA WINAPI CreateWindowStationA(LPCSTR,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
+HWINSTA WINAPI CreateWindowStationW(LPCWSTR,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
 #endif
 LRESULT WINAPI DefDlgProcA(HWND,UINT,WPARAM,LPARAM);
 LRESULT WINAPI DefDlgProcW(HWND,UINT,WPARAM,LPARAM);
@@ -3743,12 +3971,12 @@ BOOL WINAPI DestroyWindow(HWND);
 #define DialogBoxW(i,t,p,f) DialogBoxParamW(i,t,p,f,0)
 #define DialogBoxIndirectA(i,t,p,f) DialogBoxIndirectParamA(i,t,p,f,0)
 #define DialogBoxIndirectW(i,t,p,f) DialogBoxIndirectParamW(i,t,p,f,0)
-int WINAPI DialogBoxIndirectParamA(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM);
-int WINAPI DialogBoxIndirectParamW(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM);
-int WINAPI DialogBoxParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
-int WINAPI DialogBoxParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
-LONG WINAPI DispatchMessageA(const MSG*);
-LONG WINAPI DispatchMessageW(const MSG*);
+INT_PTR WINAPI DialogBoxIndirectParamA(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM);
+INT_PTR WINAPI DialogBoxIndirectParamW(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM);
+INT_PTR WINAPI DialogBoxParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM);
+INT_PTR WINAPI DialogBoxParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM);
+LRESULT WINAPI DispatchMessageA(const MSG*);
+LRESULT WINAPI DispatchMessageW(const MSG*);
 int WINAPI DlgDirListA(HWND,LPSTR,int,int,UINT);
 int WINAPI DlgDirListW(HWND,LPWSTR,int,int,UINT);
 int WINAPI DlgDirListComboBoxA(HWND,LPSTR,int,int,UINT);
@@ -3758,7 +3986,7 @@ BOOL WINAPI DlgDirSelectComboBoxExW(HWND,LPWSTR,int,int);
 BOOL WINAPI DlgDirSelectExA(HWND,LPSTR,int,int);
 BOOL WINAPI DlgDirSelectExW(HWND,LPWSTR,int,int);
 BOOL WINAPI DragDetect(HWND,POINT);
-DWORD WINAPI DragObject(HWND,HWND,UINT,DWORD,HCURSOR);
+DWORD WINAPI DragObject(HWND,HWND,UINT,ULONG_PTR,HCURSOR);
 BOOL WINAPI DrawAnimatedRects(HWND,int,LPCRECT,LPCRECT);
 BOOL WINAPI DrawCaption(HWND,HDC,LPCRECT,UINT);
 BOOL WINAPI DrawCaptionTempA(HWND,HDC,const RECT*,HFONT,HICON,LPCSTR,UINT);
@@ -3781,7 +4009,7 @@ BOOL WINAPI EnableMenuItem(HMENU,UINT,UINT);
 BOOL WINAPI EnableScrollBar(HWND,UINT,UINT);
 BOOL WINAPI EnableWindow(HWND,BOOL);
 BOOL WINAPI EndDeferWindowPos(HDWP);
-BOOL WINAPI EndDialog(HWND,int);
+BOOL WINAPI EndDialog(HWND,INT_PTR);
 BOOL WINAPI EndMenu(void);
 BOOL WINAPI EndPaint(HWND,const PAINTSTRUCT*);
 #if (_WIN32_WINNT >= 0x0500)
@@ -3838,8 +4066,8 @@ BOOL WINAPI GetClassInfoExW(HINSTANCE,LPCWSTR,LPWNDCLASSEXW);
 DWORD WINAPI GetClassLongA(HWND,int);
 DWORD WINAPI GetClassLongW(HWND,int);
 #ifdef _WIN64
-LONG_PTR WINAPI GetClassLongPtrA(HWND,int);
-LONG_PTR WINAPI GetClassLongPtrW(HWND,int);
+ULONG_PTR WINAPI GetClassLongPtrA(HWND,int);
+ULONG_PTR WINAPI GetClassLongPtrW(HWND,int);
 #else
 #define GetClassLongPtrA GetClassLongA
 #define GetClassLongPtrW GetClassLongW
@@ -3861,7 +4089,7 @@ BOOL WINAPI GetCursorPos(LPPOINT);
 HDC WINAPI GetDC(HWND);
 HDC WINAPI GetDCEx(HWND,HRGN,DWORD);
 HWND WINAPI GetDesktopWindow(void);
-long WINAPI GetDialogBaseUnits(void);
+LONG WINAPI GetDialogBaseUnits(void);
 int WINAPI GetDlgCtrlID(HWND);
 HWND WINAPI GetDlgItem(HWND,int);
 UINT WINAPI GetDlgItemInt(HWND,int,PBOOL,BOOL);
@@ -3900,7 +4128,7 @@ int WINAPI GetMenuStringA(HMENU,UINT,LPSTR,int,UINT);
 int WINAPI GetMenuStringW(HMENU,UINT,LPWSTR,int,UINT);
 BOOL WINAPI GetMessageA(LPMSG,HWND,UINT,UINT);
 BOOL WINAPI GetMessageW(LPMSG,HWND,UINT,UINT);
-LONG WINAPI GetMessageExtraInfo(void);
+LPARAM WINAPI GetMessageExtraInfo(void);
 DWORD WINAPI GetMessagePos(void);
 LONG WINAPI GetMessageTime(void);
 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0490)
@@ -3935,8 +4163,8 @@ HBRUSH WINAPI GetSysColorBrush(int);
 #define GetSysModalWindow() (NULL)
 HMENU WINAPI GetSystemMenu(HWND,BOOL);
 int WINAPI GetSystemMetrics(int);
-DWORD WINAPI GetTabbedTextExtentA(HDC,LPCSTR,int,int,LPINT);
-DWORD WINAPI GetTabbedTextExtentW(HDC,LPCWSTR,int,int,LPINT);
+DWORD WINAPI GetTabbedTextExtentA(HDC,LPCSTR,int,int,CONST LPINT);
+DWORD WINAPI GetTabbedTextExtentW(HDC,LPCWSTR,int,int,CONST LPINT);
 LONG WINAPI GetWindowLongA(HWND,int);
 LONG WINAPI GetWindowLongW(HWND,int);
 #ifdef _WIN64
@@ -3996,8 +4224,8 @@ BOOL WINAPI InSendMessage(void);
 #if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
 DWORD WINAPI InSendMessageEx(LPVOID);
 #endif
-BOOL WINAPI InsertMenuA(HMENU,UINT,UINT,UINT,LPCSTR);
-BOOL WINAPI InsertMenuW(HMENU,UINT,UINT,UINT,LPCWSTR);
+BOOL WINAPI InsertMenuA(HMENU,UINT,UINT,UINT_PTR,LPCSTR);
+BOOL WINAPI InsertMenuW(HMENU,UINT,UINT,UINT_PTR,LPCWSTR);
 BOOL WINAPI InsertMenuItemA(HMENU,UINT,BOOL,LPCMENUITEMINFOA);
 BOOL WINAPI InsertMenuItemW(HMENU,UINT,BOOL,LPCMENUITEMINFOW);
 INT WINAPI InternalGetWindowText(HWND,LPWSTR,INT);
@@ -4035,8 +4263,9 @@ BOOL WINAPI IsWindowVisible(HWND);
 BOOL WINAPI IsWinEventHookInstalled(DWORD);
 #endif
 BOOL WINAPI IsZoomed(HWND);
-VOID WINAPI keybd_event(BYTE,BYTE,DWORD,DWORD);
-BOOL WINAPI KillTimer(HWND,UINT);
+VOID WINAPI keybd_event(BYTE,BYTE,DWORD,ULONG_PTR);
+BOOL WINAPI KillTimer(HWND,UINT_PTR);
+BOOL WINAPI KillSystemTimer(HWND,UINT_PTR);
 HACCEL WINAPI LoadAcceleratorsA(HINSTANCE,LPCSTR);
 HACCEL WINAPI LoadAcceleratorsW(HINSTANCE,LPCWSTR);
 HBITMAP WINAPI LoadBitmapA(HINSTANCE,LPCSTR);
@@ -4077,8 +4306,8 @@ int WINAPI MessageBoxExA(HWND,LPCSTR,LPCSTR,UINT,WORD);
 int WINAPI MessageBoxExW(HWND,LPCWSTR,LPCWSTR,UINT,WORD);
 int WINAPI MessageBoxIndirectA(CONST MSGBOXPARAMSA*);
 int WINAPI MessageBoxIndirectW(CONST MSGBOXPARAMSW*);
-BOOL WINAPI ModifyMenuA(HMENU,UINT,UINT,UINT,LPCSTR);
-BOOL WINAPI ModifyMenuW(HMENU,UINT,UINT,UINT,LPCWSTR);
+BOOL WINAPI ModifyMenuA(HMENU,UINT,UINT,UINT_PTR,LPCSTR);
+BOOL WINAPI ModifyMenuW(HMENU,UINT,UINT,UINT_PTR,LPCWSTR);
 HMONITOR WINAPI MonitorFromPoint(POINT,DWORD);
 HMONITOR WINAPI MonitorFromRect(LPCRECT,DWORD);
 HMONITOR WINAPI MonitorFromWindow(HWND,DWORD);
@@ -4096,12 +4325,12 @@ BOOL WINAPI OemToCharBuffW(LPCSTR,LPWSTR,DWORD);
 BOOL WINAPI OemToCharW(LPCSTR,LPWSTR);
 BOOL WINAPI OffsetRect(LPRECT,int,int);
 BOOL WINAPI OpenClipboard(HWND);
-HDESK WINAPI OpenDesktopA(LPSTR,DWORD,BOOL,DWORD);
-HDESK WINAPI OpenDesktopW(LPWSTR,DWORD,BOOL,DWORD);
+HDESK WINAPI OpenDesktopA(LPCSTR,DWORD,BOOL,DWORD);
+HDESK WINAPI OpenDesktopW(LPCWSTR,DWORD,BOOL,DWORD);
 BOOL WINAPI OpenIcon(HWND);
 HDESK WINAPI OpenInputDesktop(DWORD,BOOL,DWORD);
-HWINSTA WINAPI OpenWindowStationA(LPSTR,BOOL,DWORD);
-HWINSTA WINAPI OpenWindowStationW(LPWSTR,BOOL,DWORD);
+HWINSTA WINAPI OpenWindowStationA(LPCSTR,BOOL,DWORD);
+HWINSTA WINAPI OpenWindowStationW(LPCWSTR,BOOL,DWORD);
 BOOL WINAPI PaintDesktop(HDC);
 BOOL WINAPI PeekMessageA(LPMSG,HWND,UINT,UINT,UINT);
 BOOL WINAPI PeekMessageW(LPMSG,HWND,UINT,UINT,UINT);
@@ -4115,6 +4344,8 @@ BOOL WINAPI PostThreadMessageW(DWORD,UINT,WPARAM,LPARAM);
 #if (_WIN32_WINNT >= 0x0501)
 BOOL WINAPI PrintWindow(HWND,HDC,UINT);
 #endif
+UINT WINAPI PrivateExtractIconsA(LPCSTR,int,int,int,HICON*,UINT*,UINT,UINT);
+UINT WINAPI PrivateExtractIconsW(LPCWSTR,int,int,int,HICON*,UINT*,UINT,UINT);
 BOOL WINAPI PtInRect(LPCRECT,POINT);
 HWND WINAPI RealChildWindowFromPoint(HWND,POINT);
 UINT WINAPI RealGetWindowClassA(HWND,LPSTR,UINT);
@@ -4145,17 +4376,18 @@ HANDLE WINAPI RemovePropA(HWND,LPCSTR);
 HANDLE WINAPI RemovePropW(HWND,LPCWSTR);
 BOOL WINAPI ReplyMessage(LRESULT);
 BOOL WINAPI ScreenToClient(HWND,LPPOINT);
+VOID WINAPI ScrollChildren(HWND,UINT,WPARAM,LPARAM);
 BOOL WINAPI ScrollDC(HDC,int,int,LPCRECT,LPCRECT,HRGN,LPRECT);
 BOOL WINAPI ScrollWindow(HWND,int,int,LPCRECT,LPCRECT);
 int WINAPI ScrollWindowEx(HWND,int,int,LPCRECT,LPCRECT,HRGN,LPRECT,UINT);
-LONG WINAPI SendDlgItemMessageA(HWND,int,UINT,WPARAM,LPARAM);
-LONG WINAPI SendDlgItemMessageW(HWND,int,UINT,WPARAM,LPARAM);
+LRESULT WINAPI SendDlgItemMessageA(HWND,int,UINT,WPARAM,LPARAM);
+LRESULT WINAPI SendDlgItemMessageW(HWND,int,UINT,WPARAM,LPARAM);
 #if (_WIN32_WINNT >= 0x0403)
 UINT WINAPI SendInput(UINT,LPINPUT,int);
 #endif
 LRESULT WINAPI SendMessageA(HWND,UINT,WPARAM,LPARAM);
-BOOL WINAPI SendMessageCallbackA(HWND,UINT,WPARAM,LPARAM,SENDASYNCPROC,DWORD);
-BOOL WINAPI SendMessageCallbackW(HWND,UINT,WPARAM,LPARAM,SENDASYNCPROC,DWORD);
+BOOL WINAPI SendMessageCallbackA(HWND,UINT,WPARAM,LPARAM,SENDASYNCPROC,ULONG_PTR);
+BOOL WINAPI SendMessageCallbackW(HWND,UINT,WPARAM,LPARAM,SENDASYNCPROC,ULONG_PTR);
 LRESULT WINAPI SendMessageTimeoutA(HWND,UINT,WPARAM,LPARAM,UINT,UINT,PDWORD_PTR);
 LRESULT WINAPI SendMessageTimeoutW(HWND,UINT,WPARAM,LPARAM,UINT,UINT,PDWORD_PTR);
 LRESULT WINAPI SendMessageW(HWND,UINT,WPARAM,LPARAM);
@@ -4180,6 +4412,7 @@ HWND WINAPI SetClipboardViewer(HWND);
 HCURSOR WINAPI SetCursor(HCURSOR);
 BOOL WINAPI SetCursorPos(int,int);
 VOID WINAPI SetDebugErrorLevel(DWORD);
+BOOL WINAPI SetDeskWallPaper(LPCSTR);
 BOOL WINAPI SetDlgItemInt(HWND,int,UINT,BOOL);
 BOOL WINAPI SetDlgItemTextA(HWND,int,LPCSTR);
 BOOL WINAPI SetDlgItemTextW(HWND,int,LPCWSTR);
@@ -4209,11 +4442,13 @@ 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 *);
-DWORD WINAPI SetSysColorsTemp(const COLORREF *, const HBRUSH *, DWORD);
+DWORD_PTR WINAPI SetSysColorsTemp(const COLORREF *, const HBRUSH *, DWORD_PTR);
 #define SetSysModalWindow(h) (NULL)
 BOOL WINAPI SetSystemCursor(HCURSOR,DWORD);
+BOOL WINAPI SetSystemMenu(HWND,HMENU);
 BOOL WINAPI SetThreadDesktop(HDESK);
-UINT WINAPI SetTimer(HWND,UINT,UINT,TIMERPROC);
+UINT_PTR WINAPI SetTimer(HWND,UINT_PTR,UINT,TIMERPROC);
+UINT_PTR WINAPI SetSystemTimer(HWND,UINT_PTR,UINT,TIMERPROC);
 BOOL WINAPI SetUserObjectInformationA(HANDLE,int,PVOID,DWORD);
 BOOL WINAPI SetUserObjectInformationW(HANDLE,int,PVOID,DWORD);
 BOOL WINAPI SetUserObjectSecurity(HANDLE,PSECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
@@ -4236,6 +4471,7 @@ int WINAPI SetWindowRgn(HWND,HRGN,BOOL);
 HHOOK WINAPI SetWindowsHookA(int,HOOKPROC);
 HHOOK WINAPI SetWindowsHookExA(int,HOOKPROC,HINSTANCE,DWORD);
 HHOOK WINAPI SetWindowsHookExW(int,HOOKPROC,HINSTANCE,DWORD);
+HHOOK WINAPI SetWindowsHookW(int,HOOKPROC);
 BOOL WINAPI SetWindowTextA(HWND,LPCSTR);
 BOOL WINAPI SetWindowTextW(HWND,LPCWSTR);
 WORD WINAPI SetWindowWord(HWND,int,WORD);
@@ -4253,13 +4489,13 @@ VOID WINAPI SwitchToThisWindow(HWND,BOOL);
 #endif /* (_WIN32_WINNT >= 0x0500) */
 BOOL WINAPI SystemParametersInfoA(UINT,UINT,PVOID,UINT);
 BOOL WINAPI SystemParametersInfoW(UINT,UINT,PVOID,UINT);
-LONG WINAPI TabbedTextOutA(HDC,int,int,LPCSTR,int,int,LPINT,int);
-LONG WINAPI TabbedTextOutW(HDC,int,int,LPCWSTR,int,int,LPINT,int);
+LONG WINAPI TabbedTextOutA(HDC,int,int,LPCSTR,int,int,CONST LPINT,int);
+LONG WINAPI TabbedTextOutW(HDC,int,int,LPCWSTR,int,int,CONST LPINT,int);
 WORD WINAPI TileWindows(HWND,UINT,LPCRECT,UINT,const HWND *);
-int WINAPI ToAscii(UINT,UINT,PBYTE,LPWORD,UINT);
-int WINAPI ToAsciiEx(UINT,UINT,PBYTE,LPWORD,UINT,HKL);
-int WINAPI ToUnicode(UINT,UINT,PBYTE,LPWSTR,int,UINT);
-int WINAPI ToUnicodeEx(UINT,UINT,PBYTE,LPWSTR,int,UINT,HKL);
+int WINAPI ToAscii(UINT,UINT,CONST PBYTE,LPWORD,UINT);
+int WINAPI ToAsciiEx(UINT,UINT,CONST PBYTE,LPWORD,UINT,HKL);
+int WINAPI ToUnicode(UINT,UINT,CONST PBYTE,LPWSTR,int,UINT);
+int WINAPI ToUnicodeEx(UINT,UINT,CONST PBYTE,LPWSTR,int,UINT,HKL);
 BOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT);
 BOOL WINAPI TrackPopupMenu(HMENU,UINT,int,int,int,HWND,LPCRECT);
 BOOL WINAPI TrackPopupMenuEx(HMENU,UINT,int,int,HWND,LPTPMPARAMS);
@@ -4290,10 +4526,13 @@ SHORT WINAPI VkKeyScanW(WCHAR);
 DWORD WINAPI WaitForInputIdle(HANDLE,DWORD);
 BOOL WINAPI WaitMessage(void);
 HWND WINAPI WindowFromDC(HDC hDC);
+#if (_WIN32_WINNT >= 0x0600)
+HWND WINAPI WindowFromPhysicalPoint(POINT);
+#endif
 HWND WINAPI WindowFromPoint(POINT);
 UINT WINAPI WinExec(LPCSTR,UINT);
-BOOL WINAPI WinHelpA(HWND,LPCSTR,UINT,DWORD);
-BOOL WINAPI WinHelpW(HWND,LPCWSTR,UINT,DWORD);
+BOOL WINAPI WinHelpA(HWND,LPCSTR,UINT,ULONG_PTR);
+BOOL WINAPI WinHelpW(HWND,LPCWSTR,UINT,ULONG_PTR);
 int WINAPIV wsprintfA(LPSTR,LPCSTR,...);
 int WINAPIV wsprintfW(LPWSTR,LPCWSTR,...);
 int WINAPI wvsprintfA(LPSTR,LPCSTR,va_list arglist);
@@ -4451,6 +4690,7 @@ typedef MONITORINFOEXW MONITORINFOEX, *LPMONITORINFOEX;
 #define PostAppMessage PostAppMessageW
 #define PostMessage PostMessageW
 #define PostThreadMessage PostThreadMessageW
+#define PrivateExtractIcons PrivateExtractIconsW
 #define RealGetWindowClass RealGetWindowClassW
 #define RegisterClass RegisterClassW
 #define RegisterClassEx RegisterClassExW
@@ -4483,9 +4723,8 @@ typedef MONITORINFOEXW MONITORINFOEX, *LPMONITORINFOEX;
 #define WinHelp WinHelpW
 #define wsprintf wsprintfW
 #define wvsprintf wvsprintfW
+
 #ifndef NOGDI
-typedef ICONMETRICSW ICONMETRICS,*LPICONMETRICS;
-typedef NONCLIENTMETRICSW NONCLIENTMETRICS,*LPNONCLIENTMETRICS;
 #define ChangeDisplaySettings ChangeDisplaySettingsW
 #define ChangeDisplaySettingsEx ChangeDisplaySettingsExW
 #define CreateDesktop CreateDesktopW
@@ -4619,6 +4858,7 @@ typedef MONITORINFOEXA MONITORINFOEX, *LPMONITORINFOEX;
 #define PostAppMessage PostAppMessageA
 #define PostMessage PostMessageA
 #define PostThreadMessage PostThreadMessageA
+#define PrivateExtractIcons PrivateExtractIconsA
 #define RealGetWindowClass RealGetWindowClassA
 #define RegisterClass RegisterClassA
 #define RegisterClassEx RegisterClassExA
@@ -4652,8 +4892,6 @@ typedef MONITORINFOEXA MONITORINFOEX, *LPMONITORINFOEX;
 #define wsprintf wsprintfA
 #define wvsprintf wvsprintfA
 #if defined(_WINGDI_) && !defined(NOGDI)
-typedef ICONMETRICSA ICONMETRICS,*LPICONMETRICS;
-typedef NONCLIENTMETRICSA NONCLIENTMETRICS,*LPNONCLIENTMETRICS;
 #define ChangeDisplaySettings ChangeDisplaySettingsA
 #define ChangeDisplaySettingsEx ChangeDisplaySettingsExA
 #define CreateDesktop CreateDesktopA
@@ -4664,6 +4902,10 @@ typedef NONCLIENTMETRICSA NONCLIENTMETRICS,*LPNONCLIENTMETRICS;
 #endif /* UNICODE */
 #endif /* RC_INVOKED */
 
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
 #ifdef __cplusplus
 }
 #endif