使用 QueryService 检索 IAccessible 对象的本机接口

服务器开发人员可以使用此方法公开指向 IAccessible 对象的自定义文档节点的指针。 这假定你已公开 IAccessible 对象。 此方法允许客户端从 IAccessible 对象获取自定义对象。

公开 IAccessible (服务器的本机对象模型)

  1. IAccessible 对象上添加对 IServiceProvider 接口的支持。
  2. 定义表示从 IAccessible 对象获取自定义接口的功能的 GUID。 这称为服务 ID。 可以使用 GUIDGEN.EXE 生成服务 ID,或者如果具有自定义接口,则可以重复使用接口 ID。
  3. 实现 IServiceProvider::QueryService 方法,以便在使用此过程前面定义的服务 ID 调用时返回指向自定义接口的指针。 对于所有其他服务 ID 值,QueryService 应返回 NULL
  4. 发布服务 ID,以便客户端可以使用它。

客户端可以使用此功能从 IAccessible 对象获取指向自定义对象的指针。

若要从 IAccessible (客户端获取指向自定义对象的指针,)

  1. IAccessible 接口指针上调用 QueryInterface (IID_IServiceProvider) 以获取 IServiceProvider 接口指针。
  2. 使用已发布的服务 ID 调用 IServiceProvider::QueryService ,以获取指向 IAccessible 自定义对象的指针。
  3. 如果不再需要 IServiceProvider 接口,请释放它。

若要跨进程使用,服务器可能需要将返回的接口注册到组件对象模型 (COM) 。

Microsoft Internet Explorer 4.0 及更高版本使用此方法。 它允许客户端获取对应于 IAccessible 对象的 IHTMLElement2 接口指针。