title: ForegroundIdleProc callback function (Windows) description: The system calls this function whenever the foreground thread is about to become idle. ms.date: 06/28/2023 ms.topic: reference f1_keywords:
- ForegroundIdleProc
- winuser/ForegroundIdleProc dev_langs:
- C++
- C api_location:
- Winuser.h api_name:
- ForegroundIdleProc api_type:
- UserDefined product:
- Windows topic_type:
- apiref
- kbSyntax product_family_name: VS ROBOTS: INDEX,FOLLOW
An application-defined or library-defined callback function used with the SetWindowsHookExA/SetWindowsHookExW function. The system calls this function whenever the foreground thread is about to become idle.
DWORD CALLBACK ForegroundIdleProc(
_In_ int code,
DWORD wParam,
LONG lParam
);
-
code [in]
Type: intIf code is HC_ACTION, the hook procedure must 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.
-
wParam
Type: DWORDThis parameter is not used.
-
lParam
Type: LONGThis parameter is not used.
Type: ****
Type: DWORD
If code is less than zero, the hook procedure must return the value returned by CallNextHookEx.
If code is greater than or equal to zero, it is highly recommended that you call CallNextHookEx and return the value it returns; otherwise, other applications that have installed WH_FOREGROUNDIDLE hooks will not receive hook notifications and may behave incorrectly as a result. If the hook procedure does not call CallNextHookEx, the return value should be zero.
The HOOKPROC type defines a pointer to this callback function. ForegroundIdleProc is a placeholder for the application-defined or library-defined function name.
An application installs this hook procedure by specifying the WH_FOREGROUNDIDLE hook type and the pointer to the hook procedure in a call to the SetWindowsHookExA/SetWindowsHookExW function.
While processing this callback function, avoid calling any functions that retrieve window messages from the calling thread's message queue. This includes GetMessage, PeekMessageA/PeekMessageW, modal dialog box, and COM functions. Calling such functions may result in the thread not returning from GetMessage or WaitMessage when there are messages in the calling thread's message queue.
Minimum supported client |
Windows 2000 Professional [desktop apps only] |
Minimum supported server |
Windows 2000 Server [desktop apps only] |
Header |
Winuser.h (include Windows.h) |
Reference
SetWindowsHookExA/SetWindowsHookExW
Conceptual