FreeRDP
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
42 extern "C"
43 {
44 #endif
45 
46  typedef struct
47  {
48  DWORD dwFlags;
49  CHAR cName[16];
50  CHAR cType[16];
51  CHAR cSubsystem[16];
52  } FREERDP_ADDIN;
53 
54  typedef PVIRTUALCHANNELENTRY (*FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN)(LPCSTR pszName,
55  LPCSTR pszSubsystem,
56  LPCSTR pszType,
57  DWORD dwFlags);
58 
59  FREERDP_API LPSTR freerdp_get_library_install_path(void);
60  FREERDP_API LPSTR freerdp_get_dynamic_addin_install_path(void);
61 
62  FREERDP_API int freerdp_register_addin_provider(FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN provider,
63  DWORD dwFlags);
64  FREERDP_API FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN freerdp_get_current_addin_provider(void);
65 
66  FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_dynamic_addin(LPCSTR pszFileName, LPCSTR pszPath,
67  LPCSTR pszEntryName);
68  FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_dynamic_channel_addin_entry(LPCSTR pszName,
69  LPCSTR pszSubsystem,
70  LPCSTR pszType,
71  DWORD dwFlags);
72  FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_channel_addin_entry(LPCSTR pszName,
73  LPCSTR pszSubsystem,
74  LPCSTR pszType,
75  DWORD dwFlags);
76 
77 #ifdef __cplusplus
78 }
79 #endif
80 
81 #endif /* FREERDP_COMMON_ADDIN_H */