使用服务器批注

本主题提供有关使用服务器注释指定回调对象的信息。

重写指定回调对象的属性

  1. 获取指向要批注的可访问元素的 IAccessible 接口指针。
  2. 对可访问元素调用 QueryInterface 以获取 IAccIdentity 接口指针。
  3. 在 IAccIdentity 接口指针上调用 IAccIdentity::GetIdentityString () 以获取唯一标识要批注的可访问元素的字符串。
  4. 使用 CoCreateInstanceCoCreateInstanceEx 创建 IAccPropServices 对象。
  5. (实现 IAccPropServer 的 COM) 对象创建组件对象模型。
  6. 调用 IAccPropServices::SetPropServer,传递标识字符串、指示要重写的属性的 GUID,以及指向 IAccPropServer 回调对象的指针。
  7. 释放接口指针和释放内存。

当客户端请求可访问元素的 属性时,将调用回调对象并将该值返回给客户端。

与指定值时一样,服务器开发人员也可以使用 IAccPropServices::ComposeHwndIdentityString 方法来获取标识字符串;或者,他们可以使用 IAccPropServices::SetHwndPropServer 方法并指定 hwndidObjectidChild 参数,而不是标识字符串。

在容器对象上使用 SetPropServerSetHwndPropServer 时,服务器开发人员可以选择指定替代信息还应应用于该容器的所有元素子级。

服务器可以随时使用 IAccPropServices::ClearProps 显式清除批注。 这通常不是必需的,因为批注服务会在批注的可访问元素消失时自动清理并释放批注信息。

下面是可以使用此过程进行批注的属性列表。

指定回调时支持的属性

指定回调时,可以批注以下属性。 目前,无法通过指定值直接批注这些属性。

属性 类型
PROPID_ACC_NAME VT_BSTR
PROPID_ACC_DESCRIPTION VT_BSTR
PROPID_ACC_ROLE VT_I4
PROPID_ACC_STATE VT_I4
PROPID_ACC_HELP VT_BSTR
PROPID_ACC_KEYBOARDSHORTCUT VT_BSTR
PROPID_ACC_DEFAULTACTION VT_BSTR
PROPID_ACC_VALUEMAP VT_BSTR
PROPID_ACC_ROLEMAP VT_BSTR
PROPID_ACC_STATEMAP VT_BSTR
PROPID_ACC_FOCUS VT_DISPATCH
VT_I4
PROPID_ACC_SELECTION VT_DISPATCH
VT_I4
VT_UNKNOWN
PROPID_ACC_PARENT VT_DISPATCH
PROPID_ACC_NAV_UP VT_DISPATCH
VT_I4
PROPID_ACC_NAV_DOWN VT_DISPATCH
VT_I4
PROPID_ACC_NAV_LEFT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_RIGHT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_PREV VT_DISPATCH
VT_I4
PROPID_ACC_NAV_NEXT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_FIRSTCHILD VT_DISPATCH
VT_I4
PROPID_ACC_NAV_LASTCHILD VT_DISPATCH
VT_I4