Tuesday, September 25, 2007

iTunes, QuickTime, and Windows 2000

Three cheers for progress.

Apple no longer supports Windows 2000 for QuickTime and iTunes, and one can surmise future software will be the same. Naturally, my work laptop runs Windows 2000 thereby excluding me from the updated Apple software.

Or does it?

Orca is a Microsoft tool for manipulating .MSI installer files. Using it to change the version checking of the MSI files, QuickTime and iTunes can be installed on Windows 2000.

Unfortunately, it doesn't quite work. QuickTime will install and, after making sure gdiplus.dll is installed, plays sample.mov. iTunes is not so lucky. Starting it results in the following dialog box:

iTunes.exe - Entry Point Not Found

The procedure entry point HeapSetInformation could not be located in the dynamic link library KERNEL32.dll.

HeapSetInformation is a function available in Windows XP and Vista but not 2000. iTunes uses it to enable a low-fragmentation heap. It's probably unnecessary, but it does prevent prevent iTunes from running.

It may be possible to bypass the function call and allow iTunes to run, but trivial modification of the iTunes executable doesn't work. iTunes does some hashing of itself for consistency purposes and stops running when it detects modification. This check would also need to be bypassed, so it may not be worthwhile.

To avoid downloading a whole SDK, grab Orca from here.

AppDeploy has good information on modifying MSI files.

No comments: