Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/7zip/Archive/Common/CoderLoader.h')
-rwxr-xr-xCPP/7zip/Archive/Common/CoderLoader.h147
1 files changed, 0 insertions, 147 deletions
diff --git a/CPP/7zip/Archive/Common/CoderLoader.h b/CPP/7zip/Archive/Common/CoderLoader.h
deleted file mode 100755
index 02322d8c..00000000
--- a/CPP/7zip/Archive/Common/CoderLoader.h
+++ /dev/null
@@ -1,147 +0,0 @@
-// CoderLoader.h
-
-#ifndef __CODERLOADER_H
-#define __CODERLOADER_H
-
-#include "../../../Common/String.h"
-#include "../../../Common/MyCom.h"
-#include "../../../Windows/DLL.h"
-#include "../../ICoder.h"
-
-typedef UInt32 (WINAPI * CreateObjectPointer)(
- const GUID *clsID,
- const GUID *interfaceID,
- void **outObject);
-
-class CCoderLibrary: public NWindows::NDLL::CLibrary
-{
-public:
- HRESULT CreateObject(REFGUID clsID, REFGUID iid, void **obj)
- {
- CreateObjectPointer createObject = (CreateObjectPointer)
- GetProcAddress("CreateObject");
- if (createObject == NULL)
- return GetLastError();
- return createObject(&clsID, &iid, obj);
- }
-
- HRESULT CreateFilter(REFGUID clsID, ICompressFilter **filter)
- {
- return CreateObject(clsID, IID_ICompressFilter, (void **)filter);
- }
-
- HRESULT CreateCoder(REFGUID clsID, ICompressCoder **coder)
- {
- return CreateObject(clsID, IID_ICompressCoder, (void **)coder);
- }
-
- HRESULT CreateCoderSpec(REFGUID clsID, ICompressCoder **coder);
-
- HRESULT LoadAndCreateFilter(LPCTSTR filePath, REFGUID clsID, ICompressFilter **filter)
- {
- CCoderLibrary libTemp;
- if (!libTemp.Load(filePath))
- return GetLastError();
- RINOK(libTemp.CreateFilter(clsID, filter));
- Attach(libTemp.Detach());
- return S_OK;
- }
-
-
- HRESULT LoadAndCreateCoder(LPCTSTR filePath, REFGUID clsID, ICompressCoder **coder)
- {
- CCoderLibrary libTemp;
- if (!libTemp.Load(filePath))
- return GetLastError();
- RINOK(libTemp.CreateCoder(clsID, coder));
- Attach(libTemp.Detach());
- return S_OK;
- }
-
- HRESULT LoadAndCreateCoderSpec(LPCTSTR filePath, REFGUID clsID, ICompressCoder **coder);
- HRESULT CreateCoder2(REFGUID clsID, ICompressCoder2 **coder)
- {
- CreateObjectPointer createObject = (CreateObjectPointer)
- GetProcAddress("CreateObject");
- if (createObject == NULL)
- return GetLastError();
- return createObject(&clsID, &IID_ICompressCoder2, (void **)coder);
- }
- HRESULT LoadAndCreateCoder2(LPCTSTR filePath, REFGUID clsID, ICompressCoder2 **coder)
- {
- CCoderLibrary libTemp;
- if (!libTemp.Load(filePath))
- return GetLastError();
- RINOK(libTemp.CreateCoder2(clsID, coder));
- Attach(libTemp.Detach());
- return S_OK;
- }
-};
-
-
-class CCoderLibraries
-{
- struct CPathToLibraryPair
- {
- CSysString Path;
- CCoderLibrary Libary;
- };
- CObjectVector<CPathToLibraryPair> Pairs;
-public:
- int FindPath(LPCTSTR filePath)
- {
- for (int i = 0; i < Pairs.Size(); i++)
- if (Pairs[i].Path.CompareNoCase(filePath) == 0)
- return i;
- return -1;
- }
-
- HRESULT CreateCoder(LPCTSTR filePath, REFGUID clsID, ICompressCoder **coder)
- {
- int index = FindPath(filePath);
- if (index < 0)
- {
- CPathToLibraryPair pair;
- RINOK(pair.Libary.LoadAndCreateCoder(filePath, clsID, coder));
- pair.Path = filePath;
- Pairs.Add(pair);
- pair.Libary.Detach();
- return S_OK;
- }
- return Pairs[index].Libary.CreateCoder(clsID, coder);
- }
-
- HRESULT CreateCoderSpec(LPCTSTR filePath, REFGUID clsID, ICompressCoder **coder)
- {
- int index = FindPath(filePath);
- if (index < 0)
- {
- CPathToLibraryPair pair;
- RINOK(pair.Libary.LoadAndCreateCoderSpec(filePath, clsID, coder));
- pair.Path = filePath;
- Pairs.Add(pair);
- pair.Libary.Detach();
- return S_OK;
- }
- return Pairs[index].Libary.CreateCoderSpec(clsID, coder);
- }
-
- HRESULT CreateCoder2(LPCTSTR filePath, REFGUID clsID, ICompressCoder2 **coder)
- {
- int index = FindPath(filePath);
- if (index < 0)
- {
- CPathToLibraryPair pair;
- RINOK(pair.Libary.LoadAndCreateCoder2(filePath, clsID, coder));
- pair.Path = filePath;
- Pairs.Add(pair);
- pair.Libary.Detach();
- return S_OK;
- }
- return Pairs[index].Libary.CreateCoder2(clsID, coder);
- }
-};
-
-
-#endif
-