windows-nt/Source/XPSP1/NT/base/wmi/bmoflocparser/inc/esputil/clfile.inl
2020-09-26 16:20:57 +08:00

189 lines
3.2 KiB
C++

//-----------------------------------------------------------------------------
//
// File: clfile.inl
// Copyright (C) 1994-1997 Microsoft Corporation
// All rights reserved.
//
//
//
//-----------------------------------------------------------------------------
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Constructor for the CLFile object - we create the CFile
//
//-----------------------------------------------------------------------------
inline
CLFile::CLFile()
{
m_pFile = new CFile();
m_bDeleteFile = TRUE;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Constructor for the CLFile object - user provides a CFile. User is
// responsible for the CFile object!
//
//-----------------------------------------------------------------------------
inline
CLFile::CLFile(
CFile *pFile)
{
LTASSERT(pFile != NULL);
m_pFile = pFile;
m_bDeleteFile = FALSE;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Destructor - also delete contained CFile if not user supplied.
//
//-----------------------------------------------------------------------------
inline
CLFile::~CLFile()
{
DEBUGONLY(AssertValid());
if (m_bDeleteFile)
{
delete m_pFile;
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Read a byte at the current file position
//
//-----------------------------------------------------------------------------
inline
UINT //Byte count read
CLFile::ReadByte(
BYTE & byte) //where to place the byte
{
if (Read(&byte, sizeof(BYTE)) != sizeof(BYTE))
{
AfxThrowFileException(CFileException::endOfFile);
}
return sizeof(BYTE);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Write a byte at the current file position
//
//-----------------------------------------------------------------------------
inline
UINT //Byte count written
CLFile::WriteByte(
const BYTE & byte)
{
Write(&byte, sizeof(BYTE));
return sizeof(BYTE);
}
//-----------------------------------------------------------------------------
// The following are the CFile methods that are reimplemented
//-----------------------------------------------------------------------------
inline
DWORD
CLFile::GetPosition()
const
{
return m_pFile->GetPosition();
}
inline
DWORD
CLFile::SeekToEnd()
{
return m_pFile->SeekToEnd();
}
inline
void
CLFile::SeekToBegin()
{
m_pFile->SeekToBegin();
}
inline
LONG
CLFile::Seek(
LONG lOff,
UINT nFrom)
{
return m_pFile->Seek(lOff, nFrom);
}
inline
void
CLFile::SetLength(
DWORD dwNewLen)
{
m_pFile->SetLength(dwNewLen);
}
inline
DWORD
CLFile::GetLength()
const
{
return m_pFile->GetLength();
}
inline
UINT
CLFile::Read(
void* lpBuf,
UINT nCount)
{
return m_pFile->Read(lpBuf, nCount);
}
inline
void
CLFile::Write(
const void* lpBuf,
UINT nCount)
{
m_pFile->Write(lpBuf, nCount);
}
inline
void
CLFile::Flush()
{
m_pFile->Flush();
}
inline
void
CLFile::Close()
{
m_pFile->Close();
}
inline
void
CLFile::Abort()
{
m_pFile->Abort();
}
inline
CLString
CLFile::GetFileName(void)
const
{
return (LPCSTR) m_pFile->GetFileName();
}