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


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

Важно!

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

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

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

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

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

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

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

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

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

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

Они показаны на следующей схеме.

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

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

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

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