IAccessible::get_accName 方法 (oleacc.h)

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 错误代码。 服务器返回这些值,但客户端必须始终检查输出参数,以确保它们包含有效值。 有关详细信息,请参阅 检查 I 可访问的返回值

错误 说明
S_FALSE
指定的对象没有名称。
E_INVALIDARG
自变量无效。

注解

许多对象(如图标、菜单、检查框、组合框和其他控件)都具有向用户显示的标签。 向用户显示的任何标签都用于对象的 name 属性。 有关详细信息,请参阅 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)
    {
        *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;
    varChild.lVal = childId;
    HRESULT hr = pAcc->get_accName(varChild, &bstrName);
    printf("Name: %S ", bstrName);
    SysFreeString(bstrName);
    return hr;
}

要求

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

另请参阅

IAccessible

IAccessible::get_accKeyboardShortcut

Name 属性

VARIANT