1*f6dc9357SAndroid Build Coastguard Worker // Extract.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_EXTRACT_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_EXTRACT_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/FileFind.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker #include "../../Archive/IArchive.h" 9*f6dc9357SAndroid Build Coastguard Worker 10*f6dc9357SAndroid Build Coastguard Worker #include "ArchiveExtractCallback.h" 11*f6dc9357SAndroid Build Coastguard Worker #include "ArchiveOpenCallback.h" 12*f6dc9357SAndroid Build Coastguard Worker #include "ExtractMode.h" 13*f6dc9357SAndroid Build Coastguard Worker #include "Property.h" 14*f6dc9357SAndroid Build Coastguard Worker 15*f6dc9357SAndroid Build Coastguard Worker #include "../Common/LoadCodecs.h" 16*f6dc9357SAndroid Build Coastguard Worker 17*f6dc9357SAndroid Build Coastguard Worker struct CExtractOptionsBase 18*f6dc9357SAndroid Build Coastguard Worker { 19*f6dc9357SAndroid Build Coastguard Worker CBoolPair ElimDup; 20*f6dc9357SAndroid Build Coastguard Worker 21*f6dc9357SAndroid Build Coastguard Worker bool ExcludeDirItems; 22*f6dc9357SAndroid Build Coastguard Worker bool ExcludeFileItems; 23*f6dc9357SAndroid Build Coastguard Worker 24*f6dc9357SAndroid Build Coastguard Worker bool PathMode_Force; 25*f6dc9357SAndroid Build Coastguard Worker bool OverwriteMode_Force; 26*f6dc9357SAndroid Build Coastguard Worker NExtract::NPathMode::EEnum PathMode; 27*f6dc9357SAndroid Build Coastguard Worker NExtract::NOverwriteMode::EEnum OverwriteMode; 28*f6dc9357SAndroid Build Coastguard Worker NExtract::NZoneIdMode::EEnum ZoneMode; 29*f6dc9357SAndroid Build Coastguard Worker 30*f6dc9357SAndroid Build Coastguard Worker CExtractNtOptions NtOptions; 31*f6dc9357SAndroid Build Coastguard Worker 32*f6dc9357SAndroid Build Coastguard Worker FString OutputDir; 33*f6dc9357SAndroid Build Coastguard Worker UString HashDir; 34*f6dc9357SAndroid Build Coastguard Worker CExtractOptionsBaseCExtractOptionsBase35*f6dc9357SAndroid Build Coastguard Worker CExtractOptionsBase(): 36*f6dc9357SAndroid Build Coastguard Worker ExcludeDirItems(false), 37*f6dc9357SAndroid Build Coastguard Worker ExcludeFileItems(false), 38*f6dc9357SAndroid Build Coastguard Worker PathMode_Force(false), 39*f6dc9357SAndroid Build Coastguard Worker OverwriteMode_Force(false), 40*f6dc9357SAndroid Build Coastguard Worker PathMode(NExtract::NPathMode::kFullPaths), 41*f6dc9357SAndroid Build Coastguard Worker OverwriteMode(NExtract::NOverwriteMode::kAsk), 42*f6dc9357SAndroid Build Coastguard Worker ZoneMode(NExtract::NZoneIdMode::kNone) 43*f6dc9357SAndroid Build Coastguard Worker {} 44*f6dc9357SAndroid Build Coastguard Worker }; 45*f6dc9357SAndroid Build Coastguard Worker 46*f6dc9357SAndroid Build Coastguard Worker struct CExtractOptions: public CExtractOptionsBase 47*f6dc9357SAndroid Build Coastguard Worker { 48*f6dc9357SAndroid Build Coastguard Worker bool StdInMode; 49*f6dc9357SAndroid Build Coastguard Worker bool StdOutMode; 50*f6dc9357SAndroid Build Coastguard Worker bool YesToAll; 51*f6dc9357SAndroid Build Coastguard Worker bool TestMode; 52*f6dc9357SAndroid Build Coastguard Worker 53*f6dc9357SAndroid Build Coastguard Worker // bool ShowDialog; 54*f6dc9357SAndroid Build Coastguard Worker // bool PasswordEnabled; 55*f6dc9357SAndroid Build Coastguard Worker // UString Password; 56*f6dc9357SAndroid Build Coastguard Worker #ifndef Z7_SFX 57*f6dc9357SAndroid Build Coastguard Worker CObjectVector<CProperty> Properties; 58*f6dc9357SAndroid Build Coastguard Worker #endif 59*f6dc9357SAndroid Build Coastguard Worker 60*f6dc9357SAndroid Build Coastguard Worker /* 61*f6dc9357SAndroid Build Coastguard Worker #ifdef Z7_EXTERNAL_CODECS 62*f6dc9357SAndroid Build Coastguard Worker CCodecs *Codecs; 63*f6dc9357SAndroid Build Coastguard Worker #endif 64*f6dc9357SAndroid Build Coastguard Worker */ 65*f6dc9357SAndroid Build Coastguard Worker CExtractOptionsCExtractOptions66*f6dc9357SAndroid Build Coastguard Worker CExtractOptions(): 67*f6dc9357SAndroid Build Coastguard Worker StdInMode(false), 68*f6dc9357SAndroid Build Coastguard Worker StdOutMode(false), 69*f6dc9357SAndroid Build Coastguard Worker YesToAll(false), 70*f6dc9357SAndroid Build Coastguard Worker TestMode(false) 71*f6dc9357SAndroid Build Coastguard Worker {} 72*f6dc9357SAndroid Build Coastguard Worker }; 73*f6dc9357SAndroid Build Coastguard Worker 74*f6dc9357SAndroid Build Coastguard Worker struct CDecompressStat 75*f6dc9357SAndroid Build Coastguard Worker { 76*f6dc9357SAndroid Build Coastguard Worker UInt64 NumArchives; 77*f6dc9357SAndroid Build Coastguard Worker UInt64 UnpackSize; 78*f6dc9357SAndroid Build Coastguard Worker UInt64 AltStreams_UnpackSize; 79*f6dc9357SAndroid Build Coastguard Worker UInt64 PackSize; 80*f6dc9357SAndroid Build Coastguard Worker UInt64 NumFolders; 81*f6dc9357SAndroid Build Coastguard Worker UInt64 NumFiles; 82*f6dc9357SAndroid Build Coastguard Worker UInt64 NumAltStreams; 83*f6dc9357SAndroid Build Coastguard Worker ClearCDecompressStat84*f6dc9357SAndroid Build Coastguard Worker void Clear() 85*f6dc9357SAndroid Build Coastguard Worker { 86*f6dc9357SAndroid Build Coastguard Worker NumArchives = UnpackSize = AltStreams_UnpackSize = PackSize = NumFolders = NumFiles = NumAltStreams = 0; 87*f6dc9357SAndroid Build Coastguard Worker } 88*f6dc9357SAndroid Build Coastguard Worker }; 89*f6dc9357SAndroid Build Coastguard Worker 90*f6dc9357SAndroid Build Coastguard Worker HRESULT Extract( 91*f6dc9357SAndroid Build Coastguard Worker // DECL_EXTERNAL_CODECS_LOC_VARS 92*f6dc9357SAndroid Build Coastguard Worker CCodecs *codecs, 93*f6dc9357SAndroid Build Coastguard Worker const CObjectVector<COpenType> &types, 94*f6dc9357SAndroid Build Coastguard Worker const CIntVector &excludedFormats, 95*f6dc9357SAndroid Build Coastguard Worker UStringVector &archivePaths, UStringVector &archivePathsFull, 96*f6dc9357SAndroid Build Coastguard Worker const NWildcard::CCensorNode &wildcardCensor, 97*f6dc9357SAndroid Build Coastguard Worker const CExtractOptions &options, 98*f6dc9357SAndroid Build Coastguard Worker IOpenCallbackUI *openCallback, 99*f6dc9357SAndroid Build Coastguard Worker IExtractCallbackUI *extractCallback, 100*f6dc9357SAndroid Build Coastguard Worker IFolderArchiveExtractCallback *faeCallback, 101*f6dc9357SAndroid Build Coastguard Worker #ifndef Z7_SFX 102*f6dc9357SAndroid Build Coastguard Worker IHashCalc *hash, 103*f6dc9357SAndroid Build Coastguard Worker #endif 104*f6dc9357SAndroid Build Coastguard Worker UString &errorMessage, 105*f6dc9357SAndroid Build Coastguard Worker CDecompressStat &st); 106*f6dc9357SAndroid Build Coastguard Worker 107*f6dc9357SAndroid Build Coastguard Worker #endif 108