// DLLExports.cpp #include "StdAfx.h" #include "../../Common/MyInitGuid.h" #include "../../Common/ComTry.h" #include "../../Common/Types.h" #include "../../Windows/PropVariant.h" #include "IArchive.h" #include "../ICoder.h" #include "../IPassword.h" HINSTANCE g_hInstance; #ifndef _UNICODE bool g_IsNT = false; static bool IsItWindowsNT() { OSVERSIONINFO versionInfo; versionInfo.dwOSVersionInfoSize = sizeof(versionInfo); if (!::GetVersionEx(&versionInfo)) return false; return (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT); } #endif extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/) { if (dwReason == DLL_PROCESS_ATTACH) { g_hInstance = hInstance; #ifndef _UNICODE g_IsNT = IsItWindowsNT(); #endif } return TRUE; } DEFINE_GUID(CLSID_CArchiveHandler, 0x23170F69, 0x40C1, 0x278A, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00); STDAPI CreateArchiver(const GUID *classID, const GUID *iid, void **outObject); STDAPI CreateObject(const GUID *clsid, const GUID *iid, void **outObject) { return CreateArchiver(clsid, iid, outObject); } STDAPI SetLargePageMode() { #if defined(_WIN32) && defined(_7ZIP_LARGE_PAGES) SetLargePageSize(); #endif return S_OK; }