Использование манифестов темы
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Если добавить манифест темы в драйвер печати для Windows XP, вы можете убедиться, что элементы пользовательского интерфейса в драйвере соответствуют визуальному стилю Windows XP.
Визуальный стиль в Windows XP является результатом изменений в общих элементах управления оболочки (Comctl32.dll версии 6.0). Эта версия почти полностью совместима с версией 5.0. Однако некоторые проблемы могут возникнуть с драйверами, написанными для версии 5.0 при запуске в версии 6.0. Чтобы избежать таких проблем, система печати не заставляет драйверы использовать Comctl32.dll версии 6.0. Пример манифеста темы см. в разделе \src\print\oemdll\ThemeUI\ThemeUI.Manifest в WDK.
Если вы добавите манифест темы в драйвер, указывающий зависимость от версии 6 Comctl32.dll, она будет работать правильно в Windows XP и более поздних версиях операционной системы, а также в Windows 2000. Windows 2000 игнорирует манифест; поэтому любое использование контекста активации завершается сбоем. Обратите внимание, что поскольку Comctl32.dll версии 5.0 не содержится в глобальном кэше сборок (GAC), манифест, указывающий зависимость от этой версии библиотеки DLL, разбивает компонент. В этом случае вызов API LoadLibrary Win32 завершается ошибкой при попытке загрузить Comctl32.dll.
Приложение может иметь глобальный манифест (или приложение). Если этот глобальный манифест содержит перенаправление для использования Comctl32.dll версии 6.0, это заставляет все пользовательский интерфейс, создаваемый приложением, использовать ту же тему. Одним из результатов этого является то, что драйверы принтера, запущенные из приложения с глобальным манифестом, могут быть вынуждены использовать Comctl32.dll версии 6.0 независимо от любого Comctl32.dll перенаправления в манифесте драйвера.
Дополнительные сведения о манифестах и сборках, контекстах активации, изолированных приложениях и совместном использовании сборок см. в документации по пакету SDK для Microsoft Windows.