Antes q nada te digo que no estoy 100% seguro de lo q voy a decir:
Toda aplicacion de WINDOWS es vista como un proceso y segun tengo entendido vos no podes tocar las cosas q maneja el sistema operativo, o sea, los mensajes q manda WINDOWS a distintas ventanas (una ventana no tiene por que ser algo visible, mas bien una ventana es una entidad identificada por ciertos parametros capaz de recibir, procesar y devolver mensajes) son encoladas en la cola de mensajes de cada ventana y vos solo podes acceder a esa cola con el GetMessage(&Msg, NULL, 0,0) //null indica q voy a "getear" todos los mensajes, tambien existe el PeekMessage(......) . Luego haces un TranslateMessage(...) y luego un DispatchMessage(.......) el cual indica a que funcion procesadora de mensajes enviar el mensaje retirado de la cola. Esta funcion procesadora esta precedida por la palabra reservada de WINDOWS "CALLBACK" q le indica al precompilador que cuando saque de la pila y ponga en la pila los argumentos lo haga en el orden en el q llegaron.
Bueno a lo q queria apuntar es a que no podes llegar a tocar algo del sistema operativo por cuestiones de seguridad
Pido disculpas de antemano en caso de estar equivocado pero eso es lo q tengo entendido
Salu2!!!!!