Steps to reproduce the issue:
- Replace appwiz.cpl and duser.dll onto versions from XP/2003.
- Register appwiz.cpl via regsvr32 /i appwiz.cpl executed from Run dialog or Command Promt.
- Now try to launch Add/remove programs from Control Panel or just directly from system32 directory.
It will not start in both cases.
When try to launch from Control Panel, visually will happen nothing, but if to use the cheked versions of appwiz.cpl and duser.dll, in the log appears some spam like this:
For some reason happens an assert from duser, and due to this, it fails to load properly.
But it happens definitely not due to dbghelp or ole32, because with XP/2K3 versions of them, nothing is changed.
See appwiz-do-window.log for details.
When try to launch it from system32 by double-clicking instead, without Control Panel, appears the following crash:
The most suspicious line is from shell32, and translating that address via raddr2line points to the following line: https://git.reactos.org/?p=reactos.git;a=blob;f=dll/win32/shell32/wine/control.c;h=9e8852c3a252bfa28a0d1e6a94afcf097e14c0ba;hb=HEAD#l854
See appwiz-do-launch.log for details.
However, this cpl starts successfully when using our shell32.dll in Windows 2003 (after implementing SHGetShellStyleHInstance function, I will submit a PR ), at least when launching it from Control Panel. But it similarly fails when try to launch it from system32. So the crash in the 2nd case is indeed caused by our shell32, but the problem when it does not start even from Control Panel (in ReactOS), comes from something another. I don't know from where.
I managed to reproduce this problem also in Wine Staging 5.19 by the way.
As visible, my changes still don't fix the actual issue, although they much more improve the situation. Perhaps after fixing another preventing bug(s), this applet also may work in ReactOS.