Функция PTConvertPrintTicketToDevMode (prntvpt.h)
Преобразует билет печати в структуру DEVMODE .
Синтаксис
HRESULT PTConvertPrintTicketToDevMode(
[in] HPTPROVIDER hProvider,
[in] IStream *pPrintTicket,
EDefaultDevmodeType baseDevmodeType,
[in] EPrintTicketScope scope,
[out] ULONG *pcbDevmode,
[out] PDEVMODE *ppDevmode,
[out] BSTR *pbstrErrorMessage
);
Параметры
[in] hProvider
Дескриптор для открытого поставщика билетов на печать. Этот дескриптор возвращается функцией PTOpenProvider или PTOpenProviderEx .
[in] pPrintTicket
Указатель на IStream с позицией поиска в начале печатного билета.
baseDevmodeType
Значение , указывающее, используется ли DEVMODE пользователя по умолчанию или DEVMODE очереди печати по умолчанию для предоставления значений в выходные данные DEVMODE , если pPrintTicket не указывает все возможные параметры для DEVMODE.
[in] scope
Значение типа , указывающее область pPrintTicket. Это значение может указывать одну страницу, весь документ или все документы в задании печати. Параметры в pPrintTicket, которые находятся за пределами указанного область, игнорируются. См. заметки.
[out] pcbDevmode
Указатель на размер DEVMODE в байтах.
[out] ppDevmode
Указатель на только что созданный DEVMODE.
[out] pbstrErrorMessage
Указатель на строку, указывающую, что является недопустимым в pPrintTicket. Если это допустимо, это значение РАВНО NULL.
Возвращаемое значение
Если операция выполнена успешно, возвращаемое значение будет S_OK.
Если hProvider был открыт в другом потоке, HRESULT E_INVALIDARG.
Если pPrintTicket недопустим, HRESULT E_PRINTTICKET_FORMAT.
В противном случае в HRESULT возвращается другой код ошибки. Дополнительные сведения о кодах ошибок COM см. в разделе Обработка ошибок.
Комментарии
Если baseDevmodeType имеет значение kUserDefaultDevmode, но значение по умолчанию пользователя недоступно, будет использоваться значение по умолчанию для устройства.
Возвращаемый DEVMODE может быть внутренне несогласованным или конфликтовать с параметрами жесткого принтера, даже если каждый параметр в нем является жизнеспособным по отдельности. Например, если принтер поддерживает необязательный дуплексер, но pPrintTicket вызывает дуплексирование, возвращенный DEVMODE также будет вызывать дуплексирование, даже если дуплексер не установлен. Используйте DocumentProperties , чтобы исправить возвращенный DEVMODE.
Буфер в возвращенном ppDevmode должен быть освобожден с помощью PTReleaseMemory.
Значения pPrintTicket, которые находятся за пределами область, игнорируются. Например, если область является только одной страницей, то параметры для всего задания и параметры на уровне документа игнорируются. Область задания включают область документов и область страниц. Область документа включает область страниц.
Если функция pbstrErrorMessage не имеет значение NULL , вызывающий объект должен освободить строку с помощью SysFreeString.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | prntvpt.h |
Библиотека | Prntvpt.lib |
DLL | Prntvpt.dll |