Недоступные прокси-серверы

прокси-серверы IAccessible предоставляют сведения о специальных возможностях по умолчанию для стандартных элементов пользовательского интерфейса: пользовательские элементы управления, меню USER и общие элементы управления из COMCTL и COMCTL32. Эта поддержка по умолчанию предоставляется с помощью объектов IAccessible, созданных Oleacc.dll, и обеспечивает поддержку специальных возможностей Майкрософт без дополнительной работы по разработке сервера. Затем сервер может использовать API динамической заметки для изменения большей части информации, предоставляемой Oleacc.dll, но она не имеет полного управления.

Создание прокси-сервера

Чтобы определить, поддерживает ли элемент пользовательского интерфейса интерфейс IAccessible, Oleacc.dll отправляет WM_GETOBJECT сообщение. Возвращаемое значение ненулевого значения означает, что элемент изначально поддерживает Специальные возможности Microsoft Active И предоставляет собственную поддержку I Access. Однако если возвращаемое значение равно нулю, Oleacc.dll предоставляет прокси-объект для элемента пользовательского интерфейса и пытается вернуть значимые сведения от его имени. Дополнительные сведения о WM_GETOBJECTсм. в разделе WM_GETOBJECT Работы.

Какие сведения предоставляются

Oleacc.dll использует имя класса Windows элемента пользовательского интерфейса, чтобы определить, какие сведения следует предоставлять для каждого из его свойств IAccessible и как собирать эти сведения. Например, Oleacc.dll вызывает функцию GetWindowText, чтобы получить свойство Name для стандартной кнопки нажатия, но вызывает эту же функцию, чтобы получить свойство Value для стандартного элемента управления редактирования. В действительности Oleacc.dll сопоставляет каждый метод IAccessible с соответствующим сообщением или вызовом функции Microsoft Win32 или определенным элементом управления. Используя специальный регистр на основе имен этого класса, он может возвращать значимые сведения через I Access прокси-сервер без поддержки специальных возможностей Microsoft Active.

Приложения, созданные с помощью стандартных элементов пользовательского интерфейса, обычно получают полную поддержку специальных возможностей Майкрософт без дополнительной работы по разработке. Исключениями этого правила являются элементы управления, которые были подклассированы, которые не хранят собственные строки (отсутствие стиля HASSTRINGS) или нарисованные владельцем. В этих случаях Oleacc.dll не может собирать необходимые сведения, так как информация хранится за пределами элемента управления. Однако во многих из этих сценариев, установленные обходные пути или использование динамической заметки, позволяют серверу сотрудничать с прокси-серверами, предоставляемыми Oleacc.dll.

Универсальные объекты прокси-сервера

Если Oleacc.dll не распознает имя класса элемента пользовательского интерфейса, он создает универсальный прокси-сервер, предоставляющий максимально возможную информацию. В большинстве случаев это включает ограничивающий прямоугольник объекта, родительский объект, имя (из WM_GETTEXT), а также все дочерние элементы в иерархии окон.