20 #ifndef FREERDP_CHANNEL_RAIL_SERVER_RAIL_H
21 #define FREERDP_CHANNEL_RAIL_SERVER_RAIL_H
23 #include <freerdp/api.h>
24 #include <freerdp/types.h>
26 #include <freerdp/rail.h>
27 #include <freerdp/channels/rail.h>
37 typedef UINT (*psRailStart)(RailServerContext* context);
38 typedef BOOL (*psRailStop)(RailServerContext* context);
41 typedef UINT (*psRailClientHandshake)(RailServerContext* context,
43 typedef UINT (*psRailClientClientStatus)(RailServerContext* context,
45 typedef UINT (*psRailClientExec)(RailServerContext* context,
const RAIL_EXEC_ORDER* exec);
46 typedef UINT (*psRailClientSysparam)(RailServerContext* context,
48 typedef UINT (*psRailClientActivate)(RailServerContext* context,
50 typedef UINT (*psRailClientSysmenu)(RailServerContext* context,
52 typedef UINT (*psRailClientSyscommand)(RailServerContext* context,
54 typedef UINT (*psRailClientNotifyEvent)(RailServerContext* context,
56 typedef UINT (*psRailClientGetAppidReq)(RailServerContext* context,
58 typedef UINT (*psRailClientWindowMove)(RailServerContext* context,
60 typedef UINT (*psRailClientSnapArrange)(RailServerContext* context,
62 typedef UINT (*psRailClientLangbarInfo)(RailServerContext* context,
64 typedef UINT (*psRailClientLanguageImeInfo)(RailServerContext* context,
66 typedef UINT (*psRailClientCompartmentInfo)(RailServerContext* context,
68 typedef UINT (*psRailClientCloak)(RailServerContext* context,
const RAIL_CLOAK* cloak);
69 typedef UINT (*psRailClientTextScale)(RailServerContext* context, UINT32 TextScale);
70 typedef UINT (*psRailClientCaretBlinkRate)(RailServerContext* context, UINT32 CaretBlinkRate);
73 typedef UINT (*psRailServerHandshake)(RailServerContext* context,
75 typedef UINT (*psRailServerHandshakeEx)(RailServerContext* context,
77 typedef UINT (*psRailServerSysparam)(RailServerContext* context,
79 typedef UINT (*psRailServerLocalMoveSize)(RailServerContext* context,
81 typedef UINT (*psRailServerMinMaxInfo)(RailServerContext* context,
83 typedef UINT (*psRailServerTaskbarInfo)(RailServerContext* context,
85 typedef UINT (*psRailServerLangbarInfo)(RailServerContext* context,
87 typedef UINT (*psRailServerExecResult)(RailServerContext* context,
89 typedef UINT (*psRailServerGetAppidResp)(RailServerContext* context,
91 typedef UINT (*psRailServerZOrderSync)(RailServerContext* context,
93 typedef UINT (*psRailServerCloak)(RailServerContext* context,
const RAIL_CLOAK* cloak);
94 typedef UINT (*psRailServerPowerDisplayRequest)(
96 typedef UINT (*psRailServerGetAppidRespEx)(RailServerContext* context,
108 psRailClientHandshake ClientHandshake;
109 psRailClientClientStatus ClientClientStatus;
110 psRailClientExec ClientExec;
111 psRailClientSysparam ClientSysparam;
112 psRailClientActivate ClientActivate;
113 psRailClientSysmenu ClientSysmenu;
114 psRailClientSyscommand ClientSyscommand;
115 psRailClientNotifyEvent ClientNotifyEvent;
116 psRailClientGetAppidReq ClientGetAppidReq;
117 psRailClientWindowMove ClientWindowMove;
118 psRailClientSnapArrange ClientSnapArrange;
119 psRailClientLangbarInfo ClientLangbarInfo;
120 psRailClientLanguageImeInfo ClientLanguageImeInfo;
121 psRailClientCompartmentInfo ClientCompartmentInfo;
122 psRailClientCloak ClientCloak;
123 psRailClientTextScale ClientTextScale;
124 psRailClientCaretBlinkRate ClientCaretBlinkRate;
127 psRailServerHandshake ServerHandshake;
128 psRailServerHandshakeEx ServerHandshakeEx;
129 psRailServerSysparam ServerSysparam;
130 psRailServerLocalMoveSize ServerLocalMoveSize;
131 psRailServerMinMaxInfo ServerMinMaxInfo;
132 psRailServerTaskbarInfo ServerTaskbarInfo;
133 psRailServerLangbarInfo ServerLangbarInfo;
134 psRailServerExecResult ServerExecResult;
135 psRailServerZOrderSync ServerZOrderSync;
136 psRailServerCloak ServerCloak;
137 psRailServerPowerDisplayRequest ServerPowerDisplayRequest;
138 psRailServerGetAppidResp ServerGetAppidResp;
139 psRailServerGetAppidRespEx ServerGetAppidRespEx;
141 RailServerPrivate* priv;
142 rdpContext* rdpcontext;
145 FREERDP_API
void rail_server_context_free(RailServerContext* context);
147 WINPR_ATTR_MALLOC(rail_server_context_free, 1)
148 FREERDP_API RailServerContext* rail_server_context_new(HANDLE vcm);
150 FREERDP_API UINT rail_server_handle_messages(RailServerContext* context);
151 FREERDP_API
void rail_server_set_handshake_ex_flags(RailServerContext* context, DWORD flags);