This version of program manager was extracted from a pre-SP1 copy of Windows XP. From Service Pack 2 onwards, it was replaced with a stubbed out copy that does nothing, and from Vista onwards it can no longer be launched without using DLL overrides.
|Latest Wine Version Tested:||6.0|
Maintainers: About Maintainership
No maintainers. Volunteer today!
The application opens. Program groups can be created, and any program groups that exist are correctly loaded on startup. If data for a program group exists in the registry and contains icons, those icons are correctly displayed. If the help files exist, it clicking on the help menu does attempt loading help files. If a program group containing icons exists, the program icons can be deleted successfully. Empty program groups can be deleted successfully.
What does not
Attempting to move an existing program icon between program groups or within the same program group crashes program manager.
Attempting to create, edit, or launch a program icon causes a crash due to an unimplemented function. Specifically,
Unhandled exception: unimplemented function shell32.dll.SheRemoveQuotesW called in 32-bit code (0x7b00fc33).
Technically this behavior is consistent with what can be observed from Windows Vista and newer: attempting to launch complains about SheRemoveQuotesW being absent from shell32.dll. However, it is inconsistent with earlier versions of Windows (NT 3.5, 4, 2K, XP), as this seems to be one of the few cases where Microsoft actually broke backwards compatibility.
By manually supplying an earlier version of shell32.dll from a compatible version of Windows and using using winecfg to load this native DLL, the application can once again become somewhat functional. Using the file picker to choose a program path fails, but if you manually type in the program path when creating program items, the created program icon will be fully functional. A workaround exists that requires manually hex editing the program exectuable. That said, this behavior can actually be observed using on Windows 10, (redirects > broken file picker, hex edit > working file picker), so in this case wine is actually bug compatible with windows.
At offsets 000002CC and 0001302C of progman.exe, Program Manager directly calls shell32.dll. In both Windows 10 and in Wine 6.0, if you use dllredirects to load an earlier copy of shell32.dll, Program Manager will run, but you will be unable to use the file picker to create new program items. For some reason, if you use a hex editor to instead change these two calls to point to a differently-named but otherwise identical copy of shell32.dll (eg: shell33.dll), program manager will load and run correctly, and the file picker can once again be used to create program icons. This potentially two byte change to the file immediately improves program manager from "garbage" to "gold". But telling people to just hex edit their programs and also you have to get a copy of the NT 3.5 version of shell32.dll isn't exactly the ideal way to run a program.
What was not tested
Auto-Arrange Icons. As any attempt at moving icons immediately crashes program manager, it is not possible to test if they are automatically arranged.
Even though the version of program manager tested came from Windows XP, the version of shell32.dll required to make it run came from NT 3.5. I suspect the NT4 version of the DLL might also work. Ideally, a DLL override would not be necessary, but I don't suspect there is much demand for an OS shell from 25+ years ago that can't even process 64-bit programs
|Operating system||Test date||Wine version||Installs?||Runs?||Used|
|Current||Debian GNU/Linux 10.x "Buster" x86_64||Jan 25 2021||6.0||N/A||Yes||Yes||Garbage||Philip|