http://bugs.winehq.org/show_bug.cgi?id=6716
--- Comment #28 from Petr Dlouhý petr.dlouhy@email.cz 2012-02-24 07:24:08 CST --- Seems like I have found the bug. As I can tell, the problem is following:
IDOS has broken WindowProc handler for custom drawing - it returns 48 insted of CDRF_NOTIFYITEMDRAW code when the handler is called with CDDS_PREPAINT code. According to MSDN, ListView should send NM_CUSTOMDRAW notifications _only_ if dwDrawStage equals CDDS_PREPAINT:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb775489(v=vs.85).as...
The problem is, that wine treats cditemmode parameters as flags and compares it with "&", and not with "==".
I am attaching patch, which solves this. It also contains test for this which runs on WinXP, Wine with native comctl32 library, Wine with this patch but not on pure Wine 1.4-rc2.
Please, could someone double check my patch before I post it to by applied?