Функция MouseProc
Описание
Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookExA/SetWindowsHookExW . Система вызывает эту функцию всякий раз, когда приложение вызывает функцию GetMessage или PeekMessageA/PeekMessageW и появляется сообщение мыши для обработки.
Тип HOOKPROC определяет указатель на эту функцию обратного вызова. MouseProc — это заполнитель для имени функции, определяемой приложением или библиотекой.
LRESULT CALLBACK MouseProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Параметры
nCode [in]
Тип: int
Код, который используется процедурой перехватчика для определения способа обработки сообщения.
Если значение nCode меньше нуля, процедура перехватчика должна передать сообщение функции CallNextHookEx без дальнейшей обработки и возвращать значение, возвращаемое CallNextHookEx.
Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
HC_ACTION 0 | Параметры wParam и lParam содержат сведения о сообщении мыши. |
HC_NOREMOVE 3 | Параметры wParam и lParam содержат сведения о сообщении мыши, и сообщение мыши не было удалено из очереди сообщений. (Приложение с именем функции PeekMessage , указывающее флаг PM_NOREMOVE .) |
wParam [in]
Тип: WPARAM
Идентификатор сообщения мыши.
lParam [in]
Тип: LPARAM
Указатель на структуру MOUSEHOOKSTRUCT .
Возвращаемое значение
Тип: LRESULT
Если значение nCode меньше нуля, процедура перехватчика должна возвращать значение, возвращаемое CallNextHookEx.
Если nCode больше или равен нулю, а процедура перехватчика не обработала сообщение, настоятельно рекомендуется вызвать CallNextHookEx и вернуть возвращаемое значение; В противном случае другие приложения, которые установили WH_MOUSE перехватчиков, не будут получать уведомления о перехватчиках и могут работать неправильно.
Если процедура перехватчика обработала сообщение, она может вернуть ненулевое значение, чтобы система не передала сообщение в процедуру целевого окна.
Комментарии
Приложение устанавливает процедуру перехватчика, указывая тип перехватчика WH_MOUSE и указатель на процедуру перехватчика в вызове функции SetWindowsHookExASetWindowsHookExA /SetWindowsHookExW.
Процедура перехватчика не должна устанавливать функцию обратного вызова WH_JOURNALPLAYBACK .
Этот перехватчик можно вызвать в контексте потока, который его установил. Вызов выполняется путем отправки сообщения в поток, который установил перехватчик. Таким образом, поток, который установил перехватчик, должен иметь цикл сообщений.