Поделиться через


Об API проверки орфографии

Для пользователей по всему миру текстовый ввод является частью современных вычислительных возможностей для блогов, комментариев, твитов, обмена мгновенными сообщениями или любого другого типа текста. В Windows 8 для изменения элементов управления встроена проверка орфографии.

Разработчики могут использовать API проверки орфографии в своих приложениях для использования доступных служб проверки орфографии. Разработчики также могут создавать средства проверки орфографии, которые становятся поставщиками и интегрируются в платформу проверки орфографии Windows.

API проверки орфографии предназначен для профессиональных разработчиков C/C++ приложений windows Component Object Model (COM). API проверки орфографии не поддерживается для использования в службе Windows или ASP.NET.

Управление версиями

API проверки орфографии доступен начиная с Windows 8 или Windows Server 2012. Будущие дополнения к API будут обрабатываться путем создания новых интерфейсов, которые можно определить с помощью QueryInterface в существующих интерфейсах.

Интерфейсы

Все интерфейсы должны быть освобождены, если они больше не используются. Все возвращаемые строки LPWSTR (и элементы LPOLESTR из IEnumString) должны быть освобождены вместе с CoTaskMemFree , если они больше не используются.

Обработка ошибок

Ошибки возвращаются как HRESULT. IErrorInfo и ISupportErrorInfo не поддерживаются в этом API. Ошибки не являются особенно интерактивными, за исключением неправильных аргументов.

Стандартные коды ошибок RPC могут быть возвращены любым вызовом API, так как они находятся вне процедуры. Применяется стандартное время ожидания RPC.

Безопасность

API проверки орфографии может загружать внешний код (поставщики орфографических проверка). Он будет выполнять этот код вне программы и в ограниченном контексте безопасности.

Файлы словаря

Пользовательские словари для языка, в которых содержится содержимое списков слов Added, Excluded и AutoCorrect, находятся в теге> %AppData%\Microsoft\Spelling\<language. Имена файлов: default.dic (добавлено), default.exc (исключен) и default.acl (автозамена). Файлы представляют собой обычный текст UTF-16 LE, который должен начинаться с соответствующей метки порядка байтов (BOM). Каждая строка содержит слово (в списках добавленных и исключенных слов) или пару автозамены со словами, разделенными вертикальной полосой ("|"). (в списке слов автозамены). Другие файлы .dic, .exc и .acl, присутствующие в каталоге, будут обнаружены службой проверки орфографии и добавлены в списки слов пользователя. Эти файлы считаются доступны только для чтения и не изменяются API проверки орфографии.

Установка поставщика проверки орфографии

При установке поставщика проверки орфографии все файлы, которые он использует, должны размещаться в расположении, разрешающем доступ на чтение из идентификатора безопасности (идентификатора безопасности) "ALL APPLICATION PACKAGES". Установка в папку в разделе "Program Files" работает правильно. Кроме того, поставщик должен задать некоторые разделы в реестре, чтобы они отображались в API проверки орфографии. Он может находиться в кусте HKEY_CURRENT_USER или в кусте HKEY_LOCAL_MACHINE в зависимости от того, следует ли устанавливать его только для текущего пользователя или для всех пользователей.

Key: <Registry hive>\SOFTWARE\Classes\CLSID\<Server CLSID>
     Default (REG_SZ) = <Name of the provider>

Key: <Registry hive>\SOFTWARE\Classes\CLSID\<Server CLSID>\InprocServer32
     ThreadingModel (REG_SZ) = "Both"

Key: <Registry hive>\SOFTWARE\Classes\CLSID\<Server CLSID>\Version
     Version (REG_SZ) = <Version>

Key: <Registry hive>\SOFTWARE\Microsoft\Spelling\Spellers\<Provider id string>
     CLSID (REG_SZ) = <CLSID of the COM Server that implements the provider>

Пример поставщика проверки орфографии содержит пример регистрации, необходимой для установки поставщика.

Если вы создаете новые параметры проверки орфографии для поставщика проверки орфографии, рекомендации по именованию см. в разделе IOptionDescription::Id .

Справочник по API проверки орфографии

Пример клиента проверки орфографии

Пример поставщика проверки орфографии

IOptionDescription::Id

IEnumString

QueryInterface