Ответ 1
Я Microsoft SDE, которая некоторое время поддерживала (Windows и Office) корейский IME...
К сожалению, лучшая документация по IME API предоставляется сайтами сторонних разработчиков:
- Пример программирования IME (очень хорошо прокомментированный код!) Из браузера Google Chrome
- Обзор многоязычного IME для Win32 для разработки IME (в архиве)
- Win32 Многоязычный интерфейс прикладного программирования IME (в архиве)
(К чести Microsoft, последние два были частью комплекта для разработки драйверов Windows)
Вот официальная документация Microsoft: Менеджер методов ввода (MSDN)
Существует также новый, более продвинутый IME, основанный на Text Services Framework (TSF), который Microsoft предпочел бы использовать, но он еще более сложный, и старый API эмулируется довольно хорошо. Если вам не нужны какие-либо расширенные функции (например, ввод с помощью планшета/распознавания голоса/модного IME/и т.д.), Достаточно использовать старый API.
Лучшая документация по Text Services Framework - это блог TSF Aware, написанный другим разработчиком Microsoft. Эрик Браун может даже лично ответить на ваши вопросы, если вы пойдете по этому пути.
Вот официальная документация Microsoft для TSF: Text Services Framework (MSDN)
Одна функция TSF, которую вы можете найти полезной, - это возможность подавить рендеринг IME (необходим для полноэкранных игр, которые, например, должны сами рендерить IME). Просто скажите TSF, что ваше приложение будет отображать графический интерфейс IME, а затем внедрите пустой метод визуализации: Обзор режима UILess (MSDN)