Completando un poco mas.. un windows hook se define tambien como un punto en el mecanismo de manejo de mensajes donde una aplicación puede instalar una subrutina para monitorear el tráfico en el sistema y tratar ciertos tipos de mensajes antes de que ellos alcancen el objetivo.
Es por eso que se basaba en la API de WIN32 aunque en .Net podrías apoyarte del namespace Microsoft.Win32 y hacer pruebas por ejemplo con el MouseHook

.
Bueno, esa sería una idea general, espero que te sirva de algo.
Salu2