FreeRDP
include/freerdp/client.h File Reference
#include <winpr/cmdline.h>
#include <freerdp/config.h>
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <freerdp/event.h>
#include <freerdp/freerdp.h>
This graph shows which files directly or indirectly include this file:

Data Structures

struct  RDP_CLIENT_ENTRY_POINTS_V1
 
struct  FreeRDP_TouchContact
 
struct  FreeRDP_PenDevice
 
struct  rdpClientContext
 

Macros

#define RDP_CLIENT_INTERFACE_VERSION   1
 
#define RDP_CLIENT_ENTRY_POINT_NAME   "RdpClientEntry"
 
#define FREERDP_MAX_TOUCH_CONTACTS   10
 
#define FREERDP_MAX_PEN_DEVICES   10
 

Typedefs

typedef BOOL(* pRdpGlobalInit) (void)
 
typedef void(* pRdpGlobalUninit) (void)
 
typedef BOOL(* pRdpClientNew) (freerdp *instance, rdpContext *context)
 
typedef void(* pRdpClientFree) (freerdp *instance, rdpContext *context)
 
typedef int(* pRdpClientStart) (rdpContext *context)
 
typedef int(* pRdpClientStop) (rdpContext *context)
 
typedef int(* pRdpClientEntry) (RDP_CLIENT_ENTRY_POINTS *pEntryPoints)
 

Enumerations

enum  FreeRDPTouchEventType { FREERDP_TOUCH_DOWN = 0x01 , FREERDP_TOUCH_UP = 0x02 , FREERDP_TOUCH_MOTION = 0x04 , FREERDP_TOUCH_HAS_PRESSURE = 0x100 }
 
enum  FreeRDPPenEventType {
  FREERDP_PEN_REGISTER = 0x01 , FREERDP_PEN_ERASER_PRESSED = 0x02 , FREERDP_PEN_PRESS = 0x04 , FREERDP_PEN_MOTION = 0x08 ,
  FREERDP_PEN_RELEASE = 0x10 , FREERDP_PEN_BARREL_PRESSED = 0x20 , FREERDP_PEN_HAS_PRESSURE = 0x40 , FREERDP_PEN_HAS_ROTATION = 0x80 ,
  FREERDP_PEN_HAS_TILTX = 0x100 , FREERDP_PEN_HAS_TILTY = 0x200 , FREERDP_PEN_IS_INVERTED = 0x400
}
 

Functions

FREERDP_API void freerdp_client_context_free (rdpContext *context)
 
FREERDP_API rdpContext * freerdp_client_context_new (const RDP_CLIENT_ENTRY_POINTS *pEntryPoints)
 
FREERDP_API int freerdp_client_start (rdpContext *context)
 
FREERDP_API int freerdp_client_stop (rdpContext *context)
 
FREERDP_API freerdp * freerdp_client_get_instance (rdpContext *context)
 
FREERDP_API HANDLE freerdp_client_get_thread (rdpContext *context)
 
FREERDP_API int freerdp_client_settings_parse_command_line (rdpSettings *settings, int argc, char **argv, BOOL allowUnknown)
 
FREERDP_API int freerdp_client_settings_parse_command_line_ex (rdpSettings *settings, int argc, char **argv, BOOL allowUnknown, COMMAND_LINE_ARGUMENT_A *args, size_t count, int(*handle_option)(const COMMAND_LINE_ARGUMENT *arg, void *custom), void *handle_userdata)
 
FREERDP_API int freerdp_client_settings_parse_connection_file (rdpSettings *settings, const char *filename)
 
FREERDP_API int freerdp_client_settings_parse_connection_file_buffer (rdpSettings *settings, const BYTE *buffer, size_t size)
 
FREERDP_API int freerdp_client_settings_write_connection_file (const rdpSettings *settings, const char *filename, BOOL unicode)
 
FREERDP_API int freerdp_client_settings_parse_assistance_file (rdpSettings *settings, int argc, char *argv[])
 
FREERDP_API BOOL client_cli_authenticate_ex (freerdp *instance, char **username, char **password, char **domain, rdp_auth_reason reason)
 
FREERDP_API BOOL client_cli_choose_smartcard (freerdp *instance, SmartcardCertInfo **cert_list, DWORD count, DWORD *choice, BOOL gateway)
 
FREERDP_API int client_cli_logon_error_info (freerdp *instance, UINT32 data, UINT32 type)
 
FREERDP_API BOOL client_cli_get_access_token (freerdp *instance, AccessTokenType tokenType, char **token, size_t count,...)
 
FREERDP_API BOOL client_common_get_access_token (freerdp *instance, const char *request, char **token)
 
