text: // 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 final :
    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
  