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


Функция обратного вызова ForegroundIdleProc

Определяемая приложением или библиотекой функция обратного вызова, используемая с функцией SetWindowsHookExA/SetWindowsHookExW . Система вызывает эту функцию всякий раз, когда поток переднего плана находится в состоянии простоя.

Синтаксис

DWORD CALLBACK ForegroundIdleProc(
  _In_ int   code,
       DWORD wParam,
       LONG  lParam
);

Параметры

  • code [in]
    Тип: int

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

  • wParam
    Тип: DWORD

    Этот параметр не используется.

  • lParam
    Тип: LONG

    Этот параметр не используется.

Возвращаемое значение

Тип:****

Тип — DWORD

Если код меньше нуля, процедура перехватчика должна возвращать значение, возвращенное CallNextHookEx.

Если код больше или равен нулю, настоятельно рекомендуется вызвать CallNextHookEx и вернуть возвращаемое значение. В противном случае другие приложения, которые установили WH_FOREGROUNDIDLE перехватчиков, не будут получать уведомления о перехватчиках и в результате могут работать неправильно. Если процедура перехватчика не вызывает CallNextHookEx, возвращаемое значение должно быть равно нулю.

Комментарии

Тип HOOKPROC определяет указатель на эту функцию обратного вызова. ForegroundIdleProc — это заполнитель для имени определяемой приложением или библиотекой функции.

Приложение устанавливает эту процедуру перехватчика, указывая тип перехватчика WH_FOREGROUNDIDLE и указатель на процедуру перехватчика в вызове функции SetWindowsHookExA/SetWindowsHookExW .

При обработке этой функции обратного вызова избегайте вызова функций, которые извлекают сообщения окна из очереди сообщений вызывающего потока. К ним относятся GetMessage, PeekMessageA/PeekMessageW, модальное диалоговое окно и функции COM. Вызов таких функций может привести к тому, что поток не возвращается из GetMessage или WaitMessage , если в очереди сообщений вызывающего потока есть сообщения.

Требования

Минимальная версия клиента

Windows 2000 Professional [только классические приложения]

Минимальная версия сервера

Windows 2000 Server [только классические приложения]

Заголовок

Winuser.h (включая Windows.h)

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

Справочные материалы

CallNextHookEx

SetWindowsHookExA/SetWindowsHookExW

Основные понятия

Обработчики