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