rlm@1
|
1 // Lzma/Handler.h
|
rlm@1
|
2
|
rlm@1
|
3 #ifndef __GZIP_HANDLER_H
|
rlm@1
|
4 #define __GZIP_HANDLER_H
|
rlm@1
|
5
|
rlm@1
|
6 #include "Common/MyCom.h"
|
rlm@1
|
7
|
rlm@1
|
8 #include "../IArchive.h"
|
rlm@1
|
9 #include "../../Common/CreateCoder.h"
|
rlm@1
|
10
|
rlm@1
|
11 #include "LzmaIn.h"
|
rlm@1
|
12
|
rlm@1
|
13 namespace NArchive {
|
rlm@1
|
14 namespace NLzma {
|
rlm@1
|
15
|
rlm@1
|
16 // const UInt64 k_LZMA = 0x030101;
|
rlm@1
|
17
|
rlm@1
|
18 class CHandler:
|
rlm@1
|
19 public IInArchive,
|
rlm@1
|
20 PUBLIC_ISetCompressCodecsInfo
|
rlm@1
|
21 public CMyUnknownImp
|
rlm@1
|
22 {
|
rlm@1
|
23 public:
|
rlm@1
|
24 MY_QUERYINTERFACE_BEGIN
|
rlm@1
|
25 MY_QUERYINTERFACE_ENTRY(IInArchive)
|
rlm@1
|
26 QUERY_ENTRY_ISetCompressCodecsInfo
|
rlm@1
|
27 MY_QUERYINTERFACE_END
|
rlm@1
|
28 MY_ADDREF_RELEASE
|
rlm@1
|
29
|
rlm@1
|
30 STDMETHOD(Open)(IInStream *inStream,
|
rlm@1
|
31 const UInt64 *maxCheckStartPosition,
|
rlm@1
|
32 IArchiveOpenCallback *openArchiveCallback);
|
rlm@1
|
33 STDMETHOD(Close)();
|
rlm@1
|
34
|
rlm@1
|
35 STDMETHOD(GetNumberOfItems)(UInt32 *numItems);
|
rlm@1
|
36 STDMETHOD(GetProperty)(UInt32 index, PROPID propID, PROPVARIANT *value);
|
rlm@1
|
37 STDMETHOD(Extract)(const UInt32* indices, UInt32 numItems,
|
rlm@1
|
38 Int32 testMode, IArchiveExtractCallback *extractCallback);
|
rlm@1
|
39
|
rlm@1
|
40 STDMETHOD(GetArchiveProperty)(PROPID propID, PROPVARIANT *value);
|
rlm@1
|
41
|
rlm@1
|
42 STDMETHOD(GetNumberOfProperties)(UInt32 *numProperties);
|
rlm@1
|
43 STDMETHOD(GetPropertyInfo)(UInt32 index,
|
rlm@1
|
44 BSTR *name, PROPID *propID, VARTYPE *varType);
|
rlm@1
|
45
|
rlm@1
|
46 STDMETHOD(GetNumberOfArchiveProperties)(UInt32 *numProperties);
|
rlm@1
|
47 STDMETHOD(GetArchivePropertyInfo)(UInt32 index,
|
rlm@1
|
48 BSTR *name, PROPID *propID, VARTYPE *varType);
|
rlm@1
|
49
|
rlm@1
|
50 UString GetMethodString();
|
rlm@1
|
51 public:
|
rlm@1
|
52 CHandler() { }
|
rlm@1
|
53
|
rlm@1
|
54 private:
|
rlm@1
|
55 CHeader m_StreamInfo;
|
rlm@1
|
56 UInt64 m_StreamStartPosition;
|
rlm@1
|
57 UInt64 m_PackSize;
|
rlm@1
|
58
|
rlm@1
|
59 CMyComPtr<IInStream> m_Stream;
|
rlm@1
|
60
|
rlm@1
|
61 DECL_EXTERNAL_CODECS_VARS
|
rlm@1
|
62
|
rlm@1
|
63 DECL_ISetCompressCodecsInfo
|
rlm@1
|
64
|
rlm@1
|
65 };
|
rlm@1
|
66
|
rlm@1
|
67 }}
|
rlm@1
|
68
|
rlm@1
|
69 #endif
|