Blame include/freerdp/server/rail.h

Packit Service fa4841
/**
Packit Service fa4841
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit Service fa4841
 * RAIL Virtual Channel Plugin
Packit Service fa4841
 *
Packit Service fa4841
 * Copyright 2019 Mati Shabtay <matishabtay@gmail.com>
Packit Service fa4841
 *
Packit Service fa4841
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit Service fa4841
 * you may not use this file except in compliance with the License.
Packit Service fa4841
 * You may obtain a copy of the License at
Packit Service fa4841
 *
Packit Service fa4841
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit Service fa4841
 *
Packit Service fa4841
 * Unless required by applicable law or agreed to in writing, software
Packit Service fa4841
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit Service fa4841
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service fa4841
 * See the License for the specific language governing permissions and
Packit Service fa4841
 * limitations under the License.
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
#ifndef FREERDP_CHANNEL_RAIL_SERVER_RAIL_H
Packit Service fa4841
#define FREERDP_CHANNEL_RAIL_SERVER_RAIL_H
Packit Service fa4841
Packit Service fa4841
#include <freerdp/api.h>
Packit Service fa4841
#include <freerdp/types.h>
Packit Service fa4841
#include <freerdp/freerdp.h>
Packit Service fa4841
Packit Service fa4841
#include <freerdp/rail.h>
Packit Service fa4841
#include <freerdp/channels/rail.h>
Packit Service fa4841
Packit Service fa4841
typedef struct _rail_server_context RailServerContext;
Packit Service fa4841
typedef struct _rail_server_private RailServerPrivate;
Packit Service fa4841
Packit Service fa4841
typedef UINT (*psRailStart)(RailServerContext* context);
Packit Service fa4841
typedef BOOL (*psRailStop)(RailServerContext* context);
Packit Service fa4841
Packit Service fa4841
/* Client side callback types */
Packit Service fa4841
typedef UINT (*psRailClientHandshake)(RailServerContext* context,
Packit Service fa4841
                                      const RAIL_HANDSHAKE_ORDER* handshake);
Packit Service fa4841
typedef UINT (*psRailClientClientStatus)(RailServerContext* context,
Packit Service fa4841
                                         const RAIL_CLIENT_STATUS_ORDER* clientStatus);
Packit Service fa4841
typedef UINT (*psRailClientExec)(RailServerContext* context, const RAIL_EXEC_ORDER* exec);
Packit Service fa4841
typedef UINT (*psRailClientSysparam)(RailServerContext* context,
Packit Service fa4841
                                     const RAIL_SYSPARAM_ORDER* sysparam);
Packit Service fa4841
typedef UINT (*psRailClientActivate)(RailServerContext* context,
Packit Service fa4841
                                     const RAIL_ACTIVATE_ORDER* activate);
Packit Service fa4841
typedef UINT (*psRailClientSysmenu)(RailServerContext* context, const RAIL_SYSMENU_ORDER* sysmenu);
Packit Service fa4841
typedef UINT (*psRailClientSyscommand)(RailServerContext* context,
Packit Service fa4841
                                       const RAIL_SYSCOMMAND_ORDER* syscommand);
Packit Service fa4841
typedef UINT (*psRailClientNotifyEvent)(RailServerContext* context,
Packit Service fa4841
                                        const RAIL_NOTIFY_EVENT_ORDER* notifyEvent);
Packit Service fa4841
typedef UINT (*psRailClientGetAppidReq)(RailServerContext* context,
Packit Service fa4841
                                        const RAIL_GET_APPID_REQ_ORDER* getAppidReq);
Packit Service fa4841
typedef UINT (*psRailClientWindowMove)(RailServerContext* context,
Packit Service fa4841
                                       const RAIL_WINDOW_MOVE_ORDER* windowMove);
Packit Service fa4841
typedef UINT (*psRailClientSnapArrange)(RailServerContext* context,
Packit Service fa4841
                                        const RAIL_SNAP_ARRANGE* snapArrange);
Packit Service fa4841
typedef UINT (*psRailClientLangbarInfo)(RailServerContext* context,
Packit Service fa4841
                                        const RAIL_LANGBAR_INFO_ORDER* langbarInfo);
Packit Service fa4841
typedef UINT (*psRailClientLanguageImeInfo)(RailServerContext* context,
Packit Service fa4841
                                            const RAIL_LANGUAGEIME_INFO_ORDER* languageImeInfo);
Packit Service fa4841
typedef UINT (*psRailClientCompartmentInfo)(RailServerContext* context,
Packit Service fa4841
                                            const RAIL_COMPARTMENT_INFO_ORDER* compartmentInfo);
Packit Service fa4841
typedef UINT (*psRailClientCloak)(RailServerContext* context, const RAIL_CLOAK* cloak);
Packit Service fa4841
Packit Service fa4841
/* Server side messages sending methods */
Packit Service fa4841
typedef UINT (*psRailServerHandshake)(RailServerContext* context,
Packit Service fa4841
                                      const RAIL_HANDSHAKE_ORDER* handshake);
Packit Service fa4841
typedef UINT (*psRailServerHandshakeEx)(RailServerContext* context,
Packit Service fa4841
                                        const RAIL_HANDSHAKE_EX_ORDER* handshakeEx);
Packit Service fa4841
typedef UINT (*psRailServerSysparam)(RailServerContext* context,
Packit Service fa4841
                                     const RAIL_SYSPARAM_ORDER* sysparam);
Packit Service fa4841
typedef UINT (*psRailServerLocalMoveSize)(RailServerContext* context,
Packit Service fa4841
                                          const RAIL_LOCALMOVESIZE_ORDER* localMoveSize);
