Запуск WinEventHook не работает надежно.
Что может вызвать перехват событий только для мониторинга событий (или запуска определенной функции обработки событий)?
т. внутри IE8 BHO
HWINEVENTHOOK eHook = ::SetWinEventHook(EVENT_OBJECT_SHOW, EVENT_OBJECT_REORDER
, 0
, MSAALib_WinEventProc
, GetCurrentProcessId(), GetCurrentThreadId()
, WINEVENT_OUTOFCONTEXT );
Я получаю события довольно регулярно, но после недавней сборки он не работает, за исключением случаев, когда я также использую MS "Accessible event watcher", остановка и запуск средства просмотра событий также останавливается и запускает мой процесс называется.
Я не менял SetWinEventHook ни в одной из последних сборок, поэтому я не верю, что это является причиной.
Все остальные действия по перекачке потока / сообщения выполняются, как и ожидалось, поэтому я не верю, что причиной является перекачка сообщений в потоке.
Тестирование получения событий переупорядочения с использованием http://www.quirksmode.org/dom/events/tests/DOMtree.html и добавление / удаление тестовых элементов.
Edit:
После дальнейшего тестирования кажется, что изменение могло заключаться в том, что я перестал запускать «Доступный наблюдатель событий» , а не сборку.
Диапазон событий, захваченных перехватчиком событий без «Доступного наблюдателя событий», по-видимому, равен [first, last) или eventMin для eventMax-1, что не соответствует документу SetWinEventHook при запуске «Доступный наблюдатель событий» диапазон изменяется и представляется [первым, последним], поэтому использование eventMax из EVENT_OBJECT_FOCUS, похоже, дает желаемый результат просмотра EVENT_OBJECT_REORDER.
Есть ли что-то, чего я здесь упускаю, или это просто документ, и наблюдатель событий что-то делает?