addin.h (2995B)
1/** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * Addin Loader 4 * 5 * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com> 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 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 41struct _FREERDP_ADDIN 42{ 43 DWORD dwFlags; 44 CHAR cName[16]; 45 CHAR cType[16]; 46 CHAR cSubsystem[16]; 47}; 48typedef struct _FREERDP_ADDIN FREERDP_ADDIN; 49 50typedef PVIRTUALCHANNELENTRY (*FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN)(LPCSTR pszName, 51 LPCSTR pszSubsystem, 52 LPCSTR pszType, DWORD dwFlags); 53 54#ifdef __cplusplus 55extern "C" 56{ 57#endif 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 65 FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_dynamic_addin(LPCSTR pszFileName, LPCSTR pszPath, 66 LPCSTR pszEntryName); 67 FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_dynamic_channel_addin_entry(LPCSTR pszName, 68 LPCSTR pszSubsystem, 69 LPCSTR pszType, 70 DWORD dwFlags); 71 FREERDP_API PVIRTUALCHANNELENTRY freerdp_load_channel_addin_entry(LPCSTR pszName, 72 LPCSTR pszSubsystem, 73 LPCSTR pszType, 74 DWORD dwFlags); 75 76#ifdef __cplusplus 77} 78#endif 79 80#endif /* FREERDP_COMMON_ADDIN_H */