Метод IPrintTicketProvider2::ConvertPrintTicketToDevMode (prdrvcom.h)
Метод IPrintTicketProvider2::ConvertPrintTicketToDevMode преобразует билет печати в структуру DEVMODEW .
Синтаксис
HRESULT ConvertPrintTicketToDevMode(
[in] IN IXMLDOMDocument2 *pPrintTicket,
[in] IN ULONG cbDevmodeIn,
[in] IN PDEVMODE pDevmodeIn,
[out] OUT ULONG *pcbDevmodeOut,
[out] OUT PDEVMODE *ppDevmodeOut
);
Параметры
[in] pPrintTicket
Указатель на входной билет печати. IPrintTicketProvider2::ConvertPrintTicketToDevMode преобразует параметры входного билета печати в поля в структуре DEVMODEW .
[in] cbDevmodeIn
Размер входной структуры DEVMODEW (в байтах). Этот размер включает как открытый, так и частный разделы структуры DEVMODEW .
[in] pDevmodeIn
Указатель на входную структуру DEVMODEW , которая содержит параметры по умолчанию. Структура DEVMODEW может быть структурой DEVMODEW по умолчанию для очереди печати или структурой DEVMODEW по умолчанию для пользователя. Так как этот параметр может представлять структуру DEVMODEW по умолчанию для пользователя, поставщик подключаемых модулей OEM должен проверить данные в этой структуре. Пользовательская структура DEVMODEW по умолчанию может быть недопустимой для конкретного драйвера, например при изменении или обновлении драйвера очереди печати.
[out] pcbDevmodeOut
Указатель на переменную, содержащую размер в байтах выходной структуры DEVMODEW .
[out] ppDevmodeOut
Указатель на переменную, содержащую адрес выходной структуры DEVMODEW . При успешном возвращении IPrintTicketProvider2::ConvertPrintTicketToDevMode элементы выходной структуры DEVMODEW будут сброшены для отражения параметров в билете печати. Дополнительные сведения см. в разделе "Примечания".
Возвращаемое значение
IPrintTicketProvider2::ConvertPrintTicketToDevMode должен возвращать S_OK , если операция выполнена успешно. В противном случае этот метод должен возвращать стандартный код ошибки COM.
Комментарии
Основной драйвер вызывает метод IPrintTicketProvider2::ConvertPrintTicketToDevMode , прежде чем выполнить часть преобразования билета печати в структуру DEVMODEW . В вызове этого метода основной драйвер передает входной билет печати, который полностью заполнен, и структуру DEVMODEW со значениями по умолчанию. При преобразовании подключаемый модуль должен отменить все изменения, внесенные в билет печати во время предыдущего преобразования из структуры DEVMODEW в билет печати. Если во время этого предыдущего преобразования подключаемый модуль переместил функцию из частного пространства имен в общедоступное пространство имен, подключаемый модуль должен восстановить функцию в закрытом пространстве имен в формате, подходящем для основного драйвера, то есть в формате, в котором основной драйвер ранее разместил функцию в билете печати, предоставленном подключаемому модулем в IPrintOemPrintTicketProvider: Метод ConvertDevModeToPrintTicket . Это восстановление необходимо для того, чтобы основной драйвер смог распознать функцию в билете печати и отразить ее параметры в частной части структуры DEVMODEW основного драйвера, в то время как основной драйвер выполняет свою часть преобразования билета на печать в DEVMODEW .
Прежде чем система преобразует билет печати обратно в структуру DEVMODEW , она сначала загружает devmodew по умолчанию. Затем система вызывает метод IPrintTicketProvider2::BindPrinter поставщика. Затем этот метод должен считывать все поддерживаемые параметры из билета печати и помещать их в структуру DEVMODEW . Обратите внимание, что не все функции обязательно будут представлены, и часто имеющиеся экземпляры Option могут содержать не все экземпляры оцененного свойства, которые обычно заполняет поставщик. Если поставщик вносит какие-либо изменения в параметры, которые были заполнены системой во время преобразования из билета печати в DEVMODEW, поставщик должен выполнить обратное изменение в этом методе. После возврата поставщика система перезаписывает все общедоступные параметры DEVMODEW , представленные в билете печати, но не отключенные поставщиком явным образом.
Требования
Требование | Значение |
---|---|
Заголовок | prdrvcom.h (включая Prdrvcom.h) |