summaryrefslogtreecommitdiffstats
path: root/include/freerdp/message.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:24:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:24:41 +0000
commita9bcc81f821d7c66f623779fa5147e728eb3c388 (patch)
tree98676963bcdd537ae5908a067a8eb110b93486a6 /include/freerdp/message.h
parentInitial commit. (diff)
downloadfreerdp3-a9bcc81f821d7c66f623779fa5147e728eb3c388.tar.xz
freerdp3-a9bcc81f821d7c66f623779fa5147e728eb3c388.zip
Adding upstream version 3.3.0+dfsg1.upstream/3.3.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'include/freerdp/message.h')
-rw-r--r--include/freerdp/message.h376
1 files changed, 376 insertions, 0 deletions
diff --git a/include/freerdp/message.h b/include/freerdp/message.h
new file mode 100644
index 0000000..1c47b9f
--- /dev/null
+++ b/include/freerdp/message.h
@@ -0,0 +1,376 @@
+/**
+ * FreeRDP: A Remote Desktop Protocol Implementation
+ * Asynchronous Message Interface
+ *
+ * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef FREERDP_MESSAGE_H
+#define FREERDP_MESSAGE_H
+
+#define GetMessageType(_id) (_id & 0xFF)
+#define GetMessageClass(_id) ((_id >> 16) & 0xFF)
+
+#define GetMessageId(_class, _type) ((_class << 16) | _type)
+
+#define MakeMessageId(_class, _type) (((_class##_Class) << 16) | (_class##_##_type))
+
+/**
+ * Update Message Queue
+ */
+
+#define FREERDP_UPDATE_MESSAGE_QUEUE 1
+
+#define Update_Base 0
+
+/* Update */
+
+#define Update_Class (Update_Base + 1)
+
+#define Update_BeginPaint 1
+#define Update_EndPaint 2
+#define Update_SetBounds 3
+#define Update_Synchronize 4
+#define Update_DesktopResize 5
+#define Update_BitmapUpdate 6
+#define Update_Palette 7
+#define Update_PlaySound 8
+#define Update_RefreshRect 9
+#define Update_SuppressOutput 10
+#define Update_SurfaceCommand 11
+#define Update_SurfaceBits 12
+#define Update_SurfaceFrameMarker 13
+#define Update_SurfaceFrameAcknowledge 14
+#define Update_SetKeyboardIndicators 15
+#define Update_SetKeyboardImeStatus 16
+
+#define FREERDP_UPDATE_BEGIN_PAINT MakeMessageId(Update, BeginPaint)
+#define FREERDP_UPDATE_ END_PAINT MakeMessageId(Update, EndPaint)
+#define FREERDP_UPDATE_SET_BOUNDS MakeMessageId(Update, SetBounds)
+#define FREERDP_UPDATE_SYNCHRONIZE MakeMessageId(Update, Synchronize)
+#define FREERDP_UPDATE_DESKTOP_RESIZE MakeMessageId(Update, DesktopResize)
+#define FREERDP_UPDATE_BITMAP_UPDATE MakeMessageId(Update, BitmapUpdate)
+#define FREERDP_UPDATE_PALETTE MakeMessageId(Update, Palette)
+#define FREERDP_UPDATE_PLAY_SOUND MakeMessageId(Update, PlaySound)
+#define FREERDP_UPDATE_REFRESH_RECT MakeMessageId(Update, RefreshRect)
+#define FREERDP_UPDATE_SUPPRESS_OUTPUT MakeMessageId(Update, SuppressOutput)
+#define FREERDP_UPDATE_SURFACE_COMMAND MakeMessageId(Update, SurfaceCommand)
+#define FREERDP_UPDATE_SURFACE_BITS MakeMessageId(Update, SurfaceBits)
+#define FREERDP_UPDATE_SURFACE_FRAME_MARKER MakeMessageId(Update, SurfaceFrameMarker)
+#define FREERDP_UPDATE_SURFACE_FRAME_ACKNOWLEDGE MakeMessageId(Update, SurfaceFrameAcknowledge)
+#define FREERDP_UPDATE_SET_KEYBOARD_INDICATORS MakeMessageId(Update, SetKeyboardIndicators)
+
+/* Primary Update */
+
+#define PrimaryUpdate_Class (Update_Base + 2)
+
+#define PrimaryUpdate_DstBlt 1
+#define PrimaryUpdate_PatBlt 2
+#define PrimaryUpdate_ScrBlt 3
+#define PrimaryUpdate_OpaqueRect 4
+#define PrimaryUpdate_DrawNineGrid 5
+#define PrimaryUpdate_MultiDstBlt 6
+#define PrimaryUpdate_MultiPatBlt 7
+#define PrimaryUpdate_MultiScrBlt 8
+#define PrimaryUpdate_MultiOpaqueRect 9
+#define PrimaryUpdate_MultiDrawNineGrid 10
+#define PrimaryUpdate_LineTo 11
+#define PrimaryUpdate_Polyline 12
+#define PrimaryUpdate_MemBlt 13
+#define PrimaryUpdate_Mem3Blt 14
+#define PrimaryUpdate_SaveBitmap 15
+#define PrimaryUpdate_GlyphIndex 16
+#define PrimaryUpdate_FastIndex 17
+#define PrimaryUpdate_FastGlyph 18
+#define PrimaryUpdate_PolygonSC 19
+#define PrimaryUpdate_PolygonCB 20
+#define PrimaryUpdate_EllipseSC 21
+#define PrimaryUpdate_EllipseCB 22
+
+#define FREERDP_PRIMARY_UPDATE_DSTBLT MakeMessageId(PrimaryUpdate, DstBlt)
+#define FREERDP_PRIMARY_UPDATE_PATBLT MakeMessageId(PrimaryUpdate, PatBlt)
+#define FREERDP_PRIMARY_UPDATE_SCRBLT MakeMessageId(PrimaryUpdate, ScrBlt)
+#define FREERDP_PRIMARY_UPDATE_OPAQUE_RECT MakeMessageId(PrimaryUpdate, OpaqueRect)
+#define FREERDP_PRIMARY_UPDATE_DRAW_NINE_GRID MakeMessageId(PrimaryUpdate, DrawNineGrid)
+#define FREERDP_PRIMARY_UPDATE_MULTI_DSTBLT MakeMessageId(PrimaryUpdate, MultiDstBlt)
+#define FREERDP_PRIMARY_UPDATE_MULTI_PATBLT MakeMessageId(PrimaryUpdate, MultiPatBlt)
+#define FREERDP_PRIMARY_UPDATE_MULTI_SCRBLT MakeMessageId(PrimaryUpdate, MultiScrBlt)
+#define FREERDP_PRIMARY_UPDATE_MULTI_OPAQUE_RECT MakeMessageId(PrimaryUpdate, MultiOpaqueRect)
+#define FREERDP_PRIMARY_UPDATE_MULTI_DRAW_NINE_GRID MakeMessageId(PrimaryUpdate, MultiDrawNineGrid)
+#define FREERDP_PRIMARY_UPDATE_LINE_TO MakeMessageId(PrimaryUpdate, LineTo)
+#define FREERDP_PRIMARY_UPDATE_POLYLINE MakeMessageId(PrimaryUpdate, Polyline)
+#define FREERDP_PRIMARY_UPDATE_MEMBLT MakeMessageId(PrimaryUpdate, MemBlt)
+#define FREERDP_PRIMARY_UPDATE_MEM3BLT MakeMessageId(PrimaryUpdate, Mem3Blt)
+#define FREERDP_PRIMARY_UPDATE_SAVE_BITMAP MakeMessageId(PrimaryUpdate, SaveBitmap)
+#define FREERDP_PRIMARY_UPDATE_GLYPH_INDEX MakeMessageId(PrimaryUpdate, GlyphIndex)
+#define FREERDP_PRIMARY_UPDATE_FAST_INDEX MakeMessageId(PrimaryUpdate, FastIndex)
+#define FREERDP_PRIMARY_UPDATE_FAST_GLYPH MakeMessageId(PrimaryUpdate, FastGlyph)
+#define FREERDP_PRIMARY_UPDATE_POLYGON_SC MakeMessageId(PrimaryUpdate, PolygonSC)
+#define FREERDP_PRIMARY_UPDATE_POLYGON_CB MakeMessageId(PrimaryUpdate, PolygonCB)
+#define FREERDP_PRIMARY_UPDATE_ELLIPSE_SC MakeMessageId(PrimaryUpdate, EllipseSC)
+#define FREERDP_PRIMARY_UPDATE_ELLIPSE_CB MakeMessageId(PrimaryUpdate, EllipseCB)
+
+/* Secondary Update */
+
+#define SecondaryUpdate_Class (Update_Base + 3)
+
+#define SecondaryUpdate_CacheBitmap 1
+#define SecondaryUpdate_CacheBitmapV2 2
+#define SecondaryUpdate_CacheBitmapV3 3
+#define SecondaryUpdate_CacheColorTable 4
+#define SecondaryUpdate_CacheGlyph 5
+#define SecondaryUpdate_CacheGlyphV2 6
+#define SecondaryUpdate_CacheBrush 7
+
+#define FREERDP_SECONDARY_UPDATE_CACHE_BITMAP MakeMessageId(SecondaryUpdate, CacheBitmap)
+#define FREERDP_SECONDARY_UPDATE_CACHE_BITMAP_V2 MakeMessageId(SecondaryUpdate, CacheBitmapV2)
+#define FREERDP_SECONDARY_UPDATE_CACHE_BITMAP_V3 MakeMessageId(SecondaryUpdate, CacheBitmapV3)
+#define FREERDP_SECONDARY_UPDATE_CACHE_COLOR_TABLE MakeMessageId(SecondaryUpdate, CacheColorTable)
+#define FREERDP_SECONDARY_UPDATE_CACHE_GLYPH MakeMessageId(SecondaryUpdate, CacheGlyph)
+#define FREERDP_SECONDARY_UPDATE_CACHE_GLYPH_V2 MakeMessageId(SecondaryUpdate, CacheGlyphV2)
+#define FREERDP_SECONDARY_UPDATE_CACHE_BRUSH MakeMessageId(SecondaryUpdate, CacheBrush)
+
+/* Alternate Secondary Update */
+
+#define AltSecUpdate_Class (Update_Base + 4)
+
+#define AltSecUpdate_CreateOffscreenBitmap 1
+#define AltSecUpdate_SwitchSurface 2
+#define AltSecUpdate_CreateNineGridBitmap 3
+#define AltSecUpdate_FrameMarker 4
+#define AltSecUpdate_StreamBitmapFirst 5
+#define AltSecUpdate_StreamBitmapNext 6
+#define AltSecUpdate_DrawGdiPlusFirst 7
+#define AltSecUpdate_DrawGdiPlusNext 8
+#define AltSecUpdate_DrawGdiPlusEnd 9
+#define AltSecUpdate_DrawGdiPlusCacheFirst 10
+#define AltSecUpdate_DrawGdiPlusCacheNext 11
+#define AltSecUpdate_DrawGdiPlusCacheEnd 12
+
+#define FREERDP_ALTSEC_UPDATE_CREATE_OFFSCREEN_BITMAP \
+ MakeMessageId(AltSecUpdate, CreateOffscreenBitmap)
+#define FREERDP_ALTSEC_UPDATE_SWITCH_SURFACE MakeMessageId(AltSecUpdate, SwitchSurface)
+#define FREERDP_ALTSEC_UPDATE_CREATE_NINE_GRID_BITMAP \
+ MakeMessageId(AltSecUpdate, CreateNineGridBitmap)
+#define FREERDP_ALTSEC_UPDATE_FRAME_MARKER MakeMessageId(AltSecUpdate, FrameMarker)
+#define FREERDP_ALTSEC_UPDATE_STREAM_BITMAP_FIRST MakeMessageId(AltSecUpdate, StreamBitmapFirst)
+#define FREERDP_ALTSEC_UPDATE_STREAM_BITMAP_NEXT MakeMessageId(AltSecUpdate, StreamBitmapNext)
+#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_FIRST MakeMessageId(AltSecUpdate, DrawGdiPlusFirst)
+#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_NEXT MakeMessageId(AltSecUpdate, DrawGdiPlusNext)
+#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_END MakeMessageId(AltSecUpdate, DrawGdiPlusEnd)
+#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_CACHE_FIRST \
+ MakeMessageId(AltSecUpdate, DrawGdiPlusCacheFirst)
+#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_CACHE_NEXT \
+ MakeMessageId(AltSecUpdate, DrawGdiPlusCacheNext)
+#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_CACHE_END \
+ MakeMessageId(AltSecUpdate, DrawGdiPlusCacheEnd)
+
+/* Window Update */
+
+#define WindowUpdate_Class (Update_Base + 5)
+
+#define WindowUpdate_WindowCreate 1
+#define WindowUpdate_WindowUpdate 2
+#define WindowUpdate_WindowIcon 3
+#define WindowUpdate_WindowCachedIcon 4
+#define WindowUpdate_WindowDelete 5
+#define WindowUpdate_NotifyIconCreate 6
+#define WindowUpdate_NotifyIconUpdate 7
+#define WindowUpdate_NotifyIconDelete 8
+#define WindowUpdate_MonitoredDesktop 9
+#define WindowUpdate_NonMonitoredDesktop 10
+
+#define FREERDP_WINDOW_UPDATE_WINDOW_CREATE MakeMessageId(WindowUpdate, WindowCreate)
+#define FREERDP_WINDOW_UPDATE_WINDOW_UPDATE MakeMessageId(WindowUpdate, WindowUpdate)
+#define FREERDP_WINDOW_UPDATE_WINDOW_ICON MakeMessageId(WindowUpdate, WindowIcon)
+#define FREERDP_WINDOW_UPDATE_WINDOW_CACHED_ICON MakeMessageId(WindowUpdate, WindowCachedIcon)
+#define FREERDP_WINDOW_UPDATE_WINDOW_DELETE MakeMessageId(WindowUpdate, WindowDelete)
+#define FREERDP_WINDOW_UPDATE_NOTIFY_ICON_CREATE MakeMessageId(WindowUpdate, NotifyIconCreate)
+#define FREERDP_WINDOW_UPDATE_NOTIFY_ICON_UPDATE MakeMessageId(WindowUpdate, NotifyIconUpdate)
+#define FREERDP_WINDOW_UPDATE_NOTIFY_ICON_DELETE MakeMessageId(WindowUpdate, NotifyIconDelete)
+#define FREERDP_WINDOW_UPDATE_MONITORED_DESKTOP MakeMessageId(WindowUpdate, MonitoredDesktop)
+#define FREERDP_WINDOW_UPDATE_NON_MONITORED_DESKTOP MakeMessageId(WindowUpdate, NonMonitoredDesktop)
+
+/* Pointer Update */
+
+#define PointerUpdate_Class (Update_Base + 6)
+
+#define PointerUpdate_PointerPosition 1
+#define PointerUpdate_PointerSystem 2
+#define PointerUpdate_PointerColor 3
+#define PointerUpdate_PointerNew 4
+#define PointerUpdate_PointerCached 5
+#define PointerUpdate_PointerLarge 6
+
+#define FREERDP_POINTER_UPDATE_ POINTER_POSITION MakeMessageId(PointerUpdate, PointerPosition)
+#define FREERDP_POINTER_UPDATE_POINTER_SYSTEM MakeMessageId(PointerUpdate, PointerSystem)
+#define FREERDP_POINTER_UPDATE_POINTER_COLOR MakeMessageId(PointerUpdate, PointerColor)
+#define FREERDP_POINTER_UPDATE_POINTER_NEW MakeMessageId(PointerUpdate, PointerNew)
+#define FREERDP_POINTER_UPDATE_POINTER_CACHED MakeMessageId(PointerUpdate, PointerCached)
+#define FREERDP_POINTER_UPDATE_POINTER_LARGE MakeMessageId(PointerUpdate, PointerLarge)
+
+/**
+ * Input Message Queue
+ */
+
+#define FREERDP_INPUT_MESSAGE_QUEUE 2
+
+#define Input_Base 16
+
+/* Input */
+
+#define Input_Class (Input_Base + 1)
+
+#define Input_SynchronizeEvent 1
+#define Input_KeyboardEvent 2
+#define Input_UnicodeKeyboardEvent 3
+#define Input_MouseEvent 4
+#define Input_ExtendedMouseEvent 5
+#define Input_FocusInEvent 6
+#define Input_KeyboardPauseEvent 7
+
+#define FREERDP_INPUT_SYNCHRONIZE_EVENT MakeMessageId(Input, SynchronizeEvent)
+#define FREERDP_INPUT_KEYBOARD_EVENT MakeMessageId(Input, KeyboardEvent)
+#define FREERDP_INPUT_UNICODE_KEYBOARD_EVENT MakeMessageId(Input, UnicodeKeyboardEvent)
+#define FREERDP_INPUT_MOUSE_EVENT MakeMessageId(Input, MouseEvent)
+#define FREERDP_INPUT_EXTENDED_MOUSE_EVENT MakeMessageId(Input, ExtendedMouseEvent)
+#define FREERDP_INPUT_FOCUS_IN_EVENT MakeMessageId(Input, FocusInEvent)
+#define FREERDP_INPUT_KEYBOARD_PAUSE_EVENT MakeMessageId(Input, KeyboardPauseEvent)
+
+/**
+ * Static Channel Message Queues
+ */
+
+#define FREERDP_CHANNEL_MESSAGE_QUEUE 3
+
+#define Channel_Base 20
+
+/**
+ * Debug Channel
+ */
+
+#define DebugChannel_Class (Channel_Base + 1)
+
+/**
+ * Clipboard Channel
+ */
+
+#define CliprdrChannel_Class (Channel_Base + 2)
+
+#define CliprdrChannel_MonitorReady 1
+#define CliprdrChannel_FormatList 2
+#define CliprdrChannel_DataRequest 3
+#define CliprdrChannel_DataResponse 4
+#define CliprdrChannel_ClipCaps 5
+#define CliprdrChannel_FilecontentsRequest 6
+#define CliprdrChannel_FilecontentsResponse 7
+#define CliprdrChannel_LockClipdata 8
+#define CliprdrChannel_UnLockClipdata 9
+#define CliprdrChannel_TemporaryDirectory 10
+
+#define FREERDP_CLIPRDR_CHANNEL_MONITOR_READY MakeMessageId(CliprdrChannel, MonitorReady)
+#define FREERDP_CLIPRDR_CHANNEL_FORMAT_LIST MakeMessageId(CliprdrChannel, FormatList)
+#define FREERDP_CLIPRDR_CHANNEL_DATA_REQUEST MakeMessageId(CliprdrChannel, DataRequest)
+#define FREERDP_CLIPRDR_CHANNEL_DATA_RESPONSE MakeMessageId(CliprdrChannel, DataResponse)
+#define FREERDP_CLIPRDR_CHANNEL_CLIP_CAPS MakeMessageId(CliprdrChannel, ClipCaps)
+
+/**
+ * Multimedia Redirection Channel
+ */
+
+#define TsmfChannel_Class (Channel_Base + 3)
+
+#define TsmfChannel_VideoFrame 1
+#define TsmfChannel_Redraw 2
+
+#define FREERDP_TSMF_CHANNEL_VIDEO_FRAME MakeMessageId(TsmfChannel, VideoFrame)
+#define FREERDP_TSMF_CHANNEL_REDRAW MakeMessageId(TsmfChannel, Redraw)
+
+/**
+ * RemoteApp Channel
+ */
+
+#define RailChannel_Class (Channel_Base + 4)
+
+#define RailChannel_ClientExecute 1
+#define RailChannel_ClientActivate 2
+#define RailChannel_GetSystemParam 3
+#define RailChannel_ClientSystemParam 4
+#define RailChannel_ServerSystemParam 5
+#define RailChannel_ClientSystemCommand 6
+#define RailChannel_ClientHandshake 7
+#define RailChannel_ServerHandshake 8
+#define RailChannel_ClientNotifyEvent 9
+#define RailChannel_ClientWindowMove 10
+#define RailChannel_ServerLocalMoveSize 11
+#define RailChannel_ServerMinMaxInfo 12
+#define RailChannel_ClientInformation 13
+#define RailChannel_ClientSystemMenu 14
+#define RailChannel_ClientLanguageBarInfo 15
+#define RailChannel_ServerLanguageBarInfo 16
+#define RailChannel_ServerExecuteResult 17
+#define RailChannel_ClientGetAppIdRequest 18
+#define RailChannel_ServerGetAppIdResponse 19
+#define RailChannel_ClientHandshakeEx 20
+#define RailChannel_ServerHandshakeEx 21
+
+#define FREERDP_RAIL_CHANNEL_CLIENT_EXECUTE MakeMessageId(RailChannel, ClientExecute)
+#define FREERDP_RAIL_CHANNEL_CLIENT_ACTIVATE MakeMessageId(RailChannel, ClientActivate)
+#define FREERDP_RAIL_CHANNEL_GET_SYSTEM_PARAM MakeMessageId(RailChannel, GetSystemParam)
+#define FREERDP_RAIL_CHANNEL_CLIENT_SYSTEM_PARAM MakeMessageId(RailChannel, ClientSystemParam)
+#define FREERDP_RAIL_CHANNEL_SERVER_SYSTEM_PARAM MakeMessageId(RailChannel, ClientSystemParam)
+#define FREERDP_RAIL_CHANNEL_CLIENT_SYSTEM_COMMAND MakeMessageId(RailChannel, ClientSystemCommand)
+#define FREERDP_RAIL_CHANNEL_CLIENT_HANDSHAKE MakeMessageId(RailChannel, ClientHandshake)
+#define FREERDP_RAIL_CHANNEL_SERVER_HANDSHAKE MakeMessageId(RailChannel, ServerHandshake)
+#define FREERDP_RAIL_CHANNEL_CLIENT_NOTIFY_EVENT MakeMessageId(RailChannel, ClientNotifyEvent)
+#define FREERDP_RAIL_CHANNEL_CLIENT_WINDOW_MOVE MakeMessageId(RailChannel, ClientWindowMove)
+#define FREERDP_RAIL_CHANNEL_SERVER_LOCAL_MOVE_SIZE MakeMessageId(RailChannel, ServerLocalMoveSize)
+#define FREERDP_RAIL_CHANNEL_SERVER_MIN_MAX_INFO MakeMessageId(RailChannel, ServerMinMaxInfo)
+#define FREERDP_RAIL_CHANNEL_CLIENT_INFORMATION MakeMessageId(RailChannel, ClientInformation)
+#define FREERDP_RAIL_CHANNEL_CLIENT_SYSTEM_MENU MakeMessageId(RailChannel, ClientSystemMenu)
+#define FREERDP_RAIL_CHANNEL_CLIENT_LANGUAGE_BAR_INFO \
+ MakeMessageId(RailChannel, ClientLanguageBarInfo)
+#define FREERDP_RAIL_CHANNEL_SERVER_LANGUAGE_BAR_INFO \
+ MakeMessageId(RailChannel, ServerLanguageBarInfo)
+#define FREERDP_RAIL_CHANNEL_SERVER_EXECUTE_RESULT MakeMessageId(RailChannel, ServerExecuteResult)
+#define FREERDP_RAIL_CHANNEL_CLIENT_GET_APP_ID_REQUEST \
+ MakeMessageId(RailChannel, ClientGetAppIdRequest)
+#define FREERDP_RAIL_CHANNEL_SERVER_GET_APP_ID_RESPONSE \
+ MakeMessageId(RailChannel, ServerGetAppIdResponse)
+#define FREERDP_RAIL_CHANNEL_CLIENT_HANDSHAKE_EX MakeMessageId(RailChannel, ClientHandshakeEx)
+#define FREERDP_RAIL_CHANNEL_SERVER_HANDSHAKE_EX MakeMessageId(RailChannel, ServerHandshakeEx)
+
+/**
+ * MultiTouch Input Channel Extension (MS-RDPEDI)
+ */
+
+#define RdpeiChannel_Class (Channel_Base + 5)
+
+#define RdpeiChannel_ServerReady 1
+#define RdpeiChannel_ClientReady 2
+#define RdpeiChannel_TouchEvent 3
+#define RdpeiChannel_SuspendTouch 4
+#define RdpeiChannel_ResumeTouch 5
+#define RdpeiChannel_DismissHoveringContact 6
+
+#define FREERDP_RDPEI_CHANNEL_SERVER_READY MakeMessageId(RdpeiChannel, ServerReady)
+#define FREERDP_RDPEI_CHANNEL_CLIENT_READY MakeMessageId(RdpeiChannel, ClientReady)
+#define FREERDP_RDPEI_CHANNEL_TOUCH_EVENT MakeMessageId(RdpeiChannel, TouchEvent)
+#define FREERDP_RDPEI_CHANNEL_SUSPEND_TOUCH MakeMessageId(RdpeiChannel, SuspendTouch)
+#define FREERDP_RDPEI_CHANNEL_RESUME_TOUCH MakeMessageId(RdpeiChannel, ResumeTouch)
+#define FREERDP_RDPEI_CHANNEL_DISMISS_HOVERING_CONTACT \
+ MakeMessageId(RdpeiChannel, DismissHoveringContact)
+
+#endif /* FREERDP_MESSAGE_H */