Noeska, shouldn't you be checking the message events in the WndProc instead of in the message pump loop?

I don't think I understood the part about missing events. Do you mean special buttons?