C#のプログラム上から特定のウィンドウハンドルを取得して、
そのウィンドウがマウス等の操作によってOSから受信したメッセージを
プログラム上で確認したいのですが可能でしょうか。

具体的にはspy++を用いて確認できるメッセージを
プログラム上から取得したいのです。

イメージとしては下記のようなメッセージ情報を取得できることを期待しています。

P WM_MOUSEMOVE fwKeys:0000 xPos:504 yPos:414
P WM_MOUSEMOVE fwKeys:0000 xPos:505 yPos:414
P WM_MOUSEMOVE fwKeys:0000 xPos:508 yPos:414

よろしくお願いします。