Source code
Revision control
Copy as Markdown
Other Tools
// DLLExports2.cpp↩
↩
#include "StdAfx.h"↩
↩
#include "../../Common/MyWindows.h"↩
↩
#include "../../Common/MyInitGuid.h"↩
↩
#if defined(_7ZIP_LARGE_PAGES)↩
#include "../../../C/Alloc.h"↩
#endif↩
↩
#include "../../Common/ComTry.h"↩
↩
#include "../../Windows/NtCheck.h"↩
#include "../../Windows/PropVariant.h"↩
↩
#include "../ICoder.h"↩
#include "../IPassword.h"↩
↩
#include "../Common/CreateCoder.h"↩
↩
#include "IArchive.h"↩
↩
HINSTANCE g_hInstance;↩
↩
#define NT_CHECK_FAIL_ACTION return FALSE;↩
↩
#ifdef _WIN32↩
extern "C"↩
BOOL WINAPI DllMain(↩
#ifdef UNDER_CE↩
HANDLE↩
#else↩
HINSTANCE↩
#endif↩
hInstance, DWORD dwReason, LPVOID /*lpReserved*/)↩
{↩
if (dwReason == DLL_PROCESS_ATTACH)↩
{↩
// OutputDebugStringA("7z.dll DLL_PROCESS_ATTACH");↩
g_hInstance = (HINSTANCE)hInstance;↩
NT_CHECK;↩
}↩
/*↩
if (dwReason == DLL_PROCESS_DETACH)↩
{↩
OutputDebugStringA("7z.dll DLL_PROCESS_DETACH");↩
}↩
*/↩
return TRUE;↩
}↩
#endif↩
↩
DEFINE_GUID(CLSID_CArchiveHandler,↩
k_7zip_GUID_Data1,↩
k_7zip_GUID_Data2,↩
k_7zip_GUID_Data3_Common,↩
0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00);↩
↩
STDAPI CreateCoder(const GUID *clsid, const GUID *iid, void **outObject);↩
STDAPI CreateHasher(const GUID *clsid, IHasher **hasher);↩
STDAPI CreateArchiver(const GUID *clsid, const GUID *iid, void **outObject);↩
↩
STDAPI CreateObject(const GUID *clsid, const GUID *iid, void **outObject)↩
{↩
// COM_TRY_BEGIN↩
*outObject = 0;↩
if (*iid == IID_ICompressCoder ||↩
*iid == IID_ICompressCoder2 ||↩
*iid == IID_ICompressFilter)↩
return CreateCoder(clsid, iid, outObject);↩
if (*iid == IID_IHasher)↩
return CreateHasher(clsid, (IHasher **)outObject);↩
return CreateArchiver(clsid, iid, outObject);↩
// COM_TRY_END↩
}↩
↩
STDAPI SetLargePageMode()↩
{↩
#if defined(_7ZIP_LARGE_PAGES)↩
SetLargePageSize();↩
#endif↩
return S_OK;↩
}↩
↩
extern bool g_CaseSensitive;↩
↩
STDAPI SetCaseSensitive(Int32 caseSensitive)↩
{↩
g_CaseSensitive = (caseSensitive != 0);↩
return S_OK;↩
}↩
↩
#ifdef EXTERNAL_CODECS↩
↩
CExternalCodecs g_ExternalCodecs;↩
↩
STDAPI SetCodecs(ICompressCodecsInfo *compressCodecsInfo)↩
{↩
COM_TRY_BEGIN↩
↩
// OutputDebugStringA(compressCodecsInfo ? "SetCodecs" : "SetCodecs NULL");↩
if (compressCodecsInfo)↩
{↩
g_ExternalCodecs.GetCodecs = compressCodecsInfo;↩
return g_ExternalCodecs.Load();↩
}↩
g_ExternalCodecs.ClearAndRelease();↩
return S_OK;↩
↩
COM_TRY_END↩
}↩
↩
#else↩
↩
STDAPI SetCodecs(ICompressCodecsInfo *)↩
{↩
return S_OK;↩
}↩
↩
#endif↩