Мое приложение, не поддерживающее Unicode, должно иметь возможность обрабатывать ввод с клавиатуры Unicode (WM_CHAR и т. Д.), Таким образом получать 8-битный символьный код, а затем внутренне преобразовывать его в Unicode. Требуется 9x-совместимость, поэтому использование большинства API-интерфейсов Unicode недопустимо.
В настоящее время он проверяет язык, возвращаемый PRIMARYLANGID (GetKeyboardLayout (0)), и ищет соответствующую кодовую страницу в жестко запрограммированной таблице. Мне не удалось найти функцию для получения кодовой страницы, используемой для определенного языка или раскладки клавиатуры. Затем преобразование символа / строки можно выполнить с помощью MultiByteToWideChar.
Есть ли способ получить кодовую страницу текущей раскладки клавиатуры? GetACP возвращает системную кодовую страницу по умолчанию, на которую не влияет текущая раскладка клавиатуры.