Gancho de mouse de baixo nível e DirectX

Estou criando um aplicativo que precisa filtrar alguns cliques do mouse em todo o sistema. Ou seja, preciso fazer com que o sistema ignore alguns cliques do botão do mouse em ocasiões especiais.

Eu uso gancho de mouse de baixo nível eSetWindowsHookEx para filtrar esses cliques. Funciona relativamente bem, exceto paraWPF formulários. Eu acho que é porque esses aplicativos usamDirectX eDirectInput para processamento de entrada, e é por isso que não consigo filtrar cliques nesses aplicativos, pois eles recebem a entrada diretamente do driver.

Existe alguma maneira de filtrar cliques emWPF/DirectX formulários?

Sei que geralmente não é uma boa ideia filtrar globalmente os cliques, mas é crucial para o meu aplicativo e assegurarei que ele não seja filtrado em jogos e outros programas. MasWPF aplicações têm ordinárioGUI, então eu preciso filtrar os cliques também.

Atualizar

Acho que poderia resolver esse problema escrevendo meu próprio driver de filtragem, mas como não tenho experiência em escrever drivers, informe-me se houver outra solução.

Recursos de conexão da API

Encontrei alguns links úteis sobre a conexão da API. Use isso como uma referência.

Hooking API do Windows
Gancho da API revelado
Hooking API revelado Parte 2
Sequestrar chamadas de saída de texto do bloco de notas
madCodeHook
Função de IAT

SOLUÇÃO FINAL

O WPF não usa o DirectInput, mas as mensagens Win32 padrão para manipulação de entrada (exceto a caneta, que é a fonte de todos os problemas para mim, porque eu uso a caneta para desenvolvimento e não sabia que os aplicativos WPF são compatíveis com a caneta). No entanto, para filtrar cliques em aplicativos que usam o DirectInput, seria necessário conectar a API, como explica a resposta aceita.

questionAnswers(1)

yourAnswerToTheQuestion