Función GetMsgProc
Una 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 cada vez que la función GetMessage o PeekMessageA/PeekMessageW ha recuperado un mensaje de una cola de mensajes de la aplicación. Antes de devolver el mensaje recuperado al autor de la llamada, el sistema pasa el mensaje al procedimiento de enlace.
El tipo HOOKPROC define un puntero a esta función de devolución de llamada. GetMsgProc es un marcador de posición para el nombre de función definido por la aplicación o por la biblioteca.
LRESULT CALLBACK GetMsgProc(
_In_ int code,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Tipo: int
Especifica si el procedimiento de enlace debe procesar el mensaje. Si code es HC_ACTION, el procedimiento de enlace debe procesar el mensaje. Si code es menor que cero, el procedimiento de enlace debe pasar el mensaje a la función CallNextHookEx sin procesarlo y debe devolver el valor devuelto por CallNextHookEx.
Tipo: WPARAM
Especifica si el mensaje se ha quitado de la cola. Este parámetro puede ser uno de los valores siguientes.
Valor | Significado |
---|---|
PM_NOREMOVE 0x0000 | El mensaje no se ha quitado de la cola. (Una aplicación ha llamado a la función PeekMessage especificando la marca PM_NOREMOVE). |
PM_REMOVE 0x0001 | El mensaje se ha quitado de la cola. (Una aplicación ha llamado a la función GetMessage o a PeekMessage especificando la marca PM_REMOVE). |
Tipo: LPARAM
Un puntero a una estructura MSG que contiene detalles sobre el mensaje.
Si code es menor que cero, el procedimiento de enlace debe devolver el valor devuelto por CallNextHookEx.
Si code es mayor o igual que cero, se recomienda encarecidamente llamar a CallNextHookEx y devolver el valor que devuelve; de lo contrario, otras aplicaciones con enlaces WH_GETMESSAGE instalados no recibirán notificaciones de enlace y podrían comportarse incorrectamente como resultado. Si el procedimiento de enlace no llama a CallNextHookEx, el valor devuelto debe ser cero.
El procedimiento de enlace GetMsgProc puede examinar o modificar el mensaje.
Después de que el procedimiento de enlace devuelve el control al sistema, la función GetMessage o PeekMessageA/PeekMessageW devuelve el mensaje, junto con las modificaciones, a la aplicación que originalmente la llamó.
Una aplicación instala este procedimiento de enlace especificando el tipo de enlace WH_GETMESSAGE y un puntero al procedimiento de enlace en una llamada a la función SetWindowsHookExA/SetWindowsHookExW.