Platform SDK: Interprocess Communications |
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 2000: The accessibility state has changed. |
HSHELL_ACTIVATESHELLWINDOW | The shell should activate its main window. |
HSHELL_APPCOMMAND | Windows 2000: The user completed an input event (for example, pressed an application command button on the mouse or an application command key on the keyboard), and the application did not handle the WM_APPCOMMAND message generated by that input. |
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_APPCOMMAND | Windows 2000: Where the WM_APPCOMMAND message was originally sent; for example, the handle to a window. For more information, see cmd parameter in WM_APPCOMMAND. |
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_APPCOMMAND | Windows 2000: GET_APPCOMMAND_LPARAM(lParam) is the application command corresponding to the input event.
GET_DEVICE_LPARAM(lParam) indicates what generated the input event; for example, the mouse or keyboard. For more information, see the uDevice parameter description under WM_APPCOMMAND. GET_FLAGS_LPARAM(lParam) depends on the value of cmd in WM_APPCOMMAND. For example, it might indicate which virtual keys were held down when the WM_APPCOMMAND message was originally sent. For more information, see the dwCmdFlags description parameter under WM_APPCOMMAND. |
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 a pointer to the hook procedure in a call to the SetWindowsHookEx function.
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Winuser.h; include Windows.h.
Hooks Overview, Hook Functions, CallNextHookEx, SendMessage, SetWindowsHookEx, WM_APPCOMMAND