1baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// Extract.h 2baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 3baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#ifndef __EXTRACT_H 4baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define __EXTRACT_H 5baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 6baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "Windows/FileFind.h" 7baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 8baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../../Archive/IArchive.h" 9baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 10baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "ArchiveExtractCallback.h" 11baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "ArchiveOpenCallback.h" 12baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "ExtractMode.h" 13baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "Property.h" 14baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 15baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "../Common/LoadCodecs.h" 16baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 17baa3858d3f5d128a5c8466b700098109edcad5f2repo syncstruct CExtractOptions 18baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{ 19baa3858d3f5d128a5c8466b700098109edcad5f2repo sync bool StdInMode; 20baa3858d3f5d128a5c8466b700098109edcad5f2repo sync bool StdOutMode; 21baa3858d3f5d128a5c8466b700098109edcad5f2repo sync bool YesToAll; 22baa3858d3f5d128a5c8466b700098109edcad5f2repo sync bool TestMode; 23baa3858d3f5d128a5c8466b700098109edcad5f2repo sync bool CalcCrc; 24baa3858d3f5d128a5c8466b700098109edcad5f2repo sync NExtract::NPathMode::EEnum PathMode; 25baa3858d3f5d128a5c8466b700098109edcad5f2repo sync NExtract::NOverwriteMode::EEnum OverwriteMode; 26baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UString OutputDir; 27baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 28baa3858d3f5d128a5c8466b700098109edcad5f2repo sync // bool ShowDialog; 29baa3858d3f5d128a5c8466b700098109edcad5f2repo sync // bool PasswordEnabled; 30baa3858d3f5d128a5c8466b700098109edcad5f2repo sync // UString Password; 31baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #if !defined(_7ZIP_ST) && !defined(_SFX) 32baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CObjectVector<CProperty> Properties; 33baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #endif 34baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 35baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #ifdef EXTERNAL_CODECS 36baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CCodecs *Codecs; 37baa3858d3f5d128a5c8466b700098109edcad5f2repo sync #endif 38baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 39baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CExtractOptions(): 40baa3858d3f5d128a5c8466b700098109edcad5f2repo sync StdInMode(false), 41baa3858d3f5d128a5c8466b700098109edcad5f2repo sync StdOutMode(false), 42baa3858d3f5d128a5c8466b700098109edcad5f2repo sync YesToAll(false), 43baa3858d3f5d128a5c8466b700098109edcad5f2repo sync TestMode(false), 44baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CalcCrc(false), 45baa3858d3f5d128a5c8466b700098109edcad5f2repo sync PathMode(NExtract::NPathMode::kFullPathnames), 46baa3858d3f5d128a5c8466b700098109edcad5f2repo sync OverwriteMode(NExtract::NOverwriteMode::kAskBefore) 47baa3858d3f5d128a5c8466b700098109edcad5f2repo sync {} 48baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}; 49baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 50baa3858d3f5d128a5c8466b700098109edcad5f2repo syncstruct CDecompressStat 51baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{ 52baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt64 NumArchives; 53baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt64 UnpackSize; 54baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt64 PackSize; 55baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt64 NumFolders; 56baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt64 NumFiles; 57baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UInt32 CrcSum; 58baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 59baa3858d3f5d128a5c8466b700098109edcad5f2repo sync void Clear() 60baa3858d3f5d128a5c8466b700098109edcad5f2repo sync { 61baa3858d3f5d128a5c8466b700098109edcad5f2repo sync NumArchives = UnpackSize = PackSize = NumFolders = NumFiles = 0; 62baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CrcSum = 0; 63baa3858d3f5d128a5c8466b700098109edcad5f2repo sync } 64baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}; 65baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 66baa3858d3f5d128a5c8466b700098109edcad5f2repo syncHRESULT DecompressArchives( 67baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CCodecs *codecs, const CIntVector &formatIndices, 68baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UStringVector &archivePaths, UStringVector &archivePathsFull, 69baa3858d3f5d128a5c8466b700098109edcad5f2repo sync const NWildcard::CCensorNode &wildcardCensor, 70baa3858d3f5d128a5c8466b700098109edcad5f2repo sync const CExtractOptions &options, 71baa3858d3f5d128a5c8466b700098109edcad5f2repo sync IOpenCallbackUI *openCallback, 72baa3858d3f5d128a5c8466b700098109edcad5f2repo sync IExtractCallbackUI *extractCallback, 73baa3858d3f5d128a5c8466b700098109edcad5f2repo sync UString &errorMessage, 74baa3858d3f5d128a5c8466b700098109edcad5f2repo sync CDecompressStat &stat); 75baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 76baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#endif 77