Windows applications send characters to other Windows applications with the WM_KEYDOWN and WM_KEYUP messages. These messages are expected to get the appropriate virtual-key codes to send by using the VkKeyScanEx, OemKeyScan, or MapVirtualKeyEx function. The applications must not assume any fixed translation of the VK_OEM_* keys. To support these functions, the keyboard driver can scan existing keyboard layouts to locate the given ANSI or OEM character code and subsequently identify the scan code.
MapVirtualKeyEx, OemKeyScan, VkKeyScanEx