view src/win32/7zip/7z/CPP/7zip/Archive/7z/7zHandler.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 // 7z/Handler.h
3 #ifndef __7Z_HANDLER_H
4 #define __7Z_HANDLER_H
6 #include "../../ICoder.h"
7 #include "../IArchive.h"
8 #include "7zIn.h"
10 #include "7zCompressionMode.h"
12 #include "../../Common/CreateCoder.h"
14 #ifndef EXTRACT_ONLY
15 #include "../Common/HandlerOut.h"
16 #endif
18 namespace NArchive {
19 namespace N7z {
21 #ifndef __7Z_SET_PROPERTIES
23 #ifdef EXTRACT_ONLY
24 #ifdef COMPRESS_MT
25 #define __7Z_SET_PROPERTIES
26 #endif
27 #else
28 #define __7Z_SET_PROPERTIES
29 #endif
31 #endif
34 class CHandler:
35 #ifndef EXTRACT_ONLY
36 public NArchive::COutHandler,
37 #endif
38 public IInArchive,
39 #ifdef __7Z_SET_PROPERTIES
40 public ISetProperties,
41 #endif
42 #ifndef EXTRACT_ONLY
43 public IOutArchive,
44 #endif
45 PUBLIC_ISetCompressCodecsInfo
46 public CMyUnknownImp
47 {
48 public:
49 MY_QUERYINTERFACE_BEGIN2(IInArchive)
50 #ifdef __7Z_SET_PROPERTIES
51 MY_QUERYINTERFACE_ENTRY(ISetProperties)
52 #endif
53 #ifndef EXTRACT_ONLY
54 MY_QUERYINTERFACE_ENTRY(IOutArchive)
55 #endif
56 QUERY_ENTRY_ISetCompressCodecsInfo
57 MY_QUERYINTERFACE_END
58 MY_ADDREF_RELEASE
60 INTERFACE_IInArchive(;)
62 #ifdef __7Z_SET_PROPERTIES
63 STDMETHOD(SetProperties)(const wchar_t **names, const PROPVARIANT *values, Int32 numProperties);
64 #endif
66 #ifndef EXTRACT_ONLY
67 INTERFACE_IOutArchive(;)
68 #endif
70 DECL_ISetCompressCodecsInfo
72 CHandler();
74 private:
75 CMyComPtr<IInStream> _inStream;
76 NArchive::N7z::CArchiveDatabaseEx _db;
77 #ifndef _NO_CRYPTO
78 bool _passwordIsDefined;
79 #endif
81 #ifdef EXTRACT_ONLY
83 #ifdef COMPRESS_MT
84 UInt32 _numThreads;
85 #endif
87 UInt32 _crcSize;
89 #else
91 CRecordVector<CBind> _binds;
93 HRESULT SetPassword(CCompressionMethodMode &methodMode, IArchiveUpdateCallback *updateCallback);
95 HRESULT SetCompressionMethod(CCompressionMethodMode &method,
96 CObjectVector<COneMethodInfo> &methodsInfo
97 #ifdef COMPRESS_MT
98 , UInt32 numThreads
99 #endif
100 );
102 HRESULT SetCompressionMethod(
103 CCompressionMethodMode &method,
104 CCompressionMethodMode &headerMethod);
106 #endif
108 bool IsEncrypted(UInt32 index2) const;
109 #ifndef _SFX
111 CRecordVector<UInt64> _fileInfoPopIDs;
112 void FillPopIDs();
114 #endif
116 DECL_EXTERNAL_CODECS_VARS
117 };
119 }}
121 #endif