KbdRegister

From EDM2
Jump to: navigation, search

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