Jump to content

KbdGetFocus: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
m Eliminate illogical and untrue assertions
 
Line 1: Line 1:
{{Legacy
|RepFunc=
|Remarks=This page list the older version of the function for reference.
}}
This call binds the logical keyboard to the physical keyboard.
This call binds the logical keyboard to the physical keyboard.


Line 10: Line 6:
==Parameters==
==Parameters==
;IOWait (USHORT) - input : Wait if the physical keyboard is already in use by a logical keyboard.
;IOWait (USHORT) - input : Wait if the physical keyboard is already in use by a logical keyboard.
Value      Definition
::0 - Indicates that the caller wants to wait for the bond.
0     Indicates that the caller wants to wait for the bond.
::1 - Indicates that the caller does not want to wait for the bond.
1     Indicates that the caller does not want to wait for the bond.
;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
* 439 ERROR_KBD_INVALID_HANDLE  
* 439 ERROR_KBD_INVALID_HANDLE
* 446 ERROR_KBD_FOCUS_ALREADY_ACTIVE  
* 446 ERROR_KBD_FOCUS_ALREADY_ACTIVE
* 447 ERROR_KBD_KEYBOARD_BUSY  
* 447 ERROR_KBD_KEYBOARD_BUSY
* 464 ERROR_KBD_DETACHED  
* 464 ERROR_KBD_DETACHED
* 504 ERROR_KDB_EXTENDED_SG  
* 504 ERROR_KDB_EXTENDED_SG
 
The keyboard handle identifies which logical keyboard to bind to. If the physical keyboard is not bound to a logical or default keyboard, then the bind proceeds immediately. The logical keyboard, identified by the handle, receives all further key strokes from the physical keyboard. If the physical keyboard is already in use by a logical keyboard, then the thread issuing KbdGetFocus waits until the bond can be made. Waiting threads do not execute in any definable order.
The keyboard handle identifies which logical keyboard to bind to. If the physical keyboard is not bound to a logical or default keyboard, then the bind proceeds immediately. The logical keyboard, identified by the handle, receives all further key strokes from the physical keyboard. If the physical keyboard is already in use by a logical keyboard, then the thread issuing KbdGetFocus waits until the bond can be made. Waiting threads do not execute in any definable order.


==Example Code==
==Bindings==
=== C Binding===
=== C ===
<PRE>
<PRE>
#define INCL_KBD
#define INCL_KBD
Line 34: Line 27:
USHORT  rc = KbdGetFocus(IOWait, KbdHandle);
USHORT  rc = KbdGetFocus(IOWait, KbdHandle);


USHORT           IOWait;        /* Indicate if wait */
USHORT IOWait;        /* Indicate if wait */
HKBD             KbdHandle;    /* Keyboard handle */
HKBD   KbdHandle;    /* Keyboard handle */


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


===MASM Binding===
===MASM ===
<PRE>
<PRE>
EXTRN  KbdGetFocus:FAR
EXTRN  KbdGetFocus:FAR

Latest revision as of 16:19, 3 January 2019

This call binds the logical keyboard to the physical keyboard.

Syntax

KbdGetFocus (IOWait, KbdHandle)

Parameters

IOWait (USHORT) - input
Wait if the physical keyboard is already in use by a logical keyboard.
0 - Indicates that the caller wants to wait for the bond.
1 - Indicates that the caller does not want to wait for the bond.
KbdHandle (HKBD) - input
Default keyboard or the logical keyboard.

Return Code

rc (USHORT) - return
Return code descriptions are:
  • 0 NO_ERROR
  • 439 ERROR_KBD_INVALID_HANDLE
  • 446 ERROR_KBD_FOCUS_ALREADY_ACTIVE
  • 447 ERROR_KBD_KEYBOARD_BUSY
  • 464 ERROR_KBD_DETACHED
  • 504 ERROR_KDB_EXTENDED_SG

The keyboard handle identifies which logical keyboard to bind to. If the physical keyboard is not bound to a logical or default keyboard, then the bind proceeds immediately. The logical keyboard, identified by the handle, receives all further key strokes from the physical keyboard. If the physical keyboard is already in use by a logical keyboard, then the thread issuing KbdGetFocus waits until the bond can be made. Waiting threads do not execute in any definable order.

Bindings

C

#define INCL_KBD

USHORT  rc = KbdGetFocus(IOWait, KbdHandle);

USHORT  IOWait;        /* Indicate if wait */
HKBD    KbdHandle;     /* Keyboard handle */

USHORT  rc;            /* return code */

MASM

EXTRN  KbdGetFocus:FAR
INCL_KBD            EQU 1

PUSH   WORD    IOWait        ;Indicate if wait
PUSH   WORD    KbdHandle     ;Keyboard handle
CALL   KbdGetFocus

Returns WORD