1 // TarHandler.h 2 3 #ifndef ZIP7_INC_TAR_HANDLER_H 4 #define ZIP7_INC_TAR_HANDLER_H 5 6 #include "../../../Common/MyCom.h" 7 8 #include "../../Compress/CopyCoder.h" 9 10 #include "../Common/HandlerOut.h" 11 12 #include "TarIn.h" 13 14 namespace NArchive { 15 namespace NTar { 16 17 Z7_CLASS_IMP_CHandler_IInArchive_4( 18 IArchiveOpenSeq 19 , IInArchiveGetStream 20 , ISetProperties 21 , IOutArchive 22 ) 23 public: 24 CObjectVector<CItemEx> _items; 25 CMyComPtr<IInStream> _stream; 26 CMyComPtr<ISequentialInStream> _seqStream; 27 private: 28 bool _isArc; 29 bool _posixMode_WasForced; 30 bool _posixMode; 31 bool _forceCodePage; 32 UInt32 _specifiedCodePage; 33 UInt32 _curCodePage; 34 UInt32 _openCodePage; 35 // CTimeOptions TimeOptions; 36 CHandlerTimeOptions _handlerTimeOptions; 37 CEncodingCharacts _encodingCharacts; 38 39 UInt32 _curIndex; 40 bool _latestIsRead; 41 CItemEx _latestItem; 42 43 CArchive _arc; 44 45 CMyComPtr2_Create<ICompressCoder, NCompress::CCopyCoder> copyCoder; 46 47 HRESULT Open2(IInStream *stream, IArchiveOpenCallback *callback); 48 HRESULT SkipTo(UInt32 index); 49 void TarStringToUnicode(const AString &s, NWindows::NCOM::CPropVariant &prop, bool toOs = false) const; 50 public: 51 void Init(); 52 CHandler(); 53 }; 54 55 }} 56 57 #endif 58