Поделиться через


Функция 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 .

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

См. также раздел

CallNextHookEx

GetMessage

MOUSEHOOKSTRUCT

PeekMessage

SetWindowsHookEx

Обработчики

Сведения о перехватчиках