1 // PluginLoader.h 2 3 #ifndef ZIP7_INC_PLUGIN_LOADER_H 4 #define ZIP7_INC_PLUGIN_LOADER_H 5 6 #include "../../../Windows/DLL.h" 7 8 #include "IFolder.h" 9 10 Z7_DIAGNOSTIC_IGNORE_CAST_FUNCTION 11 12 class CPluginLibrary: public NWindows::NDLL::CLibrary 13 { 14 public: CreateManager(REFGUID clsID,IFolderManager ** manager)15 HRESULT CreateManager(REFGUID clsID, IFolderManager **manager) 16 { 17 const 18 Func_CreateObject createObject = Z7_GET_PROC_ADDRESS( 19 Func_CreateObject, Get_HMODULE(), 20 "CreateObject"); 21 if (!createObject) 22 return GetLastError_noZero_HRESULT(); 23 return createObject(&clsID, &IID_IFolderManager, (void **)manager); 24 } LoadAndCreateManager(CFSTR filePath,REFGUID clsID,IFolderManager ** manager)25 HRESULT LoadAndCreateManager(CFSTR filePath, REFGUID clsID, IFolderManager **manager) 26 { 27 if (!Load(filePath)) 28 return GetLastError_noZero_HRESULT(); 29 return CreateManager(clsID, manager); 30 } 31 }; 32 33 #endif 34