1// LockedStream.cpp 2 3#include "StdAfx.h" 4 5#include "LockedStream.h" 6 7HRESULT CLockedInStream::Read(UInt64 startPos, void *data, UInt32 size, 8 UInt32 *processedSize) 9{ 10 NWindows::NSynchronization::CCriticalSectionLock lock(_criticalSection); 11 RINOK(_stream->Seek(startPos, STREAM_SEEK_SET, NULL)); 12 return _stream->Read(data, size, processedSize); 13} 14 15STDMETHODIMP CLockedSequentialInStreamImp::Read(void *data, UInt32 size, UInt32 *processedSize) 16{ 17 UInt32 realProcessedSize = 0; 18 HRESULT result = _lockedInStream->Read(_pos, data, size, &realProcessedSize); 19 _pos += realProcessedSize; 20 if (processedSize != NULL) 21 *processedSize = realProcessedSize; 22 return result; 23} 24