Source code of Windows XP (NT5)
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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 1994.
//
// File: TSource.hxx
//
// Contents: TEXT_SOURCE implementation
//
// Classes: CTextSource
//
// History: 14-Apr-94 KyleP Created
//
//----------------------------------------------------------------------------
#pragma once
#include "pageman.hxx"
class CSourceMapper;
class CTextSource : public tagTEXT_SOURCE { public:
CTextSource( IFilter * pFilter, STAT_CHUNK & Stat, CSourceMapper* pMapper = 0 );
inline SCODE GetStatus();
protected:
CTextSource ( STAT_CHUNK & Stat) : _pFilter(0), _Stat(Stat), _sc(E_FAIL), _pMapper(0) { pfnFillTextBuffer = 0; }
static SCODE FillBuf( TEXT_SOURCE * pTextSource );
IFilter * _pFilter; // Source of text
SCODE _sc; // State of last call to IFilter.
STAT_CHUNK & _Stat; // Current chunk info.
CSourceMapper* _pMapper; // Maps current position into filter region
WCHAR _awcFilterBuffer[PAGE_SIZE/sizeof(WCHAR)]; // For awcBuffer
private:
static void DebugPrintBuffer( CTextSource *pThis ); };
inline SCODE CTextSource::GetStatus() { //
// WBREAK_E_END_OF_TEXT is not an error for clients of CTextSource. _sc
// is set to this value to prevent further calls to fillbuf from doing
// any damage.
//
if ( _sc == WBREAK_E_END_OF_TEXT ) return S_OK; else return _sc; }
|