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 오류 코드를 반환합니다. 서버는 이러한 값을 반환하지만 클라이언트는 항상 출력 매개 변수를 검사 유효한 값을 포함해야 합니다. 자세한 내용은 IAccessible 반환 값 확인을 참조하세요.
오류 | Description |
---|---|
|
지정한 개체에 이름이 없습니다. |
|
인수가 잘못된 경우. |
설명
아이콘, 메뉴, 검사 상자, 콤보 상자 및 기타 컨트롤과 같은 많은 개체에는 사용자에게 표시되는 레이블이 있습니다. 사용자에게 표시되는 모든 레이블은 개체의 이름 속성에 사용됩니다. 자세한 내용은 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 |
라이브러리 | Oleacc.lib |
DLL | Oleacc.dll |
재배포 가능 파일 | SP6 이상 및 Windows 95를 Windows NT 4.0의 활성 접근성 1.3 RDK |