FreeRDP
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
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
131FREERDP_LOCAL int update_message_queue_process_message(rdpUpdate* update, wMessage* message);
132FREERDP_LOCAL int update_message_queue_free_message(wMessage* message);
133
134FREERDP_LOCAL int update_message_queue_process_pending_messages(rdpUpdate* update);
135
136FREERDP_LOCAL void update_message_proxy_free(rdpUpdateProxy* message);
137
138WINPR_ATTR_MALLOC(update_message_proxy_free, 1)
139FREERDP_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
162FREERDP_LOCAL int input_message_queue_process_message(rdpInput* input, wMessage* message);
163FREERDP_LOCAL int input_message_queue_free_message(wMessage* message);
164FREERDP_LOCAL int input_message_queue_process_pending_messages(rdpInput* input);
165
166#endif /* FREERDP_LIB_CORE_MESSAGE_H */