//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1991 - 1992. // // File: STREAMS.CXX // // Contents: CStream functions needed for IDSMgr, Filter, and OFS. // // Classes: CStreamA, CStreamW, and CStreamASCIIStr // // History: 16-Dec-92 AmyA Created from streams.hxx // //---------------------------------------------------------------------------- #include #pragma hdrstop #include //+--------------------------------------------------------------------------- // // Member: CStreamA::GetBuf, public // // Synopsis: Refills the buffer by calling the virtual function FillBuf, // then if the buffer was not filled, returns EOF, otherwise // returns the first char in buffer and increments _pCur. // // History: 15-Dec-92 AmyA Created // //---------------------------------------------------------------------------- EXPORTIMP int APINOT CStreamA::GetBuf() { if ( !FillBuf() ) { _eof = TRUE; return EOF; } return *_pCur++; } //+--------------------------------------------------------------------------- // // Member: CStreamW::GetBuf, public // // Synopsis: Refills the buffer by calling the virtual function FillBuf, // then if the buffer was not filled, returns EOF, otherwise // returns the first wchar in buffer and increments _pCur. // // History: 15-Dec-92 AmyA Created // //---------------------------------------------------------------------------- EXPORTIMP int APINOT CStreamW::GetBuf() { if ( !FillBuf() ) { _eof = TRUE; return EOF; } return *_pCur++; } //+--------------------------------------------------------------------------- // // Member: CStreamASCIIStr::Read, public // // Synopsis: Copies chars from the buffer into dest and returns the number // of chars copied. // // Arguments: [dest] -- buffer to copy chars into // [size] -- size of the buffer (max # of chars to copy) // // History: 04-Aug-92 MikeHew Modified for new streams // 22-Sep-92 AmyA Rewrote for non-NULL term. strings // //---------------------------------------------------------------------------- EXPORTIMP unsigned APINOT CStreamASCIIStr::Read( void* dest, unsigned size ) { if ( Eof() ) return 0; unsigned count = (unsigned)(_pEnd-_pCur); if ( size < count ) count = size; memcpy ( dest, _pCur, count ); _pCur += count; return count; }