IAccessible::get_accName メソッド (oleacc.h)

IAccessible::get_accName メソッドは、指定したオブジェクトの名前を取得します。 すべてのオブジェクトがこのプロパティをサポートします。

構文

HRESULT get_accName(
  [in]          VARIANT varChild,
  [out, retval] BSTR    *pszName
);

パラメーター

[in] varChild

型: VARIANT

取得した名前がオブジェクトに属するか、オブジェクトの子要素の 1 つに属するかを指定します。 このパラメーターは、CHILDID_SELF (オブジェクトに関する情報を取得するため) または子 ID (オブジェクトの子要素に関する情報を取得する場合) のいずれかです。 VARIANT 構造体の初期化の詳細については、「パラメーターでの子 ID の使用方法」を参照してください。

[out, retval] pszName

種類: BSTR*

指定したオブジェクトの名前を含む文字列を受け取る BSTR のアドレス。

戻り値

型: HRESULT

成功した場合は、S_OK を返します。

成功しなかった場合は、次のテーブルの値の 1 つ、または別の標準 COM エラー コードを返します。 サーバーはこれらの値を返しますが、クライアントは常に出力パラメーターをチェックして、有効な値が含まれていることを確認する必要があります。 詳細については、「 IAccessible 戻り値の確認」を参照してください。

エラー 説明
S_FALSE
指定したオブジェクトに名前がありません。
E_INVALIDARG
引数が有効ではありません。

注釈

アイコン、メニュー、チェック ボックス、コンボ ボックスなどの多くのオブジェクトには、ユーザーに表示されるラベルがあります。 ユーザーに表示されるすべてのラベルは、オブジェクトの name プロパティに使用されます。 詳細については、「 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 プロパティ

バリアント