Jump to content

KbdSetStatus (FAPI): Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Ak120 (talk | contribs)
mNo edit summary
 
Line 5: Line 5:


==Parameters==
==Parameters==
;StatData (PKBDINFO) - input : Address of the keyboard status structure:
;StatData (P[[KBDINFO]]) - 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.
;KbdHandle ([[HKBD]]) - input : Default keyboard or the logical keyboard.


==Return Code==
==Return Code==
rc (USHORT) - return
;rc (USHORT) - return:Return code descriptions are:
Return code descriptions are:
*0 NO_ERROR
* 0   NO_ERROR  
*376 ERROR_KBD_INVALID_LENGTH
* 376       ERROR_KBD_INVALID_LENGTH  
*377 ERROR_KBD_INVALID_ECHO_MASK
* 377       ERROR_KBD_INVALID_ECHO_MASK  
*378 ERROR_KBD_INVALID_INPUT_MASK
* 378       ERROR_KBD_INVALID_INPUT_MASK  
*439 ERROR_KBD_INVALID_HANDLE
* 439       ERROR_KBD_INVALID_HANDLE  
*445 ERROR_KBD_FOCUS_REQUIRED  
* 445       ERROR_KBD_FOCUS_REQUIRED  
*447 ERROR_KBD_KEYBOARD_BUSY
* 447       ERROR_KBD_KEYBOARD_BUSY  
*464 ERROR_KBD_DETACHED
* 464       ERROR_KBD_DETACHED  
*504 ERROR_KBD_EXTENDED_SG
* 504       ERROR_KBD_EXTENDED_SG


==Remarks==
==Remarks==
Line 74: Line 33:
* Turnaround character is not supported.
* Turnaround character is not supported.


==Example Code==
==Bindings==
===C Binding===
===C===
<PRE>
<PRE>
typedef struct _KBDINFO {     /* kbst */
typedef struct _KBDINFO { /* kbst */
   USHORT cb;                 /* length in bytes of this structure */
   USHORT cb;             /* length in bytes of this structure */
   USHORT fsMask;             /* bit mask of functions to be altered */
   USHORT fsMask;         /* bit mask of functions to be altered */
   USHORT chTurnAround;       /* define TurnAround character */
   USHORT chTurnAround;   /* define TurnAround character */
   USHORT fsInterim;           /* interim character flags */
   USHORT fsInterim;       /* interim character flags */
   USHORT fsState;             /* shift states */
   USHORT fsState;         /* shift states */
}KBDINFO;
}KBDINFO;


Line 89: Line 48:
USHORT  rc = KbdSetStatus(Structure, KbdHandle);
USHORT  rc = KbdSetStatus(Structure, KbdHandle);


PKBDINFO         Structure;    /* Data structure */
PKBDINFO   Structure;    /* Data structure */
HKBD             KbdHandle;    /* Keyboard Handle */
HKBD       KbdHandle;    /* Keyboard Handle */


USHORT           rc;            /* return code */
USHORT     rc;            /* return code */
</PRE>
</PRE>


===MASM Binding===
===MASM===
<PRE>
<PRE>
KBDINFO struc
KBDINFO struc
Line 114: Line 73:
Returns WORD
Returns WORD
</PRE>
</PRE>
==Related Functions==
*


[[Category:Kbd]]
[[Category:Kbd]]

Latest revision as of 18:16, 11 December 2019

This call sets the characteristics of the keyboard.

Syntax

KbdSetStatus (StatData, KbdHandle)

Parameters

StatData (PKBDINFO) - input
Address of the keyboard status structure
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.

Bindings

C

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

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