Функция 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

Указывает идентификатор объекта, создающего событие. Это значение должно быть идентификатором объекта, который отправляется в функцию перехватчика событий.

[in] dwChildId

Тип: DWORD

Указывает, было ли событие активировано объектом или одним из его дочерних элементов. Если объект вызвал событие, dwChildID CHILDID_SELF. Если событие активировал дочерний элемент, dwChildID является дочерним идентификатором элемента. Это значение должно быть идентификатором дочернего элемента, который отправляется функции перехватчика событий.

[out] ppacc

Тип: IAccessible**

Адрес переменной указателя, которая получает адрес интерфейса IAccessible . Интерфейс предназначен либо для объекта, создающего событие, либо для родительского элемента, создающего событие.

[out] pvarChild

Тип: VARIANT*

Адрес структуры VARIANT , указывающий идентификатор дочернего элемента, который можно использовать для доступа к сведениям об элементе пользовательского интерфейса.

Возвращаемое значение

Тип: STDAPI

Возвращает значение S_OK, если операция завершилась успешно.

В случае успеха возвращает один из следующих или другой стандартный код ошибки COM.

Код возврата Описание
E_INVALIDARG
Аргумент является недопустимым.

Комментарии

Клиенты вызывают эту функцию в функции перехватчика событий, чтобы получить указатель интерфейса IAccess на объект, создающий событие, или на родительский элемент элемента, создающего событие. Параметры, отправляемые функции обратного вызова WinEventProc , должны использоваться для параметров hwnd, dwObjectID и dwChildID этой функции.

Эта функция извлекает доступный объект самого низкого уровня в иерархии объектов, связанный с событием. Если элемент, создающий событие, не является доступным объектом (то есть не поддерживает IAccessible), функция получает интерфейс IAccessible родительского объекта. Родительский объект должен предоставлять сведения о дочернем элементе через интерфейс IAccessible .

Как и в случае с другими методами и функциями IAccess , клиенты могут получать ошибки для указателей интерфейса IAccess из-за действия пользователя. Дополнительные сведения см. в разделе Получение ошибок для указателей интерфейса IAccessible.

Эта функция завершается ошибкой при вызове в ответ на EVENT_OBJECT_CREATE , так как объект не инициализирован полностью. Аналогичным образом клиенты не должны вызывать этот метод в ответ на EVENT_OBJECT_DESTROY , так как объект больше недоступен и не может отвечать. Клиенты watch для событий EVENT_OBJECT_SHOW и EVENT_OBJECT_HIDE, а не для EVENT_OBJECT_CREATE и EVENT_OBJECT_DESTROY.

Примеры

В следующем примере кода показано, как этот метод вызывается в обработчике событий 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
Header oleacc.h
Библиотека Oleacc.lib
DLL Oleacc.dll
Распространяемые компоненты Активные специальные возможности 1.3 RDK в Windows NT 4.0 с пакетом обновления 6 (SP6) и более поздних версий и Windows 95

См. также раздел

AccessibleObjectFromPoint

AccessibleObjectFromWindow

IAccessible

ВАРИАНТ

WinEventProc