You can't do that. HIMAGELIST should be the same thing as IImageList.
Hmm. Looking at the HIMAGELIST/IImageList internals in a debugger on Windows, the layout appears to be entirely different to the HIMAGELIST layout defined in dlls/comctl32/imagelist.h (as you'd expect -the vtable, etc, needs accommodating). Judging by the comments in imagelist.h, the layout of the structure was designed to imitate the Windows layout (or an earlier version thereof).
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.
Cheers,