Packit Service fa4841
typedef UINT (*psRailServerMinMaxInfo)(RailServerContext* context,
Packit Service fa4841
                                       const RAIL_MINMAXINFO_ORDER* minMaxInfo);
Packit Service fa4841
typedef UINT (*psRailServerTaskbarInfo)(RailServerContext* context,
Packit Service fa4841
                                        const RAIL_TASKBAR_INFO_ORDER* taskbarInfo);
Packit Service fa4841
typedef UINT (*psRailServerLangbarInfo)(RailServerContext* context,
Packit Service fa4841
                                        const RAIL_LANGBAR_INFO_ORDER* langbarInfo);
Packit Service fa4841
typedef UINT (*psRailServerExecResult)(RailServerContext* context,
Packit Service fa4841
                                       const RAIL_EXEC_RESULT_ORDER* execResult);
Packit Service fa4841
typedef UINT (*psRailServerGetAppidResp)(RailServerContext* context,
Packit Service fa4841
                                         const RAIL_GET_APPID_RESP_ORDER* getAppIdResp);
Packit Service fa4841
typedef UINT (*psRailServerZOrderSync)(RailServerContext* context,
Packit Service fa4841
                                       const RAIL_ZORDER_SYNC* zOrderSync);
Packit Service fa4841
typedef UINT (*psRailServerCloak)(RailServerContext* context, const RAIL_CLOAK* cloak);
Packit Service fa4841
typedef UINT (*psRailServerPowerDisplayRequest)(
Packit Service fa4841
    RailServerContext* context, const RAIL_POWER_DISPLAY_REQUEST* PowerDisplayRequest);
Packit Service fa4841
typedef UINT (*psRailServerGetAppidRespEx)(RailServerContext* context,
Packit Service fa4841
                                           const RAIL_GET_APPID_RESP_EX* GetAppidRespEx);
Packit Service fa4841
Packit Service fa4841
struct _rail_server_context
Packit Service fa4841
{
Packit Service fa4841
	HANDLE vcm;
Packit Service fa4841
	void* custom;
Packit Service fa4841
Packit Service fa4841
	psRailStart Start;
Packit Service fa4841
	psRailStop Stop;
Packit Service fa4841
Packit Service fa4841
	/* Callbacks from client */
Packit Service fa4841
	psRailClientHandshake ClientHandshake;
Packit Service fa4841
	psRailClientClientStatus ClientClientStatus;
Packit Service fa4841
	psRailClientExec ClientExec;
Packit Service fa4841
	psRailClientSysparam ClientSysparam;
Packit Service fa4841
	psRailClientActivate ClientActivate;
Packit Service fa4841
	psRailClientSysmenu ClientSysmenu;
Packit Service fa4841
	psRailClientSyscommand ClientSyscommand;
Packit Service fa4841
	psRailClientNotifyEvent ClientNotifyEvent;
Packit Service fa4841
	psRailClientGetAppidReq ClientGetAppidReq;
Packit Service fa4841
	psRailClientWindowMove ClientWindowMove;
Packit Service fa4841
	psRailClientSnapArrange ClientSnapArrange;
Packit Service fa4841
	psRailClientLangbarInfo ClientLangbarInfo;
Packit Service fa4841
	psRailClientLanguageImeInfo ClientLanguageImeInfo;
Packit Service fa4841
	psRailClientCompartmentInfo ClientCompartmentInfo;
Packit Service fa4841
	psRailClientCloak ClientCloak;
Packit Service fa4841
Packit Service fa4841
	/* Methods for sending server side messages */
Packit Service fa4841
	psRailServerHandshake ServerHandshake;
Packit Service fa4841
	psRailServerHandshakeEx ServerHandshakeEx;
Packit Service fa4841
	psRailServerSysparam ServerSysparam;
Packit Service fa4841
	psRailServerLocalMoveSize ServerLocalMoveSize;
Packit Service fa4841
	psRailServerMinMaxInfo ServerMinMaxInfo;
Packit Service fa4841
	psRailServerTaskbarInfo ServerTaskbarInfo;
Packit Service fa4841
	psRailServerLangbarInfo ServerLangbarInfo;
Packit Service fa4841
	psRailServerExecResult ServerExecResult;
Packit Service fa4841
	psRailServerZOrderSync ServerZOrderSync;
Packit Service fa4841
	psRailServerCloak ServerCloak;
Packit Service fa4841
	psRailServerPowerDisplayRequest ServerPowerDisplayRequest;
Packit Service fa4841
	psRailServerGetAppidResp ServerGetAppidResp;
Packit Service fa4841
	psRailServerGetAppidRespEx ServerGetAppidRespEx;
Packit Service fa4841
Packit Service fa4841
	RailServerPrivate* priv;
Packit Service fa4841
	rdpContext* rdpcontext;
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
#ifdef __cplusplus
Packit Service fa4841
extern "C"
Packit Service fa4841
{
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
	FREERDP_API RailServerContext* rail_server_context_new(HANDLE vcm);
Packit Service fa4841
	FREERDP_API void rail_server_context_free(RailServerContext* context);
Packit Service fa4841
	FREERDP_API UINT rail_server_handle_messages(RailServerContext* context);
Packit Service fa4841
	FREERDP_API void rail_server_set_handshake_ex_flags(RailServerContext* context, DWORD flags);
Packit Service fa4841
Packit Service fa4841
#ifdef __cplusplus
Packit Service fa4841
}
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#endif /* FREERDP_CHANNEL_RAIL_SERVER_RAIL_H */