A small, but crucial detail in the Win32 documentation:
(PeekMessage does not retrieve messages for windows that belong to other threads.)
Doh! That means you need to either perform full asynchronous event handling,
or periodically check the message queue in the main thread. As far as I can
tell, since this is true of GetMessage() as well, you can’t do event
interrupt callbacks on Win32 the way we discussed.
The only other alternative is to create the window in the event monitor
thread, and re-post all windows messages to the main thread. Slow, and
ugly, but possible.