That's the thing, there's a blockage somewhere and you don't know in anyway I interpret it. I'm not sure whether it's just a fundemental misunderstanding or I'm not explaining things clearly but whatever. It takes about 5 minutes to attach to notepad and seen for yourself that it does exactly the same as the app above. PostMessage and PostThreadMessage are one and the same except one fills in the HWND member of the message struct retrieved by Get\PeekMessage, one doesn't. That's the entirety of the difference as to why one will "type" in notepad while the other doesn't. There's a mapping between HWNDs and WndProcs, not between threads and WndProcs.
Of course not since both queues and windows belong to threads. A thread creates a window, a thread pumps messages for that window; that's how it is and knowing MS that's how it will always be. Notepad has one thread and creates 3 windows -> the single thread pumps messages for all 3 windows. If you really wanted to you could spawn a thread to create an edit control for the app above, if that thread doesn't go into its own message loop the edit window will do nothing, the Get/PeekMessage docs spell this out.In a child window, there isn't necesarily a message queue.
The above paragraph contains the rules for everybody, it's not one rule for them and one for us. Again, 5 minutes in a disassembler and debugger shows you haven't quite got the concept right in some shape or form.I'm basing my stuff on remote apps such as Notepad, MSWord etc.
Oh the irony here is delicious, I welcome attempts to show me where I've gone wrong but that's just laughable.Case in point CloakDll which is a worthless piece of excrement.
EDIT. There are actually 5 windows opened when notepad starts.