view src/win32/7zip/7z/CPP/7zip/Archive/Lzma/LzmaHandler.h @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
line wrap: on
line source
1 // Lzma/Handler.h
3 #ifndef __GZIP_HANDLER_H
4 #define __GZIP_HANDLER_H
6 #include "Common/MyCom.h"
8 #include "../IArchive.h"
9 #include "../../Common/CreateCoder.h"
11 #include "LzmaIn.h"
13 namespace NArchive {
14 namespace NLzma {
16 // const UInt64 k_LZMA = 0x030101;
18 class CHandler:
19 public IInArchive,
20 PUBLIC_ISetCompressCodecsInfo
21 public CMyUnknownImp
22 {
23 public:
24 MY_QUERYINTERFACE_BEGIN
25 MY_QUERYINTERFACE_ENTRY(IInArchive)
26 QUERY_ENTRY_ISetCompressCodecsInfo
27 MY_QUERYINTERFACE_END
28 MY_ADDREF_RELEASE
30 STDMETHOD(Open)(IInStream *inStream,
31 const UInt64 *maxCheckStartPosition,
32 IArchiveOpenCallback *openArchiveCallback);
33 STDMETHOD(Close)();
35 STDMETHOD(GetNumberOfItems)(UInt32 *numItems);
36 STDMETHOD(GetProperty)(UInt32 index, PROPID propID, PROPVARIANT *value);
37 STDMETHOD(Extract)(const UInt32* indices, UInt32 numItems,
38 Int32 testMode, IArchiveExtractCallback *extractCallback);
40 STDMETHOD(GetArchiveProperty)(PROPID propID, PROPVARIANT *value);
42 STDMETHOD(GetNumberOfProperties)(UInt32 *numProperties);
43 STDMETHOD(GetPropertyInfo)(UInt32 index,
44 BSTR *name, PROPID *propID, VARTYPE *varType);
46 STDMETHOD(GetNumberOfArchiveProperties)(UInt32 *numProperties);
47 STDMETHOD(GetArchivePropertyInfo)(UInt32 index,
48 BSTR *name, PROPID *propID, VARTYPE *varType);
50 UString GetMethodString();
51 public:
52 CHandler() { }
54 private:
55 CHeader m_StreamInfo;
56 UInt64 m_StreamStartPosition;
57 UInt64 m_PackSize;
59 CMyComPtr<IInStream> m_Stream;
61 DECL_EXTERNAL_CODECS_VARS
63 DECL_ISetCompressCodecsInfo
65 };
67 }}
69 #endif