Table of Contents
This is part of Family API which allow to create dual-os version of program runs under OS/2 and DOS
Note: This is legacy API call. It is recommended to use 32-bit equivalent
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