Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft Active Accessibility и Microsoft UI Automation отправляют WM_GETOBJECT сообщение серверу или приложению поставщика, чтобы получить сведения о доступном объекте, поддерживаемом сервером или поставщиком. Клиенты никогда не отправляют WM_GETOBJECT напрямую. Вместо этого Microsoft Active Accessibility отправляет это сообщение, когда клиент вызывает функции AccessObjectFromPoint, AccessObjectFromEventи AccessObjectFromWindow. Служба автоматизации пользовательского интерфейса отправляет WM_GETOBJECT при вызове клиентом IUIAutomation::ElementFromHandle, ElementFromPointи GetFocusedElement, а также при обработке событий, для которых зарегистрирован клиент.
Microsoft Active Accessibility или UI Automation указывает тип объекта, для которому требуется информация, передав значение, называемое идентификатором объекта с сообщением WM_GETOBJECT. При получении сообщения сервер или поставщик проверяет идентификатор объекта, чтобы определить, как реагировать на сообщение. Ответ зависит от того, реализует ли принимающее приложение Microsoft Active Accessibility (сервер), UI Automation (поставщик) или ни то, ни другое для указанного объекта.
- Если принимающее приложение является сервером Microsoft Active Accessibility, а сообщение WM_GETOBJECT содержит идентификатор объекта OBJID_CLIENT, сервер должен возвращать значение, полученное путем передачи интерфейса IAccessible объекта функции LresultFromObject.
- Если принимающее приложение является поставщиком автоматизации пользовательского интерфейса, а идентификатор объекта UiaRootObjectId, поставщик должен вернуть интерфейс IRawElementProviderSimple объекта. Поставщик получает интерфейс, вызвав функцию UiaReturnRawElementProvider.
- Если принимающее приложение не реализует ни Microsoft Active Accessibility, ни UI Automation, оно должно передать сообщение WM_GETOBJECT в функцию DefWindowProc. Передача сообщения позволяет платформе специальных возможностей определить, доступен ли прокси-сервер для указанного объекта.
- Если идентификатор объекта не является ни OBJID_CLIENT, ни UiaRootObjectId, то принимающее приложение должно передать сообщение WM_GETOBJECT в функцию DefWindowProc. Передача сообщения позволяет платформе специальных возможностей использовать поставщиков по умолчанию для стандартных элементов пользовательского интерфейса.
Microsoft Active Accessibility и UI Automation могут передавать пользовательские идентификаторы объектов в сообщении WM_GETOBJECT для получения определяемых приложением значений или объектов с сервера или поставщика. Идентификатор объекта OBJID_NATIVEOM или OBJID_QUERYCLASSNAMEIDX можно использовать для получения собственного интерфейса объектной модели или запроса конкретного прокси-объекта, поддерживаемого Oleacc.dll.
Обрабатывая как OBJID_CLIENT, так и идентификаторы объектов UiaRootObjectId, реализация сервера Microsoft Active Accessibility может совместно существовать вместе с реализацией поставщика автоматизации пользовательского интерфейса. Поскольку большинство стандартных элементов управления Windows и распространенных элементов управления, реализованных общей библиотекой элементов управления (ComCtl32.dll), не реализуют microsoft Active Accessibility или UI Automation, эти элементы управления обычно не обрабатывают сообщение WM_GETOBJECT. Вместо этого платформа Microsoft Active Accessibility или UI Automation проверяет, доступен ли прокси-объект для определенного элемента пользовательского интерфейса. В противном случае он предоставляет прокси-объект по умолчанию для объекта окна узла.