21#ifndef FREERDP_CHANNELS_H
22#define FREERDP_CHANNELS_H
25#include <winpr/wtsapi.h>
27#include <freerdp/api.h>
28#include <freerdp/types.h>
29#include <freerdp/settings.h>
37 typedef BOOL (*freerdp_channel_handle_fkt_t)(rdpContext* context,
void* userdata);
40 FREERDP_API
int freerdp_channels_client_load(rdpChannels* channels, rdpSettings* settings,
41 PVIRTUALCHANNELENTRY entry,
void* data);
44 FREERDP_API
int freerdp_channels_client_load_ex(rdpChannels* channels, rdpSettings* settings,
45 PVIRTUALCHANNELENTRYEX entryEx,
void* data);
48 FREERDP_API
int freerdp_channels_load_plugin(rdpChannels* channels, rdpSettings* settings,
49 const char* name,
void* data);
50#if defined(WITH_FREERDP_DEPRECATED)
51 WINPR_DEPRECATED_VAR(
"Use freerdp_channels_get_event_handle",
52 WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_channels_get_fds(
53 rdpChannels* channels, freerdp* instance,
void** read_fds,
54 int* read_count,
void** write_fds,
int* write_count));
57 FREERDP_API BOOL freerdp_channels_check_fds(rdpChannels* channels, freerdp* instance);
60 FREERDP_API
void* freerdp_channels_get_static_channel_interface(rdpChannels* channels,
84 FREERDP_API BOOL freerdp_client_channel_register(rdpChannels* channels, HANDLE handle,
85 freerdp_channel_handle_fkt_t fkt,
96 FREERDP_API BOOL freerdp_client_channel_unregister(rdpChannels* channels, HANDLE handle);
99 FREERDP_API HANDLE freerdp_channels_get_event_handle(freerdp* instance);
102 FREERDP_API
int freerdp_channels_process_pending_messages(freerdp* instance);
105 FREERDP_API BOOL freerdp_channels_data(freerdp* instance, UINT16 channelId,
const BYTE* data,
106 size_t dataSize, UINT32 flags,
size_t totalSize);
109 FREERDP_API UINT16 freerdp_channels_get_id_by_name(freerdp* instance,
const char* channel_name);
112 FREERDP_API
const char* freerdp_channels_get_name_by_id(freerdp* instance, UINT16 channelId);