AccessibleObjectFromEvent 함수(oleacc.h)
클라이언트의 이벤트 후크 함수에서 현재 처리 중인 이벤트를 생성한 개체에 대한 IAccessible 인터페이스의 주소를 검색합니다.
구문
HRESULT AccessibleObjectFromEvent(
[in] HWND hwnd,
[in] DWORD dwId,
[in] DWORD dwChildId,
[out] IAccessible **ppacc,
[out] VARIANT *pvarChild
);
매개 변수
[in] hwnd
형식: HWND
이벤트를 생성한 창의 창 핸들을 지정합니다. 이 값은 이벤트 후크 함수로 전송되는 창 핸들이어야 합니다.
[in] dwId
형식: DWORD
이벤트를 생성한 개체의 개체 ID를 지정합니다. 이 값은 이벤트 후크 함수로 전송되는 개체 ID여야 합니다.
[in] dwChildId
형식: DWORD
개체 또는 해당 자식 요소 중 하나에 의해 이벤트가 트리거되었는지 여부를 지정합니다. 개체가 이벤트를 트리거하면 dwChildID 가 CHILDID_SELF. 자식 요소가 이벤트를 트리거한 경우 dwChildID 는 요소의 자식 ID입니다. 이 값은 이벤트 후크 함수로 전송되는 자식 ID여야 합니다.
[out] ppacc
형식: IAccessible**
IAccessible 인터페이스의 주소를 수신하는 포인터 변수의 주소입니다. 인터페이스는 이벤트를 생성한 개체 또는 이벤트를 생성한 요소의 부모에 대한 것입니다.
[out] pvarChild
형식: VARIANT*
UI 요소에 대한 정보에 액세스하는 데 사용할 수 있는 자식 ID를 지정하는 VARIANT 구조 체의 주소입니다.
반환 값
형식: STDAPI
성공하면 S_OK를 반환합니다.
성공하지 못하면 다음 또는 다른 표준 COM 오류 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
인수가 잘못된 경우. |
설명
클라이언트는 이벤트 후크 함수 내에서 이 함수를 호출하여 이벤트를 생성한 개체 또는 이벤트를 생성한 요소의 부모에 대한 IAccessible 인터페이스 포인터를 가져옵니다. WinEventProc 콜백 함수로 전송된 매개 변수는 이 함수의 hwnd, dwObjectID 및 dwChildID 매개 변수에 사용해야 합니다.
이 함수는 이벤트와 연결된 개체 계층에서 액세스 가능한 가장 낮은 수준의 개체를 검색합니다. 이벤트를 생성한 요소가 액세스 가능한 개체가 아닌 경우(즉, IAccessible을 지원하지 않음) 함수는 부모 개체의 IAccessible 인터페이스를 검색합니다. 부모 개체는 IAccessible 인터페이스를 통해 자식 요소에 대한 정보를 제공해야 합니다.
다른 IAccessible 메서드 및 함수와 마찬가지로 클라이언트는 사용자 작업으로 인해 IAccessible 인터페이스 포인터에 대한 오류를 수신할 수 있습니다. 자세한 내용은 IAccessible 인터페이스 포인터에 대한 오류 수신을 참조하세요.
개체가 완전히 초기화되지 않았기 때문에 EVENT_OBJECT_CREATE 대한 응답으로 호출되면 이 함수가 실패합니다. 마찬가지로 클라이언트는 개체를 더 이상 사용할 수 없고 응답할 수 없으므로 EVENT_OBJECT_DESTROY 대한 응답으로 이를 호출해서는 안 됩니다. 클라이언트는 EVENT_OBJECT_CREATE 및 EVENT_OBJECT_DESTROY 대신 EVENT_OBJECT_SHOW 및 EVENT_OBJECT_HIDE 이벤트를 watch.
예제
다음 예제 코드는 WinEventProc 이벤트 처리기에서 호출되는 이 메서드를 보여줍니다.
void CALLBACK HandleWinEvent(HWINEVENTHOOK hook, DWORD event, HWND hwnd,
LONG idObject, LONG idChild,
DWORD dwEventThread, DWORD dwmsEventTime)
{
IAccessible* pAcc = NULL;
VARIANT varChild;
HRESULT hr = AccessibleObjectFromEvent(hwnd, idObject, idChild, &pAcc, &varChild);
if ((hr == S_OK) && (pAcc != NULL))
{
// Do something with the accessible object, then release it.
// ...
pAcc->Release();
}
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | oleacc.h |
라이브러리 | Oleacc.lib |
DLL | Oleacc.dll |
재배포 가능 파일 | SP6 이상 및 Windows 95를 Windows NT 4.0의 활성 접근성 1.3 RDK |