FreeRDP
Loading...
Searching...
No Matches
include/freerdp/client/channels.h
1
20#ifndef FREERDP_CHANNELS_CLIENT_H
21#define FREERDP_CHANNELS_CLIENT_H
22
23#include <freerdp/api.h>
24#include <freerdp/dvc.h>
25#include <freerdp/config.h>
26#include <freerdp/addin.h>
27#include <freerdp/channels/channels.h>
28
29#ifdef __cplusplus
30extern "C"
31{
32#endif
33
34 typedef struct
35 {
36 IWTSVirtualChannelCallback iface;
37 IWTSPlugin* plugin;
38 IWTSVirtualChannelManager* channel_mgr;
39 IWTSVirtualChannel* channel;
41
42 typedef struct
43 {
44 IWTSListenerCallback iface;
45 IWTSPlugin* plugin;
46 IWTSVirtualChannelManager* channel_mgr;
47 IWTSVirtualChannel* channel;
48 GENERIC_CHANNEL_CALLBACK* channel_callback;
50
52 typedef UINT (*DYNVC_PLUGIN_INIT_FN)(GENERIC_DYNVC_PLUGIN* plugin, rdpContext* context,
53 rdpSettings* settings);
54 typedef void (*DYNVC_PLUGIN_TERMINATE_FN)(GENERIC_DYNVC_PLUGIN* plugin);
55
57 {
58 IWTSPlugin iface;
59 GENERIC_LISTENER_CALLBACK* listener_callback;
60 IWTSListener* listener;
61 BOOL attached;
62 BOOL initialized;
63 wLog* log;
64 char* dynvc_name;
65 size_t channelCallbackSize;
66 const IWTSVirtualChannelCallback* channel_callbacks;
67 DYNVC_PLUGIN_TERMINATE_FN terminatePluginFn;
68 };
69
70#if defined(WITH_CHANNELS)
71 FREERDP_API void* freerdp_channels_client_find_static_entry(const char* name,
72 const char* identifier);
73 FREERDP_API PVIRTUALCHANNELENTRY freerdp_channels_load_static_addin_entry(LPCSTR pszName,
74 LPCSTR pszSubsystem,
75 LPCSTR pszType,
76 DWORD dwFlags);
77
78 FREERDP_API FREERDP_ADDIN** freerdp_channels_list_addins(LPCSTR lpName, LPCSTR lpSubsystem,
79 LPCSTR lpType, DWORD dwFlags);
80 FREERDP_API void freerdp_channels_addin_list_free(FREERDP_ADDIN** ppAddins);
81
82 FREERDP_API BOOL freerdp_initialize_generic_dynvc_plugin(GENERIC_DYNVC_PLUGIN* plugin);
83 FREERDP_API UINT freerdp_generic_DVCPluginEntry(
84 IDRDYNVC_ENTRY_POINTS* pEntryPoints, const char* logTag, const char* name,
85 size_t pluginSize, size_t channelCallbackSize,
86 const IWTSVirtualChannelCallback* channel_callbacks, DYNVC_PLUGIN_INIT_FN initPluginFn,
87 DYNVC_PLUGIN_TERMINATE_FN terminatePluginFn);
88#endif
89
90#ifdef __cplusplus
91}
92#endif
93
94#endif /* FREERDP_CHANNELS_CLIENT_H */