IAccessible::accDoDefaultAction 메서드(oleacc.h)
IAccessible::accDoDefaultAction 메서드는 지정된 개체의 기본 작업을 수행합니다. 모든 개체마다 기본 작업이 있는 것은 아닙니다.
구문
HRESULT accDoDefaultAction(
[in] VARIANT varChild
);
매개 변수
[in] varChild
형식: VARIANT
기본 작업이 개체에 속하는지 또는 개체의 자식 요소 중 하나에 속하는지 여부를 지정합니다. VARIANT 초기화에 대한 자세한 내용은 매개 변수에서 자식 ID를 사용하는 방법을 참조하세요.
반환 값
형식: HRESULT
성공하면 S_OK를 반환합니다.
성공하지 못하면 다음 테이블의 값 중 하나 또는 다른 표준 COM 오류 코드를 반환합니다.
Error | 설명 |
---|---|
|
개체는 메서드를 지원하지 않습니다. 이 값은 필드 편집과 같은 작업을 수행하지 않는 컨트롤에 대해 반환됩니다. |
|
인수가 잘못된 경우. |
설명
클라이언트는 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 |
추가 정보
IAccessible::get_accDefaultAction