diff --git a/mingw-w64-headers/include/winuser.h b/mingw-w64-headers/include/winuser.h
index 505a884..01f2a5b 100644
--- a/mingw-w64-headers/include/winuser.h
+++ b/mingw-w64-headers/include/winuser.h
@@ -262,10 +262,12 @@
 #define VK_KANA 0x15
 #define VK_HANGEUL 0x15
 #define VK_HANGUL 0x15
+#define VK_IME_ON 0x16
 #define VK_JUNJA 0x17
 #define VK_FINAL 0x18
 #define VK_HANJA 0x19
 #define VK_KANJI 0x19
+#define VK_IME_OFF 0x1A
 #define VK_ESCAPE 0x1B
 #define VK_CONVERT 0x1C
 #define VK_NONCONVERT 0x1D
@@ -332,6 +334,16 @@
 #define VK_F22 0x85
 #define VK_F23 0x86
 #define VK_F24 0x87
+#if _WIN32_WINNT >= 0x0604
+#define VK_NAVIGATION_VIEW 0x88
+#define VK_NAVIGATION_MENU 0x89
+#define VK_NAVIGATION_UP 0x8A
+#define VK_NAVIGATION_DOWN 0x8B
+#define VK_NAVIGATION_LEFT 0x8C
+#define VK_NAVIGATION_RIGHT 0x8D
+#define VK_NAVIGATION_ACCEPT 0x8E
+#define VK_NAVIGATION_CANCEL 0x8F
+#endif /* _WIN32_WINNT >= 0x0604 */
 #define VK_NUMLOCK 0x90
 #define VK_SCROLL 0x91
 #define VK_OEM_NEC_EQUAL 0x92
@@ -371,6 +383,32 @@
 #define VK_OEM_PERIOD 0xBE
 #define VK_OEM_2 0xBF
 #define VK_OEM_3 0xC0
+#if _WIN32_WINNT >= 0x0604
+#define VK_GAMEPAD_A 0xC3
+#define VK_GAMEPAD_B 0xC4
+#define VK_GAMEPAD_X 0xC5
+#define VK_GAMEPAD_Y 0xC6
+#define VK_GAMEPAD_RIGHT_SHOULDER 0xC7
+#define VK_GAMEPAD_LEFT_SHOULDER 0xC8
+#define VK_GAMEPAD_LEFT_TRIGGER 0xC9
+#define VK_GAMEPAD_RIGHT_TRIGGER 0xCA
+#define VK_GAMEPAD_DPAD_UP 0xCB
+#define VK_GAMEPAD_DPAD_DOWN 0xCC
+#define VK_GAMEPAD_DPAD_LEFT 0xCD
+#define VK_GAMEPAD_DPAD_RIGHT 0xCE
+#define VK_GAMEPAD_MENU 0xCF
+#define VK_GAMEPAD_VIEW 0xD0
+#define VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON 0xD1
+#define VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON 0xD2
+#define VK_GAMEPAD_LEFT_THUMBSTICK_UP 0xD3
+#define VK_GAMEPAD_LEFT_THUMBSTICK_DOWN 0xD4
+#define VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT 0xD5
+#define VK_GAMEPAD_LEFT_THUMBSTICK_LEFT 0xD6
+#define VK_GAMEPAD_RIGHT_THUMBSTICK_UP 0xD7
+#define VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN 0xD8
+#define VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT 0xD9
+#define VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT 0xDA
+#endif /* _WIN32_WINNT >= 0x0604 */
 #define VK_OEM_4 0xDB
 #define VK_OEM_5 0xDC
 #define VK_OEM_6 0xDD
@@ -629,8 +667,10 @@
 #define LLKHF_INJECTED 0x00000010
 #define LLKHF_ALTDOWN (KF_ALTDOWN >> 8)
 #define LLKHF_UP (KF_UP >> 8)
+#define LLKHF_LOWER_IL_INJECTED 0x00000002
 
 #define LLMHF_INJECTED 0x00000001
