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