Замена страниц листа свойств, предоставленных драйвером
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Com-интерфейс IPrintCoreUI2 предоставляет четыре метода, которые подключаемый модуль пользовательского интерфейса Pscript5, работающий в Windows XP и более поздних версиях операционной системы Windows, должен использоваться, когда он намерен полностью заменить стандартные страницы пользовательского интерфейса драйвера драйвера. (Основной драйвер термина относится к драйверу принтера Unidrv или Pscript5.) Эти методы приведены следующим образом:
IPrintCoreUI2::EnumConstrainedOptions
Эти методы поддерживаются только во время выполнения методов модуля пользовательского интерфейса IPrintOemUI::D ocumentPropertySheets и IPrintOemUI::D evicePropertySheets и их подпрограмм обратного вызова листа свойств. Подключаемый модуль пользовательского интерфейса поддерживает эти методы для отображения собственного пользовательского интерфейса. Если они не поддерживаются, эти методы возвращают E_NOTIMPL.
Основной драйвер отображает собственный пользовательский интерфейс листа свойств в двух обстоятельствах— для DrvDocumentPropertySheets и для DrvDevicePropertySheets. Первый метод отображает свойства, которые применяются только к документам (свойства с закреплением документа), а второй метод отображает свойства, применяемые к устройству (свойства устройства или принтера).
Основной драйвер запоминает тип листа свойств, который он обрабатывает (и, следовательно, режим -- document-sticky или принтер-липкий). Основной драйвер сохраняет сведения о состоянии в структуре ( структура OEMUIOBJ ), которая создается для экземпляра пользовательского интерфейса. Когда основной драйвер вызывает методы интерфейса подключаемого модуля, Он передает указатель на структуру OEMUIOBJ, чтобы при обратном вызове подключаемого модуля к основному драйверу из IPrintCoreUI2::EnumConstrainedOptions, IPrintCoreUI2::GetOptions, IPrintCoreUI2::SetOptions или IPrintCoreUI2::WhyConstrained эти методы передают указатель обратно в основной драйвер, который затем может определить режим.
Для IPrintCoreUI2::EnumConstrainedOptions, IPrintCoreUI2::SetOptions и IPrintCoreUI2::Почему ограниченные функции с привязкой к документам поддерживаются во время выполнения IPrintOemUI::D ocumentPropertySheets или его подпрограммы обратного вызова листа свойств, а во время выполнения IPrintOemUI::D evicePropertySheets или его подпрограммы обратного вызова листа свойств. Для IPrintCoreUI2::SetOptions любая функция, прилипание которой не соответствует текущему режиму липки, следует игнорировать. При вызове IPrintCoreUI2::EnumConstrainedOptions или IPrintCoreUI2::WhyConstrained вызывается для функции, прилипчивость которой не соответствует текущему режиму липки, метод должен возвращать E_INVALIDARG.
Для IPrintCoreUI2::GetOptions Функции с наклейками и принтерами поддерживаются в режиме привязки к документам (т. е. при использовании IPrintOemUI::D ocumentPropertySheets или его подпрограммы обратного вызова листа свойств), но выполняются только функции обратного вызова листа принтера (если IPrintOemUI::D evicePropertySheets или ее подпрограмма обратного вызова листа свойств выполняются).