Jump to content

KbdSetStatus (FAPI): Difference between revisions

From EDM2
Created page with "==Description== This call sets the characteristics of the keyboard. ==Syntax== <PRE> KbdSetStatus (StatData, KbdHandle) </PRE> ==Parameters== ; StatData (PKBDINFO) - i..."
 
Ak120 (talk | contribs)
mNo edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Description==
This call sets the characteristics of the keyboard.
This call sets the characteristics of the keyboard.


==Syntax==
==Syntax==
<PRE>
  KbdSetStatus (StatData, KbdHandle)
  KbdSetStatus


    (StatData, KbdHandle)
</PRE>
==Parameters==
==Parameters==
; StatData (PKBDINFO) - input : Address of the keyboard status structure:
;StatData (P[[KBDINFO]]) - input: Address of the keyboard status structure
 
;KbdHandle ([[HKBD]]) - input : Default keyboard or the logical keyboard.
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==
==Return Code==
rc (USHORT) - return
;rc (USHORT) - return:Return code descriptions are:
 
*0 NO_ERROR
Return code descriptions are:
*376 ERROR_KBD_INVALID_LENGTH
 
*377 ERROR_KBD_INVALID_ECHO_MASK
* 0   NO_ERROR  
*378 ERROR_KBD_INVALID_INPUT_MASK
* 376       ERROR_KBD_INVALID_LENGTH  
*439 ERROR_KBD_INVALID_HANDLE
* 377       ERROR_KBD_INVALID_ECHO_MASK  
*445 ERROR_KBD_FOCUS_REQUIRED  
* 378       ERROR_KBD_INVALID_INPUT_MASK  
*447 ERROR_KBD_KEYBOARD_BUSY
* 439       ERROR_KBD_INVALID_HANDLE  
*464 ERROR_KBD_DETACHED
* 445       ERROR_KBD_FOCUS_REQUIRED  
*504 ERROR_KBD_EXTENDED_SG
* 447       ERROR_KBD_KEYBOARD_BUSY  
* 464       ERROR_KBD_DETACHED  
* 504       ERROR_KBD_EXTENDED_SG


==Remarks==
==Remarks==
Line 81: Line 24:


KbdSetStatus is ignored for a Vio-windowed application.
KbdSetStatus is ignored for a Vio-windowed application.


===Family API Considerations===
===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:
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).
* 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.
* Raw (binary) Mode and Echo On are not supported and return an error if requested.  
* KbdHandle is ignored.
* KbdHandle is ignored.  
* Interim character is not supported.
* Interim character is not supported.  
* 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 108: 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 133: Line 73:
Returns WORD
Returns WORD
</PRE>
</PRE>
==Related Functions==
*


[[Category:The OS/2 API Project]]
[[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