KbdRegister: Difference between revisions
Appearance
m Ak120 moved page OS2 API:CPI:LEGACY:KbdRegister to KbdRegister |
mNo edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
This call registers a keyboard subsystem within a session. | This call registers a keyboard subsystem within a session. | ||
Line 9: | Line 8: | ||
;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). | ;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: | ;FunctionMask (ULONG) - input : A bit mask where each bit identifies a keyboard function being registered. The bit values are: | ||
Bit Description | |||
31-15 | 31-15 Reserved, must be set to zero. | ||
14 | 14 KbdGetHWId | ||
13 | 13 KbdSetCustXt | ||
12 | 12 KbdXlate | ||
11 | 11 KbdSetCp | ||
10 | 10 KbdGetCp | ||
9 | 9 KbdFreeFocus | ||
8 | 8 KbdGetFocus | ||
7 | 7 KbdClose | ||
6 | 6 KbdOpen | ||
5 | 5 KbdStringIn | ||
4 | 4 KbdSetStatus | ||
3 | 3 KbdGetStatus | ||
2 | 2 KbdFlushBuffer | ||
1 | 1 KbdPeek | ||
0 | 0 KbdCharIn | ||
==Return Code== | ==Return Code== | ||
;rc (USHORT) - return:Return code descriptions are: | |||
Return code descriptions are: | |||
* 0 NO_ERROR | * 0 NO_ERROR | ||
* 408 ERROR_KBD_INVALID_ASCIIZ | * 408 ERROR_KBD_INVALID_ASCIIZ | ||
* 409 ERROR_KBD_INVALID_MASK | * 409 ERROR_KBD_INVALID_MASK | ||
* 410 ERROR_KBD_REGISTER | * 410 ERROR_KBD_REGISTER | ||
* 464 ERROR_KBD_DETACHED | * 464 ERROR_KBD_DETACHED | ||
* 504 ERROR_KBD_EXTENDED_SG | * 504 ERROR_KBD_EXTENDED_SG | ||
==Remarks== | ==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. | 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 | ===C=== | ||
<PRE> | <PRE> | ||
#define INCL_KBD | #define INCL_KBD | ||
Line 48: | Line 45: | ||
USHORT rc = KbdRegister(ModuleName, EntryPoint, FunctionMask); | USHORT rc = KbdRegister(ModuleName, EntryPoint, FunctionMask); | ||
PSZ | PSZ ModuleName; /* Module name */ | ||
PSZ | PSZ EntryPoint; /* Entry point name */ | ||
ULONG | ULONG FunctionMask; /* Function mask */ | ||
USHORT | USHORT rc; /* return code */ | ||
</PRE> | </PRE> | ||
===MASM | ===MASM=== | ||
<PRE> | <PRE> | ||
EXTRN KbdRegister:FAR | EXTRN KbdRegister:FAR |
Latest revision as of 16:04, 3 January 2019
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