Mercurial > vba-linux
view src/win32/7zip/7z/CPP/7zip/ICoder.h @ 4:5f6f2134e8ce
apu appears to not be used
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:35:58 -0600 |
parents | f9f4f1b99eed |
children |
line wrap: on
line source
1 // ICoder.h3 #ifndef __ICODER_H4 #define __ICODER_H6 #include "IStream.h"8 #define CODER_INTERFACE(i, x) DECL_INTERFACE(i, 4, x)10 CODER_INTERFACE(ICompressProgressInfo, 0x04)11 {12 STDMETHOD(SetRatioInfo)(const UInt64 *inSize, const UInt64 *outSize) PURE;13 };15 CODER_INTERFACE(ICompressCoder, 0x05)16 {17 STDMETHOD(Code)(ISequentialInStream *inStream,18 ISequentialOutStream *outStream,19 const UInt64 *inSize,20 const UInt64 *outSize,21 ICompressProgressInfo *progress) PURE;22 };24 CODER_INTERFACE(ICompressCoder2, 0x18)25 {26 STDMETHOD(Code)(ISequentialInStream **inStreams,27 const UInt64 **inSizes,28 UInt32 numInStreams,29 ISequentialOutStream **outStreams,30 const UInt64 **outSizes,31 UInt32 numOutStreams,32 ICompressProgressInfo *progress) PURE;33 };35 namespace NCoderPropID36 {37 enum EEnum38 {39 kDictionarySize = 0x400,40 kUsedMemorySize,41 kOrder,42 kBlockSize,43 kPosStateBits = 0x440,44 kLitContextBits,45 kLitPosBits,46 kNumFastBytes = 0x450,47 kMatchFinder,48 kMatchFinderCycles,49 kNumPasses = 0x460,50 kAlgorithm = 0x470,51 kMultiThread = 0x480,52 kNumThreads,53 kEndMarker = 0x49054 };55 }57 CODER_INTERFACE(ICompressSetCoderProperties, 0x20)58 {59 STDMETHOD(SetCoderProperties)(const PROPID *propIDs,60 const PROPVARIANT *properties, UInt32 numProperties) PURE;61 };63 /*64 CODER_INTERFACE(ICompressSetCoderProperties, 0x21)65 {66 STDMETHOD(SetDecoderProperties)(ISequentialInStream *inStream) PURE;67 };68 */70 CODER_INTERFACE(ICompressSetDecoderProperties2, 0x22)71 {72 STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size) PURE;73 };75 CODER_INTERFACE(ICompressWriteCoderProperties, 0x23)76 {77 STDMETHOD(WriteCoderProperties)(ISequentialOutStream *outStreams) PURE;78 };80 CODER_INTERFACE(ICompressGetInStreamProcessedSize, 0x24)81 {82 STDMETHOD(GetInStreamProcessedSize)(UInt64 *value) PURE;83 };85 CODER_INTERFACE(ICompressSetCoderMt, 0x25)86 {87 STDMETHOD(SetNumberOfThreads)(UInt32 numThreads) PURE;88 };90 CODER_INTERFACE(ICompressGetSubStreamSize, 0x30)91 {92 STDMETHOD(GetSubStreamSize)(UInt64 subStream, UInt64 *value) PURE;93 };95 CODER_INTERFACE(ICompressSetInStream, 0x31)96 {97 STDMETHOD(SetInStream)(ISequentialInStream *inStream) PURE;98 STDMETHOD(ReleaseInStream)() PURE;99 };101 CODER_INTERFACE(ICompressSetOutStream, 0x32)102 {103 STDMETHOD(SetOutStream)(ISequentialOutStream *outStream) PURE;104 STDMETHOD(ReleaseOutStream)() PURE;105 };107 CODER_INTERFACE(ICompressSetInStreamSize, 0x33)108 {109 STDMETHOD(SetInStreamSize)(const UInt64 *inSize) PURE;110 };112 CODER_INTERFACE(ICompressSetOutStreamSize, 0x34)113 {114 STDMETHOD(SetOutStreamSize)(const UInt64 *outSize) PURE;115 };117 CODER_INTERFACE(ICompressFilter, 0x40)118 {119 STDMETHOD(Init)() PURE;120 STDMETHOD_(UInt32, Filter)(Byte *data, UInt32 size) PURE;121 // Filter return outSize (UInt32)122 // if (outSize <= size): Filter have converted outSize bytes123 // if (outSize > size): Filter have not converted anything.124 // and it needs at least outSize bytes to convert one block125 // (it's for crypto block algorithms).126 };128 CODER_INTERFACE(ICompressCodecsInfo, 0x60)129 {130 STDMETHOD(GetNumberOfMethods)(UInt32 *numMethods) PURE;131 STDMETHOD(GetProperty)(UInt32 index, PROPID propID, PROPVARIANT *value) PURE;132 STDMETHOD(CreateDecoder)(UInt32 index, const GUID *iid, void **coder) PURE;133 STDMETHOD(CreateEncoder)(UInt32 index, const GUID *iid, void **coder) PURE;134 };135 CODER_INTERFACE(ISetCompressCodecsInfo, 0x61)136 {137 STDMETHOD(SetCompressCodecsInfo)(ICompressCodecsInfo *compressCodecsInfo) PURE;138 };140 CODER_INTERFACE(ICryptoProperties, 0x80)141 {142 STDMETHOD(SetKey)(const Byte *data, UInt32 size) PURE;143 STDMETHOD(SetInitVector)(const Byte *data, UInt32 size) PURE;144 };146 /*147 CODER_INTERFACE(ICryptoResetSalt, 0x88)148 {149 STDMETHOD(ResetSalt)() PURE;150 };151 */153 CODER_INTERFACE(ICryptoResetInitVector, 0x8C)154 {155 STDMETHOD(ResetInitVector)() PURE;156 };158 CODER_INTERFACE(ICryptoSetPassword, 0x90)159 {160 STDMETHOD(CryptoSetPassword)(const Byte *data, UInt32 size) PURE;161 };163 CODER_INTERFACE(ICryptoSetCRC, 0xA0)164 {165 STDMETHOD(CryptoSetCRC)(UInt32 crc) PURE;166 };168 //////////////////////169 // It's for DLL file170 namespace NMethodPropID171 {172 enum EEnum173 {174 kID,175 kName,176 kDecoder,177 kEncoder,178 kInStreams,179 kOutStreams,180 kDescription,181 kDecoderIsAssigned,182 kEncoderIsAssigned183 };184 }186 #endif