Función MessageProc

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 . El sistema llama a esta función después de que se produzca un evento de entrada en un cuadro de diálogo, cuadro de mensaje, menú o barra de desplazamiento, pero antes de que se procese el mensaje generado por el evento de entrada. El procedimiento de enlace puede supervisar los mensajes de un cuadro de diálogo, un cuadro de mensaje, un menú o una barra de desplazamiento creadas por una aplicación determinada o todas las aplicaciones.

El tipo HOOKPROC define un puntero a esta función de devolución de llamada. MessageProc es un marcador de posición para el nombre de función definido por la aplicación o definido por la biblioteca.

LRESULT CALLBACK MessageProc(
  _In_ int    code,
       WPARAM wParam,
  _In_ LPARAM lParam
);

Parámetros

código [in]

Tipo: int

Tipo de evento de entrada que generó el mensaje.

Si el código es menor que cero, el procedimiento de enlace debe pasar el mensaje a la función CallNextHookEx sin procesamiento adicional y devolver el valor devuelto por CallNextHookEx.

Este parámetro puede ser uno de los valores siguientes.

Valor Significado
MSGF_DDEMGR 0x8001 El evento de entrada se produjo mientras la Biblioteca de administración dinámica de Exchange de datos (DDEML) estaba esperando a que finalice una transacción sincrónica. Para obtener más información sobre DDEML, vea Biblioteca de administración dinámica de Exchange de datos.
MSGF_DIALOGBOX 0 El evento de entrada se produjo en un cuadro de mensaje o en un cuadro de diálogo.
MSGF_MENU 2 El evento de entrada se produjo en un menú.
MSGF_SCROLLBAR 5 El evento de entrada se produjo en una barra de desplazamiento.

wParam

Tipo: WPARAM

Este parámetro no se utiliza.

lParam [in]

Tipo: LPARAM

Puntero a una estructura MSG .

Devoluciones

Tipo: LRESULT

Si el código es menor que cero, el procedimiento de enlace debe devolver el valor devuelto por CallNextHookEx.

Si el código es mayor o igual que cero y el procedimiento de enlace no procesó el mensaje, se recomienda encarecidamente llamar a CallNextHookEx y devolver el valor que devuelve; de lo contrario, otras aplicaciones que han instalado WH_MSGFILTER enlaces no recibirán notificaciones de enlace y pueden comportarse incorrectamente como resultado. Si el procedimiento de enlace procesó el mensaje, puede devolver un valor distinto de cero para evitar que el sistema pase el mensaje al resto de la cadena de enlace o al procedimiento de ventana de destino.

Comentarios

Una aplicación instala el procedimiento de enlace especificando el tipo de enlace WH_MSGFILTER y un puntero al procedimiento de enlace en una llamada a la función SetWindowsHookExA/SetWindowsHookExW .

Si una aplicación que usa DDEML y realiza transacciones sincrónicas debe procesar mensajes antes de que se envíen, debe usar el enlace WH_MSGFILTER .

Vea también

CallNextHookEx

SetWindowsHookEx

MSG

Enlaces