MsgWaitForMultipleObjectsEx, indeed core function

Formerly I wrote message loop code like

	if (GetMessage (&msg, NULL, 0, 0, PM_REMOVE))
		TranslateMessage (&msg);
		DispatchMessage (&msg);

If no message occured, I couldn't do anything else. It's the reason why I couldn't wrote a cross-platform UI framework which needed to realize IOC abstraction.

In the GStreamer and GLib source code, I learnt from its G_WIN32_MSG_HANDLE processing logic, there is a critical api, MsgWaitForMultipleObjectsEx, which can bundle message and all other types of events together for polling, we needn't repetitively call PeekMessage to query if a message happens, it's ridiculous.

I guess the Qt framework really knows this trick while the Awtk doesn't.