Compartir a través de


Función RegisterShellHookWindow (winuser.h)

[Esta función no está pensada para uso general. Puede modificarse o no estar disponible en versiones posteriores de Windows.

Registra una ventana de Shell especificada para recibir determinados mensajes de eventos o notificaciones que son útiles para las aplicaciones de Shell.

Los mensajes de evento recibidos son solo los enviados a la ventana shell asociada al escritorio de la ventana especificada. Muchos de los mensajes son los mismos que los que se pueden recibir después de llamar a la función SetWindowsHookEx y especificar WH_SHELL para el tipo de enlace. La diferencia con RegisterShellHookWindow es que los mensajes se reciben a través del WindowProc de la ventana especificada y no a través de un procedimiento de devolución de llamada.

Sintaxis

BOOL RegisterShellHookWindow(
  [in] HWND hwnd
);

Parámetros

[in] hwnd

Tipo: HWND

Identificador de la ventana que se va a registrar para los mensajes de enlace de Shell.

Valor devuelto

Tipo: BOOL

TRUE si la función se realiza correctamente; de lo contrario, FALSE.

Comentarios

Al igual que con los mensajes de ventana normales, el segundo parámetro del procedimiento de ventana identifica el mensaje como un WM_SHELLHOOKMESSAGE. Sin embargo, para estos mensajes de enlace de Shell, el valor del mensaje no es una constante predefinida como otros identificadores de mensaje, como WM_COMMAND. El valor se debe obtener dinámicamente mediante una llamada a RegisterWindowMessage como se muestra aquí:

RegisterWindowMessage(TEXT("SHELLHOOK"));

Esto impide controlar estos mensajes mediante una instrucción switch tradicional que requiere valores de identificador que se conocen en tiempo de compilación. Para controlar los mensajes de enlace de Shell, la práctica normal es codificar una instrucción If en la sección predeterminada de la instrucción switch y, a continuación, controlar el mensaje si el valor del identificador del mensaje es el mismo que el valor obtenido de la llamada RegisterWindowMessage .

En la tabla siguiente se describen los valores de parámetro wParam y lParam pasados al procedimiento de ventana para los mensajes de enlace de Shell.

wParam lParam
HSHELL_GETMINRECT Puntero a una estructura SHELLHOOKINFO .
HSHELL_WINDOWACTIVATED Identificador de la ventana activada.
HSHELL_RUDEAPPACTIVATED Identificador de la ventana activada.
HSHELL_WINDOWREPLACING Identificador de la ventana que reemplaza la ventana de nivel superior.
HSHELL_WINDOWREPLACED Identificador de la ventana que se va a reemplazar.
HSHELL_WINDOWCREATED Identificador de la ventana que se va a crear.
HSHELL_WINDOWDESTROYED Identificador de la ventana de nivel superior que se está destruyendo.
HSHELL_ACTIVATESHELLWINDOW No se usa.
HSHELL_TASKMAN Se puede omitir.
HSHELL_REDRAW Identificador de la ventana que debe volver a dibujarse.
HSHELL_FLASH Identificador de la ventana que debe parpadear.
HSHELL_ENDTASK Identificador de la ventana que se debe forzar para salir.
HSHELL_APPCOMMAND APPCOMMAND que la aplicación u otros enlaces no ha controlado. Consulte WM_APPCOMMAND y use la macro GET_APPCOMMAND_LPARAM para recuperar este parámetro.
HSHELL_MONITORCHANGED Identificador de la ventana que se movió a otro monitor.
 

Esta función no se incluyó en los encabezados y bibliotecas del SDK hasta Windows XP con Service Pack 1 (SP1) y Windows Server 2003. Si no tiene un archivo de encabezado y una biblioteca de importación para esta función, puede llamar a la función mediante LoadLibrary y GetProcAddress.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

Conceptual

Anular el registro deShellHookWindow

Otros recursos

Referencia

SetWindowsHookEx

ShellProc

Uso de mensajes y colas de mensajes

WinEvents

WindowProc

Windows