Hmm, looking at this my patch changes
ok(*(ULONG_PTR*)g_drawitem.itemData == lparam,
"got %lx, expected %lx\n", gdrawitem.itemData, lparam);
to
ok(*(ULONG_PTR*)g_drawitem.itemData == (ULONG)lparam,
"got %lx, expected %lx\n", g_drawitem.itemData, lparam);
That is, the only difference is the (ULONG) cast. Given the output above,
my patch did not trigger this failure since based on the printing of the
two values they are different.
Actually, now with your change you are comparing ULONG_PTR to ULONG.
With 64 bit binary the left side of comparison is a 64 bit pointer and right
side is 32 bit value.
Best Regards,
Janne Hakonen