Just saw this on Softpedia which discusses changes introduced in the Windows 7 Logo documentation. Specifically focusing on improving the compatibility of devices and applications for future versions of Windows.
“The Windows logo program for software products has advanced to the next level as Microsoft is cooking Windows 7. In order to help software developers tailor their software to the next version of Windows, Microsoft has published the Windows 7 Client Software Logo Program Documentation, which is available for download. The resources are designed to illustrate the technical requirements for Windows 7 Client Software Logo Program, but at the same time, in the documentation, Microsoft looks beyond Windows Vista’s successor to Windows 8.”
A particularly important part of the documentation discusses hard code checks which is probably a downfall for numerous applications that were designed to run on Windows XP but failed when installation was attempted on Windows Vista:
Do not block installation or application launch based on OS version check
It is important that customers are not artificially blocked from installing or running their applications when there are no technical limitations. In general, if applications were written for Windows Vista or later releases, they should have no reason to check the OS version
Applications must not perform version checks for equality (== 5.1). If you need a specific feature, check whether the feature itself is available. If you need Windows XP, check for Windows XP or later (>= 5.1), This way, your detection code will continue to work on future versions of Windows. Driver installers and uninstall modules should never check the OS version.
Waivers will be considered for applications meeting the criteria below:
- Applications that are delivered as one package that runs on Windows XP, Windows Vista, and Windows 7, and need to check the OS version to determine which components to install on a given operating system
- Applications that check only the minimum version of the OS (during install only, not at runtime) by using only the approved API calls, and that properly list the minimum version requirement in the application manifest
- Security applications (antivirus, firewall, etc.), system utilities (for example, defrag, backups, and diagnostics tools) that check.