blob: 70926d78ffd27cc92c046eeb7a00dd21f7a4c85d [file] [log] [blame]
// 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<CProperty> 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