5
CInByte::CInByte(INT aBufferSize):
6
m_BufferSize(aBufferSize),
9
m_BufferBase = new BYTE[m_BufferSize];
14
delete []m_BufferBase;
17
void CInByte::Init(ISequentialInStream *aStream)
21
m_Buffer = m_BufferBase;
22
m_BufferLimit = m_Buffer;
23
m_StreamWasExhausted = false;
26
bool CInByte::ReadBlock()
28
if (m_StreamWasExhausted)
30
m_ProcessedSize += (m_Buffer - m_BufferBase);
31
INT aNumProcessedBytes;
32
HRESULT aResult = m_Stream->Read(m_BufferBase, m_BufferSize, &aNumProcessedBytes);
35
m_Buffer = m_BufferBase;
36
m_BufferLimit = m_Buffer + aNumProcessedBytes;
37
m_StreamWasExhausted = (aNumProcessedBytes == 0);
38
return (!m_StreamWasExhausted);