[SYSSETUP] Don't load ISOLATIONAWARE_MANIFEST_RESOURCE_ID manually
authorGiannis Adamopoulos <gadamopoulos@reactos.org>
Tue, 6 Feb 2018 23:15:49 +0000 (01:15 +0200)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Tue, 6 Feb 2018 23:15:49 +0000 (01:15 +0200)
commit218b8eda92bc84be24a61c055e567f95b5e5a16b
treeb5227a64a39f6dc0946d3fc580647228853ea1e6
parent579e1e6b24de8d3a25b928d1f59b6ab3b53ed01b
[SYSSETUP] Don't load ISOLATIONAWARE_MANIFEST_RESOURCE_ID manually
Such a manifest is meant to be activated by the caller of the exports of the dll.
This means that the user of syssetup which is setup.exe is the one that should do the proper handling of the manifests.
Since setup.exe is the one that needs to do the right thing, add a CREATEPROCESS_MANIFEST_RESOURCE_ID to it and avoid
dealing with ISOLATIONAWARE_MANIFEST_RESOURCE_ID altogether (which is supposed to be used by activating the activation context
before calling the exports of the dll that has it). We don't really use ISOLATIONAWARE_MANIFEST_RESOURCE_ID correctly in any
place in the tree so let's rely on CREATEPROCESS_MANIFEST_RESOURCE_ID for now.

This fixes one part of CORE-14228 where no image was shown in the theme selector buttons. This happened because comctl32 was
statically linked and calling ImageList_LoadImage ended up creating an image list with comctl32 v5. Then we passed this image
list to a button created with comctl32 v6 and as a result the image list was unusable. This is yet another issue that needs
to be addressed in the future. Namely, it seems that in windows comctl32 v6 can use image lists created by comctl32 v5 whereas
we cannot.

This fix is not a hack but cleverly works around these two bugs that need to be addressed some time in the future.
CORE-14228
base/setup/setup/setup.rc
dll/win32/syssetup/syssetup.rc
dll/win32/syssetup/wizard.c