Hello Alexandre,
2008/3/24, Alexandre Julliard julliard@winehq.org:
"Maarten Lankhorst" m.b.lankhorst@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.
Cheers, Maarten.