Поделиться через


Использование CPSUI с драйверами принтера

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.

Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.

Средство spooler печати в сочетании с библиотеками DLL интерфейса принтера использует CPSUI для создания страниц листов свойств для печати документов и устройств принтера. Следующие действия выполняются при отображении приложения (например, Microsoft Word) листа свойств для документа печати:

  1. Приложение вызывает функцию DocumentProperties средства печати, указывая принтер, на котором должен быть напечатан документ.

  2. Средство spooler печати вызывает функцию точки входа CPSUI CommonPropertySheetUI, указав внутреннюю функцию обратного вызова PFNPROPSHEETUI с типизированным вызовом.

  3. CPSUI вызывает функцию обратного вызова PFNPROPSHEETUI, типизированной PFNPROPSHEETUI.

  4. Функция обратного вызова spooler с типом PFNPROPSHEETUI вызывает функцию ComPropSheet CPSUI кодом функции CPSFUNC_ADD_PFNPROPSHEETUI), чтобы уведомить CPSUI об адресе соответствующей функции интерфейса принтера drvDocumentPropertySheets.

  5. CPSUI вызывает функцию DrvDocumentPropertySheets интерфейса принтера.

  6. Функция DrvDocumentPropertySheets интерфейса принтера вызывает функцию ComPropSheet CPSUI (обычно с кодом функции CPSFUNC_ADD_PCOMPROPSHEETUI), чтобы предоставить CPSUI описания страниц страницы свойств и обратные вызовы событий страницы свойств.

  7. Функция ComPropSheet CPSUI вызывает CreatePropertySheetPage (описанную в документации по пакету SDK для Windows) для создания страниц листов свойств, указанных библиотекой DLL интерфейса принтера. CPSUI затем вызывает PropertySheet , чтобы отобразить страницы листа свойств.

На следующей схеме показаны эти шаги.

схема, иллюстрирующая модули, участвующие в отображении листа свойств.

По мере того как пользователь приложения проходит страницы листа свойств и изменяет значения параметров, операционная система уведомляет CPSUI событий страницы и CPSUI, в свою очередь, вызывает обратный вызов события страницы, предоставленный библиотекой DLL интерфейса принтера. Обратный вызов события страницы обрабатывает события страницы и сохраняет только что выбранные значения параметров внутри при необходимости.

Когда пользователь закрывает лист свойств, нажав кнопку "ОК " или "Отмена ", CPSUI уничтожает страницы и приводит к возвращению функции CommonPropertySheetUI в средство spooler печати, которое затем возвращает управление приложению.

Когда приложение отображает лист свойств для устройства принтера, а не документ печати, выполняются те же действия, за исключением того, что приложение вызывает функцию PrinterProperties spooler и spooler передает адрес функции DrvDevicePropertySheets интерфейса принтера в CPSUI.