rail.h (6849B)
1/** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * Remote Applications Integrated Locally (RAIL) 4 * 5 * Copyright 2013 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_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/** 31 * Client Interface 32 */ 33 34typedef struct _rail_client_context RailClientContext; 35 36typedef UINT (*pcRailOnOpen)(RailClientContext* context, BOOL* sendHandshake); 37 38typedef UINT (*pcRailClientExecute)(RailClientContext* context, const RAIL_EXEC_ORDER* exec); 39typedef UINT (*pcRailClientActivate)(RailClientContext* context, 40 const RAIL_ACTIVATE_ORDER* activate); 41typedef UINT (*pcRailClientSystemParam)(RailClientContext* context, 42 const RAIL_SYSPARAM_ORDER* sysparam); 43typedef UINT (*pcRailServerSystemParam)(RailClientContext* context, 44 const RAIL_SYSPARAM_ORDER* sysparam); 45typedef UINT (*pcRailClientSystemCommand)(RailClientContext* context, 46 const RAIL_SYSCOMMAND_ORDER* syscommand); 47typedef UINT (*pcRailClientHandshake)(RailClientContext* context, 48 const RAIL_HANDSHAKE_ORDER* handshake); 49typedef UINT (*pcRailServerHandshake)(RailClientContext* context, 50 const RAIL_HANDSHAKE_ORDER* handshake); 51typedef UINT (*pcRailServerHandshakeEx)(RailClientContext* context, 52 const RAIL_HANDSHAKE_EX_ORDER* handshakeEx); 53typedef UINT (*pcRailClientNotifyEvent)(RailClientContext* context, 54 const RAIL_NOTIFY_EVENT_ORDER* notifyEvent); 55typedef UINT (*pcRailClientWindowMove)(RailClientContext* context, 56 const RAIL_WINDOW_MOVE_ORDER* windowMove); 57typedef UINT (*pcRailServerLocalMoveSize)(RailClientContext* context, 58 const RAIL_LOCALMOVESIZE_ORDER* localMoveSize); 59typedef UINT (*pcRailServerMinMaxInfo)(RailClientContext* context, 60 const RAIL_MINMAXINFO_ORDER* minMaxInfo); 61typedef UINT (*pcRailClientInformation)(RailClientContext* context, 62 const RAIL_CLIENT_STATUS_ORDER* clientStatus); 63typedef UINT (*pcRailClientSystemMenu)(RailClientContext* context, 64 const RAIL_SYSMENU_ORDER* sysmenu); 65typedef UINT (*pcRailServerTaskBarInfo)(RailClientContext* context, 66 const RAIL_TASKBAR_INFO_ORDER* taskBarInfo); 67typedef UINT (*pcRailClientLanguageBarInfo)(RailClientContext* context, 68 const RAIL_LANGBAR_INFO_ORDER* langBarInfo); 69typedef UINT (*pcRailServerLanguageBarInfo)(RailClientContext* context, 70 const RAIL_LANGBAR_INFO_ORDER* langBarInfo); 71typedef UINT (*pcRailClientLanguageIMEInfo)(RailClientContext* context, 72 const RAIL_LANGUAGEIME_INFO_ORDER* langImeInfo); 73typedef UINT (*pcRailServerExecuteResult)(RailClientContext* context, 74 const RAIL_EXEC_RESULT_ORDER* execResult); 75typedef UINT (*pcRailClientGetAppIdRequest)(RailClientContext* context, 76 const RAIL_GET_APPID_REQ_ORDER* getAppIdReq); 77typedef UINT (*pcRailServerGetAppIdResponse)(RailClientContext* context, 78 const RAIL_GET_APPID_RESP_ORDER* getAppIdResp); 79typedef UINT (*pcRailServerZOrderSync)(RailClientContext* context, const RAIL_ZORDER_SYNC* zorder); 80typedef UINT (*pcRailServerCloak)(RailClientContext* context, const RAIL_CLOAK* cloak); 81typedef UINT (*pcRailClientCloak)(RailClientContext* context, const RAIL_CLOAK* cloak); 82typedef UINT (*pcRailServerPowerDisplayRequest)(RailClientContext* context, 83 const RAIL_POWER_DISPLAY_REQUEST* power); 84typedef UINT (*pcRailClientSnapArrange)(RailClientContext* context, const RAIL_SNAP_ARRANGE* snap); 85typedef UINT (*pcRailServerGetAppidResponseExtended)(RailClientContext* context, 86 const RAIL_GET_APPID_RESP_EX* id); 87typedef UINT (*pcRailClientCompartmentInfo)(RailClientContext* context, 88 const RAIL_COMPARTMENT_INFO_ORDER* compartmentInfo); 89typedef UINT (*pcRailClientTextScale)(RailClientContext* context, UINT32 TextScale); 90typedef UINT (*pcRailClientCaretBlinkRate)(RailClientContext* context, UINT32 CaretBlinkRate); 91 92struct _rail_client_context 93{ 94 void* handle; 95 void* custom; 96 97 pcRailClientExecute ClientExecute; 98 pcRailClientActivate ClientActivate; 99 pcRailClientSystemParam ClientSystemParam; 100 pcRailServerSystemParam ServerSystemParam; 101 pcRailClientSystemCommand ClientSystemCommand; 102 pcRailClientHandshake ClientHandshake; 103 pcRailServerHandshake ServerHandshake; 104 pcRailServerHandshakeEx ServerHandshakeEx; 105 pcRailClientNotifyEvent ClientNotifyEvent; 106 pcRailClientWindowMove ClientWindowMove; 107 pcRailServerLocalMoveSize ServerLocalMoveSize; 108 pcRailServerMinMaxInfo ServerMinMaxInfo; 109 pcRailClientInformation ClientInformation; 110 pcRailClientSystemMenu ClientSystemMenu; 111 pcRailServerTaskBarInfo ServerTaskBarInfo; 112 pcRailClientLanguageBarInfo ClientLanguageBarInfo; 113 pcRailServerLanguageBarInfo ServerLanguageBarInfo; 114 pcRailClientLanguageIMEInfo ClientLanguageIMEInfo; 115 pcRailServerExecuteResult ServerExecuteResult; 116 pcRailClientGetAppIdRequest ClientGetAppIdRequest; 117 pcRailServerGetAppIdResponse ServerGetAppIdResponse; 118 pcRailServerZOrderSync ServerZOrderSync; 119 pcRailClientCloak ClientCloak; 120 pcRailServerCloak ServerCloak; 121 pcRailServerPowerDisplayRequest ServerPowerDisplayRequest; 122 pcRailClientSnapArrange ClientSnapArrange; 123 pcRailServerGetAppidResponseExtended ServerGetAppidResponseExtended; 124 pcRailClientCompartmentInfo ClientCompartmentInfo; 125 pcRailOnOpen OnOpen; 126 pcRailClientTextScale ClientTextScale; 127 pcRailClientCaretBlinkRate ClientCaretBlinkRate; 128}; 129 130#endif /* FREERDP_CHANNEL_RAIL_CLIENT_RAIL_H */