xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // IFileExtractCallback.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_I_FILE_EXTRACT_CALLBACK_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_I_FILE_EXTRACT_CALLBACK_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyString.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "../../IDecl.h"
9*f6dc9357SAndroid Build Coastguard Worker 
10*f6dc9357SAndroid Build Coastguard Worker #include "LoadCodecs.h"
11*f6dc9357SAndroid Build Coastguard Worker #include "OpenArchive.h"
12*f6dc9357SAndroid Build Coastguard Worker 
13*f6dc9357SAndroid Build Coastguard Worker Z7_PURE_INTERFACES_BEGIN
14*f6dc9357SAndroid Build Coastguard Worker 
15*f6dc9357SAndroid Build Coastguard Worker #define Z7_IFACE_CONSTR_FOLDERARC_SUB(i, base, n) \
16*f6dc9357SAndroid Build Coastguard Worker   Z7_DECL_IFACE_7ZIP_SUB(i, base, 1, n) \
17*f6dc9357SAndroid Build Coastguard Worker   { Z7_IFACE_COM7_PURE(i) };
18*f6dc9357SAndroid Build Coastguard Worker 
19*f6dc9357SAndroid Build Coastguard Worker #define Z7_IFACE_CONSTR_FOLDERARC(i, n) \
20*f6dc9357SAndroid Build Coastguard Worker         Z7_IFACE_CONSTR_FOLDERARC_SUB(i, IUnknown, n)
21*f6dc9357SAndroid Build Coastguard Worker 
22*f6dc9357SAndroid Build Coastguard Worker namespace NOverwriteAnswer
23*f6dc9357SAndroid Build Coastguard Worker {
24*f6dc9357SAndroid Build Coastguard Worker   enum EEnum
25*f6dc9357SAndroid Build Coastguard Worker   {
26*f6dc9357SAndroid Build Coastguard Worker     kYes,
27*f6dc9357SAndroid Build Coastguard Worker     kYesToAll,
28*f6dc9357SAndroid Build Coastguard Worker     kNo,
29*f6dc9357SAndroid Build Coastguard Worker     kNoToAll,
30*f6dc9357SAndroid Build Coastguard Worker     kAutoRename,
31*f6dc9357SAndroid Build Coastguard Worker     kCancel
32*f6dc9357SAndroid Build Coastguard Worker   };
33*f6dc9357SAndroid Build Coastguard Worker }
34*f6dc9357SAndroid Build Coastguard Worker 
35*f6dc9357SAndroid Build Coastguard Worker 
36*f6dc9357SAndroid Build Coastguard Worker /* ---------- IFolderArchiveExtractCallback ----------
37*f6dc9357SAndroid Build Coastguard Worker is implemented by
38*f6dc9357SAndroid Build Coastguard Worker   Console/ExtractCallbackConsole.h  CExtractCallbackConsole
39*f6dc9357SAndroid Build Coastguard Worker   FileManager/ExtractCallback.h     CExtractCallbackImp
40*f6dc9357SAndroid Build Coastguard Worker   FAR/ExtractEngine.cpp             CExtractCallBackImp: (QueryInterface is not supported)
41*f6dc9357SAndroid Build Coastguard Worker 
42*f6dc9357SAndroid Build Coastguard Worker IID_IFolderArchiveExtractCallback is requested by:
43*f6dc9357SAndroid Build Coastguard Worker   - Agent/ArchiveFolder.cpp
44*f6dc9357SAndroid Build Coastguard Worker       CAgentFolder::CopyTo(..., IFolderOperationsExtractCallback *callback)
45*f6dc9357SAndroid Build Coastguard Worker       is sent to IArchiveFolder::Extract()
46*f6dc9357SAndroid Build Coastguard Worker 
47*f6dc9357SAndroid Build Coastguard Worker   - FileManager/PanelCopy.cpp
48*f6dc9357SAndroid Build Coastguard Worker       CPanel::CopyTo(), if (options->testMode)
49*f6dc9357SAndroid Build Coastguard Worker       is sent to IArchiveFolder::Extract()
50*f6dc9357SAndroid Build Coastguard Worker 
51*f6dc9357SAndroid Build Coastguard Worker  IFolderArchiveExtractCallback is used by Common/ArchiveExtractCallback.cpp
52*f6dc9357SAndroid Build Coastguard Worker */
53*f6dc9357SAndroid Build Coastguard Worker 
54*f6dc9357SAndroid Build Coastguard Worker #define Z7_IFACEM_IFolderArchiveExtractCallback(x) \
55*f6dc9357SAndroid Build Coastguard Worker   x(AskOverwrite( \
56*f6dc9357SAndroid Build Coastguard Worker       const wchar_t *existName, const FILETIME *existTime, const UInt64 *existSize, \
57*f6dc9357SAndroid Build Coastguard Worker       const wchar_t *newName, const FILETIME *newTime, const UInt64 *newSize, \
58*f6dc9357SAndroid Build Coastguard Worker       Int32 *answer)) \
59*f6dc9357SAndroid Build Coastguard Worker   x(PrepareOperation(const wchar_t *name, Int32 isFolder, Int32 askExtractMode, const UInt64 *position)) \
60*f6dc9357SAndroid Build Coastguard Worker   x(MessageError(const wchar_t *message)) \
61*f6dc9357SAndroid Build Coastguard Worker   x(SetOperationResult(Int32 opRes, Int32 encrypted)) \
62*f6dc9357SAndroid Build Coastguard Worker 
63*f6dc9357SAndroid Build Coastguard Worker Z7_IFACE_CONSTR_FOLDERARC_SUB(IFolderArchiveExtractCallback, IProgress, 0x07)
64*f6dc9357SAndroid Build Coastguard Worker 
65*f6dc9357SAndroid Build Coastguard Worker #define Z7_IFACEM_IFolderArchiveExtractCallback2(x) \
66*f6dc9357SAndroid Build Coastguard Worker   x(ReportExtractResult(Int32 opRes, Int32 encrypted, const wchar_t *name)) \
67*f6dc9357SAndroid Build Coastguard Worker 
68*f6dc9357SAndroid Build Coastguard Worker Z7_IFACE_CONSTR_FOLDERARC(IFolderArchiveExtractCallback2, 0x08)
69*f6dc9357SAndroid Build Coastguard Worker 
70*f6dc9357SAndroid Build Coastguard Worker /* ---------- IExtractCallbackUI ----------
71*f6dc9357SAndroid Build Coastguard Worker is implemented by
72*f6dc9357SAndroid Build Coastguard Worker   Console/ExtractCallbackConsole.h  CExtractCallbackConsole
73*f6dc9357SAndroid Build Coastguard Worker   FileManager/ExtractCallback.h     CExtractCallbackImp
74*f6dc9357SAndroid Build Coastguard Worker */
75*f6dc9357SAndroid Build Coastguard Worker 
76*f6dc9357SAndroid Build Coastguard Worker #ifdef Z7_NO_CRYPTO
77*f6dc9357SAndroid Build Coastguard Worker   #define Z7_IFACEM_IExtractCallbackUI_Crypto(px)
78*f6dc9357SAndroid Build Coastguard Worker #else
79*f6dc9357SAndroid Build Coastguard Worker   #define Z7_IFACEM_IExtractCallbackUI_Crypto(px) \
80*f6dc9357SAndroid Build Coastguard Worker   virtual HRESULT SetPassword(const UString &password) px
81*f6dc9357SAndroid Build Coastguard Worker #endif
82*f6dc9357SAndroid Build Coastguard Worker 
83*f6dc9357SAndroid Build Coastguard Worker #define Z7_IFACEN_IExtractCallbackUI(px) \
84*f6dc9357SAndroid Build Coastguard Worker   virtual HRESULT BeforeOpen(const wchar_t *name, bool testMode) px \
85*f6dc9357SAndroid Build Coastguard Worker   virtual HRESULT OpenResult(const CCodecs *codecs, const CArchiveLink &arcLink, const wchar_t *name, HRESULT result) px \
86*f6dc9357SAndroid Build Coastguard Worker   virtual HRESULT ThereAreNoFiles() px \
87*f6dc9357SAndroid Build Coastguard Worker   virtual HRESULT ExtractResult(HRESULT result) px \
88*f6dc9357SAndroid Build Coastguard Worker   Z7_IFACEM_IExtractCallbackUI_Crypto(px)
89*f6dc9357SAndroid Build Coastguard Worker 
90*f6dc9357SAndroid Build Coastguard Worker // IExtractCallbackUI - is non-COM interface
91*f6dc9357SAndroid Build Coastguard Worker // IFolderArchiveExtractCallback - is COM interface
92*f6dc9357SAndroid Build Coastguard Worker // Z7_IFACE_DECL_PURE_(IExtractCallbackUI, IFolderArchiveExtractCallback)
93*f6dc9357SAndroid Build Coastguard Worker Z7_IFACE_DECL_PURE(IExtractCallbackUI)
94*f6dc9357SAndroid Build Coastguard Worker 
95*f6dc9357SAndroid Build Coastguard Worker 
96*f6dc9357SAndroid Build Coastguard Worker 
97*f6dc9357SAndroid Build Coastguard Worker #define Z7_IFACEM_IGetProp(x) \
98*f6dc9357SAndroid Build Coastguard Worker   x(GetProp(PROPID propID, PROPVARIANT *value)) \
99*f6dc9357SAndroid Build Coastguard Worker 
100*f6dc9357SAndroid Build Coastguard Worker Z7_IFACE_CONSTR_FOLDERARC(IGetProp, 0x20)
101*f6dc9357SAndroid Build Coastguard Worker 
102*f6dc9357SAndroid Build Coastguard Worker #define Z7_IFACEM_IFolderExtractToStreamCallback(x) \
103*f6dc9357SAndroid Build Coastguard Worker   x(UseExtractToStream(Int32 *res)) \
104*f6dc9357SAndroid Build Coastguard Worker   x(GetStream7(const wchar_t *name, Int32 isDir, ISequentialOutStream **outStream, Int32 askExtractMode, IGetProp *getProp)) \
105*f6dc9357SAndroid Build Coastguard Worker   x(PrepareOperation7(Int32 askExtractMode)) \
106*f6dc9357SAndroid Build Coastguard Worker   x(SetOperationResult8(Int32 resultEOperationResult, Int32 encrypted, UInt64 size)) \
107*f6dc9357SAndroid Build Coastguard Worker 
108*f6dc9357SAndroid Build Coastguard Worker Z7_IFACE_CONSTR_FOLDERARC(IFolderExtractToStreamCallback, 0x31)
109*f6dc9357SAndroid Build Coastguard Worker 
110*f6dc9357SAndroid Build Coastguard Worker Z7_PURE_INTERFACES_END
111*f6dc9357SAndroid Build Coastguard Worker 
112*f6dc9357SAndroid Build Coastguard Worker #endif
113