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