en:ibm:prcp:kbd:reg

KbdRegister

Bindings: C, MASM

This call registers a keyboard subsystem within a session.

KbdRegister (ModuleName, EntryPoint, FunctionMask)

ModuleName (*PSZ*) - input Address of the dynamic link module name. Maximum length is 9 bytes (including ASCIIZ terminator).

EntryPoint (PSZ) - input Address of the dynamic link entry point name of a routine that receives control when any of the registered functions are called. Maximum length is 33 bytes (including ASCIIZ terminator).

FunctionMask (ULONG) - input A bit mask where each bit identifies a keyboard function being registered. The bit values are:

Bit Description
31-15 Reserved, must be
set to zero.
14 KbdGetHWId
13 KbdSetCustXt
12 KbdXlate
11 KbdSetCp
10 KbdGetCp
9 KbdFreeFocus
8 KbdGetFocus
7 KbdClose
6 KbdOpen
5 KbdStringIn
4 KbdSetStatus
3 KbdGetStatus
2 KbdFlushBuffer
1 KbdPeek
0 KbdCharIn

rc (USHORT) - return Return code descriptions are:

0 NO_ERROR
408 ERROR_KBD_INVALID_ASCIIZ
409 ERROR_KBD_INVALID_MASK
410 ERROR_KBD_REGISTER
464 ERROR_KBD_DETACHED
504 ERROR_KBD_EXTENDED_SG

Remarks

There can be only one KbdRegister call outstanding for each session without an intervening KbdDeRegister. KbdDeRegister must be issued by the same process that issued the KbdRegister.

C bindings

#define INCL_KBD
 
USHORT  rc = KbdRegister(ModuleName, EntryPoint, FunctionMask);
 
PSZ              ModuleName;    /* Module name */
PSZ              EntryPoint;    /* Entry point name */
ULONG            FunctionMask;  /* Function mask */
 
USHORT           rc;            /* return code */

MASM bindings

EXTRN  KbdRegister:FAR
INCL_KBD            EQU 1
 
PUSH@  ASCIIZ  ModuleName    ;Module name
PUSH@  ASCIIZ  EntryPoint    ;Entry point name
PUSH   DWORD   FunctionMask  ;Function mask
CALL   KbdRegister
 
Returns WORD