IAccessible::get_accSelection 方法 (oleacc.h)

IAccessible::get_accSelection 方法检索此对象的选定子级。 支持选择的所有对象都必须支持此属性。

语法

HRESULT get_accSelection(
  [out, retval] VARIANT *pvarChildren
);

参数

[out, retval] pvarChildren

类型: VARIANT*

VARIANT 结构的地址,该结构接收有关所选子级的信息。 下表描述了 pvarChildren 中返回的信息。

vt 成员 值成员
VT_EMPTY
未选择任何子级。
VT_DISPATCH
选择一个子对象,并在 pdispVal 成员中设置其 IDispatch 接口的地址。
VT_I4
lVal 包含所选子元素的子 ID。 如果 lVal CHILDID_SELF,则表示对象本身处于选中状态。
VT_UNKNOWN
选择多个子对象,并且 punkVal 成员包含 IUnknown 接口的地址。 客户端查询此接口以获取 IEnumVARIANT 接口,该接口用于枚举所选对象。

返回值

类型: HRESULT

如果成功,则返回 S_OK。

如果未成功,则返回下表中的值之一或其他标准 COM 错误代码。 服务器返回这些值,但客户端必须始终检查输出参数,以确保它们包含有效的值。 有关详细信息,请参阅 检查 IAccessible 返回值

错误 说明
DISP_E_MEMBERNOTFOUND
对象不支持此属性。

注解

此方法必须支持 IEnumVARIANT 接口。

此方法返回 iDispatch 接口指针或 pvarChildren 参数的子 ID。 有关如何使用 IDispatch 接口指针或子 ID 的详细信息,请参阅 如何在参数中使用子 ID

与其他 IAccessible 方法和函数一样,由于用户操作,客户端可能会收到 IAccessible 接口指针错误。 有关详细信息,请参阅 接收 IAccessible 接口指针的错误

注意: 此方法检索选定的项,而不是选定的文本。

服务器示例

下面的示例代码演示了自定义单选列表框的此方法的可能实现。 如果未选择任何项,则其 GetSelectedIndex 方法返回 -1。

// m_pControl is the control that returns this accessible object. 

HRESULT STDMETHODCALLTYPE AccServer::get_accSelection(VARIANT *pvarChildren)
{
    int childID = m_pControl->GetSelectedIndex() + 1; // Convert from 0-based. 
    if (childID <= 0)
    {
        pvarChildren->vt = VT_EMPTY;
    }
    else 
    {
        pvarChildren->vt = VT_I4;
        pvarChildren->lVal = childID;
    }
    return S_OK;
};




要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 oleacc.h
Library Oleacc.lib
DLL Oleacc.dll
可再发行组件 具有 SP6 及更高版本和 Windows 95 的 Windows NT 4.0 上的 Active Accessibility 1.3 RDK

另请参阅

IAccessible

IAccessible::accSelect

IAccessible::get_accFocus

IDispatch

选择和焦点属性和方法

VARIANT