KbdRegister
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




