MapVirtualKey
The MapVirtualKey
function translates (maps) a virtual-key code into a scan code or character
value, or translates a scan code into a virtual-key code.
UINT MapVirtualKey(
UINT uCode, |
// virtual-key code
or scan code |
UINT uMapType |
// translation to
perform |
); |
|
Parameters
uCode
Specifies the
virtual-key code or scan code for a key. How this value is interpreted depends
on the value of the uMapType parameter.
uMapType
Specifies the
translation to perform. The value of this parameter depends on the value of the
uCode parameter:
Value |
Meaning |
0 |
uCode is a virtual-key code and is translated into a scan
code. If it is a virtual-key code that does not distinguish between left- and
right-hand keys, the left-hand scan code is returned. If there is no
translation, the function returns 0. |
1 |
uCode is a scan code and is translated into a virtual-key
code that does not distinguish between left- and right-hand keys. If there is
no translation, the function returns 0. |
2 |
uCode is a virtual-key code and is translated into an
unshifted character value in the low-order word of the return value. Dead
keys (diacritics) are indicated by setting the top bit of the return value.
If there is no translation, the function returns 0. |
3 |
uCode is a scan code and is translated into a virtual-key
code that distinguishes between left- and right-hand keys. If there is no
translation, the function returns 0. |
Return Values
The return
value is either a scan code, a virtual-key code, or a character value, depending
on the value of uCode and uMapType. If there is no translation,
the return value is zero.
Remarks
An
application can use MapVirtualKey to translate scan codes to the
virtual-key code constants VK_SHIFT, VK_CONTROL, and VK_MENU, and vice versa.
These translations do not distinguish between the left and right instances of
the SHIFT, CTRL, or ALT keys. An application can get the scan code
corresponding to the left or right instance of one of these keys by calling MapVirtualKey
with uCode set to one of the following virtual-key code constants:
VK_LSHIFT |
VK_RSHIFT |
VK_LCONTROL |
VK_RCONTROL |
VK_LMENU |
VK_RMENU |
These left-
and right-distinguishing constants are available to an application only through
the GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState,
and MapVirtualKey functions.
See Also