[PATCH 1/1] include: Add touch and pointer input related winuser.h declarations.

Rémi Bernon wine at gitlab.winehq.org
Wed Jun 1 04:52:11 CDT 2022


From: Rémi Bernon <rbernon at codeweavers.com>

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 include/winuser.h | 368 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 362 insertions(+), 6 deletions(-)

diff --git a/include/winuser.h b/include/winuser.h
index fd3ea879731..4e43d6c1170 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -665,6 +665,8 @@ typedef struct tagGESTURECONFIG {
 
 #define GESTURECONFIGMAXCOUNT                  256
 
+#define GCF_INCLUDE_ANCESTORS           0x00000001
+
 #define GID_BEGIN                              1
 #define GID_END                                2
 #define GID_ZOOM                               3
@@ -1059,6 +1061,8 @@ WINUSERAPI BOOL     WINAPI SetSysColors(INT,const INT*,const COLORREF*);
 #define SM_CMETRICS           90
 #define SM_MOUSEHORIZONTALWHEELPRESENT 91
 #define SM_CXPADDEDBORDER     92
+#define SM_DIGITIZER          94
+#define SM_MAXIMUMTOUCHES     95
 
 #define SM_REMOTESESSION        0x1000
 #define SM_SHUTTINGDOWN         0x2000
@@ -2490,6 +2494,14 @@ typedef struct tagDROPSTRUCT
 #define SPI_SETFOCUSBORDERHEIGHT       0x2011
 #define SPI_GETFONTSMOOTHINGORIENTATION 0x2012
 #define SPI_SETFONTSMOOTHINGORIENTATION 0x2013
+#define SPI_GETCONTACTVISUALIZATION    0x2018
+#define SPI_SETCONTACTVISUALIZATION    0x2019
+#define SPI_GETGESTUREVISUALIZATION    0x201A
+#define SPI_SETGESTUREVISUALIZATION    0x201B
+#define SPI_GETPENVISUALIZATION        0x201E
+#define SPI_SETPENVISUALIZATION        0x201F
+#define SPI_GETPENARBITRATIONTYPE      0x2020
+#define SPI_SETPENARBITRATIONTYPE      0x2021
 
 #define FE_FONTSMOOTHINGSTANDARD       0x0001
 #define FE_FONTSMOOTHINGCLEARTYPE      0x0002
@@ -2498,6 +2510,30 @@ typedef struct tagDROPSTRUCT
 #define FE_FONTSMOOTHINGORIENTATIONBGR 0x0000
 #define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001
 
+#define CONTACTVISUALIZATION_OFF               0x0000
+#define CONTACTVISUALIZATION_ON                0x0001
+#define CONTACTVISUALIZATION_PRESENTATIONMODE  0x0002
+
+#define GESTUREVISUALIZATION_OFF           0x0000
+#define GESTUREVISUALIZATION_ON            0x001F
+#define GESTUREVISUALIZATION_TAP           0x0001
+#define GESTUREVISUALIZATION_DOUBLETAP     0x0002
+#define GESTUREVISUALIZATION_PRESSANDTAP   0x0004
+#define GESTUREVISUALIZATION_PRESSANDHOLD  0x0008
+#define GESTUREVISUALIZATION_RIGHTTAP      0x0010
+
+#define PENVISUALIZATION_ON         0x0023
+#define PENVISUALIZATION_OFF        0x0000
+#define PENVISUALIZATION_TAP        0x0001
+#define PENVISUALIZATION_DOUBLETAP  0x0002
+#define PENVISUALIZATION_CURSOR     0x0020
+
+#define PENARBITRATIONTYPE_NONE  0x0000
+#define PENARBITRATIONTYPE_WIN8  0x0001
+#define PENARBITRATIONTYPE_FIS   0x0002
+#define PENARBITRATIONTYPE_SPT   0x0003
+#define PENARBITRATIONTYPE_MAX   0x0004
+
 #define SETWALLPAPER_DEFAULT           ((LPWSTR)-1)
 
 /* SystemParametersInfo flags */
@@ -2962,7 +2998,9 @@ typedef struct tagTRACKMOUSEEVENT {
 #define QS_HOTKEY	0x0080
 #define QS_ALLPOSTMESSAGE 0x0100
 #define QS_RAWINPUT       0x0400
-#define QS_INPUT	(QS_MOUSE | QS_KEY | QS_RAWINPUT)
+#define QS_TOUCH          0x0800
+#define QS_POINTER        0x1000
+#define QS_INPUT	(QS_MOUSE | QS_KEY | QS_RAWINPUT | QS_TOUCH | QS_POINTER)
 #define QS_ALLEVENTS	(QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
 #define QS_ALLINPUT     (QS_ALLEVENTS | QS_SENDMESSAGE)
 
@@ -3404,12 +3442,20 @@ typedef TOUCHINPUT const * PCTOUCHINPUT;
 #define TOUCHEVENTF_PEN         0x0040
 #define TOUCHEVENTF_PALM        0x0080
 
+#define TOUCHINPUTMASKF_TIMEFROMSYSTEM  0x0001
+#define TOUCHINPUTMASKF_EXTRAINFO       0x0002
+#define TOUCHINPUTMASKF_CONTACTAREA     0x0004
+
 #define TWF_FINETOUCH  0x0001
 #define TWF_WANTPALM   0x0002
 
 /* Gesture definitions */
 DECLARE_HANDLE(HGESTUREINFO);
 
+#define GF_BEGIN    0x00000001
+#define GF_INERTIA  0x00000002
+#define GF_END      0x00000004
+
 typedef struct tagGESTUREINFO {
     UINT      cbSize;
     DWORD     dwFlags;
@@ -3423,8 +3469,33 @@ typedef struct tagGESTUREINFO {
 } GESTUREINFO, *PGESTUREINFO;
 typedef GESTUREINFO const * PCGESTUREINFO;
 
+typedef struct tagGESTURENOTIFYSTRUCT
+{
+    UINT cbSize;
+    DWORD dwFlags;
+    HWND hwndTarget;
+    POINTS ptsLocation;
+    DWORD dwInstanceID;
+} GESTURENOTIFYSTRUCT, *PGESTURENOTIFYSTRUCT;
+
+#define GID_ROTATE_ANGLE_TO_ARGUMENT(a)     ((USHORT)((((a) + 2. * M_PI) / (4. * M_PI)) * 65535.))
+#define GID_ROTATE_ANGLE_FROM_ARGUMENT(a)   ((((double)(a) / 65535.) * 4. * M_PI) - 2. * M_PI)
+
 #define POINTER_DEVICE_PRODUCT_STRING_MAX 520
 
+#define PDC_ARRIVAL                    0x0001
+#define PDC_REMOVAL                    0x0002
+#define PDC_ORIENTATION_0              0x0004
+#define PDC_ORIENTATION_90             0x0008
+#define PDC_ORIENTATION_180            0x0010
+#define PDC_ORIENTATION_270            0x0020
+#define PDC_MODE_DEFAULT               0x0040
+#define PDC_MODE_CENTERED              0x0080
+#define PDC_MAPPING_CHANGE             0x0100
+#define PDC_RESOLUTION                 0x0200
+#define PDC_ORIGIN                     0x0400
+#define PDC_MODE_ASPECTRATIOPRESERVED  0x0800
+
 typedef enum tagPOINTER_DEVICE_TYPE {
     POINTER_DEVICE_TYPE_INTEGRATED_PEN = 0x00000001,
     POINTER_DEVICE_TYPE_EXTERNAL_PEN   = 0x00000002,
@@ -3443,15 +3514,260 @@ typedef struct tagPOINTER_DEVICE_INFO {
     WCHAR               productString[POINTER_DEVICE_PRODUCT_STRING_MAX];
 } POINTER_DEVICE_INFO;
 
+typedef struct tagPOINTER_DEVICE_PROPERTY
+{
+    INT32 logicalMin;
+    INT32 logicalMax;
+    INT32 physicalMin;
+    INT32 physicalMax;
+    UINT32 unit;
+    UINT32 unitExponent;
+    USHORT usagePageId;
+    USHORT usageId;
+} POINTER_DEVICE_PROPERTY;
+
+typedef enum tagPOINTER_DEVICE_CURSOR_TYPE
+{
+    POINTER_DEVICE_CURSOR_TYPE_UNKNOWN = 0x00000000,
+    POINTER_DEVICE_CURSOR_TYPE_TIP = 0x00000001,
+    POINTER_DEVICE_CURSOR_TYPE_ERASER = 0x00000002,
+    POINTER_DEVICE_CURSOR_TYPE_MAX = 0xFFFFFFFF,
+} POINTER_DEVICE_CURSOR_TYPE;
+
+typedef struct tagPOINTER_DEVICE_CURSOR_INFO
+{
+    UINT32 cursorId;
+    POINTER_DEVICE_CURSOR_TYPE cursor;
+} POINTER_DEVICE_CURSOR_INFO;
+
 enum tagPOINTER_INPUT_TYPE
 {
     PT_POINTER = 1,
-    PT_TOUCH,
-    PT_PEN,
-    PT_MOUSE,
-    PT_TOUCHPAD,
+    PT_TOUCH = 2,
+    PT_PEN = 3,
+    PT_MOUSE = 4,
+    PT_TOUCHPAD = 5,
 };
 typedef DWORD POINTER_INPUT_TYPE;
+typedef UINT32 POINTER_FLAGS;
+
+#define POINTER_FLAG_NONE            0x00000000
+#define POINTER_FLAG_NEW             0x00000001
+#define POINTER_FLAG_INRANGE         0x00000002
+#define POINTER_FLAG_INCONTACT       0x00000004
+#define POINTER_FLAG_FIRSTBUTTON     0x00000010
+#define POINTER_FLAG_SECONDBUTTON    0x00000020
+#define POINTER_FLAG_THIRDBUTTON     0x00000040
+#define POINTER_FLAG_FOURTHBUTTON    0x00000080
+#define POINTER_FLAG_FIFTHBUTTON     0x00000100
+#define POINTER_FLAG_PRIMARY         0x00002000
+#define POINTER_FLAG_CONFIDENCE      0x00004000
+#define POINTER_FLAG_CANCELED        0x00008000
+#define POINTER_FLAG_DOWN            0x00010000
+#define POINTER_FLAG_UPDATE          0x00020000
+#define POINTER_FLAG_UP              0x00040000
+#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
+
+typedef enum tagPOINTER_BUTTON_CHANGE_TYPE
+{
+    POINTER_CHANGE_NONE,
+    POINTER_CHANGE_FIRSTBUTTON_DOWN,
+    POINTER_CHANGE_FIRSTBUTTON_UP,
+    POINTER_CHANGE_SECONDBUTTON_DOWN,
+    POINTER_CHANGE_SECONDBUTTON_UP,
+    POINTER_CHANGE_THIRDBUTTON_DOWN,
+    POINTER_CHANGE_THIRDBUTTON_UP,
+    POINTER_CHANGE_FOURTHBUTTON_DOWN,
+    POINTER_CHANGE_FOURTHBUTTON_UP,
+    POINTER_CHANGE_FIFTHBUTTON_DOWN,
+    POINTER_CHANGE_FIFTHBUTTON_UP,
+} POINTER_BUTTON_CHANGE_TYPE;
+
+typedef struct tagPOINTER_INFO
+{
+    POINTER_INPUT_TYPE pointerType;
+    UINT32 pointerId;
+    UINT32 frameId;
+    POINTER_FLAGS pointerFlags;
+    HANDLE sourceDevice;
+    HWND hwndTarget;
+    POINT ptPixelLocation;
+    POINT ptHimetricLocation;
+    POINT ptPixelLocationRaw;
+    POINT ptHimetricLocationRaw;
+    DWORD dwTime;
+    UINT32 historyCount;
+    INT32 InputData;
+    DWORD dwKeyStates;
+    UINT64 PerformanceCount;
+    POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
+} POINTER_INFO;
+
+typedef UINT32 TOUCH_FLAGS;
+#define TOUCH_FLAG_NONE  0x00000000
+
+typedef UINT32 TOUCH_MASK;
+#define TOUCH_MASK_NONE         0x00000000
+#define TOUCH_MASK_CONTACTAREA  0x00000001
+#define TOUCH_MASK_ORIENTATION  0x00000002
+#define TOUCH_MASK_PRESSURE     0x00000004
+
+typedef struct tagPOINTER_TOUCH_INFO
+{
+    POINTER_INFO pointerInfo;
+    TOUCH_FLAGS touchFlags;
+    TOUCH_MASK touchMask;
+    RECT rcContact;
+    RECT rcContactRaw;
+    UINT32 orientation;
+    UINT32 pressure;
+} POINTER_TOUCH_INFO;
+
+typedef UINT32 PEN_FLAGS;
+#define PEN_FLAG_NONE      0x00000000
+#define PEN_FLAG_BARREL    0x00000001
+#define PEN_FLAG_INVERTED  0x00000002
+#define PEN_FLAG_ERASER    0x00000004
+
+typedef UINT32 PEN_MASK;
+#define PEN_MASK_NONE      0x00000000
+#define PEN_MASK_PRESSURE  0x00000001
+#define PEN_MASK_ROTATION  0x00000002
+#define PEN_MASK_TILT_X    0x00000004
+#define PEN_MASK_TILT_Y    0x00000008
+
+typedef struct tagPOINTER_PEN_INFO
+{
+    POINTER_INFO pointerInfo;
+    PEN_FLAGS penFlags;
+    PEN_MASK penMask;
+    UINT32 pressure;
+    UINT32 rotation;
+    INT32 tiltX;
+    INT32 tiltY;
+} POINTER_PEN_INFO;
+
+#define POINTER_MESSAGE_FLAG_NEW           0x00000001
+#define POINTER_MESSAGE_FLAG_INRANGE       0x00000002
+#define POINTER_MESSAGE_FLAG_INCONTACT     0x00000004
+#define POINTER_MESSAGE_FLAG_FIRSTBUTTON   0x00000010
+#define POINTER_MESSAGE_FLAG_SECONDBUTTON  0x00000020
+#define POINTER_MESSAGE_FLAG_THIRDBUTTON   0x00000040
+#define POINTER_MESSAGE_FLAG_FOURTHBUTTON  0x00000080
+#define POINTER_MESSAGE_FLAG_FIFTHBUTTON   0x00000100
+#define POINTER_MESSAGE_FLAG_PRIMARY       0x00002000
+#define POINTER_MESSAGE_FLAG_CONFIDENCE    0x00004000
+#define POINTER_MESSAGE_FLAG_CANCELED      0x00008000
+
+#define GET_POINTERID_WPARAM(wparam)               (LOWORD(wparam))
+#define IS_POINTER_FLAG_SET_WPARAM(wparam, flags)  ((HIWORD(wparam) & (flags)) == (flags))
+#define IS_POINTER_NEW_WPARAM(wparam)              IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_NEW)
+#define IS_POINTER_INRANGE_WPARAM(wparam)          IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_INRANGE)
+#define IS_POINTER_INCONTACT_WPARAM(wparam)        IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_INCONTACT)
+#define IS_POINTER_FIRSTBUTTON_WPARAM(wparam)      IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_FIRSTBUTTON)
+#define IS_POINTER_SECONDBUTTON_WPARAM(wparam)     IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_SECONDBUTTON)
+#define IS_POINTER_THIRDBUTTON_WPARAM(wparam)      IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_THIRDBUTTON)
+#define IS_POINTER_FOURTHBUTTON_WPARAM(wparam)     IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_FOURTHBUTTON)
+#define IS_POINTER_FIFTHBUTTON_WPARAM(wparam)      IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_FIFTHBUTTON)
+#define IS_POINTER_PRIMARY_WPARAM(wparam)          IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_PRIMARY)
+#define HAS_POINTER_CONFIDENCE_WPARAM(wparam)      IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_CONFIDENCE)
+#define IS_POINTER_CANCELED_WPARAM(wparam)         IS_POINTER_FLAG_SET_WPARAM(wparam, POINTER_MESSAGE_FLAG_CANCELED)
+
+#define PA_ACTIVATE    MA_ACTIVATE
+#define PA_NOACTIVATE  MA_NOACTIVATE
+
+#define MAX_TOUCH_COUNT  256
+
+#define TOUCH_FEEDBACK_DEFAULT   0x1
+#define TOUCH_FEEDBACK_INDIRECT  0x2
+#define TOUCH_FEEDBACK_NONE      0x3
+
+#define TOUCH_HIT_TESTING_DEFAULT 0x0
+#define TOUCH_HIT_TESTING_CLIENT  0x1
+#define TOUCH_HIT_TESTING_NONE    0x2
+
+typedef struct tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION
+{
+    UINT16 score;
+    POINT adjustedPoint;
+} TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, *PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION;
+
+typedef struct tagTOUCH_HIT_TESTING_INPUT
+{
+    UINT32 pointerId;
+    POINT point;
+    RECT boundingBox;
+    RECT nonOccludedBoundingBox;
+    UINT32 orientation;
+} TOUCH_HIT_TESTING_INPUT, *PTOUCH_HIT_TESTING_INPUT;
+
+#define TOUCH_HIT_TESTING_PROXIMITY_CLOSEST   0x0
+#define TOUCH_HIT_TESTING_PROXIMITY_FARTHEST  0xFFF
+
+typedef enum
+{
+    POINTER_FEEDBACK_DEFAULT = 1,
+    POINTER_FEEDBACK_INDIRECT = 2,
+    POINTER_FEEDBACK_NONE = 3,
+} POINTER_FEEDBACK_MODE;
+
+typedef enum tagFEEDBACK_TYPE
+{
+    FEEDBACK_TOUCH_CONTACTVISUALIZATION = 1,
+    FEEDBACK_PEN_BARRELVISUALIZATION = 2,
+    FEEDBACK_PEN_TAP = 3,
+    FEEDBACK_PEN_DOUBLETAP = 4,
+    FEEDBACK_PEN_PRESSANDHOLD = 5,
+    FEEDBACK_PEN_RIGHTTAP = 6,
+    FEEDBACK_TOUCH_TAP = 7,
+    FEEDBACK_TOUCH_DOUBLETAP = 8,
+    FEEDBACK_TOUCH_PRESSANDHOLD = 9,
+    FEEDBACK_TOUCH_RIGHTTAP = 10,
+    FEEDBACK_GESTURE_PRESSANDTAP = 11,
+    FEEDBACK_MAX = 0xFFFFFFFF
+} FEEDBACK_TYPE;
+
+#define GWFS_INCLUDE_ANCESTORS 0x00000001
+
+typedef struct tagPOINTER_TYPE_INFO
+{
+    POINTER_INPUT_TYPE type;
+    union
+    {
+        POINTER_TOUCH_INFO touchInfo;
+        POINTER_PEN_INFO penInfo;
+    } DUMMYUNIONNAME;
+} POINTER_TYPE_INFO, *PPOINTER_TYPE_INFO;
+
+typedef struct tagINPUT_TRANSFORM
+{
+    union
+    {
+        struct
+        {
+            float _11, _12, _13, _14;
+            float _21, _22, _23, _24;
+            float _31, _32, _33, _34;
+            float _41, _42, _43, _44;
+        } DUMMYSTRUCTNAME;
+        float m[4][4];
+    } DUMMYUNIONNAME;
+} INPUT_TRANSFORM;
+
+DECLARE_HANDLE(HSYNTHETICPOINTERDEVICE);
+
+#define NID_INTEGRATED_TOUCH  0x00000001
+#define NID_EXTERNAL_TOUCH    0x00000002
+#define NID_INTEGRATED_PEN    0x00000004
+#define NID_EXTERNAL_PEN      0x00000008
+#define NID_MULTI_INPUT       0x00000040
+#define NID_READY             0x00000080
 
 typedef struct tagAUDIODESCRIPTION
 {
@@ -3590,6 +3906,7 @@ WINUSERAPI BOOL        WINAPI ClipCursor(const RECT*);
 WINUSERAPI BOOL        WINAPI CloseClipboard(void);
 WINUSERAPI BOOL        WINAPI CloseDesktop(HDESK);
 WINUSERAPI BOOL        WINAPI CloseTouchInputHandle(HTOUCHINPUT);
+WINUSERAPI BOOL        WINAPI CloseGestureInfoHandle(HGESTUREINFO);
 WINUSERAPI BOOL        WINAPI CloseWindow(HWND);
 WINUSERAPI BOOL        WINAPI CloseWindowStation(HWINSTA);
 WINUSERAPI INT         WINAPI CopyAcceleratorTableA(HACCEL,LPACCEL,INT);
@@ -3635,6 +3952,7 @@ WINUSERAPI HWINSTA     WINAPI CreateWindowStationW(LPCWSTR,DWORD,ACCESS_MASK,LPS
 WINUSERAPI HWND        WINAPI CreateMDIWindowA(LPCSTR,LPCSTR,DWORD,INT,INT,INT,INT,HWND,HINSTANCE,LPARAM);
 WINUSERAPI HWND        WINAPI CreateMDIWindowW(LPCWSTR,LPCWSTR,DWORD,INT,INT,INT,INT,HWND,HINSTANCE,LPARAM);
 #define                       CreateMDIWindow WINELIB_NAME_AW(CreateMDIWindow)
+WINUSERAPI HSYNTHETICPOINTERDEVICE  WINAPI CreateSyntheticPointerDevice(POINTER_INPUT_TYPE,ULONG,POINTER_FEEDBACK_MODE);
 WINUSERAPI LRESULT     WINAPI DefDlgProcA(HWND,UINT,WPARAM,LPARAM);
 WINUSERAPI LRESULT     WINAPI DefDlgProcW(HWND,UINT,WPARAM,LPARAM);
 #define                       DefDlgProc WINELIB_NAME_AW(DefDlgProc)
@@ -3657,6 +3975,7 @@ WINUSERAPI BOOL        WINAPI DestroyCaret(void);
 WINUSERAPI BOOL        WINAPI DestroyCursor(HCURSOR);
 WINUSERAPI BOOL        WINAPI DestroyIcon(HICON);
 WINUSERAPI BOOL        WINAPI DestroyMenu(HMENU);
+WINUSERAPI void        WINAPI DestroySyntheticPointerDevice(HSYNTHETICPOINTERDEVICE);
 WINUSERAPI BOOL        WINAPI DestroyWindow(HWND);
 #define                       DialogBoxA(inst,template,owner,func) DialogBoxParamA(inst,template,owner,func,0)
 #define                       DialogBoxW(inst,template,owner,func) DialogBoxParamW(inst,template,owner,func,0)
@@ -3711,6 +4030,7 @@ WINUSERAPI INT         WINAPI DrawTextExW(HDC,LPWSTR,INT,LPRECT,UINT,LPDRAWTEXTP
 WINUSERAPI BOOL        WINAPI EmptyClipboard(void);
 WINUSERAPI BOOL        WINAPI EnableMenuItem(HMENU,UINT,UINT);
 WINUSERAPI BOOL        WINAPI EnableMouseInPointer(BOOL);
+WINUSERAPI BOOL        WINAPI EnableMouseInPointerForThread(VOID);
 WINUSERAPI BOOL        WINAPI EnableNonClientDpiScaling(HWND);
 WINUSERAPI BOOL        WINAPI EnableScrollBar(HWND,UINT,UINT);
 WINUSERAPI BOOL        WINAPI EnableWindow(HWND,BOOL);
@@ -3736,6 +4056,8 @@ WINUSERAPI BOOL        WINAPI EnumWindows(WNDENUMPROC,LPARAM);
 WINUSERAPI BOOL        WINAPI EnumWindowStationsA(WINSTAENUMPROCA,LPARAM);
 WINUSERAPI BOOL        WINAPI EnumWindowStationsW(WINSTAENUMPROCW,LPARAM);
 #define                       EnumWindowStations WINELIB_NAME_AW(EnumWindowStations)
+WINUSERAPI BOOL        WINAPI EvaluateProximityToRect(const RECT*,const TOUCH_HIT_TESTING_INPUT*,TOUCH_HIT_TESTING_PROXIMITY_EVALUATION*);
+WINUSERAPI BOOL        WINAPI EvaluateProximityToPolygon(UINT32,const POINT*,const TOUCH_HIT_TESTING_INPUT*,TOUCH_HIT_TESTING_PROXIMITY_EVALUATION*);
 WINUSERAPI INT         WINAPI ExcludeUpdateRgn(HDC,HWND);
 #define                       ExitWindows(a,b) ExitWindowsEx(EWX_LOGOFF,0xffffffff)
 WINUSERAPI BOOL        WINAPI ExitWindowsEx(UINT,DWORD);
@@ -3815,6 +4137,7 @@ WINUSERAPI UINT        WINAPI GetDpiForSystem(void);
 WINUSERAPI HWND        WINAPI GetFocus(void);
 WINUSERAPI HWND        WINAPI GetForegroundWindow(void);
 WINUSERAPI BOOL        WINAPI GetGestureConfig(HWND,DWORD,DWORD,UINT*,GESTURECONFIG*,UINT);
+WINUSERAPI BOOL        WINAPI GetGestureExtraArgs(HGESTUREINFO,UINT,BYTE*);
 WINUSERAPI BOOL        WINAPI GetGestureInfo(HGESTUREINFO,PGESTUREINFO);
 WINUSERAPI BOOL        WINAPI GetGUIThreadInfo(DWORD,GUITHREADINFO*);
 WINUSERAPI DWORD       WINAPI GetGuiResources(HANDLE,DWORD);
@@ -3878,7 +4201,26 @@ WINUSERAPI HWND        WINAPI GetNextDlgTabItem(HWND,HWND,BOOL);
 WINUSERAPI HWND        WINAPI GetOpenClipboardWindow(void);
 WINUSERAPI HWND        WINAPI GetParent(HWND);
 WINUSERAPI BOOL        WINAPI GetPhysicalCursorPos(POINT*);
-WINUSERAPI BOOL        WINAPI GetPointerType(UINT32,POINTER_INPUT_TYPE *);
+WINUSERAPI BOOL        WINAPI GetPointerDevice(HANDLE device,POINTER_DEVICE_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerDeviceCursors(HANDLE,UINT32*,POINTER_DEVICE_CURSOR_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerDeviceProperties(HANDLE device,UINT32*,POINTER_DEVICE_PROPERTY*);
+WINUSERAPI BOOL        WINAPI GetPointerDeviceRects(HANDLE,RECT*,RECT*);
+WINUSERAPI BOOL        WINAPI GetPointerDevices(UINT32*,POINTER_DEVICE_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerInputTransform(UINT32,UINT32,INPUT_TRANSFORM*);
+WINUSERAPI BOOL        WINAPI GetPointerPenInfo(UINT32,POINTER_PEN_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerPenInfoHistory(UINT32,UINT32*,POINTER_PEN_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerFramePenInfo(UINT32,UINT32*,POINTER_PEN_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerFramePenInfoHistory(UINT32,UINT32*,UINT32*,POINTER_PEN_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerType(UINT32,POINTER_INPUT_TYPE*);
+WINUSERAPI BOOL        WINAPI GetPointerCursorId(UINT32,UINT32*);
+WINUSERAPI BOOL        WINAPI GetPointerInfo(UINT32,POINTER_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerInfoHistory(UINT32,UINT32*,POINTER_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerFrameInfo(UINT32,UINT32*,POINTER_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerFrameInfoHistory(UINT32,UINT32*,UINT32*,POINTER_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerTouchInfo(UINT32,POINTER_TOUCH_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerTouchInfoHistory(UINT32,UINT32*,POINTER_TOUCH_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerFrameTouchInfo(UINT32,UINT32*,POINTER_TOUCH_INFO*);
+WINUSERAPI BOOL        WINAPI GetPointerFrameTouchInfoHistory(UINT32,UINT32*,UINT32*,POINTER_TOUCH_INFO*);
 WINUSERAPI INT         WINAPI GetPriorityClipboardFormat(UINT*,INT);
 WINUSERAPI BOOL        WINAPI GetProcessDefaultLayout(DWORD*);
 WINUSERAPI BOOL        WINAPI GetProcessDpiAwarenessInternal(HANDLE,DPI_AWARENESS*);
@@ -3886,6 +4228,7 @@ WINUSERAPI HANDLE      WINAPI GetPropA(HWND,LPCSTR);
 WINUSERAPI HANDLE      WINAPI GetPropW(HWND,LPCWSTR);
 #define                       GetProp WINELIB_NAME_AW(GetProp)
 WINUSERAPI DWORD       WINAPI GetQueueStatus(UINT);
+WINUSERAPI BOOL        WINAPI GetRawPointerDeviceData(UINT32,UINT32,UINT32,POINTER_DEVICE_PROPERTY*,LONG*);
 WINUSERAPI BOOL        WINAPI GetScrollInfo(HWND,INT,LPSCROLLINFO);
 WINUSERAPI BOOL        WINAPI GetScrollBarInfo(HWND,LONG,LPSCROLLBARINFO);
 WINUSERAPI INT         WINAPI GetScrollPos(HWND,INT);
@@ -3917,6 +4260,7 @@ WINUSERAPI DWORD       WINAPI GetWindowContextHelpId(HWND);
 WINUSERAPI HDC         WINAPI GetWindowDC(HWND);
 WINUSERAPI BOOL        WINAPI GetWindowDisplayAffinity(HWND,DWORD*);
 WINUSERAPI DPI_AWARENESS_CONTEXT WINAPI GetWindowDpiAwarenessContext(HWND);
+WINUSERAPI BOOL        WINAPI GetWindowFeedbackSetting(HWND,FEEDBACK_TYPE,DWORD,UINT32*,void*);
 WINUSERAPI BOOL        WINAPI GetWindowInfo(HWND, PWINDOWINFO);
 WINUSERAPI LONG        WINAPI GetWindowLongA(HWND,INT);
 WINUSERAPI LONG        WINAPI GetWindowLongW(HWND,INT);
@@ -3951,6 +4295,9 @@ WINUSERAPI BOOL        WINAPI GrayStringW(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,INT,I
 #define                       GrayString WINELIB_NAME_AW(GrayString)
 WINUSERAPI BOOL        WINAPI HideCaret(HWND);
 WINUSERAPI BOOL        WINAPI HiliteMenuItem(HWND,HMENU,UINT,UINT);
+WINUSERAPI BOOL        WINAPI InitializeTouchInjection(UINT32,DWORD);
+WINUSERAPI BOOL        WINAPI InjectSyntheticPointerInput(HSYNTHETICPOINTERDEVICE,const POINTER_TYPE_INFO*,UINT32);
+WINUSERAPI BOOL        WINAPI InjectTouchInput(UINT32,const POINTER_TOUCH_INFO*);
 WINUSERAPI BOOL        WINAPI InSendMessage(void);
 WINUSERAPI DWORD       WINAPI InSendMessageEx(LPVOID);
 WINUSERAPI BOOL        WINAPI InsertMenuA(HMENU,UINT,UINT,UINT_PTR,LPCSTR);
@@ -3986,6 +4333,7 @@ WINUSERAPI BOOL        WINAPI IsGUIThread(BOOL);
 WINUSERAPI BOOL        WINAPI IsHungAppWindow(HWND);
 WINUSERAPI BOOL        WINAPI IsIconic(HWND);
 WINUSERAPI BOOL        WINAPI IsMenu(HMENU);
+WINUSERAPI BOOL        WINAPI IsMouseInPointerEnabled(void);
 WINUSERAPI BOOL        WINAPI IsProcessDPIAware(void);
 WINUSERAPI BOOL        WINAPI IsTouchWindow(HWND,PULONG);
 WINUSERAPI BOOL        WINAPI IsValidDpiAwarenessContext(DPI_AWARENESS_CONTEXT);
@@ -4080,6 +4428,7 @@ WINUSERAPI HWINSTA     WINAPI OpenWindowStationA(LPCSTR,BOOL,ACCESS_MASK);
 WINUSERAPI HWINSTA     WINAPI OpenWindowStationW(LPCWSTR,BOOL,ACCESS_MASK);
 #define                       OpenWindowStation WINELIB_NAME_AW(OpenWindowStation)
 WINUSERAPI BOOL        WINAPI PaintDesktop(HDC);
+WINUSERAPI LRESULT     WINAPI PackTouchHitTestingProximityEvaluation(const TOUCH_HIT_TESTING_INPUT*,const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION*);
 WINUSERAPI BOOL        WINAPI PeekMessageA(LPMSG,HWND,UINT,UINT,UINT);
 WINUSERAPI BOOL        WINAPI PeekMessageW(LPMSG,HWND,UINT,UINT,UINT);
 #define                       PeekMessage WINELIB_NAME_AW(PeekMessage)
@@ -4119,10 +4468,13 @@ WINUSERAPI HDEVNOTIFY  WINAPI RegisterDeviceNotificationW(HANDLE,LPVOID,DWORD);
 #define                       RegisterDeviceNotification WINELIB_NAME_AW(RegisterDeviceNotification)
 WINUSERAPI BOOL        WINAPI RegisterHotKey(HWND,INT,UINT,UINT);
 WINUSERAPI BOOL        WINAPI RegisterPointerDeviceNotifications(HWND,BOOL);
+WINUSERAPI BOOL        WINAPI RegisterPointerInputTarget(HWND,POINTER_INPUT_TYPE);
+WINUSERAPI BOOL        WINAPI RegisterPointerInputTargetEx(HWND,POINTER_INPUT_TYPE,BOOL);
 WINUSERAPI HPOWERNOTIFY WINAPI RegisterPowerSettingNotification(HANDLE,LPCGUID,DWORD);
 WINUSERAPI BOOL        WINAPI RegisterRawInputDevices(const RAWINPUTDEVICE *,UINT,UINT);
 WINUSERAPI BOOL        WINAPI RegisterShellHookWindow(HWND);
 WINUSERAPI HPOWERNOTIFY WINAPI RegisterSuspendResumeNotification(HANDLE,DWORD);
+WINUSERAPI BOOL        WINAPI RegisterTouchHitTestingWindow(HWND,ULONG);
 WINUSERAPI BOOL        WINAPI RegisterTouchWindow(HWND,ULONG);
 WINUSERAPI UINT        WINAPI RegisterWindowMessageA(LPCSTR);
 WINUSERAPI UINT        WINAPI RegisterWindowMessageW(LPCWSTR);
@@ -4227,6 +4579,7 @@ WINUSERAPI BOOL        WINAPI SetUserObjectInformationW(HANDLE,INT,LPVOID,DWORD)
 WINUSERAPI BOOL        WINAPI SetUserObjectSecurity(HANDLE,PSECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
 WINUSERAPI BOOL        WINAPI SetWindowContextHelpId(HWND,DWORD);
 WINUSERAPI BOOL        WINAPI SetWindowDisplayAffinity(HWND,DWORD);
+WINUSERAPI BOOL        WINAPI SetWindowFeedbackSetting(HWND,FEEDBACK_TYPE,DWORD,UINT32,const void*);
 WINUSERAPI LONG        WINAPI SetWindowLongA(HWND,INT,LONG);
 WINUSERAPI LONG        WINAPI SetWindowLongW(HWND,INT,LONG);
 #define                       SetWindowLong WINELIB_NAME_AW(SetWindowLong)
@@ -4260,6 +4613,7 @@ WINUSERAPI BOOL        WINAPI ShowWindow(HWND,INT);
 WINUSERAPI BOOL        WINAPI ShowWindowAsync(HWND,INT);
 WINUSERAPI BOOL        WINAPI ShutdownBlockReasonCreate(HWND,LPCWSTR);
 WINUSERAPI BOOL        WINAPI ShutdownBlockReasonDestroy(HWND);
+WINUSERAPI BOOL        WINAPI SkipPointerFrameMessages(UINT32);
 WINUSERAPI BOOL        WINAPI SubtractRect(LPRECT,const RECT*,const RECT*);
 WINUSERAPI BOOL        WINAPI SwapMouseButton(BOOL);
 WINUSERAPI BOOL        WINAPI SwitchDesktop(HDESK);
@@ -4294,6 +4648,8 @@ WINUSERAPI BOOL        WINAPI UnregisterClassW(LPCWSTR,HINSTANCE);
 #define                       UnregisterClass WINELIB_NAME_AW(UnregisterClass)
 WINUSERAPI BOOL        WINAPI UnregisterDeviceNotification(HDEVNOTIFY);
 WINUSERAPI BOOL        WINAPI UnregisterHotKey(HWND,INT);
+WINUSERAPI BOOL        WINAPI UnregisterPointerInputTarget(HWND,POINTER_INPUT_TYPE);
+WINUSERAPI BOOL        WINAPI UnregisterPointerInputTargetEx(HWND,POINTER_INPUT_TYPE);
 WINUSERAPI BOOL        WINAPI UnregisterPowerSettingNotification(HPOWERNOTIFY);
 WINUSERAPI BOOL        WINAPI UnregisterSuspendResumeNotification(HPOWERNOTIFY);
 WINUSERAPI BOOL        WINAPI UnregisterTouchWindow(HWND);
-- 
GitLab

https://gitlab.winehq.org/wine/wine/-/merge_requests/166



More information about the wine-devel mailing list