I'm currently having problems with this situation:
Thread 1 owns some controls (modeless dialog box, actually)
Thread 2 owns a window that covers the dialog (let's say it's like a "skin" or something...)
The window procedure for thread 2's window return HTTRANSPARENT in its WM_NCHITTEST handler, so in theory mouse messages should get passed down to thread 1's controls. Now, what happens is this...
[snip]
Any ideas on how to solve this, or whether it's supposed to work at all? I think I could fix some games if this worked... otherwise I'll have to think of some other way...
From MSDN:
< HTTRANSPARENT < In a window currently covered by another window in the same thread < (the message will be sent to underlying windows in the same thread < until one of them returns a code that is not HTTRANSPARENT).
Note "window in the same thread". So it seems that you (Wine) shouldn't pass down mouse messages to thread 1 in your example.