// NsisDecode.h #ifndef __NSIS_DECODE_H #define __NSIS_DECODE_H #include "../../IStream.h" #include "../../Common/CreateCoder.h" namespace NArchive { namespace NNsis { namespace NMethodType { enum EEnum { kCopy, kDeflate, kBZip2, kLZMA }; } class CDecoder { NMethodType::EEnum _method; CMyComPtr _filterInStream; CMyComPtr _codecInStream; CMyComPtr _decoderInStream; public: void Release() { _filterInStream.Release(); _codecInStream.Release(); _decoderInStream.Release(); } HRESULT Init( DECL_EXTERNAL_CODECS_LOC_VARS IInStream *inStream, NMethodType::EEnum method, bool thereIsFilterFlag, bool &useFilter); HRESULT Read(void *data, size_t *processedSize); }; }} #endif