user32: Implement BroadcastSystemMessage, try 5.1
m.b.lankhorst at gmail.com
Sun Mar 30 15:53:42 CDT 2008
2008/3/24, Alexandre Julliard <julliard at winehq.org>:
> "Maarten Lankhorst" <m.b.lankhorst at gmail.com> writes:
> > + TRACE("Flags: %08x, recipients: %p(0x%x), msg: %04x, wparam: %08lx, lparam: %08lx\n", flags, recipients,
> > + (recipients ? *recipients : recips), msg, wp, lp);
> > +
> > + if (flags > BSF_LUID)
> It doesn't make sense to compare flags with >. What are you trying to
> check for?
> > -}
> > + else
> > + FIXME("Recipients %08x not supported!\n", *recipients);
> > +
> > + if (ret > 0 && !GetLastError())
> > + SetLastError(lasterror);
> In general if you have to save and restore last error you are doing
> something wrong.
Or wine is doing something wrong. After some more digging I found that
SetLastError() was set to 0 by TlsGetValue when called from X11DRV's
MsgWaitForMultipleObjectsEx. After I tried fixing this so that
SetLastError is only set when NULL is returned, one of the other tests
miraculously started working inside a todo block too (cursoricon).
I'll work on some testcases to verify that tlsgetvalue only calls
SetLastError(0) when succesfully returning null.
More information about the wine-devel