You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.7 KiB
70 lines
1.7 KiB
/*++
|
|
|
|
Copyright (c) 1997 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
OutStrm.h
|
|
|
|
Abstract:
|
|
A lightweight interface of output streams. This class provides
|
|
the interface, as well as a basic skeleton for output streams.
|
|
|
|
Author:
|
|
|
|
Neil Allain ( a-neilal ) August-1997
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#pragma once
|
|
|
|
#include "MyString.h"
|
|
|
|
struct OutToken
|
|
{
|
|
LONG val;
|
|
};
|
|
|
|
struct EndLineToken : public OutToken
|
|
{
|
|
};
|
|
|
|
extern EndLineToken endl;
|
|
|
|
class OutStream
|
|
{
|
|
public:
|
|
OutStream();
|
|
virtual ~OutStream();
|
|
HRESULT lastError() const { return m_lastError; }
|
|
virtual HRESULT writeChar( _TCHAR )=0;
|
|
virtual HRESULT writeString( LPCTSTR, size_t )=0;
|
|
virtual HRESULT writeString( LPCTSTR );
|
|
virtual HRESULT writeString( const String& );
|
|
virtual HRESULT writeLine( LPCTSTR, ... );
|
|
virtual HRESULT writeInt16( SHORT );
|
|
virtual HRESULT writeInt( int );
|
|
virtual HRESULT writeInt32( LONG );
|
|
virtual HRESULT writeFloat( float );
|
|
virtual HRESULT writeDouble( double );
|
|
virtual HRESULT writeToken( const OutToken& );
|
|
virtual HRESULT writeEolToken( const EndLineToken& );
|
|
virtual HRESULT flush();
|
|
|
|
OutStream& operator<<( _TCHAR );
|
|
OutStream& operator<<( SHORT );
|
|
OutStream& operator<<( int );
|
|
OutStream& operator<<( LONG );
|
|
OutStream& operator<<( float );
|
|
OutStream& operator<<( double );
|
|
OutStream& operator<<( const String& );
|
|
OutStream& operator<<( LPCTSTR );
|
|
OutStream& operator<<( const OutToken& );
|
|
OutStream& operator<<( const EndLineToken& );
|
|
|
|
protected:
|
|
void setLastError( HRESULT );
|
|
private:
|
|
HRESULT m_lastError;
|
|
};
|