スレ違いかもしれませんが、ここで質問させてください。

非DirectXアプリケーションでマウスをグローバルフックして特定のマウスイベントを監視する
プログラムを作っています。
マウスが通常のウインドウ上にある場合は問題ないのですがDirectXを使ったウインドウ上にある
場合、フックはされるのですがマウス座量がボロボロの値(マイナス値とかありえない値)
になってしまいます。
フック方法は SetWindowsHookEx() API の WH_MOUSE_LL を使ったやり方で、DirectXは使っていません。

やりたいことは、マウスの正確な動きをログに取っておきたいのです。
マウスイベントは参照しているだけで、内容を変えるとか無効にするというような加工はしません。

そこで質問なのですが
1)別プロセスからDirectXアプリケーションウインドウのマウスイベントを得るには、特別な
  方法があるのでしょうか? それとも、そもそも無理なのでしょうか?
2)無理な場合、マウスがあるウインドウがDirectXのウインドウなのかどうかを調べる方法は
  あるでしょうか?

OSと開発環境はこんな感じです。どうかよろしくお願いします。

WindowsXP Home Edition SP2
DirectX 9.0c

VisualStudio .NET 2002