{{page>en:templates:fapiint}} ====== KbdSetStatus ====== 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 ([[USHOR]]T) : 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 ([[USHOR]]T) - 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. ===== Bindings ===== ==== C Binding ==== 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 Binding ==== 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 ===== Note ===== Text based on [[http://www.edm2.com/index.php/KbdSetStatus_(FAPI)]] {{page>en:templates:fapi}}