Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
VKD_Define_Hot_Key
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
include vkd.inc
 
VxDcall VKD_Define_Hot_Key
 
The VKD_Define_Hot_Key service defines a hot-key-notification callback
procedure. Hot keys are detected by ANDing the shift state mask with the
global shift state, then comparing the resulting state with the shift state
compare value. If this matches and the key code matches, the callback
procedure is called with the specified reference data in EDX.
 
Parameter  Description
────────────────────────────────────────────────────────────────────────────
 
AL         Specifies scan code of the main key.
 
AH         Specifies the type of scan code. This parameter can be one of the
           following values:
 
           Value  Meaning
           ─────────────────────────────────────────────────────────────────
           0      Normal code
 
           1      Extended code (ExtendedKey_B)
 
           0FFh   Either normal or extended (AllowExtended_B)
 
EBX        Specifies shift state. The high word is a mask that is ANDed with
           the global shift state when checking for this hot key. The low
           word is the masked-shift-state-compare value.
 
CL         Specifies the operation flags. This parameter can be one of the
           following values:
 
           Value           Meaning
           ─────────────────────────────────────────────────────────────────
           CallOnPress     Calls callback when key press is detected.
 
           CallOnRelease   Calls callback when key release is detected.
                           Keyboard may still be in hot-key hold state.
 
           CallOnRepeat    Calls callback when repeated press is detected.
 
           CallOnComplete  Calls callback when the hot key state is ended
                           (all shift modifier keys are released) or when a
                           different hot key is entered. For example, assume
                           that both ALT+1 and ALT+2 are hot keys. If the
                           user holds the ALT key down, then presses and
                           releases the 1 key and presses the 2 key, the
                           callback for ALT+1 is call even though the ALT
                           key has not been released.
 
           CallOnUpDwn     Calls on both press and release.
 
           CallOnAll       Calls on press, release and repeats.
 
           PriorityNotify  Specifies that the callback can only be called
                           when interrupts are enabled and the critical
                           section is not owned. This value can be combined
                           with any other value in this list.
 
           Local_Key       Specifies that the key can be locally enabled or
                           disabled.
 
ESI        Points to the callback procedure.
 
EDX        Points to the reference data to pass to the callback procedure.
 
EDI        Specifies maximum notification delay in milliseconds if the CL
           register specifies the PriorityNotify value. If this parameter is
           zero, the callback is always notified.
 
Return Value
 
If the carry flag is clear, the EAX register contains the definition handle.
Otherwise, the carry flag is set to indicate an error.
 
Comments
 
The callback procedure is called when a hot key is detected, and detection
meets mask requirements. The callback receives the following input
parameters:
 
AL    ; scan code of key
AH    ; 0 if key just pressed (Hot_Key_Pressed)
      ; 1 if key just released (Hot_Key_Released)
      ; 2 if key is an auto-repeat press (Hot_Key_Repeated)
      ; 3 hot key state ended (Hot_Key_Completed)
 
EBX   ; hot key handle
ECX   ; global shift state
EDX   ; points to the reference data
EDI   ; elapsed time for delayed notification in milliseconds
 
The EDI register normally contains zero, but if the PriorityNotify value is
specified this value could be larger.
 
The high bit of the AH register is set if the hot key is a priority hot key
and the virtual machine which had the keyboard focus at the time the hot key
was recognized was suspended or not executable. In this case, the priority
event was scheduled for the system virtual machine rather than the keyboard
owner. The Hot_Key_SysVM_Notify value can be used to check this bit.
 
The callback procedure can modify EAX, EBX, ECX, EDX, ESI, EDI, and Flags
 
Uses
 
Flags
 
                                      ♦