Использование CPSUI с драйверами принтера
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Средство spooler печати в сочетании с библиотеками DLL интерфейса принтера использует CPSUI для создания страниц листов свойств для печати документов и устройств принтера. Следующие действия выполняются при отображении приложения (например, Microsoft Word) листа свойств для документа печати:
Приложение вызывает функцию DocumentProperties средства печати, указывая принтер, на котором должен быть напечатан документ.
Средство spooler печати вызывает функцию точки входа CPSUI CommonPropertySheetUI, указав внутреннюю функцию обратного вызова PFNPROPSHEETUI с типизированным вызовом.
CPSUI вызывает функцию обратного вызова PFNPROPSHEETUI, типизированной PFNPROPSHEETUI.
Функция обратного вызова spooler с типом PFNPROPSHEETUI вызывает функцию ComPropSheet CPSUI (с кодом функции CPSFUNC_ADD_PFNPROPSHEETUI), чтобы уведомить CPSUI об адресе соответствующей функции интерфейса принтера drvDocumentPropertySheets.
CPSUI вызывает функцию DrvDocumentPropertySheets интерфейса принтера.
Функция DrvDocumentPropertySheets интерфейса принтера вызывает функцию ComPropSheet CPSUI (обычно с кодом функции CPSFUNC_ADD_PCOMPROPSHEETUI), чтобы предоставить CPSUI описания страниц страницы свойств и обратные вызовы событий страницы свойств.
Функция ComPropSheet CPSUI вызывает CreatePropertySheetPage (описанную в документации по пакету SDK для Windows) для создания страниц листов свойств, указанных библиотекой DLL интерфейса принтера. CPSUI затем вызывает PropertySheet , чтобы отобразить страницы листа свойств.
На следующей схеме показаны эти шаги.
По мере того как пользователь приложения проходит страницы листа свойств и изменяет значения параметров, операционная система уведомляет CPSUI событий страницы и CPSUI, в свою очередь, вызывает обратный вызов события страницы, предоставленный библиотекой DLL интерфейса принтера. Обратный вызов события страницы обрабатывает события страницы и сохраняет только что выбранные значения параметров внутри при необходимости.
Когда пользователь закрывает лист свойств, нажав кнопку "ОК " или "Отмена ", CPSUI уничтожает страницы и приводит к возвращению функции CommonPropertySheetUI в средство spooler печати, которое затем возвращает управление приложению.
Когда приложение отображает лист свойств для устройства принтера, а не документ печати, выполняются те же действия, за исключением того, что приложение вызывает функцию PrinterProperties spooler и spooler передает адрес функции DrvDevicePropertySheets интерфейса принтера в CPSUI.