1baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// 7zSpecStream.cpp
2baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
3baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "StdAfx.h"
4baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
5baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "7zSpecStream.h"
6baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
7baa3858d3f5d128a5c8466b700098109edcad5f2repo syncSTDMETHODIMP CSequentialInStreamSizeCount2::Read(void *data, UInt32 size, UInt32 *processedSize)
8baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{
9baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  UInt32 realProcessedSize;
10baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  HRESULT result = _stream->Read(data, size, &realProcessedSize);
11baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  _size += realProcessedSize;
12baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  if (processedSize != 0)
13baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    *processedSize = realProcessedSize;
14baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  return result;
15baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}
16baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
17baa3858d3f5d128a5c8466b700098109edcad5f2repo syncSTDMETHODIMP CSequentialInStreamSizeCount2::GetSubStreamSize(
18baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UInt64 subStream, UInt64 *value)
19baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{
20baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  if (_getSubStreamSize == NULL)
21baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    return E_NOTIMPL;
22baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  return  _getSubStreamSize->GetSubStreamSize(subStream, value);
23baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}
24baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
25