// Extract.h #ifndef __EXTRACT_H #define __EXTRACT_H #include "Windows/FileFind.h" #include "../../Archive/IArchive.h" #include "ArchiveExtractCallback.h" #include "ArchiveOpenCallback.h" #include "ExtractMode.h" #include "Property.h" #include "../Common/LoadCodecs.h" struct CExtractOptions { bool StdInMode; bool StdOutMode; bool YesToAll; bool TestMode; bool CalcCrc; NExtract::NPathMode::EEnum PathMode; NExtract::NOverwriteMode::EEnum OverwriteMode; UString OutputDir; // bool ShowDialog; // bool PasswordEnabled; // UString Password; #if !defined(_7ZIP_ST) && !defined(_SFX) CObjectVector Properties; #endif #ifdef EXTERNAL_CODECS CCodecs *Codecs; #endif CExtractOptions(): StdInMode(false), StdOutMode(false), YesToAll(false), TestMode(false), CalcCrc(false), PathMode(NExtract::NPathMode::kFullPathnames), OverwriteMode(NExtract::NOverwriteMode::kAskBefore) {} }; struct CDecompressStat { UInt64 NumArchives; UInt64 UnpackSize; UInt64 PackSize; UInt64 NumFolders; UInt64 NumFiles; UInt32 CrcSum; void Clear() { NumArchives = UnpackSize = PackSize = NumFolders = NumFiles = 0; CrcSum = 0; } }; HRESULT DecompressArchives( CCodecs *codecs, const CIntVector &formatIndices, UStringVector &archivePaths, UStringVector &archivePathsFull, const NWildcard::CCensorNode &wildcardCensor, const CExtractOptions &options, IOpenCallbackUI *openCallback, IExtractCallbackUI *extractCallback, UString &errorMessage, CDecompressStat &stat); #endif