体系结构和互操作性

本主题简要介绍了 Microsoft Active Accessibility 和 Microsoft UI 自动化的体系结构,以及允许基于这两种不同技术的应用程序之间的互操作性的组件。

有关 Microsoft Active Accessibility 和 UI 自动化互操作性的详细信息,请参阅 通用基础结构

本主题包含以下各节:

Microsoft Active Accessibility 体系结构

Microsoft Active Accessibility 公开有关控件的基本信息,例如控件名称、屏幕上的位置、控件类型以及状态信息(如可见性和启用/禁用状态)。 UI 表示为可访问对象的层次结构;更改和操作表示为了 winevent。

Microsoft Active Accessibility 包含以下组件:

  • 可访问对象-逻辑 UI 元素 (如) 由 IAccessible 组件对象模型表示的按钮, (COM) 接口和整数子标识符 (ChildID) 。
  • 了 winevent-一种事件系统,允许服务器在可访问对象发生更改时通知客户端。 有关详细信息,请参阅 了 winevent
  • OLEACC.dll —提供 Microsoft Active Accessibility API 和辅助功能系统框架的运行时动态链接库。 OLEACC 实现了代理对象,这些对象提供标准 UI 元素(包括用户控件、用户菜单和公共控件)的默认辅助功能信息。

对于 Microsoft Active Accessibility,辅助功能框架 (OLEACC) 的系统组件有助于辅助技术 (辅助功能) 和应用程序之间的通信,如下图所示。

显示辅助功能工具如何与应用程序交互的插图

Microsoft Active Accessibility 服务器 (的应用程序) 向 Microsoft Active Accessibility 客户端) 提供 UI 辅助功能信息,这些 (工具可与代表用户交互的 UI。 代码边界既是编程的,也是进程边界。

UI 自动化体系结构

通过 UI 自动化,UI 自动化核心组件 (UIAutomationCore.dll) 会加载到辅助功能工具和应用程序的进程中。 核心组件管理跨进程通信,提供更高级别的服务(如按属性值搜索元素),启用属性的批量提取或缓存,从而提供比 Microsoft Active Accessibility 实现更好的性能。

UI 自动化包括代理对象,这些对象提供有关标准 UI 元素(例如用户控件、用户菜单和公共控件)的 UI 信息。 它还包括允许 UI 自动化客户端从 Microsoft Active Accessibility 服务器获取 UI 信息的代理。

下图显示了 (提供程序) 中 (客户端) 和应用程序中使用的各种 UI 自动化 compontents 之间的关系。

显示辅助功能工具的组件如何与应用程序中的组件进行交互的插图

Microsoft Active Accessibility 和 UI 自动化互操作性

通过将 ui 自动化对象模型转换为 Microsoft Active Accessibility 对象模型,通过将 ui 自动化对象模型转换为 microsoft Active Accessibility 客户端,UI 自动化 Active Accessibility 可让 Microsoft 客户端访问 UI 自动化提供程序。 下图显示了 UI 自动化到 Microsoft Active Accessibility Bridge 的角色。

显示 ui 自动化如何与辅助功能工具和应用程序一起工作的插图

同样,Microsoft Active Accessibility 到 UI 自动化代理为 UI 自动化客户端翻译了 Microsoft 基于 Active Accessibility 的服务器对象模型。 下图显示了 Microsoft Active Accessibility 到 UI 自动化代理的角色。

显示 ui 自动化代理如何与辅助功能工具和应用程序一起工作的插图

IAccessibleEx 接口

IAccessibleEx接口可使现有应用程序或 UI 库扩展其 Microsoft Active Accessibility 对象模型,以支持 UI 自动化,而无需从头开始重写实现。 借助 IAccessibleEx,你只能实现完全描述 ui 及其功能所需的附加 ui 自动化属性和控件模式。

由于 Microsoft Active Accessibility 到 UI 自动化代理将支持 IAccessibleEx的 Microsoft Active Accessibility 服务器的对象模型转换为 ui 自动化对象模型,ui 自动化客户端无需执行任何额外的工作。 IAccessibleEx 接口还可以使进程内 Microsoft Active Accessibility 客户端能够与 UI 自动化提供程序直接交互。

有关详细信息,请参阅 IAccessibleEx 接口

Windows自动化 API 概述

IAccessibleEx 接口

辅助技术的安全注意事项