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
);
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.
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.
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.
Keyboard Input Overview, Keyboard Input Functions, VkKeyScan