您当前的位置: 首页 >  ar

顺其自然~

暂无认证

  • 4浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

IAccessible VARIANT结构的使用

顺其自然~ 发布时间:2021-12-13 13:06:50 ,浏览量:4

本主题描述了用于解释从IAccessible方法返回的子 ID 的输入参数、输出参数和特殊情况。

     输入参数

许多 Microsoft Active Accessibility 函数和大多数IAccessible属性都采用VARIANT结构作为输入参数。对于大多数IAccessible属性,此参数允许客户端开发人员指定他们是需要有关对象本身的信息还是有关对象的简单元素之一的信息。

Microsoft Active Accessibility 提供常量CHILDID_SELF以指示需要有关对象本身的信息。要获取有关简单元素的信息,客户端开发人员在VARIANT参数中指定其子 ID 。

初始化VARIANT参数时,除了在lVal成员中指定子 ID 值(或CHILDID_SELF)外,请确保在vt成员中指定VT_I4。

例如,要得到一个对象的名称,而不是对象的子元素之一,初始化VARIANT的第一个参数的IAccessible :: get_accName(将LVAL成员指定为CHILDID_SELF,将VT成员指定为VT_I4),然后调用的IAccessible ::get_accName。

     输出参数

几个IAccessible函数和方法有一个VARIANT * 输出参数,其中包含一个子 ID 或一个IDispatch接口指针到一个子对象。客户端必须采取不同的步骤,具体取决于他们是收到VT_I4子 ID(简单元素)还是带有CHILDID_SELF(完整对象)的IDispatch接口指针。遵循这些步骤将提供IAccessible接口指针和子 ID,它们一起允许客户端使用IAccessible方法和属性。这些步骤适用于IAccessible::accHitTest、get_accFocus和get_accSelection方法。它们也适用于AccessibleObjectFromEvent、 AccessibleObjectFromPoint和AccessibleObjectFromWindow客户端函数。

下表列出了可能返回的结果和所需的后处理步骤,以便客户端拥有IAccessible接口指针和子 ID。

输出参数 结果返回返回值的后处理IDispatch接口指针这是一个完整的对象。调用QueryInterface来访问IAccessible接口指针。 使用带有CHILDID_SELF的IAccessible接口指针来访问IAccessible方法和属性。VT_I4 子ID调用IAccessible :: get_accChild使用子ID,看看是否有IDispatch接口指针.如果得到一个的IDispatch接口指针,使用CHILDID_SELF访问的IAccessible接口的方法和属性。 如果对get_accChild的调用失败,则是一个简单的元素。使用原始IAccessible接口指针(您在调用上述方法或函数时使用的指针)和调用返回的VT_I4子 ID。

在您可以使用VARIANT参数之前,您必须通过调用VariantInit组件对象模型 (COM) 函数对其进行初始化。完成结构后,调用VariantClear以释放为该VARIANT保留的内存。

特别案例

上表中的准则存在例外情况,例如当IAccessible::accHitTest方法返回子 ID 时。如果子对象是可访问的对象,则服务器必须返回IDispatch接口。如果IAccessible::accHitTest返回子 ID ,则子元素是一个简单元素。

此外,还有accNavigate 的特殊情况。有关详细信息,请参阅IAccessible::accNavigate和空间和逻辑导航。

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.1187s