KbdRegister
Appearance
Description
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.
Example Code
C Binding
#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 Binding
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