FreeRDP
libfreerdp/core/message.h
1 
20 #ifndef FREERDP_LIB_CORE_MESSAGE_H
21 #define FREERDP_LIB_CORE_MESSAGE_H
22 
23 #include <freerdp/freerdp.h>
24 #include <freerdp/message.h>
25 #include <freerdp/api.h>
26 
31 /* Update Proxy Interface */
32 
34 {
35  rdpUpdate* update;
36 
37  /* Update */
38 
39  pBeginPaint BeginPaint;
40  pEndPaint EndPaint;
41  pSetBounds SetBounds;
42  pSynchronize Synchronize;
43  pDesktopResize DesktopResize;
44  pBitmapUpdate BitmapUpdate;
45  pPalette Palette;
46  pPlaySound PlaySound;
47  pSetKeyboardIndicators SetKeyboardIndicators;
48  pSetKeyboardImeStatus SetKeyboardImeStatus;
49  pRefreshRect RefreshRect;
50  pSuppressOutput SuppressOutput;
51  pSurfaceCommand SurfaceCommand;
52  pSurfaceBits SurfaceBits;
53  pSurfaceFrameMarker SurfaceFrameMarker;
54  pSurfaceFrameAcknowledge SurfaceFrameAcknowledge;
55 
56  /* Primary Update */
57 
58  pDstBlt DstBlt;
59  pPatBlt PatBlt;
60  pScrBlt ScrBlt;
61  pOpaqueRect OpaqueRect;
62  pDrawNineGrid DrawNineGrid;
63  pMultiDstBlt MultiDstBlt;
64  pMultiPatBlt MultiPatBlt;
65  pMultiScrBlt MultiScrBlt;
66  pMultiOpaqueRect MultiOpaqueRect;
67  pMultiDrawNineGrid MultiDrawNineGrid;
68  pLineTo LineTo;
69  pPolyline Polyline;
70  pMemBlt MemBlt;
71  pMem3Blt Mem3Blt;
72  pSaveBitmap SaveBitmap;
73  pGlyphIndex GlyphIndex;
74  pFastIndex FastIndex;
75  pFastGlyph FastGlyph;
76  pPolygonSC PolygonSC;
77  pPolygonCB PolygonCB;
78  pEllipseSC EllipseSC;
79  pEllipseCB EllipseCB;
80 
81  /* Secondary Update */
82 
83  pCacheBitmap CacheBitmap;
84  pCacheBitmapV2 CacheBitmapV2;
85  pCacheBitmapV3 CacheBitmapV3;
86  pCacheColorTable CacheColorTable;
87  pCacheGlyph CacheGlyph;
88  pCacheGlyphV2 CacheGlyphV2;
89  pCacheBrush CacheBrush;
90 
91  /* Alternate Secondary Update */
92 
93  pCreateOffscreenBitmap CreateOffscreenBitmap;
94  pSwitchSurface SwitchSurface;
95  pCreateNineGridBitmap CreateNineGridBitmap;
96  pFrameMarker FrameMarker;
97  pStreamBitmapFirst StreamBitmapFirst;
98  pStreamBitmapNext StreamBitmapNext;
99  pDrawGdiPlusFirst DrawGdiPlusFirst;
100  pDrawGdiPlusNext DrawGdiPlusNext;
101  pDrawGdiPlusEnd DrawGdiPlusEnd;
102  pDrawGdiPlusCacheFirst DrawGdiPlusCacheFirst;
103  pDrawGdiPlusCacheNext DrawGdiPlusCacheNext;
104  pDrawGdiPlusCacheEnd DrawGdiPlusCacheEnd;
105 
106  /* Window Update */
107 
108  pWindowCreate WindowCreate;
109  pWindowUpdate WindowUpdate;
110  pWindowIcon WindowIcon;
111  pWindowCachedIcon WindowCachedIcon;
112  pWindowDelete WindowDelete;
113  pNotifyIconCreate NotifyIconCreate;
114  pNotifyIconUpdate NotifyIconUpdate;
115  pNotifyIconDelete NotifyIconDelete;
116  pMonitoredDesktop MonitoredDesktop;
117  pNonMonitoredDesktop NonMonitoredDesktop;
118 
119  /* Pointer Update */
120 
121  pPointerPosition PointerPosition;
122  pPointerSystem PointerSystem;
123  pPointerColor PointerColor;
124  pPointerNew PointerNew;
125  pPointerCached PointerCached;
126  pPointerLarge PointerLarge;
127 
128  HANDLE thread;
129 };
130 
131 FREERDP_LOCAL int update_message_queue_process_message(rdpUpdate* update, wMessage* message);
132 FREERDP_LOCAL int update_message_queue_free_message(wMessage* message);
133 
134 FREERDP_LOCAL int update_message_queue_process_pending_messages(rdpUpdate* update);
135 
136 FREERDP_LOCAL void update_message_proxy_free(rdpUpdateProxy* message);
137 
138 WINPR_ATTR_MALLOC(update_message_proxy_free, 1)
139 FREERDP_LOCAL rdpUpdateProxy* update_message_proxy_new(rdpUpdate* update);
140 
145 /* Input Proxy Interface */
146 
148 {
149  rdpInput* input;
150 
151  /* Input */
152 
153  pSynchronizeEvent SynchronizeEvent;
154  pKeyboardEvent KeyboardEvent;
155  pUnicodeKeyboardEvent UnicodeKeyboardEvent;
156  pMouseEvent MouseEvent;
157  pExtendedMouseEvent ExtendedMouseEvent;
158  pFocusInEvent FocusInEvent;
159  pKeyboardPauseEvent KeyboardPauseEvent;
160 };
161 
162 FREERDP_LOCAL int input_message_queue_process_message(rdpInput* input, wMessage* message);
163 FREERDP_LOCAL int input_message_queue_free_message(wMessage* message);
164 FREERDP_LOCAL int input_message_queue_process_pending_messages(rdpInput* input);
165 
166 #endif /* FREERDP_LIB_CORE_MESSAGE_H */