Как интерпретировать "код", переданный CallNextHookEx

Мне интересно, какие значения может принимать второй параметр (код) функции CallNextHookEx. К сожалению, документация MSDN довольно неопределенная в отношении этого параметра:

Код крючка передан текущей процедуре крючка. Следующая процедура hook использует этот код, чтобы определить, как обрабатывать информацию об крюке.

Я предполагаю, что значения, которые может принимать параметр кода, определяются как somwhere среди " Hook Structures "

Как правильно интерпретировать значения?

Могу ли я манипулировать этим значением, или я ожидаю, что просто передам код, когда я его получил?

1 ответ

Значение объясняется в документации процедуры крючка.

например, GetMsgProc:

Указывает, должна ли процедура hook обрабатывать сообщение. Если код <code>HC_ACTION</code>, процедура перехвата должна обрабатывать сообщение. Если код меньше нуля, процедура hook должна передать сообщение функции CallNextHookEx без дальнейшей обработки и должна вернуть значение, возвращаемое CallNextHookEx.

Документация для параметра code аналогична описанной выше для большинства (всех?) Процедур.

Это означает, что вы должны обрабатывать только вызовы, для которых code равен HC_ACTION. В противном случае вы должны просто вызвать CallNextHookEx с исходными параметрами и вернуть результат.

licensed under cc by-sa 3.0 with attribution.