22#ifndef FREERDP_CHANNEL_RDPEI_H
23#define FREERDP_CHANNEL_RDPEI_H
25#include <winpr/wtypes.h>
32#define RDPINPUT_HEADER_LENGTH 6
36#define RDPINPUT_MAX_PDU_LENGTH (UINT16_MAX * 40ull)
42#define RDPEI_CHANNEL_NAME "rdpei"
43#define RDPEI_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Input"
48 RDPINPUT_PROTOCOL_V10 = 0x00010000,
49 RDPINPUT_PROTOCOL_V101 = 0x00010001,
50 RDPINPUT_PROTOCOL_V200 = 0x00020000,
51 RDPINPUT_PROTOCOL_V300 = 0x00030000
55#define SC_READY_MULTIPEN_INJECTION_SUPPORTED 0x0001
58#define CS_READY_FLAGS_SHOW_TOUCH_VISUALS 0x00000001
59#define CS_READY_FLAGS_DISABLE_TIMESTAMP_INJECTION 0x00000002
60#define CS_READY_FLAGS_ENABLE_MULTIPEN_INJECTION 0x00000004
63#define CONTACT_DATA_CONTACTRECT_PRESENT 0x0001
64#define CONTACT_DATA_ORIENTATION_PRESENT 0x0002
65#define CONTACT_DATA_PRESSURE_PRESENT 0x0004
69 RDPINPUT_PEN_CONTACT_PENFLAGS_PRESENT = 0x0001,
70 RDPINPUT_PEN_CONTACT_PRESSURE_PRESENT = 0x0002,
71 RDPINPUT_PEN_CONTACT_ROTATION_PRESENT = 0x0004,
72 RDPINPUT_PEN_CONTACT_TILTX_PRESENT = 0x0008,
73 RDPINPUT_PEN_CONTACT_TILTY_PRESENT = 0x0010
74} RDPINPUT_PEN_FIELDS_PRESENT;
92 RDPINPUT_CONTACT_FLAG_DOWN = 0x0001,
93 RDPINPUT_CONTACT_FLAG_UPDATE = 0x0002,
94 RDPINPUT_CONTACT_FLAG_UP = 0x0004,
95 RDPINPUT_CONTACT_FLAG_INRANGE = 0x0008,
96 RDPINPUT_CONTACT_FLAG_INCONTACT = 0x0010,
97 RDPINPUT_CONTACT_FLAG_CANCELED = 0x0020
98} RDPINPUT_CONTACT_FLAGS;
102 RDPINPUT_PEN_FLAG_BARREL_PRESSED = 0x0001,
103 RDPINPUT_PEN_FLAG_ERASER_PRESSED = 0x0002,
104 RDPINPUT_PEN_FLAG_INVERTED = 0x0004
111 UINT16 fieldsPresent;
115 INT16 contactRectLeft;
116 INT16 contactRectTop;
117 INT16 contactRectRight;
118 INT16 contactRectBottom;
142 UINT16 fieldsPresent;