IAccessible::get_accSelection 方法 (oleacc.h)
IAccessible::get_accSelection 方法检索此对象的选定子级。 支持选择的所有对象都必须支持此属性。
语法
HRESULT get_accSelection(
[out, retval] VARIANT *pvarChildren
);
参数
[out, retval] pvarChildren
类型: VARIANT*
VARIANT 结构的地址,该结构接收有关所选子级的信息。 下表描述了 pvarChildren 中返回的信息。
vt 成员 | 值成员 |
---|---|
|
未选择任何子级。 |
|
选择一个子对象,并在 pdispVal 成员中设置其 IDispatch 接口的地址。 |
|
lVal 包含所选子元素的子 ID。 如果 lVal CHILDID_SELF,则表示对象本身处于选中状态。 |
|
选择多个子对象,并且 punkVal 成员包含 IUnknown 接口的地址。 客户端查询此接口以获取 IEnumVARIANT 接口,该接口用于枚举所选对象。 |
返回值
类型: HRESULT
如果成功,则返回 S_OK。
如果未成功,则返回下表中的值之一或其他标准 COM 错误代码。 服务器返回这些值,但客户端必须始终检查输出参数,以确保它们包含有效的值。 有关详细信息,请参阅 检查 IAccessible 返回值。
错误 | 说明 |
---|---|
|
对象不支持此属性。 |
注解
此方法必须支持 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 |