windows-nt/Source/XPSP1/NT/inetsrv/query/apps/cxxflt/fstrm.hxx
2020-09-26 16:20:57 +08:00

72 lines
1.7 KiB
C++

//+---------------------------------------------------------------------------
//
// Copyright (C) 1992 - 1994, Microsoft Corporation.
//
// File: fstrm.hxx
//
// Contents: Stream for taking text from IFilter and transporting it to
// the word breaker
//
// Classes: CFilterTextStream
//
// History: 01-Aug-93 AmyA Created
// 17-Oct-94 BartoszM Rewrote
//
//----------------------------------------------------------------------------
#pragma once
//+---------------------------------------------------------------------------
//
// Class: CFilterTextStream
//
// Interface:
//
// History: 01-Nov-94 BartoszM Created
//
//----------------------------------------------------------------------------
class CFilterTextStream: public CTextSource
{
public:
CFilterTextStream(IFilter* pIFilter);
int GetChar ();
void GetRegion ( FILTERREGION& region, int offset, int len )
{
Win4Assert ( offset >= -1 );
_mapper.GetSrcRegion (region, len, offset+ iCur);
}
private:
int GetMore ();
STAT_CHUNK _statChunk;
CSourceMapper _mapper;
};
//+---------------------------------------------------------------------------
//
// Member: CFilterTextStream::GetChar, public
//
// Synopsis: Get the look ahead character
// and swallow the last look ahead
// Replenish the buffer before the last character
// is swallowed.
//
// History: 16-Nov-94 BartoszM Created
//
//----------------------------------------------------------------------------
inline int CFilterTextStream::GetChar()
{
if (iCur >= iEnd - 1)
{
return GetMore();
}
return awcBuffer[iCur++];
}