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 戻り値の確認」を参照してください。
エラー | 説明 |
---|---|
|
指定したオブジェクトに名前がありません。 |
|
引数が有効ではありません。 |
注釈
アイコン、メニュー、チェック ボックス、コンボ ボックスなどの多くのオブジェクトには、ユーザーに表示されるラベルがあります。 ユーザーに表示されるすべてのラベルは、オブジェクトの 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 |