user32 - set_active_window uses SendMessage instead ofPostMessage for WM_ACTIVATEAPP messages.

Peter Dons Tychsen donpedro at tdcadsl.dk
Sun Aug 5 18:26:16 CDT 2007


On Sun, 2007-08-05 at 23:23 +0200, Alexandre Julliard wrote:
> Peter Dons Tychsen <donpedro at tdcadsl.dk> writes:
> 
> > This piece of code, if inserted into the test system, could (on original
> > Windows) show us which messages we are incorrectly posting or sending. I
> > can probably also be used for other test purposes. I works by checking
> > the call stack for the calls SendMessageA() and SendMessageW(). Works
> > like charm on Windows-XP. Will need some work to also work inside Wine,
> > but that is not important for now.
> 

> This is silly. It can't possibly work right since there is no reason
> that messages are sent using the exported functions, it won't work on
> anything not compiled with frame pointer, and there's absolutely no
> need for anything like that at all.
Hello again,

For the tests i am running there is always a frame pointer.
You might be right that there are other (better) ways to solve this
problem, but is still think this little function could come in handy
when black-box testing original DLLs. You are of course right about the
point of the exported functions. It slipped my mind... I am not sure the
word "silly" applies however... :-).

> A posted message doesn't call the
> window proc directly, it goes through the message queue, so it's
> completely trivial to check for it between GetMessage and
> DispatchMessage.
In this case we would need to use PeekMessage(), but yes, you are right.
I scrapped this solution to begin with as it required too much many
changes in the test suite (and probably also because i liked the more
complicated version - should have stuck with the simple one :-))

I always try to follow the "keep it simple" rule-sets, but it is not
always i succeed in doing it... :-(.

I will go back and redo the tests with this approach, now that you have
torpedoed my idea, which i probably deserved.

Thanks,

/Pedro




More information about the wine-devel mailing list