{{page>en:templates:fapiint}}
====== KbdRegister ======
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====
#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====
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
{{page>en:templates:fapi}}