xref: /aosp_15_r20/external/lzma/CPP/7zip/Archive/DllExports.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // DLLExports.cpp
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h"
4*f6dc9357SAndroid Build Coastguard Worker 
5*f6dc9357SAndroid Build Coastguard Worker #if defined(Z7_LARGE_PAGES)
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../C/Alloc.h"
7*f6dc9357SAndroid Build Coastguard Worker #endif
8*f6dc9357SAndroid Build Coastguard Worker 
9*f6dc9357SAndroid Build Coastguard Worker #include "../../Common/MyWindows.h"
10*f6dc9357SAndroid Build Coastguard Worker #include "../../Common/MyInitGuid.h"
11*f6dc9357SAndroid Build Coastguard Worker 
12*f6dc9357SAndroid Build Coastguard Worker #include "../../Common/ComTry.h"
13*f6dc9357SAndroid Build Coastguard Worker 
14*f6dc9357SAndroid Build Coastguard Worker #include "../../Windows/NtCheck.h"
15*f6dc9357SAndroid Build Coastguard Worker #include "../../Windows/PropVariant.h"
16*f6dc9357SAndroid Build Coastguard Worker 
17*f6dc9357SAndroid Build Coastguard Worker #include "../ICoder.h"
18*f6dc9357SAndroid Build Coastguard Worker #include "../IPassword.h"
19*f6dc9357SAndroid Build Coastguard Worker 
20*f6dc9357SAndroid Build Coastguard Worker #include "../Common/CreateCoder.h"
21*f6dc9357SAndroid Build Coastguard Worker 
22*f6dc9357SAndroid Build Coastguard Worker #include "IArchive.h"
23*f6dc9357SAndroid Build Coastguard Worker 
24*f6dc9357SAndroid Build Coastguard Worker static
25*f6dc9357SAndroid Build Coastguard Worker HINSTANCE g_hInstance;
26*f6dc9357SAndroid Build Coastguard Worker 
27*f6dc9357SAndroid Build Coastguard Worker #define NT_CHECK_FAIL_ACTION return FALSE;
28*f6dc9357SAndroid Build Coastguard Worker 
29*f6dc9357SAndroid Build Coastguard Worker extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/);
DllMain(HINSTANCE hInstance,DWORD dwReason,LPVOID)30*f6dc9357SAndroid Build Coastguard Worker extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
31*f6dc9357SAndroid Build Coastguard Worker {
32*f6dc9357SAndroid Build Coastguard Worker   if (dwReason == DLL_PROCESS_ATTACH)
33*f6dc9357SAndroid Build Coastguard Worker   {
34*f6dc9357SAndroid Build Coastguard Worker     g_hInstance = hInstance;
35*f6dc9357SAndroid Build Coastguard Worker     NT_CHECK
36*f6dc9357SAndroid Build Coastguard Worker   }
37*f6dc9357SAndroid Build Coastguard Worker   return TRUE;
38*f6dc9357SAndroid Build Coastguard Worker }
39*f6dc9357SAndroid Build Coastguard Worker 
40*f6dc9357SAndroid Build Coastguard Worker Z7_DEFINE_GUID(CLSID_CArchiveHandler,
41*f6dc9357SAndroid Build Coastguard Worker     k_7zip_GUID_Data1,
42*f6dc9357SAndroid Build Coastguard Worker     k_7zip_GUID_Data2,
43*f6dc9357SAndroid Build Coastguard Worker     k_7zip_GUID_Data3_Common,
44*f6dc9357SAndroid Build Coastguard Worker     0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00);
45*f6dc9357SAndroid Build Coastguard Worker 
46*f6dc9357SAndroid Build Coastguard Worker STDAPI CreateArchiver(const GUID *classID, const GUID *iid, void **outObject);
47*f6dc9357SAndroid Build Coastguard Worker 
CreateObject(const GUID * clsid,const GUID * iid,void ** outObject)48*f6dc9357SAndroid Build Coastguard Worker STDAPI CreateObject(const GUID *clsid, const GUID *iid, void **outObject)
49*f6dc9357SAndroid Build Coastguard Worker {
50*f6dc9357SAndroid Build Coastguard Worker   return CreateArchiver(clsid, iid, outObject);
51*f6dc9357SAndroid Build Coastguard Worker }
52*f6dc9357SAndroid Build Coastguard Worker 
SetLargePageMode()53*f6dc9357SAndroid Build Coastguard Worker STDAPI SetLargePageMode()
54*f6dc9357SAndroid Build Coastguard Worker {
55*f6dc9357SAndroid Build Coastguard Worker   #if defined(Z7_LARGE_PAGES)
56*f6dc9357SAndroid Build Coastguard Worker   SetLargePageSize();
57*f6dc9357SAndroid Build Coastguard Worker   #endif
58*f6dc9357SAndroid Build Coastguard Worker   return S_OK;
59*f6dc9357SAndroid Build Coastguard Worker }
60*f6dc9357SAndroid Build Coastguard Worker 
61*f6dc9357SAndroid Build Coastguard Worker extern bool g_CaseSensitive;
62*f6dc9357SAndroid Build Coastguard Worker 
SetCaseSensitive(Int32 caseSensitive)63*f6dc9357SAndroid Build Coastguard Worker STDAPI SetCaseSensitive(Int32 caseSensitive)
64*f6dc9357SAndroid Build Coastguard Worker {
65*f6dc9357SAndroid Build Coastguard Worker   g_CaseSensitive = (caseSensitive != 0);
66*f6dc9357SAndroid Build Coastguard Worker   return S_OK;
67*f6dc9357SAndroid Build Coastguard Worker }
68*f6dc9357SAndroid Build Coastguard Worker 
69*f6dc9357SAndroid Build Coastguard Worker #ifdef Z7_EXTERNAL_CODECS
70*f6dc9357SAndroid Build Coastguard Worker 
71*f6dc9357SAndroid Build Coastguard Worker CExternalCodecs g_ExternalCodecs;
72*f6dc9357SAndroid Build Coastguard Worker 
SetCodecs(ICompressCodecsInfo * compressCodecsInfo)73*f6dc9357SAndroid Build Coastguard Worker STDAPI SetCodecs(ICompressCodecsInfo *compressCodecsInfo)
74*f6dc9357SAndroid Build Coastguard Worker {
75*f6dc9357SAndroid Build Coastguard Worker   COM_TRY_BEGIN
76*f6dc9357SAndroid Build Coastguard Worker 
77*f6dc9357SAndroid Build Coastguard Worker   // OutputDebugStringA(compressCodecsInfo ? "SetCodecs" : "SetCodecs NULL");
78*f6dc9357SAndroid Build Coastguard Worker   if (compressCodecsInfo)
79*f6dc9357SAndroid Build Coastguard Worker   {
80*f6dc9357SAndroid Build Coastguard Worker     g_ExternalCodecs.GetCodecs = compressCodecsInfo;
81*f6dc9357SAndroid Build Coastguard Worker     return g_ExternalCodecs.Load();
82*f6dc9357SAndroid Build Coastguard Worker   }
83*f6dc9357SAndroid Build Coastguard Worker   g_ExternalCodecs.ClearAndRelease();
84*f6dc9357SAndroid Build Coastguard Worker   return S_OK;
85*f6dc9357SAndroid Build Coastguard Worker 
86*f6dc9357SAndroid Build Coastguard Worker   COM_TRY_END
87*f6dc9357SAndroid Build Coastguard Worker }
88*f6dc9357SAndroid Build Coastguard Worker 
89*f6dc9357SAndroid Build Coastguard Worker #else
90*f6dc9357SAndroid Build Coastguard Worker 
SetCodecs(ICompressCodecsInfo *)91*f6dc9357SAndroid Build Coastguard Worker STDAPI SetCodecs(ICompressCodecsInfo *)
92*f6dc9357SAndroid Build Coastguard Worker {
93*f6dc9357SAndroid Build Coastguard Worker   return S_OK;
94*f6dc9357SAndroid Build Coastguard Worker }
95*f6dc9357SAndroid Build Coastguard Worker 
96*f6dc9357SAndroid Build Coastguard Worker #endif
97