Source code
Revision control
Copy as Markdown
Other Tools
// 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 CExtractOptionsBase↩
{↩
CBoolPair ElimDup;↩
↩
bool PathMode_Force;↩
bool OverwriteMode_Force;↩
NExtract::NPathMode::EEnum PathMode;↩
NExtract::NOverwriteMode::EEnum OverwriteMode;↩
↩
FString OutputDir;↩
CExtractNtOptions NtOptions;↩
↩
CExtractOptionsBase():↩
PathMode_Force(false),↩
OverwriteMode_Force(false),↩
PathMode(NExtract::NPathMode::kFullPaths),↩
OverwriteMode(NExtract::NOverwriteMode::kAsk)↩
{}↩
};↩
↩
struct CExtractOptions: public CExtractOptionsBase↩
{↩
bool StdInMode;↩
bool StdOutMode;↩
bool YesToAll;↩
bool TestMode;↩
↩
// bool ShowDialog;↩
// bool PasswordEnabled;↩
// UString Password;↩
#ifndef _SFX↩
CObjectVector<CProperty> Properties;↩
#endif↩
↩
#ifdef EXTERNAL_CODECS↩
CCodecs *Codecs;↩
#endif↩
↩
CExtractOptions():↩
TestMode(false),↩
StdInMode(false),↩
StdOutMode(false),↩
YesToAll(false)↩
{}↩
};↩
↩
struct CDecompressStat↩
{↩
UInt64 NumArchives;↩
UInt64 UnpackSize;↩
UInt64 AltStreams_UnpackSize;↩
UInt64 PackSize;↩
UInt64 NumFolders;↩
UInt64 NumFiles;↩
UInt64 NumAltStreams;↩
↩
void Clear()↩
{↩
NumArchives = UnpackSize = AltStreams_UnpackSize = PackSize = NumFolders = NumFiles = NumAltStreams = 0;↩
}↩
};↩
↩
HRESULT Extract(↩
CCodecs *codecs,↩
const CObjectVector<COpenType> &types,↩
const CIntVector &excludedFormats,↩
UStringVector &archivePaths, UStringVector &archivePathsFull,↩
const NWildcard::CCensorNode &wildcardCensor,↩
const CExtractOptions &options,↩
IOpenCallbackUI *openCallback,↩
IExtractCallbackUI *extractCallback,↩
#ifndef _SFX↩
IHashCalc *hash,↩
#endif↩
UString &errorMessage,↩
CDecompressStat &st);↩
↩
#endif↩