Функция 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.
Код возврата | Описание |
---|---|
|
Аргумент является недопустимым. |
Комментарии
Клиенты вызывают эту функцию в функции перехватчика событий, чтобы получить указатель интерфейса 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 |