static public void MessagePump() { Msg msg; // pump those events! while ( !( PeekMessage( out msg, IntPtr.Zero, 0, 0, PM_REMOVE ) == 0 ) ) { TranslateMessage( ref msg ); DispatchMessage( ref msg ); } }