2009/3/18 Vincent Povirk <madewokherd+8cd9(a)gmail.com>:
> On Wed, Mar 18, 2009 at 9:39 AM, Nicolas Le Cam <niko.lecam(a)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