Blame include/freerdp/client.h

Packit Service fa4841
/**
Packit Service fa4841
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit Service fa4841
 * Client Interface
Packit Service fa4841
 *
Packit Service fa4841
 * Copyright 2013 Marc-Andre Moreau <marcandre.moreau@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_CLIENT_H
Packit Service fa4841
#define FREERDP_CLIENT_H
Packit Service fa4841
Packit Service fa4841
#include <freerdp/api.h>
Packit Service fa4841
#include <freerdp/freerdp.h>
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
	/**
Packit Service fa4841
	 * Client Entry Points
Packit Service fa4841
	 */
Packit Service fa4841
Packit Service fa4841
	typedef BOOL (*pRdpGlobalInit)(void);
Packit Service fa4841
	typedef void (*pRdpGlobalUninit)(void);
Packit Service fa4841
Packit Service fa4841
	typedef BOOL (*pRdpClientNew)(freerdp* instance, rdpContext* context);
Packit Service fa4841
	typedef void (*pRdpClientFree)(freerdp* instance, rdpContext* context);
Packit Service fa4841
Packit Service fa4841
	typedef int (*pRdpClientStart)(rdpContext* context);
Packit Service fa4841
	typedef int (*pRdpClientStop)(rdpContext* context);
Packit Service fa4841
Packit Service fa4841
	struct rdp_client_entry_points_v1
Packit Service fa4841
	{
Packit Service fa4841
		DWORD Size;
Packit Service fa4841
		DWORD Version;
Packit Service fa4841
Packit Service fa4841
		rdpSettings* settings;
Packit Service fa4841
Packit Service fa4841
		pRdpGlobalInit GlobalInit;
Packit Service fa4841
		pRdpGlobalUninit GlobalUninit;
Packit Service fa4841
Packit Service fa4841
		DWORD ContextSize;
Packit Service fa4841
		pRdpClientNew ClientNew;
Packit Service fa4841
		pRdpClientFree ClientFree;
Packit Service fa4841
Packit Service fa4841
		pRdpClientStart ClientStart;
Packit Service fa4841
		pRdpClientStop ClientStop;
Packit Service fa4841
	};
Packit Service fa4841
Packit Service fa4841
#define RDP_CLIENT_INTERFACE_VERSION 1
Packit Service fa4841
#define RDP_CLIENT_ENTRY_POINT_NAME "RdpClientEntry"
Packit Service fa4841
Packit Service fa4841
	typedef int (*pRdpClientEntry)(RDP_CLIENT_ENTRY_POINTS* pEntryPoints);
Packit Service fa4841
Packit Service fa4841
	/* Common Client Interface */
Packit Service fa4841
Packit Service fa4841
#define DEFINE_RDP_CLIENT_COMMON() HANDLE thread
Packit Service fa4841
Packit Service fa4841
	struct rdp_client_context
Packit Service fa4841
	{
Packit Service fa4841
		rdpContext context;
Packit Service fa4841
		DEFINE_RDP_CLIENT_COMMON();
Packit Service fa4841
	};
Packit Service fa4841
Packit Service fa4841
	/* Common client functions */
Packit Service fa4841
Packit Service fa4841
	FREERDP_API rdpContext* freerdp_client_context_new(RDP_CLIENT_ENTRY_POINTS* pEntryPoints);
Packit Service fa4841
	FREERDP_API void freerdp_client_context_free(rdpContext* context);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API int freerdp_client_start(rdpContext* context);
Packit Service fa4841
	FREERDP_API int freerdp_client_stop(rdpContext* context);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API freerdp* freerdp_client_get_instance(rdpContext* context);
Packit Service fa4841
	FREERDP_API HANDLE freerdp_client_get_thread(rdpContext* context);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API int freerdp_client_settings_parse_command_line(rdpSettings* settings, int argc,
Packit Service fa4841
	                                                           char** argv, BOOL allowUnknown);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API int freerdp_client_settings_parse_connection_file(rdpSettings* settings,
Packit Service fa4841
	                                                              const char* filename);
Packit Service fa4841
	FREERDP_API int freerdp_client_settings_parse_connection_file_buffer(rdpSettings* settings,
Packit Service fa4841
	                                                                     const BYTE* buffer,
Packit Service fa4841
	                                                                     size_t size);
Packit Service fa4841
	FREERDP_API int freerdp_client_settings_write_connection_file(const rdpSettings* settings,
Packit Service fa4841
	                                                              const char* filename,
Packit Service fa4841
	                                                              BOOL unicode);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API int freerdp_client_settings_parse_assistance_file(rdpSettings* settings, int argc,
Packit Service fa4841
	                                                              char* argv[]);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API BOOL client_cli_authenticate(freerdp* instance, char** username, char** password,
Packit Service fa4841
	                                         char** domain);
Packit Service fa4841
	FREERDP_API BOOL client_cli_gw_authenticate(freerdp* instance, char** username, char** password,
Packit Service fa4841
	                                            char** domain);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API DWORD client_cli_verify_certificate(freerdp* instance, const char* common_name,
Packit Service fa4841
	                                                const char* subject, const char* issuer,
Packit Service fa4841
	                                                const char* fingerprint, BOOL host_mismatch);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API DWORD client_cli_verify_certificate_ex(freerdp* instance, const char* host,
Packit Service fa4841
	                                                   UINT16 port, const char* common_name,
Packit Service fa4841
	                                                   const char* subject, const char* issuer,
Packit Service fa4841
	                                                   const char* fingerprint, DWORD flags);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API DWORD client_cli_verify_changed_certificate(
Packit Service fa4841
	    freerdp* instance, const char* common_name, const char* subject, const char* issuer,
Packit Service fa4841
	    const char* fingerprint, const char* old_subject, const char* old_issuer,
Packit Service fa4841
	    const char* old_fingerprint);
Packit Service fa4841
Packit Service fa4841
	FREERDP_API DWORD client_cli_verify_changed_certificate_ex(
Packit Service fa4841
	    freerdp* instance, const char* host, UINT16 port, const char* common_name,
Packit Service fa4841
	    const char* subject, const char* issuer, const char* fingerprint, const char* old_subject,
Packit Service fa4841
	    const char* old_issuer, const char* old_fingerprint, DWORD flags);
Packit Service fa4841
	FREERDP_API BOOL client_auto_reconnect(freerdp* instance);
Packit Service fa4841
	FREERDP_API BOOL client_auto_reconnect_ex(freerdp* instance,
Packit Service fa4841
	                                          BOOL (*window_events)(freerdp* instance));
Packit Service fa4841
Packit Service fa4841
#ifdef __cplusplus
Packit Service fa4841
}
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#endif /* FREERDP_CLIENT_H */