20#ifndef FREERDP_CHANNELS_CLIENT_H
21#define FREERDP_CHANNELS_CLIENT_H
23#include <winpr/wtypes.h>
25#include <freerdp/api.h>
26#include <freerdp/dvc.h>
27#include <freerdp/config.h>
28#include <freerdp/addin.h>
29#include <freerdp/channels/channels.h>
39 typedef enum WINPR_C23_ENUM_TYPE(uint32_t)
41 GENERIC_CHANNEL_ENTRY_OPTION_NONE = 0,
42 GENERIC_CHANNEL_ENTRY_OPTION_MULTI_INSTANCE = 1
43 } GENERIC_CHANNEL_ENTRY_OPTIONS;
47 IWTSVirtualChannelCallback iface;
49 IWTSVirtualChannelManager* channel_mgr;
50 IWTSVirtualChannel* channel;
55 IWTSListenerCallback iface;
57 IWTSVirtualChannelManager* channel_mgr;
58 IWTSVirtualChannel* channel;
64 rdpSettings* settings);
71 IWTSListener* listener;
76 size_t channelCallbackSize;
77 const IWTSVirtualChannelCallback* channel_callbacks;
78 DYNVC_PLUGIN_TERMINATE_FN terminatePluginFn;
81#if defined(WITH_CHANNELS)
83 FREERDP_API
void* freerdp_channels_client_find_static_entry(
const char* name,
84 const char* identifier);
87 FREERDP_API PVIRTUALCHANNELENTRY freerdp_channels_load_static_addin_entry(LPCSTR pszName,
93 FREERDP_API
FREERDP_ADDIN** freerdp_channels_list_addins(LPCSTR pszName, LPCSTR pszSubsystem,
94 LPCSTR pszType, DWORD dwFlags);
95 FREERDP_API
void freerdp_channels_addin_list_free(
FREERDP_ADDIN** ppAddins);
101 FREERDP_API UINT freerdp_generic_DVCPluginEntry(
102 IDRDYNVC_ENTRY_POINTS* pEntryPoints,
const char* logTag,
const char* name,
103 size_t pluginSize,
size_t channelCallbackSize,
104 const IWTSVirtualChannelCallback* channel_callbacks, DYNVC_PLUGIN_INIT_FN initPluginFn,
105 DYNVC_PLUGIN_TERMINATE_FN terminatePluginFn);
126 FREERDP_API UINT freerdp_generic_DVCPluginEntryWithOptions(
127 IDRDYNVC_ENTRY_POINTS* pEntryPoints,
const char* logTag,
const char* name,
128 size_t pluginSize,
size_t channelCallbackSize,
129 const IWTSVirtualChannelCallback* channel_callbacks, DYNVC_PLUGIN_INIT_FN initPluginFn,
130 DYNVC_PLUGIN_TERMINATE_FN terminatePluginFn, UINT32 flags);