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? It might conceivably cause problems for any pre-comctl32-v6 app that tries to poke around the internals (not that they should be anyway), 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.
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.
I'll make the appropriate changes tomorrow and re-submit if there are no other issues that need dealing with.
Cheers,