该的IAccessible :: get_accName方法检索指定对象的名称。所有对象都支持此属性。
句法
HRESULT get_accName(
[in] VARIANT varChild,
[out, retval] BSTR *pszName
);
参数
[in] varChild
类型:VARIANT
指定检索到的名称是属于对象还是属于对象的子元素之一。此参数是 CHILDID_SELF(获取有关对象的信息)或子 ID(获取有关对象的子元素的信息)。有关初始化VARIANT 结构的详细信息,请参阅如何在参数中使用子 ID。
[out, retval] pszName
类型:BSTR*
接收包含指定对象名称的字符串的BSTR 的地址。
返回值类型:HRESULT
如果成功,则返回 S_OK。
如果不成功,则返回下表中的值之一,或另一个标准COM 错误代码。服务器返回这些值,但客户端必须始终检查输出参数以确保它们包含有效值。有关更多信息,请参阅检查 IAccessible 返回值。
返回值
错误描述
备注
S_FALSE
指定的对象没有名称。E_INVALIDARG
参数无效。许多对象(例如图标、菜单、复选框、组合框和其他控件)都有向用户显示的标签。向用户显示的任何标签都用于对象的名称属性。有关更多信息,请参阅名称属性。
服务器开发人员注意事项: 如果您为 Name 属性使用菜单或按钮文本,请删除所有标记键盘访问键的与号 (&)。向客户端提供访问密钥以响应IAccessible::get_accKeyboardShortcut。
本地化从此属性返回的字符串。
服务器示例下面的示例显示了此方法的一种可能实现,用于管理其自己的子元素的自定义列表框控件。
// m_pStdAccessibleObject is the standard object returned by CreateStdAccessibleObject.
// m_pControl is the control object that provides this accessibility object. It maintains
// a zero-based collection of child items.
HRESULT STDMETHODCALLTYPE AccServer::get_accName(
VARIANT varChild,
BSTR *pszName)
{
if (varChild.vt != VT_I4) //必须是VT_I4类型
{
*pszName = NULL;
return E_INVALIDARG;
}
// For the control itself, let the standard accessible object return the name
// assigned by the application. This is either the "caption" property or, if
// there is no caption, the text of any label.
if (varChild.lVal == CHILDID_SELF)
{
return m_pStdAccessibleObject->get_accName(varChild, pszName);
}
// Else return the name of the item in the list.
else
{
CustomListControlItem* pItem = m_pControl->GetItemAt(varChild.lVal - 1);
if (pItem)
{
*pszName = SysAllocString(pItem->GetName());
}
}
return S_OK;
};
客户端示例
以下示例函数显示控件的可访问名称。
HRESULT PrintName(IAccessible* pAcc, long childId)
{
if (pAcc == NULL)
{
return E_INVALIDARG;
}
BSTR bstrName;
VARIANT varChild;
varChild.vt = VT_I4; //必须是VT_I4类型
varChild.lVal = childId;
HRESULT hr = pAcc->get_accName(varChild, &bstrName);
printf("Name: %S ", bstrName);
SysFreeString(bstrName);
return hr;
}
要求
最低支持客户端Windows 2000 Professional [仅限桌面应用程序]最低支持服务器Windows Server 2003 [仅限桌面应用程序]目标平台视窗标题oleacc.h图书馆oleacc.lib动态链接库oleacc.dll可再发行Windows NT 4.0 SP6 及更高版本和 Windows 95 上的 Active Accessibility 1.3 RDK