Mercurial > vba-linux
annotate src/win32/7zip/7z/CPP/7zip/Archive/Rar/RarHandler.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
rev | line source |
---|---|
rlm@1 | 1 // Rar/Handler.h |
rlm@1 | 2 |
rlm@1 | 3 #ifndef __RAR_HANDLER_H |
rlm@1 | 4 #define __RAR_HANDLER_H |
rlm@1 | 5 |
rlm@1 | 6 #include "../IArchive.h" |
rlm@1 | 7 #include "RarIn.h" |
rlm@1 | 8 #include "RarVolumeInStream.h" |
rlm@1 | 9 |
rlm@1 | 10 #include "../../Common/CreateCoder.h" |
rlm@1 | 11 |
rlm@1 | 12 namespace NArchive { |
rlm@1 | 13 namespace NRar { |
rlm@1 | 14 |
rlm@1 | 15 class CHandler: |
rlm@1 | 16 public IInArchive, |
rlm@1 | 17 PUBLIC_ISetCompressCodecsInfo |
rlm@1 | 18 public CMyUnknownImp |
rlm@1 | 19 { |
rlm@1 | 20 public: |
rlm@1 | 21 MY_QUERYINTERFACE_BEGIN2(IInArchive) |
rlm@1 | 22 QUERY_ENTRY_ISetCompressCodecsInfo |
rlm@1 | 23 MY_QUERYINTERFACE_END |
rlm@1 | 24 MY_ADDREF_RELEASE |
rlm@1 | 25 |
rlm@1 | 26 INTERFACE_IInArchive(;) |
rlm@1 | 27 |
rlm@1 | 28 DECL_ISetCompressCodecsInfo |
rlm@1 | 29 |
rlm@1 | 30 private: |
rlm@1 | 31 CRecordVector<CRefItem> _refItems; |
rlm@1 | 32 CObjectVector<CItemEx> _items; |
rlm@1 | 33 CObjectVector<CInArchive> _archives; |
rlm@1 | 34 NArchive::NRar::CInArchiveInfo _archiveInfo; |
rlm@1 | 35 |
rlm@1 | 36 DECL_EXTERNAL_CODECS_VARS |
rlm@1 | 37 |
rlm@1 | 38 UInt64 GetPackSize(int refIndex) const; |
rlm@1 | 39 // NArchive::NRar::CInArchive _archive; |
rlm@1 | 40 |
rlm@1 | 41 bool IsSolid(int refIndex) |
rlm@1 | 42 { |
rlm@1 | 43 const CItemEx &item = _items[_refItems[refIndex].ItemIndex]; |
rlm@1 | 44 if (item.UnPackVersion < 20) |
rlm@1 | 45 { |
rlm@1 | 46 if (_archiveInfo.IsSolid()) |
rlm@1 | 47 return (refIndex > 0); |
rlm@1 | 48 return false; |
rlm@1 | 49 } |
rlm@1 | 50 return item.IsSolid(); |
rlm@1 | 51 } |
rlm@1 | 52 |
rlm@1 | 53 HRESULT Open2(IInStream *stream, |
rlm@1 | 54 const UInt64 *maxCheckStartPosition, |
rlm@1 | 55 IArchiveOpenCallback *openArchiveCallback); |
rlm@1 | 56 }; |
rlm@1 | 57 |
rlm@1 | 58 }} |
rlm@1 | 59 |
rlm@1 | 60 #endif |