mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-13 20:11:35 -06:00
4.20
This commit is contained in:
committed by
Kornel Lesiński
parent
8c1b5c7b7e
commit
3c510ba80b
@@ -2,52 +2,28 @@
|
||||
|
||||
#include "StdAfx.h"
|
||||
|
||||
#define INITGUID
|
||||
|
||||
#include "Common/MyInitGuid.h"
|
||||
#include "Common/ComTry.h"
|
||||
|
||||
#include "Coder.h"
|
||||
#include "x86.h"
|
||||
#include "PPC.h"
|
||||
#include "Alpha.h"
|
||||
#include "IA64.h"
|
||||
#include "ARM.h"
|
||||
#include "ARMThumb.h"
|
||||
#include "M68.h"
|
||||
#include "x86_2.h"
|
||||
#include "SPARC.h"
|
||||
|
||||
#include "../../ICoder.h"
|
||||
|
||||
|
||||
#define MY_CreateClass(n) \
|
||||
#define MY_CreateClass0(n) \
|
||||
if (*clsid == CLSID_CCompressConvert ## n ## _Encoder) { \
|
||||
if (!correctInterface) \
|
||||
return E_NOINTERFACE; \
|
||||
coder = (ICompressCoder *)new C ## n ## _Encoder(); \
|
||||
filter = (ICompressFilter *)new C ## n ## _Encoder(); \
|
||||
} else if (*clsid == CLSID_CCompressConvert ## n ## _Decoder){ \
|
||||
if (!correctInterface) \
|
||||
return E_NOINTERFACE; \
|
||||
coder = (ICompressCoder *)new C ## n ## _Decoder(); \
|
||||
filter = (ICompressFilter *)new C ## n ## _Decoder(); \
|
||||
}
|
||||
|
||||
/*
|
||||
#define MyOBJECT_ENTRY(Name) \
|
||||
OBJECT_ENTRY(CLSID_CCompressConvert ## Name ## _Encoder, C ## Name ## _Encoder) \
|
||||
OBJECT_ENTRY(CLSID_CCompressConvert ## Name ## _Decoder, C ## Name ## _Decoder) \
|
||||
|
||||
|
||||
BEGIN_OBJECT_MAP(ObjectMap)
|
||||
MyOBJECT_ENTRY(BCJ_x86)
|
||||
MyOBJECT_ENTRY(BCJ2_x86)
|
||||
MyOBJECT_ENTRY(BC_PPC_B)
|
||||
MyOBJECT_ENTRY(BC_Alpha)
|
||||
MyOBJECT_ENTRY(BC_IA64)
|
||||
MyOBJECT_ENTRY(BC_ARM)
|
||||
MyOBJECT_ENTRY(BC_ARMThumb)
|
||||
MyOBJECT_ENTRY(BC_M68_B)
|
||||
END_OBJECT_MAP()
|
||||
*/
|
||||
|
||||
extern "C"
|
||||
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
|
||||
{
|
||||
@@ -61,22 +37,19 @@ STDAPI CreateObject(
|
||||
{
|
||||
COM_TRY_BEGIN
|
||||
*outObject = 0;
|
||||
int correctInterface = (*interfaceID == IID_ICompressCoder);
|
||||
CMyComPtr<ICompressCoder> coder;
|
||||
|
||||
MY_CreateClass(BCJ_x86)
|
||||
int correctInterface = (*interfaceID == IID_ICompressFilter);
|
||||
CMyComPtr<ICompressFilter> filter;
|
||||
MY_CreateClass0(BCJ_x86)
|
||||
else
|
||||
MY_CreateClass(BC_PPC_B)
|
||||
MY_CreateClass0(BC_ARM)
|
||||
else
|
||||
MY_CreateClass(BC_Alpha)
|
||||
MY_CreateClass0(BC_PPC_B)
|
||||
else
|
||||
MY_CreateClass(BC_IA64)
|
||||
MY_CreateClass0(BC_IA64)
|
||||
else
|
||||
MY_CreateClass(BC_ARM)
|
||||
MY_CreateClass0(BC_ARMThumb)
|
||||
else
|
||||
MY_CreateClass(BC_ARMThumb)
|
||||
else
|
||||
MY_CreateClass(BC_M68_B)
|
||||
MY_CreateClass0(BC_SPARC)
|
||||
else
|
||||
{
|
||||
CMyComPtr<ICompressCoder2> coder2;
|
||||
@@ -98,8 +71,9 @@ STDAPI CreateObject(
|
||||
*outObject = coder2.Detach();
|
||||
return S_OK;
|
||||
}
|
||||
*outObject = coder.Detach();
|
||||
*outObject = filter.Detach();
|
||||
return S_OK;
|
||||
|
||||
COM_TRY_END
|
||||
}
|
||||
|
||||
@@ -123,11 +97,12 @@ static CBranchMethodItem g_Methods[] =
|
||||
METHOD_ITEM(BCJ_x86, 0x01, 0x03, L"BCJ", 1),
|
||||
METHOD_ITEM(BCJ2_x86, 0x01, 0x1B, L"BCJ2", 4),
|
||||
METHOD_ITEM(BC_PPC_B, 0x02, 0x05, L"BC_PPC_B", 1),
|
||||
METHOD_ITEM(BC_Alpha, 0x03, 1, L"BC_Alpha", 1),
|
||||
// METHOD_ITEM(BC_Alpha, 0x03, 1, L"BC_Alpha", 1),
|
||||
METHOD_ITEM(BC_IA64, 0x04, 1, L"BC_IA64", 1),
|
||||
METHOD_ITEM(BC_ARM, 0x05, 1, L"BC_ARM", 1),
|
||||
METHOD_ITEM(BC_M68_B, 0x06, 5, L"BC_M68_B", 1),
|
||||
METHOD_ITEM(BC_ARMThumb, 0x07, 1, L"BC_ARMThumb", 1)
|
||||
// METHOD_ITEM(BC_M68_B, 0x06, 5, L"BC_M68_B", 1),
|
||||
METHOD_ITEM(BC_ARMThumb, 0x07, 1, L"BC_ARMThumb", 1),
|
||||
METHOD_ITEM(BC_SPARC, 0x08, 0x05, L"BC_SPARC", 1)
|
||||
};
|
||||
|
||||
STDAPI GetNumberOfMethods(UINT32 *numMethods)
|
||||
@@ -175,4 +150,3 @@ STDAPI GetMethodProperty(UINT32 index, PROPID propID, PROPVARIANT *value)
|
||||
}
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user