implodedecoder.h
来自「由7-zip提供的压缩、解压缩程序」· C头文件 代码 · 共 61 行
H
61 行
// ImplodeDecoder.h#ifndef __IMPLODE_DECODER_H#define __IMPLODE_DECODER_H#include "../../../Common/MyCom.h"#include "../../ICoder.h"#include "../LZ/LZOutWindow.h"#include "ImplodeHuffmanDecoder.h"namespace NCompress {namespace NImplode {namespace NDecoder {class CCoder : public ICompressCoder, public ICompressSetDecoderProperties2, public CMyUnknownImp{ CLZOutWindow m_OutWindowStream; NStream::NLSBF::CDecoder<CInBuffer> m_InBitStream; NImplode::NHuffman::CDecoder m_LiteralDecoder; NImplode::NHuffman::CDecoder m_LengthDecoder; NImplode::NHuffman::CDecoder m_DistanceDecoder; bool m_BigDictionaryOn; bool m_LiteralsOn; int m_NumDistanceLowDirectBits; UInt32 m_MinMatchLength; bool ReadLevelItems(NImplode::NHuffman::CDecoder &table, Byte *levels, int numLevelItems); bool ReadTables(); void DeCodeLevelTable(Byte *newLevels, int numLevels);public: CCoder(); MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2) void ReleaseStreams(); HRESULT (Flush)() { return m_OutWindowStream.Flush(); } STDMETHOD(CodeReal)(ISequentialInStream *inStream, ISequentialOutStream *outStream, const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream, const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); // ICompressSetDecoderProperties STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size);};}}}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?