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