2009/3/18 Vincent Povirk <madewokherd+8...@gmail.com>: > On Wed, Mar 18, 2009 at 9:39 AM, Nicolas Le Cam <niko.le...@gmail.com> wrote: >> I don't think calling SHAppBarMessage with ABM_REMOVE destroy the >> window and the ABN_POSCHANGED notification is catched between this >> call and the DestroyWindow one. But this particular behaviour only >> happens on Win2k and perhaps previous windows versions (should be >> tested) not on XP and later ones, that's why I wanted to keep your >> approach and mark this particular behaviour as broken (even if I >> didn't use the right approach as noticed by Paul) to force wine to >> behave like recent windows versions > > Wine DOES send a notification to all other appbars when one appbar is > removed. However, Wine's SHAppBarMessage will never processes messages > in the queue, nor will DestroyWindow. > > I really think you're getting the notification from destroying > appbar2, and you just happen to be getting it late. Windows' > implementation does have a tendency to send us late messages. > > The failure does not indicate that Wine is behaving more like winxp > than win2k. It doesn't tell us anything helpful at all, as the details > are something no real app should ever rely on. Nor is it a broken way > to implement this API. > > I think this case should pass even on Wine. > > Vincent Povirk > Message notification comes from appbar3, I've checked hwnd handles. When calling last ABM_REMOVE there's no more appbars so Wine shouldn't send any notifications, if it does the broken macro (that will come with try2) will catch that.
-- Nicolas Le Cam