122 lines
1.5 KiB
C++
122 lines
1.5 KiB
C++
/*++
|
||
|
||
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_
|