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 .

Vea también

CallNextHookEx

SendMessage

SetWindowsHookEx

WM_APPCOMMAND

WM_COMMAND

Enlaces