FREERDP_API SSIZE_T client_common_retry_dialog (freerdp *instance, const char *what, size_t current, void *userarg)
 
FREERDP_API void freerdp_client_OnChannelConnectedEventHandler (void *context, const ChannelConnectedEventArgs *e)
 
FREERDP_API void freerdp_client_OnChannelDisconnectedEventHandler (void *context, const ChannelDisconnectedEventArgs *e)
 
FREERDP_API DWORD client_cli_verify_certificate_ex (freerdp *instance, const char *host, UINT16 port, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, DWORD flags)
 
FREERDP_API DWORD client_cli_verify_changed_certificate_ex (freerdp *instance, const char *host, UINT16 port, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, const char *old_subject, const char *old_issuer, const char *old_fingerprint, DWORD flags)
 
FREERDP_API BOOL client_cli_present_gateway_message (freerdp *instance, UINT32 type, BOOL isDisplayMandatory, BOOL isConsentMandatory, size_t length, const WCHAR *message)
 
FREERDP_API BOOL client_auto_reconnect (freerdp *instance)
 
FREERDP_API BOOL client_auto_reconnect_ex (freerdp *instance, BOOL(*window_events)(freerdp *instance))
 
FREERDP_API BOOL freerdp_client_handle_touch (rdpClientContext *cctx, UINT32 flags, INT32 finger, UINT32 pressure, INT32 x, INT32 y)
 
FREERDP_API BOOL freerdp_client_handle_pen (rdpClientContext *cctx, UINT32 flags, INT32 deviceid,...)
 
FREERDP_API BOOL freerdp_client_is_pen (rdpClientContext *cctx, INT32 deviceid)
 
FREERDP_API BOOL freerdp_client_pen_cancel_all (rdpClientContext *cctx)
 
FREERDP_API BOOL freerdp_client_send_wheel_event (rdpClientContext *cctx, UINT16 mflags)
 
FREERDP_API BOOL freerdp_client_send_mouse_event (rdpClientContext *cctx, UINT64 mflags, INT32 x, INT32 y)
 
FREERDP_API BOOL freerdp_client_use_relative_mouse_events (rdpClientContext *cctx)
 this function checks if relative mouse events are supported and enabled for this session. More...
 
FREERDP_API BOOL freerdp_client_send_button_event (rdpClientContext *cctx, BOOL relative, UINT16 mflags, INT32 x, INT32 y)
 
FREERDP_API BOOL freerdp_client_send_extended_button_event (rdpClientContext *cctx, BOOL relative, UINT16 mflags, INT32 x, INT32 y)
 
FREERDP_API int freerdp_client_common_stop (rdpContext *context)
 
FREERDP_API BOOL freerdp_client_load_channels (freerdp *instance)
 

Macro Definition Documentation

◆ FREERDP_MAX_PEN_DEVICES

#define FREERDP_MAX_PEN_DEVICES   10

◆ FREERDP_MAX_TOUCH_CONTACTS

#define FREERDP_MAX_TOUCH_CONTACTS   10

◆ RDP_CLIENT_ENTRY_POINT_NAME

#define RDP_CLIENT_ENTRY_POINT_NAME   "RdpClientEntry"

◆ RDP_CLIENT_INTERFACE_VERSION

#define RDP_CLIENT_INTERFACE_VERSION   1

Typedef Documentation

◆ pRdpClientEntry

typedef int(* pRdpClientEntry) (RDP_CLIENT_ENTRY_POINTS *pEntryPoints)

◆ pRdpClientFree

typedef void(* pRdpClientFree) (freerdp *instance, rdpContext *context)

◆ pRdpClientNew

typedef BOOL(* pRdpClientNew) (freerdp *instance, rdpContext *context)

◆ pRdpClientStart

typedef int(* pRdpClientStart) (rdpContext *context)

◆ pRdpClientStop

typedef int(* pRdpClientStop) (rdpContext *context)

◆ pRdpGlobalInit

typedef BOOL(* pRdpGlobalInit) (void)

FreeRDP: A Remote Desktop Protocol Implementation Client Interface

Copyright 2013 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Client Entry Points

◆ pRdpGlobalUninit

typedef void(* pRdpGlobalUninit) (void)

Enumeration Type Documentation

◆ FreeRDPPenEventType

Enumerator
FREERDP_PEN_REGISTER 
FREERDP_PEN_ERASER_PRESSED 
FREERDP_PEN_PRESS 
FREERDP_PEN_MOTION 
FREERDP_PEN_RELEASE 
FREERDP_PEN_BARREL_PRESSED 
FREERDP_PEN_HAS_PRESSURE 
FREERDP_PEN_HAS_ROTATION 
FREERDP_PEN_HAS_TILTX 
FREERDP_PEN_HAS_TILTY 
FREERDP_PEN_IS_INVERTED 

