FreeRDP
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
36 extern "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 */