The ShellProc hook procedure is an application-defined or library-defined callback function used with the SetWindowsHookEx function. The function receives notifications of shell events from the system.
The HOOKPROC type defines a pointer to this callback function. ShellProc is a placeholder for the application-defined or library-defined function name.
LRESULT CALLBACK ShellProc(
int nCode, // hook code
WPARAM wParam, // event-specific information
LPARAM lParam // event-specific information
);
Value | Meaning |
---|---|
HSHELL_ACCESSIBILITYSTATE | Windows NT 5.0 and later: The accessibility state has changed. |
HSHELL_ACTIVATESHELLWINDOW | The shell should activate its main window. |
HSHELL_GETMINRECT | A window is being minimized or maximized. The system needs the coordinates of the minimized rectangle for the window. |
HSHELL_LANGUAGE | Keyboard language was changed or a new keyboard layout was loaded. |
HSHELL_REDRAW | The title of a window in the task bar has been redrawn. |
HSHELL_TASKMAN | The user has selected the task list. A shell application that provides a task list should return TRUE to prevent Windows from starting its task list. |
HSHELL_WINDOWACTIVATED | The activation has changed to a different top-level, unowned window. |
HSHELL_WINDOWCREATED | A top-level, unowned window has been created. The window exists when the system calls a ShellProc function. |
HSHELL_WINDOWDESTROYED | A top-level, unowned window is about to be destroyed. The window still exists when the system calls a ShellProc function. |
If nCode 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.
nCode | wParam |
---|---|
HSHELL_ACCESSIBILITYSTATE | Indicates which accessibility feature has changed state. This value is one of the following: ACCESS_FILTERKEYS, ACCESS_MOUSEKEYS, or ACCESS_STICKYKEYS. |
HSHELL_GETMINRECT | Handle to the minimized or maximized window. |
HSHELL_LANGUAGE | Handle to the window. |
HSHELL_REDRAW | Handle to the redrawn window. |
HSHELL_WINDOWACTIVATED | Handle to the activated window. |
HSHELL_WINDOWCREATED | Handle to the created window. |
HSHELL_WINDOWDESTROYED | Handle to the destroyed window. |
nCode | lParam |
---|---|
HSHELL_GETMINRECT | Pointer to a RECT structure. |
HSHELL_LANGUAGE | Handle to a keyboard layout. |
HSHELL_REDRAW | The value is TRUE if the window is flashing, or FALSE otherwise. |
HSHELL_WINDOWACTIVATED | The value is TRUE if the window is in full-screen mode, or FALSE otherwise. |
The return value should be zero.
Install this hook procedure by specifying the WH_SHELL hook type and the address of the hook procedure in a call to the SetWindowsHookEx function.
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in winuser.h.
Import Library: User-defined.
Hooks Overview, Hook Functions, CallNextHookEx, SendMessage, SetWindowsHookEx