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