This call registers a keyboard subsystem within a session.

Syntax

KbdRegister (ModuleName, EntryPoint, FunctionMask)

Parameters

;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

Return Code

;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.

Bindings

C

<PRE> #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 */ </PRE>

MASM

<PRE> 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 </PRE>

Kbd