en:docs:fapi:kbdsetstatus
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Next revision
en:docs:fapi:kbdsetstatus [2018/08/31 15:09] – created prokushev
Line 1: Line 1:
 +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  
 +       Shift return is on  
 +       Length of the turn-around character (meaningful only if bit 6 is on).  
 +       Turn-around character is modified  
 +       Interim character flags are modified  
 +       Shift state is modified  
 +       ASCII mode is on  
 +       Binary mode is on  
 +       Echo off  
 +       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. 
 +       Interim character flag is on 
 +       Reserved, set to zero 
 +       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 
 +        Left Alt key down 
 +        Left Ctrl key down 
 +        Insert on 
 +        CapsLock on 
 +        NumLock on 
 +        ScrollLock on 
 +        Either Alt key down 
 +        Either Ctrl key down 
 +        Left Shift key down 
 +        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 ======
 +
 +Text based on [[http://www.edm2.com/index.php/KbdSetStatus_(FAPI)]]
 +
 +{{page>en:templates:fapi}}
 +