FreeRDP
Loading...
Searching...
No Matches
include/freerdp/addin.h
1
20#ifndef FREERDP_COMMON_ADDIN_H
21#define FREERDP_COMMON_ADDIN_H
22
23#include <freerdp/api.h>
24#include <freerdp/types.h>
25
26#define FREERDP_ADDIN_CLIENT 0x00000001
27#define FREERDP_ADDIN_SERVER 0x00000002
28
29#define FREERDP_ADDIN_STATIC 0x00000010
30#define FREERDP_ADDIN_DYNAMIC 0x00000020
31
32#define FREERDP_ADDIN_NAME 0x00000100
33#define FREERDP_ADDIN_SUBSYSTEM 0x00000200
34#define FREERDP_ADDIN_TYPE 0x00000400
35
36#define FREERDP_ADDIN_CHANNEL_STATIC 0x00001000
37#define FREERDP_ADDIN_CHANNEL_DYNAMIC 0x00002000
38#define FREERDP_ADDIN_CHANNEL_DEVICE 0x00004000
39#define FREERDP_ADDIN_CHANNEL_ENTRYEX 0x00008000
40
41#ifdef __cplusplus
42extern "C"
43{
44#endif
45
46 typedef struct
47 {
48 DWORD dwFlags;
49 CHAR cName[16];
50 CHAR cType[16];
51 CHAR cSubsystem[16];
53
54 typedef PVIRTUALCHANNELENTRY (*FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN)(LPCSTR pszName,
55 LPCSTR pszSubsystem,
56 LPCSTR pszType,
57 DWORD dwFlags);
58
59 WINPR_ATTR_NODISCARD
60 FREERDP_API LPSTR freerdp_get_library_install_path(void);
61
62 WINPR_ATTR_NODISCARD
63 FREERDP_API LPSTR freerdp_get_dynamic_addin_install_path(void);
64
65 WINPR_ATTR_NODISCARD
66 FREERDP_API int freerdp_register_addin_provider(FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN provider,
67 DWORD dwFlags);
68
69 WINPR_ATTR_NODISCARD
70 FREERDP_API FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN freerdp_get_current_addin_provider(void);
71
72 WINPR_ATTR_NODISCARD
73 FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_dynamic_addin(LPCSTR pszFileName, LPCSTR pszPath,
74 LPCSTR pszEntryName);
75
76 WINPR_ATTR_NODISCARD
77 FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_dynamic_channel_addin_entry(LPCSTR pszName,
78 LPCSTR pszSubsystem,
79 LPCSTR pszType,
80 DWORD dwFlags);
81
82 WINPR_ATTR_NODISCARD
83 FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_channel_addin_entry(LPCSTR pszName,
84 LPCSTR pszSubsystem,
85 LPCSTR pszType,
86 DWORD dwFlags);
87
88#ifdef __cplusplus
89}
90#endif
91
92#endif /* FREERDP_COMMON_ADDIN_H */