Обработка задания печати
Когда диспетчер очереди будет готов к отправке задания печати в обработчик печати, он вызывает функцию OpenPrintProcessor обработчика печати. Эта функция выполняет действия инициализации и возвращает дескриптор.
Затем диспетчер очереди может вызвать PrintDocumentOnPrintProcessor, который является функцией обработчика печати, которая преобразует поток данных из входного формата в выходной формат и возвращает преобразованный поток в очередь очереди.
Если входной формат имеет формат EMF операционной системы на основе NT, функция PrintDocumentOnPrintProcessor может управлять воспроизведением записей EMF с помощью функций, перечисленных в разделе Использование функций GDI в процессорах печати. Эти функции обеспечивают интерфейс между процессором печати и драйвером принтера. Этот интерфейс позволяет обработчикам печати управлять физическим макетом страниц принтера и, таким образом, упрощает реализацию таких функций, как печать нескольких страниц документов на физическую страницу (печать n-up), печать страниц в обратном порядке и печать нескольких копий каждой страницы.
Поток выходных данных обработчика печати должен быть возвращен очереди очереди печати. Как правило, если преобразование данных требует взаимодействия с библиотекой DLL графики принтера драйвера принтера (как в случае с входными данными EMF), библиотека DLL графики возвращает поток в очередь очереди, вызывая EngWritePrinter. С другой стороны, если преобразование не вызывает библиотеку DLL графики принтера (как в случае с входными данными RAW), обработчик печати вызывает WritePrinter.
Функция PrintDocumentOnPrintProcessor может быть прервана асинхронными вызовами из очереди очереди к функции ControlPrintProcessor обработчика печати. Эта функция реализует возможность приложения приостанавливать, возобновлять или отменять задание печати.
После того как PrintDocumentOnPrintProcessor завершит преобразование потока данных и вернет его, диспетчер очереди вызывает функцию ClosePrintProcessor обработчика печати.