en:docs:fapi:kbdsetstatus

This is an old revision of the document!


This call sets the characteristics of the keyboard.

Syntax

KbdSetStatus (StatData, KbdHandle)

Parameters

;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.

Return Code

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.

Example Code

C Binding

<PRE> 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 */ </PRE>

MASM Binding

<PRE> 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

Returns WORD </PRE>

Note