Source code

Revision control

Copy as Markdown

Other Tools

// 7z/Handler.h↩
#ifndef __7Z_HANDLER_H↩
#define __7Z_HANDLER_H↩
#include "../../ICoder.h"
#include "../IArchive.h"
#include "../../Common/CreateCoder.h"
#ifndef __7Z_SET_PROPERTIES↩
#ifdef EXTRACT_ONLY↩
#if !defined(_7ZIP_ST) && !defined(_SFX)↩
#define __7Z_SET_PROPERTIES↩
#endif
#else
#define __7Z_SET_PROPERTIES↩
#endif
#endif
// #ifdef __7Z_SET_PROPERTIES↩
#include "../Common/HandlerOut.h"
// #endif↩
#include "7zCompressionMode.h"
#include "7zIn.h"
namespace NArchive {↩
namespace N7z {↩
#ifndef EXTRACT_ONLY↩
class COutHandler: public CMultiMethodProps↩
{↩
HRESULT SetSolidFromString(const UString &s);↩
HRESULT SetSolidFromPROPVARIANT(const PROPVARIANT &value);↩
public:↩
UInt64 _numSolidFiles;↩
UInt64 _numSolidBytes;↩
bool _numSolidBytesDefined;↩
bool _solidExtension;↩
bool _useTypeSorting;↩
bool _compressHeaders;↩
bool _encryptHeadersSpecified;↩
bool _encryptHeaders;↩
// bool _useParents; 9.26↩
CBoolPair Write_CTime;↩
CBoolPair Write_ATime;↩
CBoolPair Write_MTime;↩
CBoolPair Write_Attrib;↩
bool _useMultiThreadMixer;↩
bool _removeSfxBlock;↩
// bool _volumeMode;↩
void InitSolidFiles() { _numSolidFiles = (UInt64)(Int64)(-1); }↩
void InitSolidSize() { _numSolidBytes = (UInt64)(Int64)(-1); }↩
void InitSolid()↩
{↩
InitSolidFiles();↩
InitSolidSize();↩
_solidExtension = false;↩
_numSolidBytesDefined = false;↩
}↩
void InitProps7z();↩
void InitProps();↩
COutHandler() { InitProps7z(); }↩
HRESULT SetProperty(const wchar_t *name, const PROPVARIANT &value);↩
};↩
#endif
class CHandler:↩
public IInArchive,↩
public IArchiveGetRawProps,↩
#ifdef __7Z_SET_PROPERTIES↩
public ISetProperties,↩
#endif
#ifndef EXTRACT_ONLY↩
public IOutArchive,↩
#endif
PUBLIC_ISetCompressCodecsInfo↩
public CMyUnknownImp,↩
#ifndef EXTRACT_ONLY↩
public COutHandler↩
#else
public CCommonMethodProps↩
#endif
{↩
public:↩
MY_QUERYINTERFACE_BEGIN2(IInArchive)↩
MY_QUERYINTERFACE_ENTRY(IArchiveGetRawProps)↩
#ifdef __7Z_SET_PROPERTIES↩
MY_QUERYINTERFACE_ENTRY(ISetProperties)↩
#endif
#ifndef EXTRACT_ONLY↩
MY_QUERYINTERFACE_ENTRY(IOutArchive)↩
#endif
QUERY_ENTRY_ISetCompressCodecsInfo↩
MY_QUERYINTERFACE_END↩
MY_ADDREF_RELEASE↩
INTERFACE_IInArchive(;)↩
INTERFACE_IArchiveGetRawProps(;)↩
#ifdef __7Z_SET_PROPERTIES↩
STDMETHOD(SetProperties)(const wchar_t * const *names, const PROPVARIANT *values, UInt32 numProps);↩
#endif
#ifndef EXTRACT_ONLY↩
INTERFACE_IOutArchive(;)↩
#endif
DECL_ISetCompressCodecsInfo↩
CHandler();↩
private:↩
CMyComPtr<IInStream> _inStream;↩
NArchive::N7z::CDbEx _db;↩
#ifndef _NO_CRYPTO↩
bool _isEncrypted;↩
bool _passwordIsDefined;↩
UString _password;↩
#endif
#ifdef EXTRACT_ONLY↩
#ifdef __7Z_SET_PROPERTIES↩
bool _useMultiThreadMixer;↩
#endif
UInt32 _crcSize;↩
#else
CRecordVector<CBond2> _bonds;↩
HRESULT PropsMethod_To_FullMethod(CMethodFull &dest, const COneMethodInfo &m);↩
HRESULT SetHeaderMethod(CCompressionMethodMode &headerMethod);↩
HRESULT SetMainMethod(CCompressionMethodMode &method↩
#ifndef _7ZIP_ST↩
, UInt32 numThreads↩
#endif
);↩
#endif
bool IsFolderEncrypted(CNum folderIndex) const;↩
#ifndef _SFX↩
CRecordVector<UInt64> _fileInfoPopIDs;↩
void FillPopIDs();↩
void AddMethodName(AString &s, UInt64 id);↩
HRESULT SetMethodToProp(CNum folderIndex, PROPVARIANT *prop) const;↩
#endif
DECL_EXTERNAL_CODECS_VARS↩
};↩
}}↩
#endif