KbdSetStatus
This call sets the characteristics of the keyboard.
KbdSetStatus (StatData, KbdHandle)
StatData (PKBDINFO) - input Address of the keyboard status structure:
length (USHORT) Length, in bytes, of this data structure, including length.
| 10 | Only valid value. | 
sysstate (USHORT) The system state altered by this call. If bits 0 and 1 are off, the echo state of the system is not altered. If bits 2 and 3 are off, the binary and ASCII state of the system is not altered. If bits 0 and 1 are on, or if bits 2 and 3 are on, the function returns an error. If binary mode is set, echo is ignored.
| Bit | Description | 
|---|---|
| 15-9 | Reserved, set to zero | 
| 8 | Shift return is on | 
| 7 | Length of the turn-around character (meaningful only if bit 6 is on). | 
| 6 | Turn-around character is modified | 
| 5 | Interim character flags are modified | 
| 4 | Shift state is modified | 
| 3 | ASCII mode is on | 
| 2 | Binary mode is on | 
| 1 | Echo off | 
| 0 | Echo on | 
turnchardef (USHORT) Definition of the turn-around character. In ASCII and extended-ASCII format, the turn-around character is defined as the carriage return. In ASCII format only, the turn-around character is defined in the low-order byte.
intcharflag (USHORT) Interim character flags:
| Bit | Description | 
|---|---|
| 15-8 | NLS shift state. | 
| 7 | Interim character flag is on | 
| 6 | Reserved, set to zero | 
| 5 | Application requested immediate conversion | 
| 4-0 | Reserved, set to zero | 
shiftstate (USHORT) Shift state.
| Bit | Description | 
|---|---|
| 15 | SysReq key down | 
| 14 | CapsLock key down | 
| 13 | NumLock key down | 
| 12 | ScrollLock key down | 
| 11 | Right Alt key down | 
| 10 | Right Ctrl key down | 
| 9 | Left Alt key down | 
| 8 | Left Ctrl key down | 
| 7 | Insert on | 
| 6 | CapsLock on | 
| 5 | NumLock on | 
| 4 | ScrollLock on | 
| 3 | Either Alt key down | 
| 2 | Either Ctrl key down | 
| 1 | Left Shift key down | 
| 0 | Right Shift key down | 
KbdHandle (HKBD) - input Default keyboard or the logical keyboard.
rc (USHORT) - return Return code descriptions are:
| 0 | NO_ERROR | 
| 376 | ERROR_KBD_INVALID_LENGTH | 
| 377 | ERROR_KBD_INVALID_ECHO_MASK | 
| 378 | ERROR_KBD_INVALID_INPUT_MASK | 
| 439 | ERROR_KBD_INVALID_HANDLE | 
| 445 | ERROR_KBD_FOCUS_REQUIRED | 
| 447 | ERROR_KBD_KEYBOARD_BUSY | 
| 464 | ERROR_KBD_DETACHED | 
| 504 | ERROR_KBD_EXTENDED_SG | 
Remarks
Shift return (bit 8 in sysstate) must be disabled in ASCII mode.
KbdSetStatus is ignored for a Vio-windowed application.
Family API Considerations
Some options operate differently in the DOS mode than in the OS/2 mode. Therefore, the following restrictions apply to KbdSetStatus when coding in the DOS mode:
- KbdSetStatus does not accept a bit mask of 10 (ASCII on, Echo Off).
 - Raw (binary) Mode and Echo On are not supported and return an error if requested.
 - KbdHandle is ignored.
 - Interim character is not supported.
 - Turnaround character is not supported.
 
C bindings
typedef struct _KBDINFO { /* kbst */ USHORT cb; /* length in bytes of this structure */ USHORT fsMask; /* bit mask of functions to be altered */ USHORT chTurnAround; /* define TurnAround character */ USHORT fsInterim; /* interim character flags */ USHORT fsState; /* shift states */ }KBDINFO; #define INCL_KBD USHORT rc = KbdSetStatus(Structure, KbdHandle); PKBDINFO Structure; /* Data structure */ HKBD KbdHandle; /* Keyboard Handle */ USHORT rc; /* return code */
MASM bindings
KBDINFO struc kbst_cb dw ? ;length in bytes of this structure kbst_fsMask dw ? ;bit mask of functions to be altered kbst_chTurnAround dw ? ;define TurnAround character kbst_fsInterim dw ? ;interim character flags kbst_fsState dw ? ;shift states KBDINFO ends EXTRN KbdSetStatus:FAR INCL_KBD EQU 1 PUSH@ OTHER Structure ;Data structure PUSH WORD KbdHandle ;Keyboard Handle CALL KbdSetStatus




