FreeRDP
client/rail.h
1 
20 #ifndef FREERDP_CHANNEL_RAIL_CLIENT_RAIL_H
21 #define FREERDP_CHANNEL_RAIL_CLIENT_RAIL_H
22 
23 #include <freerdp/api.h>
24 #include <freerdp/types.h>
25 
26 #include <freerdp/rail.h>
27 #include <freerdp/message.h>
28 #include <freerdp/channels/rail.h>
29 
30 #ifdef __cplusplus
31 extern "C"
32 {
33 #endif
34 
39  typedef struct s_rail_client_context RailClientContext;
40 
41  typedef UINT (*pcRailOnOpen)(RailClientContext* context, BOOL* sendHandshake);
42 
43  typedef UINT (*pcRailClientExecute)(RailClientContext* context, const RAIL_EXEC_ORDER* exec);
44  typedef UINT (*pcRailClientActivate)(RailClientContext* context,
45  const RAIL_ACTIVATE_ORDER* activate);
46  typedef UINT (*pcRailClientSystemParam)(RailClientContext* context,
47  const RAIL_SYSPARAM_ORDER* sysparam);
48  typedef UINT (*pcRailServerSystemParam)(RailClientContext* context,
49  const RAIL_SYSPARAM_ORDER* sysparam);
50  typedef UINT (*pcRailClientSystemCommand)(RailClientContext* context,
51  const RAIL_SYSCOMMAND_ORDER* syscommand);
52  typedef UINT (*pcRailClientHandshake)(RailClientContext* context,
53  const RAIL_HANDSHAKE_ORDER* handshake);
54  typedef UINT (*pcRailServerHandshake)(RailClientContext* context,
55  const RAIL_HANDSHAKE_ORDER* handshake);
56  typedef UINT (*pcRailServerHandshakeEx)(RailClientContext* context,
57  const RAIL_HANDSHAKE_EX_ORDER* handshakeEx);
58  typedef UINT (*pcRailClientNotifyEvent)(RailClientContext* context,
59  const RAIL_NOTIFY_EVENT_ORDER* notifyEvent);
60  typedef UINT (*pcRailClientWindowMove)(RailClientContext* context,
61  const RAIL_WINDOW_MOVE_ORDER* windowMove);
62  typedef UINT (*pcRailServerLocalMoveSize)(RailClientContext* context,
63  const RAIL_LOCALMOVESIZE_ORDER* localMoveSize);
64  typedef UINT (*pcRailServerMinMaxInfo)(RailClientContext* context,
65  const RAIL_MINMAXINFO_ORDER* minMaxInfo);
66  typedef UINT (*pcRailClientInformation)(RailClientContext* context,
67  const RAIL_CLIENT_STATUS_ORDER* clientStatus);
68  typedef UINT (*pcRailClientSystemMenu)(RailClientContext* context,
69  const RAIL_SYSMENU_ORDER* sysmenu);
70  typedef UINT (*pcRailServerTaskBarInfo)(RailClientContext* context,
71  const RAIL_TASKBAR_INFO_ORDER* taskBarInfo);
72  typedef UINT (*pcRailClientLanguageBarInfo)(RailClientContext* context,
73  const RAIL_LANGBAR_INFO_ORDER* langBarInfo);
74  typedef UINT (*pcRailServerLanguageBarInfo)(RailClientContext* context,
75  const RAIL_LANGBAR_INFO_ORDER* langBarInfo);
76  typedef UINT (*pcRailClientLanguageIMEInfo)(RailClientContext* context,
77  const RAIL_LANGUAGEIME_INFO_ORDER* langImeInfo);
78  typedef UINT (*pcRailServerExecuteResult)(RailClientContext* context,
79  const RAIL_EXEC_RESULT_ORDER* execResult);
80  typedef UINT (*pcRailClientGetAppIdRequest)(RailClientContext* context,
81  const RAIL_GET_APPID_REQ_ORDER* getAppIdReq);
82  typedef UINT (*pcRailServerGetAppIdResponse)(RailClientContext* context,
83  const RAIL_GET_APPID_RESP_ORDER* getAppIdResp);
84  typedef UINT (*pcRailServerZOrderSync)(RailClientContext* context,
85  const RAIL_ZORDER_SYNC* zorder);
86  typedef UINT (*pcRailServerCloak)(RailClientContext* context, const RAIL_CLOAK* cloak);
87  typedef UINT (*pcRailClientCloak)(RailClientContext* context, const RAIL_CLOAK* cloak);
88  typedef UINT (*pcRailServerPowerDisplayRequest)(RailClientContext* context,
89  const RAIL_POWER_DISPLAY_REQUEST* power);
90  typedef UINT (*pcRailClientSnapArrange)(RailClientContext* context,
91  const RAIL_SNAP_ARRANGE* snap);
92  typedef UINT (*pcRailServerGetAppidResponseExtended)(RailClientContext* context,
93  const RAIL_GET_APPID_RESP_EX* id);
94  typedef UINT (*pcRailClientCompartmentInfo)(RailClientContext* context,
95  const RAIL_COMPARTMENT_INFO_ORDER* compartmentInfo);
96  typedef UINT (*pcRailClientTextScale)(RailClientContext* context, UINT32 TextScale);
97  typedef UINT (*pcRailClientCaretBlinkRate)(RailClientContext* context, UINT32 CaretBlinkRate);
98 
100  {
101  void* handle;
102  void* custom;
103 
104  pcRailClientExecute ClientExecute;
105  pcRailClientActivate ClientActivate;
106  pcRailClientSystemParam ClientSystemParam;
107  pcRailServerSystemParam ServerSystemParam;
108  pcRailClientSystemCommand ClientSystemCommand;
109  pcRailClientHandshake ClientHandshake;
110  pcRailServerHandshake ServerHandshake;
111  pcRailServerHandshakeEx ServerHandshakeEx;
112  pcRailClientNotifyEvent ClientNotifyEvent;
113  pcRailClientWindowMove ClientWindowMove;
114  pcRailServerLocalMoveSize ServerLocalMoveSize;
115  pcRailServerMinMaxInfo ServerMinMaxInfo;
116  pcRailClientInformation ClientInformation;
117  pcRailClientSystemMenu ClientSystemMenu;
118  pcRailServerTaskBarInfo ServerTaskBarInfo;
119  pcRailClientLanguageBarInfo ClientLanguageBarInfo;
120  pcRailServerLanguageBarInfo ServerLanguageBarInfo;
121  pcRailClientLanguageIMEInfo ClientLanguageIMEInfo;
122  pcRailServerExecuteResult ServerExecuteResult;
123  pcRailClientGetAppIdRequest ClientGetAppIdRequest;
124  pcRailServerGetAppIdResponse ServerGetAppIdResponse;
125  pcRailServerZOrderSync ServerZOrderSync;
126  pcRailClientCloak ClientCloak;
127  pcRailServerCloak ServerCloak;
128  pcRailServerPowerDisplayRequest ServerPowerDisplayRequest;
129  pcRailClientSnapArrange ClientSnapArrange;
130  pcRailServerGetAppidResponseExtended ServerGetAppidResponseExtended;
131  pcRailClientCompartmentInfo ClientCompartmentInfo;
132  pcRailOnOpen OnOpen;
133  pcRailClientTextScale ClientTextScale;
134  pcRailClientCaretBlinkRate ClientCaretBlinkRate;
135  };
136 
137  FREERDP_API UINT client_rail_server_start_cmd(RailClientContext* context);
138 
139 #ifdef __cplusplus
140 }
141 #endif
142 
143 #endif /* FREERDP_CHANNEL_RAIL_CLIENT_RAIL_H */