Owen Rudge wrote:
This layout is not officially published anywhere, however (nor is the new one), so I presume it will be acceptable to modify it to fit the vtable and reference count, etc, in?
Personally I don't see another way to do so.
It might conceivably cause problems for any pre-comctl32-v6 app that tries to poke around the internals (not that they should be anyway),
Exactly.
but I can't see any way around that other than having full WinSXS support implemented and having two separate versions of comctl32, as in Windows itself.
Agreed. This is actually what stopped me when I tried to implement this interface in my local tree. Our current HIMAGELIST layout already is a result of debugging - offsets are about to match. The ideal way is to match SxS system here and add aV6 target (btw, listview has some minor visual difference in v6 comparing to <=5 caused by different padding).
Hmm, to clarify this, I think I've managed to answer my own question, in that I gather I should just make the changes to HIMAGELIST to incorporate the vtable, etc, into it, abolishing ImageListImpl. I also understand now that I shouldn't have written that little test program, as I did somewhat naïvely, to verify whether the internal structure on Windows matched that in the Wine header, as it could be construed as disassembly. This is a mistake I won't be making again.
Don't know if getting such dumps is allowed or not. But we got current layout some way...
I'll make the appropriate changes tomorrow and re-submit if there are no other issues that need dealing with.
Cheers,