ppmddecoder.h
来自「由7-zip提供的压缩、解压缩程序」· C头文件 代码 · 共 90 行
H
90 行
// Compress/PPM/PPMDDecoder.h#ifndef __COMPRESS_PPMD_DECODER_H#define __COMPRESS_PPMD_DECODER_H#include "../../../Common/MyCom.h"#include "../../ICoder.h"#include "../../Common/OutBuffer.h"#include "../RangeCoder/RangeCoder.h"#include "PPMDDecode.h"namespace NCompress {namespace NPPMD {class CDecoder : public ICompressCoder, public ICompressSetDecoderProperties2, #ifdef _ST_MODE public ICompressSetInStream, public ICompressSetOutStreamSize, public ISequentialInStream, #endif public CMyUnknownImp{ NRangeCoder::CDecoder _rangeDecoder; COutBuffer _outStream; CDecodeInfo _info; Byte _order; UInt32 _usedMemorySize; int _remainLen; UInt64 _outSize; bool _outSizeDefined; UInt64 _processedSize; HRESULT CodeSpec(UInt32 num, Byte *memStream);public: #ifdef _ST_MODE MY_UNKNOWN_IMP4( ICompressSetDecoderProperties2, ICompressSetInStream, ICompressSetOutStreamSize, ISequentialInStream) #else MY_UNKNOWN_IMP1( ICompressSetDecoderProperties2) #endif void ReleaseStreams() { ReleaseInStream(); _outStream.ReleaseStream(); } HRESULT Flush() { return _outStream.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); STDMETHOD(SetDecoderProperties2)(const Byte *data, UInt32 size); STDMETHOD(SetInStream)(ISequentialInStream *inStream); STDMETHOD(ReleaseInStream)(); STDMETHOD(SetOutStreamSize)(const UInt64 *outSize); #ifdef _ST_MODE STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize); #endif CDecoder(): _outSizeDefined(false) {}};}}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?