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.
|
|
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
pipe.hxx
Abstract:
This module defines the PIPE object.
Author:
Barry J. Gilhuly (W-Barry) June 27, 1991
Environment:
ULIB, User Mode
--*/
#if ! defined( _PIPE_ )
#define _PIPE_
DECLARE_CLASS( PIPE_STREAM ); DECLARE_CLASS( PIPE ); DECLARE_CLASS( WSTRING );
class PIPE : public OBJECT {
public:
DECLARE_CONSTRUCTOR( PIPE );
DECLARE_CAST_MEMBER_FUNCTION( PIPE );
BOOLEAN Initialize( IN LPSECURITY_ATTRIBUTES PipeAttributes DEFAULT NULL, IN ULONG PipeSize DEFAULT 0, IN PWSTRING PipeName DEFAULT NULL );
PPIPE_STREAM QueryReadStream( );
PPIPE_STREAM QueryWriteStream( );
private:
PPIPE_STREAM QueryPipeStream( IN HANDLE hStream, IN STREAMACCESS Access );
VOID Destroy( );
BOOLEAN _fInitialized; HANDLE _hReadPipe; HANDLE _hWritePipe;
};
INLINE PPIPE_STREAM PIPE::QueryReadStream( ) /*++
Routine Description:
Create a stream with read access to the PIPE.
Arguments:
None.
Return Value:
A pointer to the created stream if success. Otherwise, it returns NULL.
--*/ { return( QueryPipeStream( _hReadPipe, READ_ACCESS ) ); }
INLINE PPIPE_STREAM PIPE::QueryWriteStream( ) /*++
Routine Description:
Create a stream with write access to the PIPE.
Arguments:
None.
Return Value:
A pointer to the created stream if success. Otherwise, it returns NULL.
--*/ { return( QueryPipeStream( _hWritePipe, WRITE_ACCESS ) ); }
#endif // _PIPE_
|