mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-08 16:07:04 -06:00
4.44 beta
This commit is contained in:
committed by
Kornel Lesiński
parent
804edc5756
commit
d9666cf046
31
CPP/7zip/Archive/Common/CoderLoader.cpp
Executable file
31
CPP/7zip/Archive/Common/CoderLoader.cpp
Executable file
@@ -0,0 +1,31 @@
|
||||
// CoderLoader.cpp
|
||||
|
||||
#include "StdAfx.h"
|
||||
|
||||
#include "CoderLoader.h"
|
||||
#include "FilterCoder.h"
|
||||
|
||||
HRESULT CCoderLibrary::CreateCoderSpec(REFGUID clsID, ICompressCoder **coder)
|
||||
{
|
||||
HRESULT result = CreateObject(clsID, IID_ICompressCoder, (void **)coder);
|
||||
if (result == S_OK || result != E_NOINTERFACE)
|
||||
return result;
|
||||
CMyComPtr<ICompressFilter> filter;
|
||||
RINOK(CreateObject(clsID, IID_ICompressFilter, (void **)&filter));
|
||||
CFilterCoder *filterCoderSpec = new CFilterCoder;
|
||||
CMyComPtr<ICompressCoder> filterCoder = filterCoderSpec;
|
||||
filterCoderSpec->Filter = filter;
|
||||
*coder = filterCoder.Detach();
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
HRESULT CCoderLibrary::LoadAndCreateCoderSpec(LPCTSTR filePath, REFGUID clsID, ICompressCoder **coder)
|
||||
{
|
||||
CCoderLibrary libTemp;
|
||||
if (!libTemp.Load(filePath))
|
||||
return GetLastError();
|
||||
RINOK(libTemp.CreateCoderSpec(clsID, coder));
|
||||
Attach(libTemp.Detach());
|
||||
return S_OK;
|
||||
}
|
||||
Reference in New Issue
Block a user