◆ FreeRDPTouchEventType

Enumerator
FREERDP_TOUCH_DOWN 
FREERDP_TOUCH_UP 
FREERDP_TOUCH_MOTION 
FREERDP_TOUCH_HAS_PRESSURE 

Function Documentation

◆ client_auto_reconnect()

FREERDP_API BOOL client_auto_reconnect ( freerdp *  instance)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_auto_reconnect_ex()

FREERDP_API BOOL client_auto_reconnect_ex ( freerdp *  instance,
BOOL(*)(freerdp *instance window_events 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_cli_authenticate_ex()

FREERDP_API BOOL client_cli_authenticate_ex ( freerdp *  instance,
char **  username,
char **  password,
char **  domain,
rdp_auth_reason  reason 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_cli_choose_smartcard()

FREERDP_API BOOL client_cli_choose_smartcard ( freerdp *  instance,
SmartcardCertInfo **  cert_list,
DWORD  count,
DWORD *  choice,
BOOL  gateway 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_cli_get_access_token()

FREERDP_API BOOL client_cli_get_access_token ( freerdp *  instance,
AccessTokenType  tokenType,
char **  token,
size_t  count,
  ... 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_cli_logon_error_info()

FREERDP_API int client_cli_logon_error_info ( freerdp *  instance,
UINT32  data,
UINT32  type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_cli_present_gateway_message()

FREERDP_API BOOL client_cli_present_gateway_message ( freerdp *  instance,
UINT32  type,
BOOL  isDisplayMandatory,
BOOL  isConsentMandatory,
size_t  length,
const WCHAR *  message 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_cli_verify_certificate_ex()

FREERDP_API DWORD client_cli_verify_certificate_ex ( freerdp *  instance,
const char *  host,
UINT16  port,
const char *  common_name,
const char *  subject,
const char *  issuer,
const char *  fingerprint,
DWORD  flags 
)

Callback set in the rdp_freerdp structure, and used to make a certificate validation when the connection requires it. This function will actually be called by tls_verify_certificate().

See also
rdp_client_connect() and freerdp_tls_connect()
Parameters
instancepointer to the rdp_freerdp structure that contains the connection settings
hostThe host currently connecting to
portThe port currently connecting to
common_nameThe common name of the certificate, should match host or an alias of it
subjectThe subject of the certificate
issuerThe certificate issuer name
fingerprintThe fingerprint of the certificate
flagsSee VERIFY_CERT_FLAG_* for possible values.
Returns
1 if the certificate is trusted, 2 if temporary trusted, 0 otherwise.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_cli_verify_changed_certificate_ex()

FREERDP_API DWORD client_cli_verify_changed_certificate_ex ( freerdp *  instance,
const char *  host,
UINT16  port,
const char *  common_name,
const char *  subject,
const char *  issuer,
const char *  fingerprint,
const char *  old_subject,
const char *  old_issuer,
const char *  old_fingerprint,
DWORD  flags 
)

Callback set in the rdp_freerdp structure, and used to make a certificate validation when a stored certificate does not match the remote counterpart. This function will actually be called by tls_verify_certificate().

See also
rdp_client_connect() and freerdp_tls_connect()
Parameters
instance- pointer to the rdp_freerdp structure that contains the connection settings
common_name
subject
issuer
fingerprint
old_subject
old_issuer
old_fingerprint
Returns
1 if the certificate is trusted, 2 if temporary trusted, 0 otherwise. Callback set in the rdp_freerdp structure, and used to make a certificate validation when a stored certificate does not match the remote counterpart. This function will actually be called by tls_verify_certificate().
See also
rdp_client_connect() and freerdp_tls_connect()
Parameters
instancepointer to the rdp_freerdp structure that contains the connection settings
hostThe host currently connecting to
portThe port currently connecting to
common_nameThe common name of the certificate, should match host or an alias of it
subjectThe subject of the certificate
issuerThe certificate issuer name
fingerprintThe fingerprint of the certificate
old_subjectThe subject of the previous certificate
old_issuerThe previous certificate issuer name
old_fingerprintThe fingerprint of the previous certificate
flagsSee VERIFY_CERT_FLAG_* for possible values.
Returns
1 if the certificate is trusted, 2 if temporary trusted, 0 otherwise.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_common_get_access_token()

FREERDP_API BOOL client_common_get_access_token ( freerdp *  instance,
const char *  request,
char **  token 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ client_common_retry_dialog()

FREERDP_API SSIZE_T client_common_retry_dialog ( freerdp *  instance,
const char *  what,
size_t  current,
void *  userarg 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_common_stop()

FREERDP_API int freerdp_client_common_stop ( rdpContext *  context)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_context_free()

FREERDP_API void freerdp_client_context_free ( rdpContext *  context)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_context_new()

FREERDP_API rdpContext* freerdp_client_context_new ( const RDP_CLIENT_ENTRY_POINTS pEntryPoints)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_get_instance()

FREERDP_API freerdp* freerdp_client_get_instance ( rdpContext *  context)

◆ freerdp_client_get_thread()

FREERDP_API HANDLE freerdp_client_get_thread ( rdpContext *  context)
Here is the caller graph for this function:

◆ freerdp_client_handle_pen()

FREERDP_API BOOL freerdp_client_handle_pen ( rdpClientContext *  cctx,
UINT32  flags,
INT32  deviceid,
  ... 
)
Here is the call graph for this function:

◆ freerdp_client_handle_touch()

FREERDP_API BOOL freerdp_client_handle_touch ( rdpClientContext *  cctx,
UINT32  flags,
INT32  finger,
UINT32  pressure,
INT32  x,
INT32  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_is_pen()

FREERDP_API BOOL freerdp_client_is_pen ( rdpClientContext *  cctx,
INT32  deviceid 
)
Here is the caller graph for this function:

◆ freerdp_client_load_channels()

FREERDP_API BOOL freerdp_client_load_channels ( freerdp *  instance)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_OnChannelConnectedEventHandler()

FREERDP_API void freerdp_client_OnChannelConnectedEventHandler ( void *  context,
const ChannelConnectedEventArgs *  e 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_OnChannelDisconnectedEventHandler()

FREERDP_API void freerdp_client_OnChannelDisconnectedEventHandler ( void *  context,
const ChannelDisconnectedEventArgs *  e 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_pen_cancel_all()

FREERDP_API BOOL freerdp_client_pen_cancel_all ( rdpClientContext *  cctx)
Here is the call graph for this function:

◆ freerdp_client_send_button_event()

FREERDP_API BOOL freerdp_client_send_button_event ( rdpClientContext *  cctx,
BOOL  relative,
UINT16  mflags,
INT32  x,
INT32  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_send_extended_button_event()

FREERDP_API BOOL freerdp_client_send_extended_button_event ( rdpClientContext *  cctx,
BOOL  relative,
UINT16  mflags,
INT32  x,
INT32  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_send_mouse_event()

FREERDP_API BOOL freerdp_client_send_mouse_event ( rdpClientContext *  cctx,
UINT64  mflags,
INT32  x,
INT32  y 
)

◆ freerdp_client_send_wheel_event()

FREERDP_API BOOL freerdp_client_send_wheel_event ( rdpClientContext *  cctx,
UINT16  mflags 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_parse_assistance_file()

FREERDP_API int freerdp_client_settings_parse_assistance_file ( rdpSettings *  settings,
int  argc,
char *  argv[] 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_parse_command_line()

FREERDP_API int freerdp_client_settings_parse_command_line ( rdpSettings *  settings,
int  argc,
char **  argv,
BOOL  allowUnknown 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_parse_command_line_ex()

FREERDP_API int freerdp_client_settings_parse_command_line_ex ( rdpSettings *  settings,
int  argc,
char **  argv,
BOOL  allowUnknown,
COMMAND_LINE_ARGUMENT_A args,
size_t  count,
int(*)(const COMMAND_LINE_ARGUMENT *arg, void *custom)  handle_option,
void *  handle_userdata 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_parse_connection_file()

FREERDP_API int freerdp_client_settings_parse_connection_file ( rdpSettings *  settings,
const char *  filename 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_parse_connection_file_buffer()

FREERDP_API int freerdp_client_settings_parse_connection_file_buffer ( rdpSettings *  settings,
const BYTE buffer,
size_t  size 
)
Here is the call graph for this function:

◆ freerdp_client_settings_write_connection_file()

FREERDP_API int freerdp_client_settings_write_connection_file ( const rdpSettings *  settings,
const char *  filename,
BOOL  unicode 
)
Here is the call graph for this function:

◆ freerdp_client_start()

FREERDP_API int freerdp_client_start ( rdpContext *  context)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_stop()

FREERDP_API int freerdp_client_stop ( rdpContext *  context)
Here is the caller graph for this function:

◆ freerdp_client_use_relative_mouse_events()

FREERDP_API BOOL freerdp_client_use_relative_mouse_events ( rdpClientContext *  cctx)

this function checks if relative mouse events are supported and enabled for this session.

Parameters
cctxThe rdpClientContext to check
Returns
TRUE if relative mouse events are to be sent, FALSE otherwise
Here is the call graph for this function:
Here is the caller graph for this function: