Оконные хуки - как они работают?

Я понятия не имею, как оконные перехватчики работают на «системном уровне». MSDN лишь очень кратко касается того, что происходит:

Ловушка - это точка в механизме обработки сообщений системы, где приложение может установить подпрограмму для отслеживания трафика сообщений в системе и обрабатывать определенные типы сообщений до того, как они достигнут целевая оконная процедура.

Я предполагаю примерно следующее:

enter image description here

Перед тем, как каждое сообщение будет добавлено в очередь сообщений для окна, оно сначала отправит сообщение глобальным / локальным хукам, которые могут что-то сделать в зависимости от их хука. процедуры. После всех глобальных и локальных перехватчиков сообщение, наконец, добавляется в очередь сообщений окна.

Однако MSDN сообщает, что для некоторых типов перехватчиков он будет отслеживать события , уведомления и т. Д.

Примером является WH_MOUSE_LL hook:

Устанавливает подключаемую процедуру, которая отслеживает низкоуровневую мышь входные события . Для получения дополнительной информации см. Ловушку LowLevelMouseProc. процедура.

Когда они говорят события , мы говорим об оконных сообщениях или они имеют в виду что-то еще?

Я все не прав?

9
задан ebb 25 December 2011 в 13:33
поделиться