diff options
Diffstat (limited to 'CPP/7zip/Archive/Tar/TarHandler.h')
-rw-r--r--[-rwxr-xr-x] | CPP/7zip/Archive/Tar/TarHandler.h | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/CPP/7zip/Archive/Tar/TarHandler.h b/CPP/7zip/Archive/Tar/TarHandler.h index 9251edf6..23854767 100755..100644 --- a/CPP/7zip/Archive/Tar/TarHandler.h +++ b/CPP/7zip/Archive/Tar/TarHandler.h @@ -3,12 +3,15 @@ #ifndef __TAR_HANDLER_H #define __TAR_HANDLER_H -#include "Common/MyCom.h" -#include "../IArchive.h" +#include "../../../Common/MyCom.h" + +#include "../../../Windows/PropVariant.h" #include "../../Compress/CopyCoder.h" -#include "TarItem.h" +#include "../IArchive.h" + +#include "TarIn.h" namespace NArchive { namespace NTar { @@ -17,13 +20,15 @@ class CHandler: public IInArchive, public IArchiveOpenSeq, public IInArchiveGetStream, + public ISetProperties, public IOutArchive, public CMyUnknownImp { +public: CObjectVector<CItemEx> _items; CMyComPtr<IInStream> _stream; CMyComPtr<ISequentialInStream> _seqStream; - +private: UInt32 _curIndex; bool _latestIsRead; CItemEx _latestItem; @@ -31,8 +36,16 @@ class CHandler: UInt64 _phySize; UInt64 _headersSize; bool _phySizeDefined; - AString _errorMessage; - bool _isSparse; + EErrorType _error; + bool _isArc; + + // bool _isSparse; + bool _thereIsPaxExtendedHeader; + + bool _forceCodePage; + UInt32 _specifiedCodePage; + UInt32 _curCodePage; + UInt32 _openCodePage; NCompress::CCopyCoder *copyCoderSpec; CMyComPtr<ICompressCoder> copyCoder; @@ -40,12 +53,13 @@ class CHandler: HRESULT ReadItem2(ISequentialInStream *stream, bool &filled, CItemEx &itemInfo); HRESULT Open2(IInStream *stream, IArchiveOpenCallback *callback); HRESULT SkipTo(UInt32 index); - + void TarStringToUnicode(const AString &s, NWindows::NCOM::CPropVariant &prop, bool toOs = false) const; public: - MY_UNKNOWN_IMP4( + MY_UNKNOWN_IMP5( IInArchive, IArchiveOpenSeq, IInArchiveGetStream, + ISetProperties, IOutArchive ) @@ -53,7 +67,9 @@ public: INTERFACE_IOutArchive(;) STDMETHOD(OpenSeq)(ISequentialInStream *stream); STDMETHOD(GetStream)(UInt32 index, ISequentialInStream **stream); + STDMETHOD(SetProperties)(const wchar_t **names, const PROPVARIANT *values, UInt32 numProps); + void Init(); CHandler(); }; |