http://bugs.winehq.org/show_bug.cgi?id=33235
--- Comment #11 from Dmitry Timoshkov dmitry@baikal.ru 2013-03-19 05:31:08 CDT --- (In reply to comment #9)
PeekMessage does wait.
From what I see in code it does not. It calls a waiting handler with zero timeout which basically means return immediately if queue is empty, later on handler calls to driver message waiter which returns on zero timeout if there's nothing in queue. Application behavior proves that.
If you mean that PeekMessage doesn't yield cpu and therefore it shouldn't be used to write message loops, then this is not correct. Message loops that use PeekMessage are equivalent in behaviour to the ones that use GetMessage.