다음을 통해 공유


IAccessible::accDoDefaultAction 메서드(oleacc.h)

IAccessible::accDoDefaultAction 메서드는 지정된 개체의 기본 작업을 수행합니다. 모든 개체마다 기본 작업이 있는 것은 아닙니다.

구문

HRESULT accDoDefaultAction(
  [in] VARIANT varChild
);

매개 변수

[in] varChild

형식: VARIANT

기본 작업이 개체에 속하는지 또는 개체의 자식 요소 중 하나에 속하는지 여부를 지정합니다. VARIANT 초기화에 대한 자세한 내용은 매개 변수에서 자식 ID를 사용하는 방법을 참조하세요.

반환 값

형식: HRESULT

성공하면 S_OK를 반환합니다.

성공하지 못하면 다음 테이블의 값 중 하나 또는 다른 표준 COM 오류 코드를 반환합니다.

Error 설명
DISP_E_MEMBERNOTFOUND
개체는 메서드를 지원하지 않습니다. 이 값은 필드 편집과 같은 작업을 수행하지 않는 컨트롤에 대해 반환됩니다.
E_INVALIDARG
인수가 잘못된 경우.

설명

클라이언트는 IAccessible::get_accDefaultAction 호출하여 개체의 기본 작업을 설명하는 문자열을 검색합니다.

클라이언트 개발자에게 참고: 표준 시스템 메뉴의 메뉴 항목에서 사용되는 경우 accDoDefaultAction 은 S_OK 반환하지만 액세스 키에 사용되는 문자(메뉴 항목 이름 텍스트의 밑줄 문자(니모닉이라고도 함)가 @이거나 SHIFT 키 또는 다른 한정자 키가 필요한 다른 문자가 ?, !, 경우 작업을 수행하지 못합니다. 이는 ALT GR 키를 눌러야 하는 액세스 키 문자가 있는 국가별 키보드에서도 발생합니다. Microsoft Office 또는 Windows Internet Explorer 같은 다른 응용 프로그램의 메뉴에는 문제가 되지 않습니다. 액세스 키에 대한 자세한 내용은 IAccessible::get_accKeyboardShortcut.

또한 accDoDefaultAction 은 즉시 반환되어야 하지만 일부 구현은 반환을 차단합니다. 예를 들어 링크를 클릭하면 대화 상자가 표시되면 일부 구현은 대화가 해제될 때까지 반환을 차단합니다. 이러한 지연으로 인해 클라이언트 애플리케이션이 대화 상자를 처리하지 못할 수 있습니다. 서버는 반환을 차단하는 구현을 피해야 합니다.

서버 예제

다음 예제에서는 기본 동작이 자식 항목을 두 번 클릭하는 사용자 지정 목록 컨트롤에 대해 가능한 구현을 보여 주세요. 차단을 방지하기 위해 메서드는 컨트롤 창에서 수신할 때 항목 속성 표시와 같은 작업을 트리거하는 사용자 지정 메시지를 게시합니다.

// Assume a previous definition such as this: 
// #define CUSTOMLB_DEFERDOUBLECLICK   (WM_USER + 1) 

HRESULT STDMETHODCALLTYPE AccServer::accDoDefaultAction( 
    VARIANT varChild) 
{
    if (varChild.vt != VT_I4)
    {
        return E_INVALIDARG;
    }
    if (varChild.lVal != CHILDID_SELF)
    {
        // It is assumed that the control does its own checking to see which 
        // item has the focus when it receives this message.
        PostMessage(m_hwnd, CUSTOMLB_DEFERDOUBLECLICK, 0, 0);
    }
    return S_OK;
};

클라이언트 예제

다음 예제 함수는 컨트롤에 대한 기본 작업을 수행합니다.

HRESULT DoAction(IAccessible* pAcc)
{
        VARIANT varId;
        varId.vt = VT_I4;
        varId.lVal = CHILDID_SELF;
        return pAcc->accDoDefaultAction(varId);
}

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 oleacc.h
라이브러리 Oleacc.lib
DLL Oleacc.dll
재배포 가능 파일 Windows NT Server 4.0의 활성 접근성 1.3 RDK SP6 이상 및 Windows 95

추가 정보

부록 A: 지원되는 사용자 인터페이스 요소 참조

DefaultAction 속성

IAccessible

IAccessible::get_accDefaultAction

IAccessible::get_accKeyboardShortcut

변형