Gancho de mouse de bajo nivel y DirectX

Estoy creando una aplicación que necesita filtrar algunos clics del mouse en todo el sistema. Es decir, necesito hacer que el sistema ignore algunos clics del botón del mouse en ocasiones especiales.

Yo uso gancho de ratón de bajo nivel ySetWindowsHookEx para filtrar estos clics. Funciona relativamente bien, excepto porWPF aplicaciones. Supongo que es porque estas aplicaciones usanDirectX yDirectInput para el procesamiento de entrada, y es por eso que no puedo filtrar los clics en estas aplicaciones, ya que obtienen la entrada directamente del controlador.

¿Hay alguna forma de filtrar clics enWPF/DirectX aplicaciones?

Sé que, en general, no es una buena idea filtrar clics a nivel mundial, pero es crucial para mi aplicación, y me aseguraré de que no se filtre en los juegos y otros programas. PeroWPF las aplicaciones tienen ordinariaGUI, así que también necesito filtrar los clics en ellos.

Actualizar

Supongo que podría resolver este problema escribiendo mi propio controlador de filtrado, pero como no tengo experiencia en escribir controladores, avíseme si hay alguna otra solución.

Recursos de conexión de API

He encontrado algunos enlaces útiles sobre el enganche API. Use esto como referencia.

Enganchar la API de Windows
Enganche API revelado
Enganche API revelado Parte 2
Secuestro de llamadas de texto desde el Bloc de notas
madCodeHook
IAT Función de enganche

SOLUCIÓN FINAL

WPF no usa DirectInput, sino mensajes estándar Win32 para el manejo de entradas (excepto Stylus, que es la fuente de todos los problemas para mí, porque uso Stylus para el desarrollo y no sabía que las aplicaciones WPF son compatibles con Stylus). Sin embargo, para filtrar clics en aplicaciones que usan DirectInput, uno tendría que conectar la API, como explica la respuesta aceptada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta