Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef touchinjection_sdk80_h
6 #define touchinjection_sdk80_h
8 // Note, this isn't inclusive of all touch injection header info.
9 // You may need to add more to expand on current apis.
11 #ifndef TOUCH_FEEDBACK_DEFAULT
13 #define TOUCH_FEEDBACK_DEFAULT 0x1
14 #define TOUCH_FEEDBACK_INDIRECT 0x2
15 #define TOUCH_FEEDBACK_NONE 0x3
17 enum {
18 PT_POINTER = 0x00000001, // Generic pointer
19 PT_TOUCH = 0x00000002, // Touch
20 PT_PEN = 0x00000003, // Pen
21 PT_MOUSE = 0x00000004, // Mouse
22 };
24 typedef DWORD POINTER_INPUT_TYPE;
25 typedef UINT32 POINTER_FLAGS;
27 typedef enum {
28 POINTER_CHANGE_NONE,
29 POINTER_CHANGE_FIRSTBUTTON_DOWN,
30 POINTER_CHANGE_FIRSTBUTTON_UP,
31 POINTER_CHANGE_SECONDBUTTON_DOWN,
32 POINTER_CHANGE_SECONDBUTTON_UP,
33 POINTER_CHANGE_THIRDBUTTON_DOWN,
34 POINTER_CHANGE_THIRDBUTTON_UP,
35 POINTER_CHANGE_FOURTHBUTTON_DOWN,
36 POINTER_CHANGE_FOURTHBUTTON_UP,
37 POINTER_CHANGE_FIFTHBUTTON_DOWN,
38 POINTER_CHANGE_FIFTHBUTTON_UP,
39 } POINTER_BUTTON_CHANGE_TYPE;
41 typedef struct {
42 POINTER_INPUT_TYPE pointerType;
43 UINT32 pointerId;
44 UINT32 frameId;
45 POINTER_FLAGS pointerFlags;
46 HANDLE sourceDevice;
47 HWND hwndTarget;
48 POINT ptPixelLocation;
49 POINT ptHimetricLocation;
50 POINT ptPixelLocationRaw;
51 POINT ptHimetricLocationRaw;
52 DWORD dwTime;
53 UINT32 historyCount;
54 INT32 InputData;
55 DWORD dwKeyStates;
56 UINT64 PerformanceCount;
57 POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
58 } POINTER_INFO;
60 typedef UINT32 TOUCH_FLAGS;
61 typedef UINT32 TOUCH_MASK;
63 typedef struct {
64 POINTER_INFO pointerInfo;
65 TOUCH_FLAGS touchFlags;
66 TOUCH_MASK touchMask;
67 RECT rcContact;
68 RECT rcContactRaw;
69 UINT32 orientation;
70 UINT32 pressure;
71 } POINTER_TOUCH_INFO;
73 #define TOUCH_FLAG_NONE 0x00000000 // Default
75 #define TOUCH_MASK_NONE 0x00000000 // Default - none of the optional fields are valid
76 #define TOUCH_MASK_CONTACTAREA 0x00000001 // The rcContact field is valid
77 #define TOUCH_MASK_ORIENTATION 0x00000002 // The orientation field is valid
78 #define TOUCH_MASK_PRESSURE 0x00000004 // The pressure field is valid
80 #define POINTER_FLAG_NONE 0x00000000 // Default
81 #define POINTER_FLAG_NEW 0x00000001 // New pointer
82 #define POINTER_FLAG_INRANGE 0x00000002 // Pointer has not departed
83 #define POINTER_FLAG_INCONTACT 0x00000004 // Pointer is in contact
84 #define POINTER_FLAG_FIRSTBUTTON 0x00000010 // Primary action
85 #define POINTER_FLAG_SECONDBUTTON 0x00000020 // Secondary action
86 #define POINTER_FLAG_THIRDBUTTON 0x00000040 // Third button
87 #define POINTER_FLAG_FOURTHBUTTON 0x00000080 // Fourth button
88 #define POINTER_FLAG_FIFTHBUTTON 0x00000100 // Fifth button
89 #define POINTER_FLAG_PRIMARY 0x00002000 // Pointer is primary
90 #define POINTER_FLAG_CONFIDENCE 0x00004000 // Pointer is considered unlikely to be accidental
91 #define POINTER_FLAG_CANCELED 0x00008000 // Pointer is departing in an abnormal manner
92 #define POINTER_FLAG_DOWN 0x00010000 // Pointer transitioned to down state (made contact)
93 #define POINTER_FLAG_UPDATE 0x00020000 // Pointer update
94 #define POINTER_FLAG_UP 0x00040000 // Pointer transitioned from down state (broke contact)
95 #define POINTER_FLAG_WHEEL 0x00080000 // Vertical wheel
96 #define POINTER_FLAG_HWHEEL 0x00100000 // Horizontal wheel
97 #define POINTER_FLAG_CAPTURECHANGED 0x00200000 // Lost capture
99 #endif // TOUCH_FEEDBACK_DEFAULT
101 #define TOUCH_FLAGS_CONTACTUPDATE (POINTER_FLAG_UPDATE|POINTER_FLAG_INRANGE|POINTER_FLAG_INCONTACT)
102 #define TOUCH_FLAGS_CONTACTDOWN (POINTER_FLAG_DOWN|POINTER_FLAG_INRANGE|POINTER_FLAG_INCONTACT)
104 typedef BOOL (WINAPI* InitializeTouchInjectionPtr)(UINT32 maxCount, DWORD dwMode);
105 typedef BOOL (WINAPI* InjectTouchInputPtr)(UINT32 count, CONST POINTER_TOUCH_INFO *info);
107 #endif // touchinjection_sdk80_h