cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

message.h (16590B)


      1/**
      2 * FreeRDP: A Remote Desktop Protocol Implementation
      3 * Asynchronous Message Interface
      4 *
      5 * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
      6 *
      7 * Licensed under the Apache License, Version 2.0 (the "License");
      8 * you may not use this file except in compliance with the License.
      9 * You may obtain a copy of the License at
     10 *
     11 *     http://www.apache.org/licenses/LICENSE-2.0
     12 *
     13 * Unless required by applicable law or agreed to in writing, software
     14 * distributed under the License is distributed on an "AS IS" BASIS,
     15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 * See the License for the specific language governing permissions and
     17 * limitations under the License.
     18 */
     19
     20#ifndef FREERDP_CORE_MESSAGE_H
     21#define FREERDP_CORE_MESSAGE_H
     22
     23#define GetMessageType(_id) (_id & 0xFF)
     24#define GetMessageClass(_id) ((_id >> 16) & 0xFF)
     25
     26#define GetMessageId(_class, _type) ((_class << 16) | _type)
     27
     28#define MakeMessageId(_class, _type) (((_class##_Class) << 16) | (_class##_##_type))
     29
     30/**
     31 * Update Message Queue
     32 */
     33
     34#define FREERDP_UPDATE_MESSAGE_QUEUE 1
     35
     36#define Update_Base 0
     37
     38/* Update */
     39
     40#define Update_Class (Update_Base + 1)
     41
     42#define Update_BeginPaint 1
     43#define Update_EndPaint 2
     44#define Update_SetBounds 3
     45#define Update_Synchronize 4
     46#define Update_DesktopResize 5
     47#define Update_BitmapUpdate 6
     48#define Update_Palette 7
     49#define Update_PlaySound 8
     50#define Update_RefreshRect 9
     51#define Update_SuppressOutput 10
     52#define Update_SurfaceCommand 11
     53#define Update_SurfaceBits 12
     54#define Update_SurfaceFrameMarker 13
     55#define Update_SurfaceFrameAcknowledge 14
     56#define Update_SetKeyboardIndicators 15
     57#define Update_SetKeyboardImeStatus 16
     58
     59#define FREERDP_UPDATE_BEGIN_PAINT MakeMessageId(Update, BeginPaint)
     60#define FREERDP_UPDATE_ END_PAINT MakeMessageId(Update, EndPaint)
     61#define FREERDP_UPDATE_SET_BOUNDS MakeMessageId(Update, SetBounds)
     62#define FREERDP_UPDATE_SYNCHRONIZE MakeMessageId(Update, Synchronize)
     63#define FREERDP_UPDATE_DESKTOP_RESIZE MakeMessageId(Update, DesktopResize)
     64#define FREERDP_UPDATE_BITMAP_UPDATE MakeMessageId(Update, BitmapUpdate)
     65#define FREERDP_UPDATE_PALETTE MakeMessageId(Update, Palette)
     66#define FREERDP_UPDATE_PLAY_SOUND MakeMessageId(Update, PlaySound)
     67#define FREERDP_UPDATE_REFRESH_RECT MakeMessageId(Update, RefreshRect)
     68#define FREERDP_UPDATE_SUPPRESS_OUTPUT MakeMessageId(Update, SuppressOutput)
     69#define FREERDP_UPDATE_SURFACE_COMMAND MakeMessageId(Update, SurfaceCommand)
     70#define FREERDP_UPDATE_SURFACE_BITS MakeMessageId(Update, SurfaceBits)
     71#define FREERDP_UPDATE_SURFACE_FRAME_MARKER MakeMessageId(Update, SurfaceFrameMarker)
     72#define FREERDP_UPDATE_SURFACE_FRAME_ACKNOWLEDGE MakeMessageId(Update, SurfaceFrameAcknowledge)
     73#define FREERDP_UPDATE_SET_KEYBOARD_INDICATORS MakeMessageId(Update, SetKeyboardIndicators)
     74
     75/* Primary Update */
     76
     77#define PrimaryUpdate_Class (Update_Base + 2)
     78
     79#define PrimaryUpdate_DstBlt 1
     80#define PrimaryUpdate_PatBlt 2
     81#define PrimaryUpdate_ScrBlt 3
     82#define PrimaryUpdate_OpaqueRect 4
     83#define PrimaryUpdate_DrawNineGrid 5
     84#define PrimaryUpdate_MultiDstBlt 6
     85#define PrimaryUpdate_MultiPatBlt 7
     86#define PrimaryUpdate_MultiScrBlt 8
     87#define PrimaryUpdate_MultiOpaqueRect 9
     88#define PrimaryUpdate_MultiDrawNineGrid 10
     89#define PrimaryUpdate_LineTo 11
     90#define PrimaryUpdate_Polyline 12
     91#define PrimaryUpdate_MemBlt 13
     92#define PrimaryUpdate_Mem3Blt 14
     93#define PrimaryUpdate_SaveBitmap 15
     94#define PrimaryUpdate_GlyphIndex 16
     95#define PrimaryUpdate_FastIndex 17
     96#define PrimaryUpdate_FastGlyph 18
     97#define PrimaryUpdate_PolygonSC 19
     98#define PrimaryUpdate_PolygonCB 20
     99#define PrimaryUpdate_EllipseSC 21
    100#define PrimaryUpdate_EllipseCB 22
    101
    102#define FREERDP_PRIMARY_UPDATE_DSTBLT MakeMessageId(PrimaryUpdate, DstBlt)
    103#define FREERDP_PRIMARY_UPDATE_PATBLT MakeMessageId(PrimaryUpdate, PatBlt)
    104#define FREERDP_PRIMARY_UPDATE_SCRBLT MakeMessageId(PrimaryUpdate, ScrBlt)
    105#define FREERDP_PRIMARY_UPDATE_OPAQUE_RECT MakeMessageId(PrimaryUpdate, OpaqueRect)
    106#define FREERDP_PRIMARY_UPDATE_DRAW_NINE_GRID MakeMessageId(PrimaryUpdate, DrawNineGrid)
    107#define FREERDP_PRIMARY_UPDATE_MULTI_DSTBLT MakeMessageId(PrimaryUpdate, MultiDstBlt)
    108#define FREERDP_PRIMARY_UPDATE_MULTI_PATBLT MakeMessageId(PrimaryUpdate, MultiPatBlt)
    109#define FREERDP_PRIMARY_UPDATE_MULTI_SCRBLT MakeMessageId(PrimaryUpdate, MultiScrBlt)
    110#define FREERDP_PRIMARY_UPDATE_MULTI_OPAQUE_RECT MakeMessageId(PrimaryUpdate, MultiOpaqueRect)
    111#define FREERDP_PRIMARY_UPDATE_MULTI_DRAW_NINE_GRID MakeMessageId(PrimaryUpdate, MultiDrawNineGrid)
    112#define FREERDP_PRIMARY_UPDATE_LINE_TO MakeMessageId(PrimaryUpdate, LineTo)
    113#define FREERDP_PRIMARY_UPDATE_POLYLINE MakeMessageId(PrimaryUpdate, Polyline)
    114#define FREERDP_PRIMARY_UPDATE_MEMBLT MakeMessageId(PrimaryUpdate, MemBlt)
    115#define FREERDP_PRIMARY_UPDATE_MEM3BLT MakeMessageId(PrimaryUpdate, Mem3Blt)
    116#define FREERDP_PRIMARY_UPDATE_SAVE_BITMAP MakeMessageId(PrimaryUpdate, SaveBitmap)
    117#define FREERDP_PRIMARY_UPDATE_GLYPH_INDEX MakeMessageId(PrimaryUpdate, GlyphIndex)
    118#define FREERDP_PRIMARY_UPDATE_FAST_INDEX MakeMessageId(PrimaryUpdate, FastIndex)
    119#define FREERDP_PRIMARY_UPDATE_FAST_GLYPH MakeMessageId(PrimaryUpdate, FastGlyph)
    120#define FREERDP_PRIMARY_UPDATE_POLYGON_SC MakeMessageId(PrimaryUpdate, PolygonSC)
    121#define FREERDP_PRIMARY_UPDATE_POLYGON_CB MakeMessageId(PrimaryUpdate, PolygonCB)
    122#define FREERDP_PRIMARY_UPDATE_ELLIPSE_SC MakeMessageId(PrimaryUpdate, EllipseSC)
    123#define FREERDP_PRIMARY_UPDATE_ELLIPSE_CB MakeMessageId(PrimaryUpdate, EllipseCB)
    124
    125/* Secondary Update */
    126
    127#define SecondaryUpdate_Class (Update_Base + 3)
    128
    129#define SecondaryUpdate_CacheBitmap 1
    130#define SecondaryUpdate_CacheBitmapV2 2
    131#define SecondaryUpdate_CacheBitmapV3 3
    132#define SecondaryUpdate_CacheColorTable 4
    133#define SecondaryUpdate_CacheGlyph 5
    134#define SecondaryUpdate_CacheGlyphV2 6
    135#define SecondaryUpdate_CacheBrush 7
    136
    137#define FREERDP_SECONDARY_UPDATE_CACHE_BITMAP MakeMessageId(SecondaryUpdate, CacheBitmap)
    138#define FREERDP_SECONDARY_UPDATE_CACHE_BITMAP_V2 MakeMessageId(SecondaryUpdate, CacheBitmapV2)
    139#define FREERDP_SECONDARY_UPDATE_CACHE_BITMAP_V3 MakeMessageId(SecondaryUpdate, CacheBitmapV3)
    140#define FREERDP_SECONDARY_UPDATE_CACHE_COLOR_TABLE MakeMessageId(SecondaryUpdate, CacheColorTable)
    141#define FREERDP_SECONDARY_UPDATE_CACHE_GLYPH MakeMessageId(SecondaryUpdate, CacheGlyph)
    142#define FREERDP_SECONDARY_UPDATE_CACHE_GLYPH_V2 MakeMessageId(SecondaryUpdate, CacheGlyphV2)
    143#define FREERDP_SECONDARY_UPDATE_CACHE_BRUSH MakeMessageId(SecondaryUpdate, CacheBrush)
    144
    145/* Alternate Secondary Update */
    146
    147#define AltSecUpdate_Class (Update_Base + 4)
    148
    149#define AltSecUpdate_CreateOffscreenBitmap 1
    150#define AltSecUpdate_SwitchSurface 2
    151#define AltSecUpdate_CreateNineGridBitmap 3
    152#define AltSecUpdate_FrameMarker 4
    153#define AltSecUpdate_StreamBitmapFirst 5
    154#define AltSecUpdate_StreamBitmapNext 6
    155#define AltSecUpdate_DrawGdiPlusFirst 7
    156#define AltSecUpdate_DrawGdiPlusNext 8
    157#define AltSecUpdate_DrawGdiPlusEnd 9
    158#define AltSecUpdate_DrawGdiPlusCacheFirst 10
    159#define AltSecUpdate_DrawGdiPlusCacheNext 11
    160#define AltSecUpdate_DrawGdiPlusCacheEnd 12
    161
    162#define FREERDP_ALTSEC_UPDATE_CREATE_OFFSCREEN_BITMAP \
    163	MakeMessageId(AltSecUpdate, CreateOffscreenBitmap)
    164#define FREERDP_ALTSEC_UPDATE_SWITCH_SURFACE MakeMessageId(AltSecUpdate, SwitchSurface)
    165#define FREERDP_ALTSEC_UPDATE_CREATE_NINE_GRID_BITMAP \
    166	MakeMessageId(AltSecUpdate, CreateNineGridBitmap)
    167#define FREERDP_ALTSEC_UPDATE_FRAME_MARKER MakeMessageId(AltSecUpdate, FrameMarker)
    168#define FREERDP_ALTSEC_UPDATE_STREAM_BITMAP_FIRST MakeMessageId(AltSecUpdate, StreamBitmapFirst)
    169#define FREERDP_ALTSEC_UPDATE_STREAM_BITMAP_NEXT MakeMessageId(AltSecUpdate, StreamBitmapNext)
    170#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_FIRST MakeMessageId(AltSecUpdate, DrawGdiPlusFirst)
    171#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_NEXT MakeMessageId(AltSecUpdate, DrawGdiPlusNext)
    172#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_END MakeMessageId(AltSecUpdate, DrawGdiPlusEnd)
    173#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_CACHE_FIRST \
    174	MakeMessageId(AltSecUpdate, DrawGdiPlusCacheFirst)
    175#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_CACHE_NEXT \
    176	MakeMessageId(AltSecUpdate, DrawGdiPlusCacheNext)
    177#define FREERDP_ALTSEC_UPDATE_DRAW_GDI_PLUS_CACHE_END \
    178	MakeMessageId(AltSecUpdate, DrawGdiPlusCacheEnd)
    179
    180/* Window Update */
    181
    182#define WindowUpdate_Class (Update_Base + 5)
    183
    184#define WindowUpdate_WindowCreate 1
    185#define WindowUpdate_WindowUpdate 2
    186#define WindowUpdate_WindowIcon 3
    187#define WindowUpdate_WindowCachedIcon 4
    188#define WindowUpdate_WindowDelete 5
    189#define WindowUpdate_NotifyIconCreate 6
    190#define WindowUpdate_NotifyIconUpdate 7
    191#define WindowUpdate_NotifyIconDelete 8
    192#define WindowUpdate_MonitoredDesktop 9
    193#define WindowUpdate_NonMonitoredDesktop 10
    194
    195#define FREERDP_WINDOW_UPDATE_WINDOW_CREATE MakeMessageId(WindowUpdate, WindowCreate)
    196#define FREERDP_WINDOW_UPDATE_WINDOW_UPDATE MakeMessageId(WindowUpdate, WindowUpdate)
    197#define FREERDP_WINDOW_UPDATE_WINDOW_ICON MakeMessageId(WindowUpdate, WindowIcon)
    198#define FREERDP_WINDOW_UPDATE_WINDOW_CACHED_ICON MakeMessageId(WindowUpdate, WindowCachedIcon)
    199#define FREERDP_WINDOW_UPDATE_WINDOW_DELETE MakeMessageId(WindowUpdate, WindowDelete)
    200#define FREERDP_WINDOW_UPDATE_NOTIFY_ICON_CREATE MakeMessageId(WindowUpdate, NotifyIconCreate)
    201#define FREERDP_WINDOW_UPDATE_NOTIFY_ICON_UPDATE MakeMessageId(WindowUpdate, NotifyIconUpdate)
    202#define FREERDP_WINDOW_UPDATE_NOTIFY_ICON_DELETE MakeMessageId(WindowUpdate, NotifyIconDelete)
    203#define FREERDP_WINDOW_UPDATE_MONITORED_DESKTOP MakeMessageId(WindowUpdate, MonitoredDesktop)
    204#define FREERDP_WINDOW_UPDATE_NON_MONITORED_DESKTOP MakeMessageId(WindowUpdate, NonMonitoredDesktop)
    205
    206/* Pointer Update */
    207
    208#define PointerUpdate_Class (Update_Base + 6)
    209
    210#define PointerUpdate_PointerPosition 1
    211#define PointerUpdate_PointerSystem 2
    212#define PointerUpdate_PointerColor 3
    213#define PointerUpdate_PointerNew 4
    214#define PointerUpdate_PointerCached 5
    215#define PointerUpdate_PointerLarge 6
    216
    217#define FREERDP_POINTER_UPDATE_ POINTER_POSITION MakeMessageId(PointerUpdate, PointerPosition)
    218#define FREERDP_POINTER_UPDATE_POINTER_SYSTEM MakeMessageId(PointerUpdate, PointerSystem)
    219#define FREERDP_POINTER_UPDATE_POINTER_COLOR MakeMessageId(PointerUpdate, PointerColor)
    220#define FREERDP_POINTER_UPDATE_POINTER_NEW MakeMessageId(PointerUpdate, PointerNew)
    221#define FREERDP_POINTER_UPDATE_POINTER_CACHED MakeMessageId(PointerUpdate, PointerCached)
    222#define FREERDP_POINTER_UPDATE_POINTER_LARGE MakeMessageId(PointerUpdate, PointerLarge)
    223
    224/**
    225 * Input Message Queue
    226 */
    227
    228#define FREERDP_INPUT_MESSAGE_QUEUE 2
    229
    230#define Input_Base 16
    231
    232/* Input */
    233
    234#define Input_Class (Input_Base + 1)
    235
    236#define Input_SynchronizeEvent 1
    237#define Input_KeyboardEvent 2
    238#define Input_UnicodeKeyboardEvent 3
    239#define Input_MouseEvent 4
    240#define Input_ExtendedMouseEvent 5
    241#define Input_FocusInEvent 6
    242#define Input_KeyboardPauseEvent 7
    243
    244#define FREERDP_INPUT_SYNCHRONIZE_EVENT MakeMessageId(Input, SynchronizeEvent)
    245#define FREERDP_INPUT_KEYBOARD_EVENT MakeMessageId(Input, KeyboardEvent)
    246#define FREERDP_INPUT_UNICODE_KEYBOARD_EVENT MakeMessageId(Input, UnicodeKeyboardEvent)
    247#define FREERDP_INPUT_MOUSE_EVENT MakeMessageId(Input, MouseEvent)
    248#define FREERDP_INPUT_EXTENDED_MOUSE_EVENT MakeMessageId(Input, ExtendedMouseEvent)
    249#define FREERDP_INPUT_FOCUS_IN_EVENT MakeMessageId(Input, FocusInEvent)
    250#define FREERDP_INPUT_KEYBOARD_PAUSE_EVENT MakeMessageId(Input, KeyboardPauseEvent)
    251
    252/**
    253 * Static Channel Message Queues
    254 */
    255
    256#define FREERDP_CHANNEL_MESSAGE_QUEUE 3
    257
    258#define Channel_Base 20
    259
    260/**
    261 * Debug Channel
    262 */
    263
    264#define DebugChannel_Class (Channel_Base + 1)
    265
    266/**
    267 * Clipboard Channel
    268 */
    269
    270#define CliprdrChannel_Class (Channel_Base + 2)
    271
    272#define CliprdrChannel_MonitorReady 1
    273#define CliprdrChannel_FormatList 2
    274#define CliprdrChannel_DataRequest 3
    275#define CliprdrChannel_DataResponse 4
    276#define CliprdrChannel_ClipCaps 5
    277#define CliprdrChannel_FilecontentsRequest 6
    278#define CliprdrChannel_FilecontentsResponse 7
    279#define CliprdrChannel_LockClipdata 8
    280#define CliprdrChannel_UnLockClipdata 9
    281#define CliprdrChannel_TemporaryDirectory 10
    282
    283#define FREERDP_CLIPRDR_CHANNEL_MONITOR_READY MakeMessageId(CliprdrChannel, MonitorReady)
    284#define FREERDP_CLIPRDR_CHANNEL_FORMAT_LIST MakeMessageId(CliprdrChannel, FormatList)
    285#define FREERDP_CLIPRDR_CHANNEL_DATA_REQUEST MakeMessageId(CliprdrChannel, DataRequest)
    286#define FREERDP_CLIPRDR_CHANNEL_DATA_RESPONSE MakeMessageId(CliprdrChannel, DataResponse)
    287#define FREERDP_CLIPRDR_CHANNEL_CLIP_CAPS MakeMessageId(CliprdrChannel, ClipCaps)
    288
    289/**
    290 * Multimedia Redirection Channel
    291 */
    292
    293#define TsmfChannel_Class (Channel_Base + 3)
    294
    295#define TsmfChannel_VideoFrame 1
    296#define TsmfChannel_Redraw 2
    297
    298#define FREERDP_TSMF_CHANNEL_VIDEO_FRAME MakeMessageId(TsmfChannel, VideoFrame)
    299#define FREERDP_TSMF_CHANNEL_REDRAW MakeMessageId(TsmfChannel, Redraw)
    300
    301/**
    302 * RemoteApp Channel
    303 */
    304
    305#define RailChannel_Class (Channel_Base + 4)
    306
    307#define RailChannel_ClientExecute 1
    308#define RailChannel_ClientActivate 2
    309#define RailChannel_GetSystemParam 3
    310#define RailChannel_ClientSystemParam 4
    311#define RailChannel_ServerSystemParam 5
    312#define RailChannel_ClientSystemCommand 6
    313#define RailChannel_ClientHandshake 7
    314#define RailChannel_ServerHandshake 8
    315#define RailChannel_ClientNotifyEvent 9
    316#define RailChannel_ClientWindowMove 10
    317#define RailChannel_ServerLocalMoveSize 11
    318#define RailChannel_ServerMinMaxInfo 12
    319#define RailChannel_ClientInformation 13
    320#define RailChannel_ClientSystemMenu 14
    321#define RailChannel_ClientLanguageBarInfo 15
    322#define RailChannel_ServerLanguageBarInfo 16
    323#define RailChannel_ServerExecuteResult 17
    324#define RailChannel_ClientGetAppIdRequest 18
    325#define RailChannel_ServerGetAppIdResponse 19
    326#define RailChannel_ClientHandshakeEx 20
    327#define RailChannel_ServerHandshakeEx 21
    328
    329#define FREERDP_RAIL_CHANNEL_CLIENT_EXECUTE MakeMessageId(RailChannel, ClientExecute)
    330#define FREERDP_RAIL_CHANNEL_CLIENT_ACTIVATE MakeMessageId(RailChannel, ClientActivate)
    331#define FREERDP_RAIL_CHANNEL_GET_SYSTEM_PARAM MakeMessageId(RailChannel, GetSystemParam)
    332#define FREERDP_RAIL_CHANNEL_CLIENT_SYSTEM_PARAM MakeMessageId(RailChannel, ClientSystemParam)
    333#define FREERDP_RAIL_CHANNEL_SERVER_SYSTEM_PARAM MakeMessageId(RailChannel, ClientSystemParam)
    334#define FREERDP_RAIL_CHANNEL_CLIENT_SYSTEM_COMMAND MakeMessageId(RailChannel, ClientSystemCommand)
    335#define FREERDP_RAIL_CHANNEL_CLIENT_HANDSHAKE MakeMessageId(RailChannel, ClientHandshake)
    336#define FREERDP_RAIL_CHANNEL_SERVER_HANDSHAKE MakeMessageId(RailChannel, ServerHandshake)
    337#define FREERDP_RAIL_CHANNEL_CLIENT_NOTIFY_EVENT MakeMessageId(RailChannel, ClientNotifyEvent)
    338#define FREERDP_RAIL_CHANNEL_CLIENT_WINDOW_MOVE MakeMessageId(RailChannel, ClientWindowMove)
    339#define FREERDP_RAIL_CHANNEL_SERVER_LOCAL_MOVE_SIZE MakeMessageId(RailChannel, ServerLocalMoveSize)
    340#define FREERDP_RAIL_CHANNEL_SERVER_MIN_MAX_INFO MakeMessageId(RailChannel, ServerMinMaxInfo)
    341#define FREERDP_RAIL_CHANNEL_CLIENT_INFORMATION MakeMessageId(RailChannel, ClientInformation)
    342#define FREERDP_RAIL_CHANNEL_CLIENT_SYSTEM_MENU MakeMessageId(RailChannel, ClientSystemMenu)
    343#define FREERDP_RAIL_CHANNEL_CLIENT_LANGUAGE_BAR_INFO \
    344	MakeMessageId(RailChannel, ClientLanguageBarInfo)
    345#define FREERDP_RAIL_CHANNEL_SERVER_LANGUAGE_BAR_INFO \
    346	MakeMessageId(RailChannel, ServerLanguageBarInfo)
    347#define FREERDP_RAIL_CHANNEL_SERVER_EXECUTE_RESULT MakeMessageId(RailChannel, ServerExecuteResult)
    348#define FREERDP_RAIL_CHANNEL_CLIENT_GET_APP_ID_REQUEST \
    349	MakeMessageId(RailChannel, ClientGetAppIdRequest)
    350#define FREERDP_RAIL_CHANNEL_SERVER_GET_APP_ID_RESPONSE \
    351	MakeMessageId(RailChannel, ServerGetAppIdResponse)
    352#define FREERDP_RAIL_CHANNEL_CLIENT_HANDSHAKE_EX MakeMessageId(RailChannel, ClientHandshakeEx)
    353#define FREERDP_RAIL_CHANNEL_SERVER_HANDSHAKE_EX MakeMessageId(RailChannel, ServerHandshakeEx)
    354
    355/**
    356 * MultiTouch Input Channel Extension (MS-RDPEDI)
    357 */
    358
    359#define RdpeiChannel_Class (Channel_Base + 5)
    360
    361#define RdpeiChannel_ServerReady 1
    362#define RdpeiChannel_ClientReady 2
    363#define RdpeiChannel_TouchEvent 3
    364#define RdpeiChannel_SuspendTouch 4
    365#define RdpeiChannel_ResumeTouch 5
    366#define RdpeiChannel_DismissHoveringContact 6
    367
    368#define FREERDP_RDPEI_CHANNEL_SERVER_READY MakeMessageId(RdpeiChannel, ServerReady)
    369#define FREERDP_RDPEI_CHANNEL_CLIENT_READY MakeMessageId(RdpeiChannel, ClientReady)
    370#define FREERDP_RDPEI_CHANNEL_TOUCH_EVENT MakeMessageId(RdpeiChannel, TouchEvent)
    371#define FREERDP_RDPEI_CHANNEL_SUSPEND_TOUCH MakeMessageId(RdpeiChannel, SuspendTouch)
    372#define FREERDP_RDPEI_CHANNEL_RESUME_TOUCH MakeMessageId(RdpeiChannel, ResumeTouch)
    373#define FREERDP_RDPEI_CHANNEL_DISMISS_HOVERING_CONTACT \
    374	MakeMessageId(RdpeiChannel, DismissHoveringContact)
    375
    376#endif /* FREERDP_CORE_MESSAGE_H */