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
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
라이브러리 Oleacc.lib
DLL Oleacc.dll
재배포 가능 파일 SP6 이상 및 Windows 95를 Windows NT 4.0의 활성 접근성 1.3 RDK

추가 정보

IAccessible

IAccessible::get_accKeyboardShortcut

Name 속성

변형