217 lines
3.9 KiB
C++
217 lines
3.9 KiB
C++
/*++
|
||
|
||
Copyright (c) 1991 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
keyboard.hxx
|
||
|
||
Abstract:
|
||
|
||
This module contains the declaration for the KEYBOARD class.
|
||
The KEYBOARD class is a derived from BUFFER_STREAM that provides
|
||
methods to access the keyboard as a stream of bytes with read-only
|
||
access.
|
||
It also provides some methods that set/reset the keyboard mode.
|
||
|
||
|
||
Author:
|
||
|
||
Jaime Sasson (jaimes) 21-Mar-1991
|
||
|
||
Environment:
|
||
|
||
ULIB, User Mode
|
||
|
||
|
||
--*/
|
||
|
||
|
||
#if !defined( _KEYBOARD_ )
|
||
|
||
#define _KEYBOARD_
|
||
|
||
#include "bufstrm.hxx"
|
||
|
||
|
||
|
||
DECLARE_CLASS( KEYBOARD );
|
||
|
||
class KEYBOARD : public BUFFER_STREAM {
|
||
|
||
public:
|
||
|
||
ULIB_EXPORT
|
||
DECLARE_CONSTRUCTOR( KEYBOARD );
|
||
|
||
ULIB_EXPORT
|
||
DECLARE_CAST_MEMBER_FUNCTION( KEYBOARD );
|
||
|
||
NONVIRTUAL
|
||
~KEYBOARD (
|
||
);
|
||
|
||
NONVIRTUAL
|
||
ULIB_EXPORT
|
||
BOOLEAN
|
||
Initialize(
|
||
IN BOOLEAN LineMode DEFAULT TRUE,
|
||
IN BOOLEAN EchoMode DEFAULT TRUE
|
||
);
|
||
|
||
STATIC
|
||
ULIB_EXPORT
|
||
BOOLEAN
|
||
DisableBreakHandling (
|
||
);
|
||
|
||
NONVIRTUAL
|
||
BOOLEAN
|
||
DisableEchoMode(
|
||
);
|
||
|
||
NONVIRTUAL
|
||
ULIB_EXPORT
|
||
BOOLEAN
|
||
DisableLineMode(
|
||
);
|
||
|
||
STATIC
|
||
ULIB_EXPORT
|
||
BOOLEAN
|
||
EnableBreakHandling (
|
||
);
|
||
|
||
NONVIRTUAL
|
||
BOOLEAN
|
||
EnableEchoMode(
|
||
);
|
||
|
||
NONVIRTUAL
|
||
ULIB_EXPORT
|
||
BOOLEAN
|
||
EnableLineMode(
|
||
);
|
||
|
||
VIRTUAL
|
||
BOOLEAN
|
||
EndOfFile(
|
||
) CONST;
|
||
|
||
VIRTUAL
|
||
BOOLEAN
|
||
FillBuffer(
|
||
IN PBYTE Buffer,
|
||
IN ULONG BufferSize,
|
||
OUT PULONG BytesRead
|
||
);
|
||
|
||
NONVIRTUAL
|
||
ULIB_EXPORT
|
||
BOOLEAN
|
||
Flush(
|
||
);
|
||
|
||
STATIC
|
||
ULIB_EXPORT
|
||
BOOLEAN
|
||
GotABreak (
|
||
);
|
||
|
||
NONVIRTUAL
|
||
BOOLEAN
|
||
IsEchoModeEnabled(
|
||
OUT PBOOLEAN EchoInput
|
||
) CONST;
|
||
|
||
NONVIRTUAL
|
||
ULIB_EXPORT
|
||
BOOLEAN
|
||
IsKeyAvailable(
|
||
OUT PBOOLEAN Available
|
||
) CONST;
|
||
|
||
NONVIRTUAL
|
||
BOOLEAN
|
||
IsLineModeEnabled(
|
||
OUT PBOOLEAN LineMode
|
||
) CONST;
|
||
|
||
VIRTUAL
|
||
STREAMACCESS
|
||
QueryAccess(
|
||
) CONST;
|
||
|
||
NONVIRTUAL
|
||
ULONG
|
||
QueryDelay (
|
||
) CONST;
|
||
|
||
VIRTUAL
|
||
HANDLE
|
||
QueryHandle(
|
||
) CONST;
|
||
|
||
NONVIRTUAL
|
||
ULONG
|
||
QuerySpeed (
|
||
) CONST;
|
||
|
||
NONVIRTUAL
|
||
BOOLEAN
|
||
SetDelay (
|
||
IN ULONG Delay
|
||
) CONST;
|
||
|
||
NONVIRTUAL
|
||
BOOLEAN
|
||
SetSpeed (
|
||
IN ULONG Speed
|
||
) CONST;
|
||
|
||
NONVIRTUAL
|
||
ULIB_EXPORT
|
||
CONST
|
||
PBOOL
|
||
GetPFlagBreak (
|
||
VOID
|
||
) CONST;
|
||
|
||
NONVIRTUAL
|
||
ULIB_EXPORT
|
||
VOID
|
||
DoNotRestoreConsoleMode(
|
||
);
|
||
|
||
protected:
|
||
|
||
NONVIRTUAL
|
||
VOID
|
||
Construct(
|
||
);
|
||
|
||
private:
|
||
|
||
HANDLE _KeyboardHandle;
|
||
ULONG _PreviousMode;
|
||
BOOLEAN _DoNotRestoreConsoleMode;
|
||
BOOLEAN _FlagCtrlZ;
|
||
STATIC BOOL _FlagBreak;
|
||
|
||
NONVIRTUAL
|
||
BOOLEAN
|
||
CheckForAsciiKey(
|
||
IN PINPUT_RECORD InputRecord,
|
||
IN ULONG NumberOfInputRecords
|
||
) CONST;
|
||
|
||
STATIC
|
||
BOOL
|
||
BreakHandler (
|
||
IN ULONG CtrlType
|
||
);
|
||
|
||
};
|
||
|
||
#endif // _KEYBOARD_
|