VictorMi Цитата: Интересно, почему в функцию KeyboardProc (которая работает с хуками) не передается хандл окна и вид сообщения?
А зачем описатель окна передавать? Сообщения обрабатывает поток, а не окно (каждому окну сопоставляется поток, но не наоборот), а хук вызывается в контексте уже определённого потока, так что зачем переопределённость?
А параметры сообщения функции KeyboardProc передаются
Код: LRESULT CALLBACK KeyboardProc( int code,
WPARAM wParam,
LPARAM lParam
);
Parameters
code
[in] Specifies a code the hook procedure uses to determine how to process the message. If code is less than zero, the hook procedure must pass the message to the CallNextHookEx function without further processing and should return the value returned by CallNextHookEx. This parameter can be one of the following values.
HC_ACTION
The wParam and lParam parameters contain information about a keystroke message.
HC_NOREMOVE
The wParam and lParam parameters contain information about a keystroke message, and the keystroke message has not been removed from the message queue. (An application called the PeekMessage function, specifying the PM_NOREMOVE flag.)
wParam
[in] Specifies the virtual-key code of the key that generated the keystroke message.
lParam
[in] Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag. For more information about the lParam parameter, see Keystroke Message Flags. This parameter can be one or more of the following values.