Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция StartDocPrinter уведомляет средство spooler печати о том, что документ должен быть скопирован для печати.
Синтаксис
DWORD StartDocPrinter(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_In_ LPBYTE pDocInfo
);
Параметры
-
hPrinter [in]
-
Дескриптор принтера. Используйте функцию OpenPrinter или AddPrinter для получения дескриптора принтера.
-
уровне [in]
-
Версия структуры, к которой указывает pDocInfo . Это значение должно быть 1.
-
pDocInfo [in]
-
Указатель на структуру DOC_INFO_1 , описывающую документ для печати.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение определяет задание печати.
Если функция завершается ошибкой, возвращаемое значение равно нулю.
Замечания
Замечание
Это блокирующая или синхронная функция, и может не возвращаться немедленно. Насколько быстро эта функция возвращается, зависит от таких факторов времени выполнения, как состояние сети, конфигурация сервера печати и факторы реализации драйвера принтера, которые трудно прогнозировать при написании приложения. Вызов этой функции из потока, который управляет взаимодействием с пользовательским интерфейсом, может привести к тому, что приложение, как представляется, не отвечает.
Типичная последовательность для задания печати выглядит следующим образом:
- Чтобы начать задание печати, вызовите StartDocPrinter.
- Чтобы начать каждую страницу, вызовите StartPagePrinter.
- Чтобы записать данные на страницу, вызовите WritePrinter.
- Чтобы завершить каждую страницу, вызовите EndPagePrinter.
- Повторите 2, 3 и 4 для максимально необходимых страниц.
- Чтобы завершить задание печати, вызовите EndDocPrinter.
Обратите внимание, что вызов StartPagePrinter и EndPagePrinter может не потребоваться, например, если тип данных печати содержит сведения о странице.
Если страница в spooled-файле превышает около 350 МБ, она может не печатать и не отправлять сообщение об ошибке. Например, это может произойти при печати больших EMF-файлов. Ограничение размера страницы зависит от многих факторов, включая объем доступной виртуальной памяти, объем памяти, выделенный процессами вызова, и объем фрагментации в куче процесса.
Примеры
Пример программы, использующего эту функцию, см. в разделе "Практическое руководство. Печать с помощью API печати GDI".
Требования
Требование | Ценность |
---|---|
Минимальный поддерживаемый клиент |
Windows 2000 Professional [только классические приложения] |
Минимальный поддерживаемый сервер |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
Библиотека dll |
|
Имена Юникода и ANSI |
StartDocPrinterW (Юникод) и StartDocPrinterA (ANSI) |