headers/winuser.h: add missing symbols and defines
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
Signed-off-by: Liu Hao <lh_mouse@126.com>
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 {