105 lines
1.6 KiB
C++
105 lines
1.6 KiB
C++
|
/*++
|
||
|
|
||
|
Copyright (C) Microsoft Corporation, 1998 - 1999
|
||
|
All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
Stream.hxx
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Implements read, write , seek methods to operate a file likewise a stream
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Adina Trufinescu (AdinaTru) 4-Nov-1998
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _TSTREAM_HXX_
|
||
|
#define _TSTREAM_HXX_
|
||
|
|
||
|
|
||
|
class TStream
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
TStream::
|
||
|
TStream(
|
||
|
IN TString& strFileName
|
||
|
);
|
||
|
|
||
|
TStream::
|
||
|
~TStream();
|
||
|
|
||
|
HRESULT
|
||
|
Read(
|
||
|
IN VOID * pv,
|
||
|
IN ULONG cb,
|
||
|
IN ULONG * pcbRead
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
Write(
|
||
|
IN VOID const* pv,
|
||
|
IN ULONG cb,
|
||
|
IN ULONG * pcbWritten
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
Seek(
|
||
|
IN LARGE_INTEGER dlibMove,
|
||
|
IN DWORD dwOrigin,
|
||
|
IN ULARGE_INTEGER * plibNewPosition
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
TStream::
|
||
|
DestroyFile(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
TStream::
|
||
|
bSetEndOfFile(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
static
|
||
|
HRESULT
|
||
|
MapWin32ErrorCodeToHRes(
|
||
|
IN DWORD dwErrorCode
|
||
|
);
|
||
|
|
||
|
|
||
|
private:
|
||
|
|
||
|
BOOL
|
||
|
TStream::
|
||
|
bValid
|
||
|
(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
HANDLE
|
||
|
PCreateFile(
|
||
|
OUT LPDWORD pdwAccess
|
||
|
);
|
||
|
|
||
|
|
||
|
TString m_strFileName; // file name
|
||
|
|
||
|
HANDLE m_hFileHandle; // file handle
|
||
|
|
||
|
BOOL m_bCreated; // specify is file was created or just opened
|
||
|
|
||
|
DWORD m_dwAccess; // specify access rights the file was opened with
|
||
|
|
||
|
ULARGE_INTEGER m_uliStreamSize; // specify file size
|
||
|
};
|
||
|
|
||
|
#endif
|