Función ShellProc
Descripción
Función de devolución de llamada definida por la aplicación o definida por la biblioteca que se usa con la función SetWindowsHookExA/SetWindowsHookExW . La función recibe notificaciones de eventos de Shell del sistema.
El tipo HOOKPROC define un puntero a esta función de devolución de llamada. ShellProc es un marcador de posición para el nombre de función definido por la aplicación o definido por la biblioteca.
LRESULT CALLBACK ShellProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Parámetros
nCode [in]
Tipo: int
Código de enlace.
Si nCode es menor que cero, el procedimiento de enlace debe pasar el mensaje a la función CallNextHookEx sin procesamiento adicional y debe devolver el valor devuelto por CallNextHookEx.
Este parámetro puede ser uno de los valores siguientes.
Valor | Significado |
---|---|
HSHELL_ACCESSIBILITYSTATE 11 | El estado de accesibilidad ha cambiado. |
HSHELL_ACTIVATESHELLWINDOW 3 | El shell debe activar su ventana principal. |
HSHELL_APPCOMMAND 12 | El usuario completó un evento de entrada (por ejemplo, presionó un botón de comando de aplicación en el mouse o una tecla de comando de aplicación en el teclado) y la aplicación no controló el mensaje de WM_APPCOMMAND generado por esa entrada. Si el procedimiento shell controla el mensaje de WM_COMMAND , no debe llamar a CallNextHookEx. Consulte la sección Valor devuelto para obtener más información. |
HSHELL_GETMINRECT 5 | Se está minimizando o maximizando una ventana. El sistema necesita las coordenadas del rectángulo minimizado para la ventana. |
HSHELL_LANGUAGE 8 | Se cambió el idioma del teclado o se cargó un nuevo diseño de teclado. |
HSHELL_REDRAW 6 | Se ha vuelto a dibujar el título de una ventana de la barra de tareas. |
HSHELL_TASKMAN 7 | El usuario ha seleccionado la lista de tareas. Una aplicación de shell que proporciona una lista de tareas debe devolver TRUE para evitar que Windows inicie su lista de tareas. |
HSHELL_WINDOWACTIVATED 4 | La activación ha cambiado a otra ventana de nivel superior sin propietario. |
HSHELL_WINDOWCREATED 1 | Se ha creado una ventana de nivel superior sin propietario. La ventana existe cuando el sistema llama a este enlace. |
HSHELL_WINDOWDESTROYED 2 | Una ventana de nivel superior sin propietario está a punto de destruirse. La ventana sigue existiendo cuando el sistema llama a este enlace. |
HSHELL_WINDOWREPLACED 13 | Se reemplaza una ventana de nivel superior. La ventana existe cuando el sistema llama a este enlace. |
wParam [in]
Tipo: WPARAM
Este parámetro depende del valor del parámetro nCode , como se muestra en la tabla siguiente.
nCode | wParam |
---|---|
HSHELL_ACCESSIBILITYSTATE | Indica qué característica de accesibilidad ha cambiado de estado. Este valor es uno de los siguientes: ACCESS_FILTERKEYS, ACCESS_MOUSEKEYS o ACCESS_STICKYKEYS. |
HSHELL_APPCOMMAND | Indica dónde se envió originalmente el mensaje WM_APPCOMMAND ; por ejemplo, el identificador de una ventana. Para obtener más información, consulte el parámetro cmd en WM_APPCOMMAND. |
HSHELL_GETMINRECT | Identificador de la ventana minimizada o maximizada. |
HSHELL_LANGUAGE | Un identificador de la ventana. |
HSHELL_REDRAW | Identificador de la ventana de redrawn. |
HSHELL_WINDOWACTIVATED | Identificador de la ventana activada. |
HSHELL_WINDOWCREATED | Identificador de la ventana creada. |
HSHELL_WINDOWDESTROYED | Identificador de la ventana destruida. |
HSHELL_WINDOWREPLACED | Identificador de la ventana que se va a reemplazar. Windows 2000: no compatible. |
lParam [in]
Tipo: LPARAM
Este parámetro depende del valor del parámetro nCode , como se muestra en la tabla siguiente.
nCode | lParam |
---|---|
HSHELL_APPCOMMAND |
GET_APPCOMMAND_LPARAM(lParam) es el comando de aplicación correspondiente al evento de entrada.
GET_DEVICE_LPARAM(lParam) indica lo que generó el evento de entrada; por ejemplo, el mouse o el teclado. Para obtener más información, consulte la descripción del parámetro uDevice en WM_APPCOMMAND.
GET_FLAGS_LPARAM(lParam) depende del valor de cmd en WM_APPCOMMAND. Por ejemplo, podría indicar qué claves virtuales se mantuvieron inactivas cuando se envió originalmente el mensaje de WM_APPCOMMAND . Para obtener más información, consulte el parámetro de descripción dwCmdFlags en WM_APPCOMMAND. |
HSHELL_GETMINRECT | Puntero a una estructura RECT . |
HSHELL_LANGUAGE | Identificador de un diseño de teclado. |
HSHELL_MONITORCHANGED | Identificador de la ventana que se movió a un monitor diferente. |
HSHELL_REDRAW | El valor es TRUE si la ventana está parpadeando o FALSE en caso contrario. |
HSHELL_WINDOWACTIVATED | El valor es TRUE si la ventana está en modo de pantalla completa o FALSE en caso contrario. |
HSHELL_WINDOWREPLACED | Identificador de la nueva ventana. Windows 2000: no compatible. |
Devoluciones
Tipo: LRESULT
El valor devuelto debe ser cero a menos que el valor de nCode sea HSHELL_APPCOMMAND y el procedimiento de shell controla el mensaje de WM_COMMAND . En este caso, el valor devuelto debe ser distinto de cero.
Comentarios
Instale este procedimiento de enlace especificando el tipo de enlace WH_SHELL y un puntero al procedimiento de enlace en una llamada a la función SetWindowsHookEx .