Jump to content

KbdRegister

From EDM2
Revision as of 02:26, 5 December 2016 by Ak120 (talk | contribs)

Description

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.

Example Code

C Binding

#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 Binding

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