mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-09 02:07:06 -06:00
98 lines
2.1 KiB
C++
Executable File
98 lines
2.1 KiB
C++
Executable File
// Rar29Decoder.h
|
|
// According to unRAR license,
|
|
// this code may not be used to develop a
|
|
// RAR (WinRAR) compatible archiver
|
|
|
|
#ifndef __RAR_DECODER_H
|
|
#define __RAR_DECODER_H
|
|
|
|
#include "Common/MyCom.h"
|
|
|
|
#include "../../ICoder.h"
|
|
|
|
#include "Original/rar.hpp"
|
|
|
|
namespace NCompress {
|
|
|
|
namespace NRar29 {
|
|
|
|
class CDecoder :
|
|
public ICompressCoder,
|
|
public ICompressSetDecoderProperties2,
|
|
public CMyUnknownImp
|
|
{
|
|
Unpack *Unp;
|
|
bool m_IsSolid;
|
|
public:
|
|
ComprDataIO DataIO;
|
|
CDecoder();
|
|
~CDecoder();
|
|
/*
|
|
class CCoderReleaser
|
|
{
|
|
CCoder *m_Coder;
|
|
public:
|
|
CCoderReleaser(CCoder *aCoder): m_Coder(aCoder) {}
|
|
~CCoderReleaser()
|
|
{
|
|
m_Coder->DataIO.ReleaseStreams();
|
|
}
|
|
};
|
|
*/
|
|
MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2)
|
|
|
|
// void ReleaseStreams();
|
|
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);
|
|
};
|
|
|
|
}
|
|
|
|
namespace NRar15{
|
|
|
|
class CDecoder :
|
|
public ICompressCoder,
|
|
public ICompressSetDecoderProperties2,
|
|
public CMyUnknownImp
|
|
{
|
|
Unpack *Unp;
|
|
bool m_IsSolid;
|
|
public:
|
|
ComprDataIO DataIO;
|
|
CDecoder();
|
|
~CDecoder();
|
|
/*
|
|
class CCoderReleaser
|
|
{
|
|
CDecoder *m_Coder;
|
|
public:
|
|
CCoderReleaser(CDecoder *coder): m_Coder(coder) {}
|
|
~CCoderReleaser()
|
|
{
|
|
m_Coder->DataIO.ReleaseStreams();
|
|
}
|
|
};
|
|
*/
|
|
MY_UNKNOWN_IMP1(ICompressSetDecoderProperties2)
|
|
|
|
// void ReleaseStreams();
|
|
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);
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|