This call returns a character data record from the keyboard.
KbdCharIn
CharData (PKBDKEYINFO) - output
asciicharcode (UCHAR)
Bit
01 = Final character, interim character flag off
10 = Interim character
11 = Final character, interim character flag on.
1 = Scan code is not a character; is an extended key code from the keyboard.
Bit
Value
On an enhanced keyboard, the secondary enter key returns the normal character 0DH and a scan code of E0H.
Double-byte character codes (DBCS) require two function calls to obtain the entire code.
If shift report is set with KbdSetStatus, the CharData record returned reflects changed shift information only.
Extended ASCII codes are identified with the status byte, bit 1 on and the ASCII character code being either 00H or E0H. Both conditions must be satisfied for the character to be an extended keystroke. For extended ASCII codes, the scan code byte returned is the second code (extended code). Usually the extended ASCII code is the scan code of the primary key that was pressed.
A thread in the foreground session that repeatedly polls the keyboard with KbdCharIn (with no wait), can prevent all regular priority class threads from executing. If polling must be used and a minimal amount of other processing is being performed, the thread should periodically yield to the CPU by issuing a DosSleep call for an interval of at least 5 milliseconds.
Family API Considerations
Some options operate differently in the DOS mode than in the OS /2 mode. Therefore, the following restrictions apply to KbdCharIn when coding in the DOS mode:
o