[COMCTL32] imagelist: Make the exported functions use the internal IImageList2 1211/head
authorGiannis Adamopoulos <gadamopoulos@reactos.org>
Mon, 31 Dec 2018 00:28:18 +0000 (02:28 +0200)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Wed, 12 Jun 2019 16:20:44 +0000 (19:20 +0300)
commitcc25a266f2717fc8fa7637c7569cfdcb7d027457
tree6fe60fdcb3d211efed7bc1e2412d35fc32a8a810
parent419fb423cef95351497a08af1caae0fe732cebba
[COMCTL32] imagelist: Make the exported functions use the internal IImageList2
- Add a hack to rename the exported functions and use the Internal_ prefix for them so that the IImageList can use them with minimal code changes.
- Add the correct implementation of the affected exported functions making them now use the IImageList of the passed HIMAGELIST.

This indirection is possible because an HIMAGELIST is also a IImageList*.
This indirection is also needed because we can end up using image lists created by either comctl32 v5 or comctl32 v6.
This is how windows manage to use an HIMAGELIST created by comctl32 v5 when it is passed to comctl32 v6.
What really happens in this scenario is that the exported functions of both versions end up using the interface
stored in the object without checking if this interface is the version provided in the same dll or in the other.
dll/win32/comctl32/imagelist.c