To determine whether programs would use the new library was accomplished through a new PE Resource type called a Manifest. This Manifest Resource - in its original form - contained a list of DLL's and other resources that would be used with the executable. This allowed easier control over dependencies by specifying which versions of a DLL would be used with the program - specifically which Shell Common Controls library. So, newer programs, which included a specific Manifest Resource, would use the uxctrl.dll; and older ones, which did not have a Manifest Resource, would continue to use comctl32.dll.
This created the concept of Side-by-side Assemblies - a new feature in Windows XP - where multiple versions of a DLL could be installed on a machine, and depending on the Manifest Resource within the binary only a specific version of that DLL would be used by the program. For several reasons Microsoft has shifted away from supporting side-by-side assemblies - at least in C/C++ runtime libraries - in favor of including the version of the appended to the file name.[2]
XP Styles
- Microsoft Download - Windows 2000/XP User Interface Guidelines
- The Old New Thing - The history of the Windows XP common controls
- MSDN Library - Using Windows XP Visual Styles With Controls on Windows Forms
- MSDN Library - Side-by-side Assemblies
- MSDN Library - Dynamic-Link Library Search Order
- Wikipedia - Side-by-side Assembly
- MSDN Library - Using Side-by-Side Assemblies as a Resource
- MSDN Library - Enabling an Assembly in an Application Hosting a DLL, Extension, or Control Panel
- MSDN Library - Enabling an Assembly in an Application Without Extensions
- MSDN Library - Per-application Configuration on Windows Server 2003
- MSDN Library - Per-application Configuration on Windows XP
- MSDN Library - Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies
- MSDN Library - Concepts of Isolated Applications and Side-by-side Assemblies
- Microsoft Support - A new CWDIllegalInDllSearch registry entry is available to control the DLL search path algorithm
- Microsoft Support - Some third-party applications that use external manifest files stop working after you install Windows server 2003 Service Pack 1
- MSDN Library - Dynamic-Link Library Redirection
- Nothing ventured, nothing gained - DLLs and resource ID 2 manifests
No comments:
Post a Comment