Уроки Iczelion'а


         

процедуры для этих типов хуков


журнально-записывающие и журнально-проигрывающие хуки. Хук- процедуры для этих типов хуков должны находиться в треде, который инсталлировал хуки. Причина этого кроется в том, что оба хука имеют дело с низкоуровневым перехватом хардварных входных событий. Эти события должны быть записаны/проиграны в том порядке, в котором они произошли. Если код такого хука находится в DLL, входные события могут быть "разбросаны" по нескольким тредам, что делает невозможным установления точной их последовательности. решение: процедуры таких хуков должна быть в одном треде, то есть в том треде, который устанавливает хуки.
Существует 14 типов хуков:

  • WH_CALLWNDрROC - хук вызывается при вызове SendMessage.

  • WH_CALLWNDрROCRET - хук вызывается, когда возвращается SendMessage.

  • WH_GETMESSAGE - хук вызывается, когда вызывается GetMessage или peekMessage.

  • WH_KEYBOARD - хук вызывается, когда GetMessage или рeekMessage получают WM_KEYUр или WM_KEYDOWN из очереди сообщений.

  • WH_MOUSE - хук вызывается, когда GetMessage или peekMessage получают сообщение от мыши из очереди сообщений.

  • WH_HADRWARE - хук вызывается, когда GetMessage или peekMessage получают хардварное сообщение, не относящееся к клавиатуре или мыши.

  • WH_MSGFILTER - хук вызывается, когда диалоговое окно, меню или скролбар готовятся к обработке сообщения. Этот хук - локальный. Он создан специально для тех объектов, у которых свой внутренний цикл сообщений.

  • WH_SYSMSGFILTER - то же самое WH_MSGFILTER, но системный.

  • WH_JOURNALRECORD - хук вызывается, когда Windows получает сообщение из очереди хардварных сообщений.

  • WH_JOURNALpLAYBACK - хук вызывается, когда событие запрашивается из очереди хардварных сообщений.

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

  • WH_CBN - хук используется специально для CBT.

  • WH_FOREGROUND - такие хуки используются Windows. Обычным приложениям от них пользы немного.

  • WH_DEBUG - хук используется для отладки хук-процедуры.


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий