Nikolay Sivov (@nsivov) commented about dlls/comctl32/listview.c:
GetClientRect(infoPtr->hwndSelf, &rcClient); customdraw_fill(&nmlvcd, infoPtr, hdc, &rcClient, 0);
- /* v5 sets the initial background mix mode to TRANSPARENT while v6 uses OPAQUE. */
- SetBkMode(hdc, TRANSPARENT); cdmode = notify_customdraw(infoPtr, CDDS_PREPAINT, &nmlvcd); if (cdmode & CDRF_SKIPDEFAULT) goto enddraw;
I don't think we can do that unconditionally, a lot of application were never tested with v5 and very likely depend on such differences. I know that we don't run some of the painting tests on v6 at the moment. Splitting them up and having a separate test for background mode that runs on v5 and v6 is what we should do.
We might do a separate v6 build in theory, but I suspect that will be avoided for as long as possible. It should be enough to check for windows class in current context in WM_NCCREATE (and maybe for actual class name too if it's possible to use versioned name directly, I don't remember).