Naja, das ist halt genau auch des Pudels Kern:
DirectX ist ein Overlay
über dem, was die
WinAPI so zeichnet, und folglich auch über einem Layered Window.* Aus der normalen
WinAPI heraus kommt du da auch nicht zwischen/vor/zuvor, da beißt die Maus keinen Faden ab. Leider. Man muss zwangsweise an den Backbuffer des dem Fenster zugewiesenen D3D Devices ran, und idealerweise auch die Bufferflips mitbekommen (-> Hooken). Eine D3D-Anwendung, die nicht explizit eine Schnittstelle für solche Aktionen bietet, ist meines Wissens nach nicht anders beizukommen. (Hatte vor 2-3 Jahren eine sehr ähnliche Such-Odyssee.)
*) Technisch ist es sogar so, dass DX-Buffer erst "ganz hinten" in der Verarbeitung der Grafikkarte, knapp vor Ausgabe ans Bildschirmkabel sozusagen, die entsprechenden Bereiche des "normalen" Framebuffers übernageln. Aus Sicht von Windows sind solche Fenster i.A. einfach schwarz (mit Ausnahme von Aero).
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)