FreeRDP
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
include/freerdp/pointer.h
1
20#ifndef FREERDP_UPDATE_POINTER_H
21#define FREERDP_UPDATE_POINTER_H
22
23#include <freerdp/types.h>
24
25#define PTR_MSG_TYPE_SYSTEM 0x0001
26#define PTR_MSG_TYPE_POSITION 0x0003
27#define PTR_MSG_TYPE_COLOR 0x0006
28#define PTR_MSG_TYPE_CACHED 0x0007
29#define PTR_MSG_TYPE_POINTER 0x0008
30#define PTR_MSG_TYPE_POINTER_LARGE 0x0009
31
32#define SYSPTR_NULL 0x00000000
33#define SYSPTR_DEFAULT 0x00007F00
34
35#ifdef __cplusplus
36extern "C"
37{
38#endif
39
40 typedef struct
41 {
42 UINT32 xPos;
43 UINT32 yPos;
45
46 typedef struct
47 {
48 UINT32 type;
50
51 typedef struct
52 {
53 UINT16 cacheIndex;
54 UINT16 hotSpotX;
55 UINT16 hotSpotY;
56 UINT16 width;
57 UINT16 height;
58 UINT16 lengthAndMask;
59 UINT16 lengthXorMask;
60 BYTE* xorMaskData;
61 BYTE* andMaskData;
63
64 typedef struct
65 {
66 UINT16 xorBpp;
67 UINT16 cacheIndex;
68 UINT16 hotSpotX;
69 UINT16 hotSpotY;
70 UINT16 width;
71 UINT16 height;
72 UINT32 lengthAndMask;
73 UINT32 lengthXorMask;
74 BYTE* xorMaskData;
75 BYTE* andMaskData;
77
78 typedef struct
79 {
80 UINT32 xorBpp;
81 POINTER_COLOR_UPDATE colorPtrAttr;
83
84 typedef struct
85 {
86 UINT32 cacheIndex;
88
89 typedef BOOL (*pPointerPosition)(rdpContext* context,
90 const POINTER_POSITION_UPDATE* pointer_position);
91 typedef BOOL (*pPointerSystem)(rdpContext* context,
92 const POINTER_SYSTEM_UPDATE* pointer_system);
93 typedef BOOL (*pPointerColor)(rdpContext* context, const POINTER_COLOR_UPDATE* pointer_color);
94 typedef BOOL (*pPointerNew)(rdpContext* context, const POINTER_NEW_UPDATE* pointer_new);
95 typedef BOOL (*pPointerCached)(rdpContext* context,
96 const POINTER_CACHED_UPDATE* pointer_cached);
97 typedef BOOL (*pPointerLarge)(rdpContext* context, const POINTER_LARGE_UPDATE* pointer_large);
98
100 {
101 rdpContext* context; /* 0 */
102 UINT32 paddingA[16 - 1]; /* 1 */
103
104 pPointerPosition PointerPosition; /* 16 */
105 pPointerSystem PointerSystem; /* 17 */
106 pPointerColor PointerColor; /* 18 */
107 pPointerNew PointerNew; /* 19 */
108 pPointerCached PointerCached; /* 20 */
109 pPointerLarge PointerLarge; /* 21 */
110 UINT32 paddingB[32 - 22]; /* 22 */
111 };
112 typedef struct rdp_pointer_update rdpPointerUpdate;
113
114#ifdef __cplusplus
115}
116#endif
117
118#endif /* FREERDP_UPDATE_POINTER_H */