Я успешно установил крюк WH_GETMESSAGE
с SetWindowsHookEx
, и я вижу сообщения WM_POINTERDOWN
, WM_POINTERUP
и т.д., которые получает приложение. (Это 32-разрядное настольное приложение, работающее в Windows 8.1.)
Теперь я не только хочу видеть эти сообщения, но и хочу удалить некоторые из них.
Документация для GetMsgProc говорит:
Процедура hook GetMsgProc может проверить или изменить сообщение. После того, как процедура hook возвращает управление системе, функция GetMessage или PeekMessage возвращает сообщение вместе с любыми изменениями в приложение, которое изначально вызывало его.
С сообщениями WM_KEYUP
это выглядит нормально. Я могу установить сообщение WM_NULL
в hook, и событие ключа исчезнет.
Однако с сообщениями WM_POINTER...
это не работает. Приложение по-прежнему получает сообщения (проверенные в отладчике).
Может быть, есть еще один способ фильтрации/удаления таких сообщений?
Изменить: он должен работать с немодифицированными сторонними приложениями (отсюда и использование крючка).
Обновление. Мне удалось предотвратить нажатие событий нажатием, нажимая PeekMessage
на крючок (возможно, не очень хорошая идея в долгосрочной перспективе). Тем не менее, я все еще не могу предотвратить прокрутку прикосновением.