43 if ((err = FileWrite(
m_hFile, count, buffPtr)) != NoError) ReturnWithError(err);
53 if ((err = FileRead(
m_hFile, count, buffPtr)) != NoError) ReturnWithError(err);
60 if ((err = SetFPos(
m_hFile, posMode, posOff)) != NoError) ReturnWithError(err);
68 if ((err = GetFPos(
m_hFile, &pos)) != NoError) ReturnWithError2(err, pos);
82 if (!
m_buffer) ReturnWithError(InsufficientMemory);
92,
m_eos(pBuffer + size)
115 const size_t deltaSize = 0x4000 + *count;
118 memcpy(
m_pos, buffPtr, *count);
128 ReturnWithError(InsufficientMemory);
138 memcpy(
m_pos, buffPtr, *count);
142 ReturnWithError(InsufficientMemory);
156 memcpy(buffPtr,
m_pos, *count);
161 memcpy(buffPtr,
m_pos, *count);
184 ReturnWithError(InvalidStreamPos);
192void CPGFMemFileStream::Write(
int *count,
void *buffPtr) THROW_ {
196 m_memFile->Write(buffPtr, *count);
200void CPGFMemFileStream::Read(
int *count,
void *buffPtr) THROW_ {
204 m_memFile->Read(buffPtr, *count);
208void CPGFMemFileStream::SetPos(
short posMode, INT64 posOff) THROW_ {
210 m_memFile->Seek(posOff, posMode);
214UINT64 CPGFMemFileStream::GetPos() const THROW_ {
215 return (UINT64)m_memFile->GetPosition();
221#if defined(WIN32) || defined(WINCE)
223void CPGFIStream::Write(
int *count,
void *buffPtr) THROW_ {
228 HRESULT hr = m_stream->Write(buffPtr, *count, (ULONG *)count);
235void CPGFIStream::Read(
int *count,
void *buffPtr) THROW_ {
240 HRESULT hr = m_stream->Read(buffPtr, *count, (ULONG *)count);
247void CPGFIStream::SetPos(
short posMode, INT64 posOff) THROW_ {
251 li.QuadPart = posOff;
253 HRESULT hr = m_stream->Seek(li, posMode, NULL);
260UINT64 CPGFIStream::GetPos() const THROW_ {
267 HRESULT hr = m_stream->Seek(n, FSFromCurrent, &pos);
271 ReturnWithError2(hr, pos.QuadPart);
virtual void Write(int *count, void *buffer) THROW_
HANDLE m_hFile
file handle
virtual void Read(int *count, void *buffer) THROW_
virtual void SetPos(short posMode, INT64 posOff) THROW_
virtual bool IsValid() const
virtual UINT64 GetPos() const THROW_
CPGFMemoryStream(size_t size) THROW_
virtual void Read(int *count, void *buffer)
void Reinitialize(UINT8 *pBuffer, size_t size) THROW_
virtual bool IsValid() const
UINT8 * m_eos
end of stream (first address beyond written area)
virtual void SetPos(short posMode, INT64 posOff) THROW_
UINT8 * m_pos
buffer start address and current buffer address
virtual void Write(int *count, void *buffer) THROW_
bool m_allocated
indicates a new allocated buffer