您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 1浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

IAccessible::get_accName method (oleacc.h)

顺其自然~ 发布时间:2021-12-13 16:02:31 ,浏览量:1

该的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
关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.4452s