Il sistema utilizza due metodi per instradare i messaggi a una routine di finestra: invio dei messaggi a una coda di first-in First-out chiamato una coda di messaggi, un oggetto definiti dal sistema di memoria che archivia temporaneamente i messaggi e l'invio di messaggi direttamente a una routine della finestra.
Messaggi inviati a una coda di messaggi sono chiamati in coda messaggi. Essi sono principalmente il risultato di input dell'utente inseriti tramite il mouse o la tastiera, ad esempio WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_KEYDOWNe WM_CHAR messaggi. Altri messaggi accodati includono il timer, dipingere e smettere di messaggi: WM_TIMER, WM_PAINTe WM_QUIT. La maggior parte dei altri messaggi che vengono inviati direttamente a una routine della finestra, vengono chiamati i messaggi nonqueued.