// XzEncoder.h #ifndef __XZ_ENCODER_H #define __XZ_ENCODER_H #include "../../../C/XzEnc.h" #include "../../Common/MyCom.h" #include "../ICoder.h" namespace NCompress { namespace NXz { class CEncoder: public ICompressCoder, public ICompressSetCoderProperties, public ICompressSetCoderPropertiesOpt, public CMyUnknownImp { CXzEncHandle _encoder; public: CXzProps xzProps; MY_UNKNOWN_IMP3( ICompressCoder, ICompressSetCoderProperties, ICompressSetCoderPropertiesOpt) void InitCoderProps(); HRESULT SetCheckSize(UInt32 checkSizeInBytes); HRESULT SetCoderProp(PROPID propID, const PROPVARIANT &prop); STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream, const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); STDMETHOD(SetCoderProperties)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps); STDMETHOD(SetCoderPropertiesOpt)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps); CEncoder(); virtual ~CEncoder(); }; }} #endif