is wrong because it changes offsets... but it also breaks those comments. (Can you put the vtable at the end?)
In comctl32 v6, IImageList and HIMAGELIST are the same thing. See, for instance, http://msdn.microsoft.com/en-us/library/bb762185%28VS.85%29.aspx:
"The IImageList pointer type, such as that returned in the ppv parameter, can be cast as an HIMAGELIST as needed; for example, for use in a list view. Conversely, an HIMAGELIST can be cast as a pointer to an IImageList."
Obviously, the IImageList requires the vtable to be placed at the first offset.
If any applications do rely on the (undocumented) imagelist structure, then these patches will indeed break them. Nikolay's solution would be a possibility, although it would complicate the code a bit. I would probably prefer to wait and see if we get reports of anything actually breaking, but I realise others may disagree there.
Cheers,