72 lines
1.1 KiB
C
72 lines
1.1 KiB
C
/*++
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
kbdutil.c
|
|
|
|
Abstract:
|
|
|
|
This module contains the KBD utilities
|
|
|
|
Author:
|
|
|
|
Avi Nathan (avin) 17-Jul-1991
|
|
|
|
Environment:
|
|
|
|
User Mode Only
|
|
|
|
Revision History:
|
|
|
|
Ellen Aycock-Wright (ellena) 15-Sept-1991 - Modified for Posix
|
|
|
|
--*/
|
|
|
|
#define WIN32_ONLY
|
|
#include "psxses.h"
|
|
|
|
|
|
DWORD
|
|
GetPsxChar(
|
|
OUT PCHAR AsciiChar
|
|
)
|
|
{
|
|
|
|
DWORD Rc;
|
|
INPUT_RECORD In;
|
|
DWORD cEvents;
|
|
|
|
for(;;) {
|
|
Rc = ReadConsoleInput(
|
|
hConsoleInput,
|
|
&In,
|
|
1L,
|
|
&cEvents
|
|
);
|
|
|
|
if ( !Rc ) {
|
|
return(GetLastError());
|
|
}
|
|
|
|
if ( In.EventType != KEY_EVENT ) {
|
|
continue;
|
|
}
|
|
if ( !In.Event.KeyEvent.bKeyDown ) {
|
|
continue;
|
|
}
|
|
|
|
if ( !In.Event.KeyEvent.uChar.AsciiChar ) {
|
|
continue;
|
|
}
|
|
|
|
*AsciiChar = In.Event.KeyEvent.uChar.AsciiChar;
|
|
|
|
break;
|
|
}
|
|
|
|
return(0L);
|
|
|
|
}
|