OemKeyScan

The OemKeyScan function maps OEM ASCII codes 0 through 0x0FF into the OEM scan codes and shift states. The function provides information that allows a program to send OEM text to another program by simulating keyboard input.

DWORD OemKeyScan(
  WORD wOemChar   // ASCII value of OEM character
);
 

Parameters

wOemChar
Specifies the ASCII value of the OEM character.

Return Values

The low-order word of the return value contains the scan code of the given OEM character, and the high-order word contains the shift state, which can be a combination of the following flag bits.

Bit Meaning
1 Either shift key is pressed.
2 Either ctrl key is pressed.
4 Either alt key is pressed.
8 The Hankaku key is pressed
16 Reserved (defined by the keyboard layout driver).
32 Reserved (defined by the keyboard layout driver).

If the character cannot be produced by a single keystroke using the current keyboard layout, the return value is 0xFFFFFFFF.

Remarks

This function does not provide translations for characters that require ctrl+alt or dead keys. Characters not translated by this function must be copied by simulating input using the alt+ keypad mechanism. The numlock key must be off.

This function does not provide translations for characters that cannot be typed with one keystroke using the current keyboard layout, such as characters with diacritics requiring dead keys. Characters not translated by this function may be simulated using the alt+ keypad mechanism. The numlock key must be on.

This function is implemented using the VkKeyScan function.

QuickInfo

  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winuser.h.
  Import Library: Use user32.lib.

See Also

Keyboard Input Overview, Keyboard Input Functions, VkKeyScan