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


Обзор поставщиков автоматизации пользовательского интерфейса

Поставщик службы автоматизации пользовательского интерфейса Майкрософт — это программный объект, предоставляющий элемент пользовательского интерфейса приложения, чтобы клиентские приложения специальных возможностей могли получать сведения об элементе и вызывать его функциональные возможности. Как правило, каждый элемент управления или другой отдельный элемент в пользовательском интерфейсе имеет поставщика.

Корпорация Майкрософт включает поставщиков для каждого из стандартных управляющих элементов, предоставляемых Microsoft Win32, Windows Forms и Windows Presentation Foundation (WPF). Это означает, что стандартные элементы управления автоматически предоставляются клиентам автоматизации пользовательского интерфейса; Для стандартных элементов управления не требуется реализовать интерфейсы специальных возможностей.

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

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

Типы поставщиков

Поставщики автоматизации пользовательского интерфейса делятся на две категории: серверные поставщики и клиентские (или прокси) поставщики.

Поставщик на стороне сервера — это объект, например пользовательский элемент управления, который содержит собственную реализацию соответствующих интерфейсов поставщика автоматизации пользовательского интерфейса. Поставщик на стороне сервера взаимодействует с клиентскими приложениями через границу процесса, предоставляя его реализацию интерфейсов поставщика в ядро автоматизации пользовательского интерфейса, которое обслуживает запросы от клиентов. Дополнительные сведения о поставщиках на стороне сервера см. в разделе Server-Side о реализации поставщика автоматизации пользовательского интерфейса.

Поставщик на стороне клиента или прокси-сервер — это объект, реализующий интерфейсы поставщика автоматизации пользовательского интерфейса от имени элемента управления, не включает полную реализацию поставщика. Без прокси-сервера такой элемент управления в значительной степени непрозрачн для автоматизации пользовательского интерфейса, который может предоставлять только основные сведения, доступные из дескриптора окна (HWND), например расположение элемента управления. Как правило, поставщики прокси-серверов взаимодействуют с приложением через границу процесса, отправляя и получая сообщения Windows. Дополнительные сведения см. в Реализация поставщика автоматизации пользовательского интерфейса Client-Side (прокси).

Основные понятия поставщика автоматизации пользовательского интерфейса

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

Элементы

Элементы автоматизации пользовательского интерфейса — это элементы пользовательского интерфейса (обычно окна или элементы управления), которые видны клиентам автоматизации пользовательского интерфейса. Примеры включают окна приложений, панели, кнопки, подсказки, списки и элементы списка.

Элементы автоматизации пользовательского интерфейса предоставляются клиентам в виде дерева. Автоматизация пользовательского интерфейса создает дерево, переходя от одного элемента к другому. Навигация включена поставщиком для каждого элемента. Каждый элемент может указывать на собственный родительский элемент, его одноуровневые элементы и его первые и последние дочерние элементы.

Клиент может просмотреть дерево автоматизации пользовательского интерфейса в трех основных представлениях, как описано в следующей таблице:

Вид Описание
Необработанное представление Включает все элементы.
Просмотр элемента управления Включает элементы, которые являются элементами управления.
Просмотр содержимого Включает элементы управления, которые передают сведения пользователю.

 

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

Дополнительные сведения о представлении дерева с точки зрения клиента см. в обзоре дерева автоматизации UI.

Рамки

Платформа — это компонент, который управляет дочерними элементами управления, хит-тестированием и отрисовкой в области экрана. Например, окно Win32, часто называемое HWND, может служить платформой, содержащей несколько элементов автоматизации пользовательского интерфейса, таких как строка меню, строка состояния и кнопки.

Элементы управления контейнерами Win32, например, такие как списки и элементы управления древовидного вида, считаются фреймворками, так как они содержат собственный код для отрисовки дочерних элементов и проведения проверки попадания для них. В отличие от этого, поле списка WPF не является платформой, так как отрисовка и тестирование попаданий обрабатывается содержащим окном.

Пользовательский интерфейс в приложении может быть состоит из разных платформ. Например, HWND в приложении может содержать динамический HTML (DHTML), который, в свою очередь, может содержать компонент, например выпадающий список в HWND.

Фрагменты

Полный поддерев элементов из конкретной платформы называется фрагментом. Элемент в корневом узле поддерева называется корнем фрагмента. Корень фрагмента не имеет родительского элемента, но размещается в другой инфраструктуре, обычно в окне Win32 (HWND).

Хозяева

Корневой узел каждого фрагмента должен размещаться в элементе, обычно в окне Win32 (HWND). Исключением является рабочий стол, который не размещается в любом другом элементе. Контейнер пользовательского элемента управления — это HWND самого элемента управления, а не окно приложения или любое другое окно, которое может содержать наборы элементов управления верхнего уровня.

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

концептуальные

Реализация Client-Side поставщика автоматизации пользовательского интерфейса

реализация Server-Side поставщика автоматизации пользовательского интерфейса

Обзор дерева автоматизации пользовательского интерфейса