Export (0) Print
Expand All
5 out of 12 rated this helpful - Rate this topic

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.

To specify a handle to the keyboard layout to use for translating the specified code, use the MapVirtualKeyEx function.

Syntax


UINT WINAPI MapVirtualKey(
  _In_  UINT uCode,
  _In_  UINT uMapType
);

Parameters

uCode [in]

Type: UINT

The virtual key code or scan code for a key. How this value is interpreted depends on the value of the uMapType parameter.

uMapType [in]

Type: UINT

The translation to be performed. The value of this parameter depends on the value of the uCode parameter.

ValueMeaning
MAPVK_VK_TO_CHAR
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.

MAPVK_VK_TO_VSC
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.

MAPVK_VSC_TO_VK
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.

MAPVK_VSC_TO_VK_EX
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 value

Type: UINT

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.

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Winuser.h (include Windows.h)

Library

User32.lib

DLL

User32.dll

Unicode and ANSI names

MapVirtualKeyW (Unicode) and MapVirtualKeyA (ANSI)

See also

Reference
GetAsyncKeyState
GetKeyboardState
GetKeyState
MapVirtualKeyEx
SetKeyboardState
Conceptual
Keyboard Input

 

 

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.