/*++ Copyright (c) 1991 Microsoft Corporation Module Name: pipestr.hxx Abstract: This module contains the declaration for the PIPE_STREAM class. The PIPE_STREAM is a class derived from BUFFER_STREAM that provides methods to read and write data to an anonymous pipe. A PIPE_STREAM will have one of the following access: READ or WRITE. Author: Jaime Sasson (jaimes) 18-Apr-1991 Environment: ULIB, User Mode --*/ #if !defined( PIPE_STREAM_ ) #define PIPE_STREAM_ #include "bufstrm.hxx" // // Forward references // DECLARE_CLASS( PIPE_STREAM ); DECLARE_CLASS( WSTRING ); class PIPE_STREAM : public BUFFER_STREAM { public: friend class PIPE; friend PSTREAM GetStandardStream( HANDLE, STREAMACCESS ); DECLARE_CAST_MEMBER_FUNCTION( PIPE_STREAM ); VIRTUAL ~PIPE_STREAM( ); VIRTUAL STREAMACCESS QueryAccess( ) CONST; protected: DECLARE_CONSTRUCTOR( PIPE_STREAM ); NONVIRTUAL BOOLEAN Initialize( IN HANDLE Handle, IN STREAMACCESS Access ); VIRTUAL BOOLEAN EndOfFile( ) CONST; VIRTUAL BOOLEAN FillBuffer( IN PBYTE Buffer, IN ULONG BufferSize, OUT PULONG BytesRead ); VIRTUAL HANDLE QueryHandle( ) CONST; #ifdef FE_SB VIRTUAL BOOLEAN CheckIfLeadByte( IN PUCHAR text, IN ULONG offset ); #endif private: HANDLE _PipeHandle; STREAMACCESS _Access; BOOLEAN _EndOfFile; }; #endif // _PIPE_STREAM_