+#define LLMHF_LOWER_IL_INJECTED 0x00000002
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
   typedef struct tagKBDLLHOOKSTRUCT {
@@ -820,6 +860,7 @@
 #define UOI_HEAPSIZE 5
 #define UOI_IO 6
 #endif
+#define UOI_TIMERPROC_EXCEPTION_SUPPRESSION 7
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
   typedef struct tagUSEROBJECTFLAGS {
@@ -1139,9 +1180,13 @@
 #define WM_SYSKEYUP 0x0105
 #define WM_SYSCHAR 0x0106
 #define WM_SYSDEADCHAR 0x0107
+#if _WIN32_WINNT >= 0x0501
 #define WM_UNICHAR 0x0109
 #define WM_KEYLAST 0x0109
 #define UNICODE_NOCHAR 0xFFFF
+#else
+#define WM_KEYLAST 0x0108
+#endif
 #define WM_IME_STARTCOMPOSITION 0x010D
 #define WM_IME_ENDCOMPOSITION 0x010E
 #define WM_IME_COMPOSITION 0x010F
@@ -1210,8 +1255,12 @@
 
 #if _WIN32_WINNT >= 0x0600
 #define WM_MOUSELAST 0x020e
-#else
+#elif _WIN32_WINNT >= 0x0500
 #define WM_MOUSELAST 0x020d
+#elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
+#define WM_MOUSELAST 0x020a
+#else
+#define WM_MOUSELAST 0x0209
 #endif
 
 #define WHEEL_DELTA 120
@@ -1311,6 +1360,10 @@
 #define WM_TOUCHHITTESTING 0x024d
 #define WM_POINTERWHEEL 0x024e
 #define WM_POINTERHWHEEL 0x024f
+#define DM_POINTERHITTEST 0x0250
+#define WM_POINTERROUTEDTO 0x0251
+#define WM_POINTERROUTEDAWAY 0x0252
+#define WM_POINTERROUTEDRELEASED 0x0253
 #endif
 
 #define WM_IME_SETCONTEXT 0x0281
@@ -1333,6 +1386,11 @@
 #if WINVER >= 0x0601
 #define WM_DPICHANGED 0x02e0
 #endif
+#if WINVER >= 0x0605
+#define WM_DPICHANGED_BEFOREPARENT 0x02e2
+#define WM_DPICHANGED_AFTERPARENT 0x02e3
+#define WM_GETDPISCALEDSIZE 0x02e4
+#endif
 #define WM_CUT 0x0300
 #define WM_COPY 0x0301
 #define WM_PASTE 0x0302
@@ -1728,7 +1786,13 @@
 #define CF_HDROP 15
 #define CF_LOCALE 16
 #define CF_DIBV5 17
+#if WINVER >= 0x0500
 #define CF_MAX 18
+#elif WINVER >= 0x0400
+#define CF_MAX 17
+#else
+#define CF_MAX 15
+#endif
 
 #define CF_OWNERDISPLAY 0x0080
 #define CF_DSPTEXT 0x0081
@@ -1961,6 +2025,8 @@
 #endif
 #define EWX_HYBRID_SHUTDOWN 0x00400000
 #define EWX_BOOTOPTIONS 0x01000000
+#define EWX_ARSO 0x04000000
+#define EWX_CHECK_SAFE_FOR_SERVER 0x08000000
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
 #define ExitWindows(dwReserved,Code) ExitWindowsEx(EWX_LOGOFF,0xFFFFFFFF)
@@ -2219,6 +2285,7 @@
 #if _WIN32_WINNT >= 0x0601
 #define WDA_NONE 0x00000000
 #define WDA_MONITOR 0x00000001
+#define WDA_EXCLUDEFROMCAPTURE 0x00000011
 
   WINUSERAPI WINBOOL WINAPI GetWindowDisplayAffinity (HWND hWnd, DWORD *pdwAffinity);
   WINUSERAPI WINBOOL WINAPI SetWindowDisplayAffinity (HWND hWnd, DWORD dwAffinity);
@@ -2370,8 +2437,27 @@
   WINUSERAPI LRESULT WINAPI DefDlgProcW(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam);
 #endif
 
+  typedef enum DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS {
+    DCDC_DEFAULT = 0x0000,
+    DCDC_DISABLE_FONT_UPDATE = 0x0001,
+    DCDC_DISABLE_RELAYOUT = 0x0002
+  } DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS;
+
+WINBOOL WINAPI SetDialogControlDpiChangeBehavior(HWND hWnd, DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS mask, DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS values);
+DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS WINAPI GetDialogControlDpiChangeBehavior(HWND hWnd);
+
+  typedef enum DIALOG_DPI_CHANGE_BEHAVIORS {
+    DDC_DEFAULT = 0x0000,
+    DDC_DISABLE_ALL = 0x0001,
+    DDC_DISABLE_RESIZE = 0x0002,
+    DDC_DISABLE_CONTROL_RELAYOUT = 0x0004
+  } DIALOG_DPI_CHANGE_BEHAVIORS;
+
+WINBOOL WINAPI SetDialogDpiChangeBehavior(HWND hDlg, DIALOG_DPI_CHANGE_BEHAVIORS mask, DIALOG_DPI_CHANGE_BEHAVIORS values);
+DIALOG_DPI_CHANGE_BEHAVIORS WINAPI GetDialogDpiChangeBehavior(HWND hDlg);
+
 #define DLGWINDOWEXTRA 30
-#endif
+#endif /* !NOCTLMGR */
 
 #ifndef NOMSG
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
@@ -2573,6 +2659,7 @@
 #define POINTER_FLAG_WHEEL 0x00080000
 #define POINTER_FLAG_HWHEEL 0x00100000
 #define POINTER_FLAG_CAPTURECHANGED 0x00200000
+#define POINTER_FLAG_HASTRANSFORM 0x00400000
 
 #define POINTER_MOD_SHIFT (0x0004)
 #define POINTER_MOD_CTRL (0x0008)
@@ -2714,7 +2801,10 @@
     PT_POINTER = 0x00000001,
     PT_TOUCH = 0x00000002,
     PT_PEN = 0x00000003,
-    PT_MOUSE = 0x00000004,
+    PT_MOUSE = 0x00000004
+#if WINVER >= 0x0603
+    ,PT_TOUCHPAD = 0x00000005
+#endif
   };
 
   typedef enum tagFEEDBACK_TYPE {
@@ -2785,6 +2875,40 @@
     INT32 tiltY;
   } POINTER_PEN_INFO;
 
+  typedef enum {
+    POINTER_FEEDBACK_DEFAULT = 1,
+    POINTER_FEEDBACK_INDIRECT = 2,
+    POINTER_FEEDBACK_NONE = 3
+  } POINTER_FEEDBACK_MODE;
+
+  typedef struct tagUSAGE_PROPERTIES {
+    USHORT level;
+    USHORT page;
+    USHORT usage;
+    INT32 logicalMinimum;
+    INT32 logicalMaximum;
+    USHORT unit;
+    USHORT exponent;
+    BYTE count;
+    INT32 physicalMinimum;
+    INT32 physicalMaximum;
+  } USAGE_PROPERTIES, *PUSAGE_PROPERTIES;
+
+  typedef struct tagPOINTER_TYPE_INFO {
+    POINTER_INPUT_TYPE  type;
+    __C89_NAMELESS union {
+        POINTER_TOUCH_INFO touchInfo;
+        POINTER_PEN_INFO penInfo;
+    };
+  } POINTER_TYPE_INFO, *PPOINTER_TYPE_INFO;
+
+  typedef struct tagINPUT_INJECTION_VALUE {
+    USHORT page;
+    USHORT usage;
+    INT32 value;
+    USHORT index;
+  } INPUT_INJECTION_VALUE, *PINPUT_INJECTION_VALUE;
+
   typedef struct tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION {
     UINT16 score;
     POINT adjustedPoint;
@@ -2816,7 +2940,9 @@
   WINUSERAPI WINBOOL WINAPI GetPointerFramePenInfoHistory (UINT32 pointerId, UINT32 *entriesCount, UINT32 *pointerCount, POINTER_PEN_INFO *penInfo);
   WINUSERAPI WINBOOL WINAPI SkipPointerFrameMessages (UINT32 pointerId);
   WINUSERAPI WINBOOL WINAPI RegisterPointerInputTarget (HWND hwnd, POINTER_INPUT_TYPE pointerType);
+  WINUSERAPI WINBOOL WINAPI RegisterPointerInputTargetEx(HWND hwnd, POINTER_INPUT_TYPE pointerType, WINBOOL fObserve);
   WINUSERAPI WINBOOL WINAPI UnregisterPointerInputTarget (HWND hwnd, POINTER_INPUT_TYPE pointerType);
+  WINUSERAPI WINBOOL WINAPI UnregisterPointerInputTargetEx(HWND hwnd, POINTER_INPUT_TYPE pointerType);
   WINUSERAPI WINBOOL WINAPI EnableMouseInPointer (WINBOOL fEnable);
   WINUSERAPI WINBOOL WINAPI IsMouseInPointerEnabled (VOID);
   WINUSERAPI WINBOOL WINAPI RegisterTouchHitTestingWindow (HWND hwnd, ULONG value);
@@ -2827,6 +2953,17 @@
   WINUSERAPI WINBOOL WINAPI SetWindowFeedbackSetting (HWND hwnd, FEEDBACK_TYPE feedback, DWORD dwFlags, UINT32 size, CONST VOID *configuration);
 #endif
 
+#if WDK_NTDDI_VERSION >= NTDDI_WIN10_RS3
+WINUSERAPI WINBOOL WINAPI EnableMouseInPointerForThread(VOID);
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
+DECLARE_HANDLE(HSYNTHETICPOINTERDEVICE);
+WINUSERAPI HSYNTHETICPOINTERDEVICE WINAPI CreateSyntheticPointerDevice(POINTER_INPUT_TYPE pointerType, ULONG maxCount, POINTER_FEEDBACK_MODE mode);
+WINUSERAPI WINBOOL WINAPI InjectSyntheticPointerInput(HSYNTHETICPOINTERDEVICE device, CONST POINTER_TYPE_INFO* pointerInfo, UINT32 count);
+WINUSERAPI VOID WINAPI DestroySyntheticPointerDevice(HSYNTHETICPOINTERDEVICE device);
+#endif /* NTDDI_VERSION >= NTDDI_WIN10_RS5 */
+
   typedef struct tagLASTINPUTINFO {
     UINT cbSize;
     DWORD dwTime;
@@ -3049,8 +3186,12 @@
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
   WINUSERAPI int WINAPI GetSystemMetrics(int nIndex);
 #endif
+#if WINVER >= 0x0605
+WINUSERAPI int WINAPI GetSystemMetricsForDpi(int nIndex, UINT dpi);
 #endif
 
+#endif /* !NOSYSMETRICS */
+
 #ifndef NOMENUS
 
 #define PMB_ACTIVE 0x00000001
@@ -3498,6 +3639,10 @@
   WINUSERAPI WINBOOL WINAPI GetWindowRect(HWND hWnd,LPRECT lpRect);
   WINUSERAPI WINBOOL WINAPI AdjustWindowRect(LPRECT lpRect,DWORD dwStyle,WINBOOL bMenu);
   WINUSERAPI WINBOOL WINAPI AdjustWindowRectEx(LPRECT lpRect,DWORD dwStyle,WINBOOL bMenu,DWORD dwExStyle);
+#if WINVER >= 0x0605
+WINUSERAPI WINBOOL WINAPI AdjustWindowRectExForDpi(LPRECT lpRect, DWORD dwStyle, WINBOOL bMenu, DWORD dwExStyle, UINT dpi);
+#endif
+
 #endif
 
 #define HELPINFO_WINDOW 0x0001
@@ -3823,8 +3968,12 @@
 #define GW_HWNDPREV 3
 #define GW_OWNER 4
 #define GW_CHILD 5
+#if WINVER <= 0x0400
+#define GW_MAX 5
+#else
 #define GW_ENABLEDPOPUP 6
 #define GW_MAX 6
+#endif
 
   WINUSERAPI HWND WINAPI GetWindow(HWND hWnd,UINT uCmd);
 
@@ -3984,6 +4133,10 @@
 #define IDC_HAND MAKEINTRESOURCE(32649)
 #define IDC_APPSTARTING MAKEINTRESOURCE(32650)
 #define IDC_HELP MAKEINTRESOURCE(32651)
+#if WINVER >= 0x0606
+#define IDC_PIN MAKEINTRESOURCE(32671)
+#define IDC_PERSON MAKEINTRESOURCE(32672)
+#endif
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
   typedef struct _ICONINFO {
@@ -4248,12 +4401,19 @@
 #define EN_MAXTEXT 0x0501
 #define EN_HSCROLL 0x0601
 #define EN_VSCROLL 0x0602
+#if _WIN32_WINNT >= 0x0500
 #define EN_ALIGN_LTR_EC 0x0700
 #define EN_ALIGN_RTL_EC 0x0701
-
+#endif
+#if WINVER >= 0x0604
+#define EN_BEFORE_PASTE 0x0800
+#define EN_AFTER_PASTE 0x0801
+#endif
+#if WINVER >= 0x0400
 #define EC_LEFTMARGIN 0x0001
 #define EC_RIGHTMARGIN 0x0002
 #define EC_USEFONTINFO 0xffff
+#endif
 
 #define EMSIS_COMPOSITIONSTRING 0x0001
 
@@ -4302,7 +4462,10 @@
 #define EM_CHARFROMPOS 0x00D7
 #define EM_SETIMESTATUS 0x00D8
 #define EM_GETIMESTATUS 0x00D9
+#if WINVER >= 0x0604
+#define EM_ENABLEFEATURE 0x00DA
 #endif
+#endif /* !NOWINMESSAGES */
 
 #define WB_LEFT 0
 #define WB_RIGHT 1
@@ -4565,9 +4728,18 @@
 #define LB_MULTIPLEADDSTRING 0x01B1
 #endif
 #define LB_GETLISTBOXINFO 0x01B2
+#if _WIN32_WINNT >= 0x0501
 #define LB_MSGMAX 0x01B3
+#elif defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
+#define LB_MSGMAX 0x01B1
+#elif WINVER >= 0x0400
+#define LB_MSGMAX 0x01B0
+#else
+#define LB_MSGMAX 0x01A8
 #endif
 
+#endif /* !NOWINMESSAGES */
+
 #ifndef NOWINSTYLES
 
 #define LBS_NOTIFY __MSABI_LONG(0x0001)
@@ -4662,9 +4834,18 @@
 #define CB_MULTIPLEADDSTRING 0x0163
 #endif
 #define CB_GETCOMBOBOXINFO 0x0164
+#if _WIN32_WINNT >= 0x0501
 #define CB_MSGMAX 0x0165
+#elif defined(_WIN32_WCE) && (_WIN32_WCE >= 0x0400)
+#define CB_MSGMAX 0x0163
+#elif WINVER >= 0x0400
+#define CB_MSGMAX 0x0162
+#else
+#define CB_MSGMAX 0x015B
 #endif
 
+#endif /* !NOWINMESSAGES */
+
 #ifndef NOWINSTYLES
 
 #define SBS_HORZ __MSABI_LONG(0x0000)
@@ -5131,6 +5312,50 @@
 #define SPI_GETGESTUREVISUALIZATION 0x201a
 #define SPI_SETGESTUREVISUALIZATION 0x201b
 #endif
+#if WINVER >= 0x0602
+#define SPI_GETMOUSEWHEELROUTING 0x201C
+#define SPI_SETMOUSEWHEELROUTING 0x201D
+#define MOUSEWHEEL_ROUTING_FOCUS 0
+#define MOUSEWHEEL_ROUTING_HYBRID 1
+#endif
+#if WINVER >= 0x0603
+#define MOUSEWHEEL_ROUTING_MOUSE_POS 2
+#endif
+
+#if WINVER >= 0x0604
+#define SPI_GETPENVISUALIZATION 0x201E
+#define SPI_SETPENVISUALIZATION 0x201F
+
+#define PENVISUALIZATION_ON 0x0023
+#define PENVISUALIZATION_OFF 0x0000
+#define PENVISUALIZATION_TAP 0x0001
+#define PENVISUALIZATION_DOUBLETAP 0x0002
+#define PENVISUALIZATION_CURSOR 0x0020
+
+#define SPI_GETPENARBITRATIONTYPE 0x2020
+#define SPI_SETPENARBITRATIONTYPE 0x2021
+
+#define PENARBITRATIONTYPE_NONE 0x0000
+#define PENARBITRATIONTYPE_WIN8 0x0001
+#define PENARBITRATIONTYPE_FIS 0x0002
+#define PENARBITRATIONTYPE_SPT 0x0003
+#define PENARBITRATIONTYPE_MAX 0x0004
+#endif /* WINVER >= 0x0604 */
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS3
+#define SPI_GETCARETTIMEOUT 0x2022
+#define SPI_SETCARETTIMEOUT 0x2023
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS4
+#define SPI_GETHANDEDNESS 0x2024
+#define SPI_SETHANDEDNESS 0x2025
+
+  typedef enum tagHANDEDNESS {
+    HANDEDNESS_LEFT = 0,
+    HANDEDNESS_RIGHT
+  } HANDEDNESS, *PHANDEDNESS;
+#endif
 
 #if WINVER >= 0x0602
 #define CONTACTVISUALIZATION_OFF 0x0000
@@ -5333,6 +5558,7 @@
 #define HCF_HOTKEYAVAILABLE 0x00000040
 #define HCF_LOGONDESKTOP 0x00000100
 #define HCF_DEFAULTDESKTOP 0x00000200
+#define HCF_OPTION_NOTHEMECHANGE 0x00001000
 
 #define CDS_UPDATEREGISTRY 0x00000001
 #define CDS_TEST 0x00000002
@@ -5382,6 +5608,7 @@
   WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsExW(LPCWSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEW lpDevMode,DWORD dwFlags);
 
 #define EDS_RAWMODE 0x00000002
+#define EDS_ROTATEDMODE 0x00000004
 
   WINUSERAPI WINBOOL WINAPI EnumDisplayDevicesA(LPCSTR lpDevice,DWORD iDevNum,PDISPLAY_DEVICEA lpDisplayDevice,DWORD dwFlags);
   WINUSERAPI WINBOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice,DWORD iDevNum,PDISPLAY_DEVICEW lpDisplayDevice,DWORD dwFlags);
@@ -5402,8 +5629,13 @@
 
   WINUSERAPI WINBOOL WINAPI SystemParametersInfoA(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinIni);
   WINUSERAPI WINBOOL WINAPI SystemParametersInfoW(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinIni);
+
+#if WINVER >= 0x0605
+WINUSERAPI WINBOOL WINAPI SystemParametersInfoForDpi(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni, UINT dpi);
 #endif
+
 #endif
+#endif /* !NOSYSPARAMSINFO */
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
   typedef struct tagFILTERKEYS {
@@ -5864,8 +6096,35 @@
   WINUSERAPI WINBOOL WINAPI SetProcessDPIAware (VOID);
   WINUSERAPI WINBOOL WINAPI IsProcessDPIAware (VOID);
 #endif
+
+#if WINVER >= 0x0605
+WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT dpiContext);
+WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI GetThreadDpiAwarenessContext(VOID);
+WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI GetWindowDpiAwarenessContext(HWND hwnd);
+WINUSERAPI DPI_AWARENESS WINAPI GetAwarenessFromDpiAwarenessContext(DPI_AWARENESS_CONTEXT value);
+WINUSERAPI UINT WINAPI GetDpiFromDpiAwarenessContext(DPI_AWARENESS_CONTEXT value);
+WINUSERAPI WINBOOL WINAPI AreDpiAwarenessContextsEqual(DPI_AWARENESS_CONTEXT dpiContextA, DPI_AWARENESS_CONTEXT dpiContextB);
+WINUSERAPI WINBOOL WINAPI IsValidDpiAwarenessContext(DPI_AWARENESS_CONTEXT value);
+WINUSERAPI UINT WINAPI GetDpiForWindow(HWND hwnd);
+WINUSERAPI UINT WINAPI GetDpiForSystem(VOID);
+WINUSERAPI UINT WINAPI GetSystemDpiForProcess(HANDLE hProcess);
+WINUSERAPI WINBOOL WINAPI EnableNonClientDpiScaling(HWND hwnd);
+WINUSERAPI WINBOOL WINAPI InheritWindowMonitor(HWND hwnd, HWND hwndInherit);
+WINUSERAPI WINBOOL WINAPI SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT value);
+#endif /* WINVER >= 0x0605 */
+
+#if WINVER >= 0x0606
+WINUSERAPI DPI_HOSTING_BEHAVIOR WINAPI SetThreadDpiHostingBehavior(DPI_HOSTING_BEHAVIOR value);
+WINUSERAPI DPI_HOSTING_BEHAVIOR WINAPI GetThreadDpiHostingBehavior(VOID);
+WINUSERAPI DPI_HOSTING_BEHAVIOR WINAPI GetWindowDpiHostingBehavior(HWND hwnd);
+#endif /* WINVER >= 0x0606 */
+
+#if NTDDI_VERSION >= NTDDI_WIN10_19H1
+WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI GetDpiAwarenessContextForProcess(HANDLE hProcess);
 #endif
 
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+
 #ifndef NO_STATE_FLAGS
 #define STATE_SYSTEM_UNAVAILABLE 0x00000001
 #define STATE_SYSTEM_SELECTED 0x00000002
@@ -6045,6 +6304,7 @@
 #define RIM_TYPEMOUSE 0
 #define RIM_TYPEKEYBOARD 1
 #define RIM_TYPEHID 2
+#define RIM_TYPEMAX 2
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
   typedef struct tagRAWMOUSE {
@@ -6074,6 +6334,9 @@
 #define RI_MOUSE_BUTTON_5_DOWN 0x0100
 #define RI_MOUSE_BUTTON_5_UP 0x0200
 #define RI_MOUSE_WHEEL 0x0400
+#if WINVER >= 0x0600
+#define RI_MOUSE_HWHEEL 0x0800
+#endif
 
 #define RI_MOUSE_BUTTON_1_DOWN RI_MOUSE_LEFT_BUTTON_DOWN
 #define RI_MOUSE_BUTTON_1_UP RI_MOUSE_LEFT_BUTTON_UP
@@ -6251,8 +6514,11 @@
   typedef enum tagPOINTER_DEVICE_TYPE {
     POINTER_DEVICE_TYPE_INTEGRATED_PEN = 0x00000001,
     POINTER_DEVICE_TYPE_EXTERNAL_PEN = 0x00000002,
-    POINTER_DEVICE_TYPE_TOUCH = 0x00000003,
-    POINTER_DEVICE_TYPE_MAX = 0xffffffff
+    POINTER_DEVICE_TYPE_TOUCH = 0x00000003
+#if WINVER >= 0x0603
+    ,POINTER_DEVICE_TYPE_TOUCH_PAD = 0x00000004
+#endif
+    ,POINTER_DEVICE_TYPE_MAX = 0xffffffff
   } POINTER_DEVICE_TYPE;
 
   typedef struct tagPOINTER_DEVICE_INFO {
@@ -6425,7 +6691,10 @@
     IMDT_KEYBOARD = 0x00000001,
     IMDT_MOUSE = 0x00000002,
     IMDT_TOUCH = 0x00000004,
-    IMDT_PEN = 0x00000008,
+    IMDT_PEN = 0x00000008
+#if WINVER >= 0x0603
+    ,IMDT_TOUCHPAD = 0x00000010
+#endif
   } INPUT_MESSAGE_DEVICE_TYPE;
 
   typedef enum tagINPUT_MESSAGE_ORIGIN_ID {
