IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 方法 (prcomoem.h)

IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 方法将打印票证转换为 DEVMODEW 结构。

语法

HRESULT ConvertPrintTicketToDevMode(
  [in]      IXMLDOMDocument2 *pPrintTicket,
  [in]      ULONG            cbDevmode,
  [in, out] PDEVMODE         pDevmode,
  [in]      ULONG            cbDrvPrivateSize,
  [in]      PVOID            pPrivateDevmode
);

参数

[in] pPrintTicket

指向输入打印票证的指针。

[in] cbDevmode

输入 DEVMODEW 结构的大小(以字节为单位)。 此大小包括 DEVMODEW 结构的公共和专用部分。

[in, out] pDevmode

指向输入 DEVMODEW 结构的指针。 当 IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 返回时,插件的专用 DEVMODEW 结构将包含从打印票证获取的信息。

[in] cbDrvPrivateSize

插件的专用 DEVMODEW 结构的大小(以字节为单位)。

[in] pPrivateDevmode

指向插件的专用 DEVMODEW 结构的指针。

返回值

如果操作成功,IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 应返回S_OK。 否则,此方法应返回标准 COM 错误代码。

注解

核心驱动程序调用 IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 方法,然后执行打印票证到 DEVMODEW 结构的转换。 在调用此方法时,核心驱动程序传递完全填充的输入打印票证和设置为默认值的 DEVMODEW 结构。 在转换中,插件必须撤消在以前从 DEVMODEW 结构转换为打印票证期间对打印票证所做的任何更改。 如果在上一次转换期间,插件将功能从专用命名空间移动到公共命名空间,则插件必须采用适合核心驱动程序的格式将功能还原到专用命名空间,即核心驱动程序之前将该功能放置在 IPrintOemPrintTicketProvider 中提供给插件的打印票证中的格式::ConvertDevModeToPrintTicket 方法。 此还原是必要的,以便核心驱动程序可以识别打印票证中的功能,并在核心驱动程序的 DEVMODEW 结构的专用部分中反映其设置,而核心驱动程序执行其部分的打印票证到 DEVMODEW 转换。

在系统将打印票证转换回 DEVMODEW 结构之前,它首先加载默认的 DEVMODEW 结构。 然后,系统调用提供程序的 IPrintOemPrintTicketProvider::BindPrinter 方法。 然后,此方法应从打印票证中读取它支持的所有设置,并在 DEVMODEW 结构中填充这些设置。 请注意,并非所有功能都必须表示,并且通常存在的 Option 实例可能不包含提供程序通常填充的所有 Scored Property 实例。 如果提供程序在从打印票证转换为 DEVMODEW 期间对系统填充的设置进行了任何更改,则提供程序应在 IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode 方法中执行该更改的相反操作。 提供程序返回后,系统将覆盖打印票证中表示但提供程序未显式禁用的任何公共 DEVMODEW 设置。

要求

要求
目标平台 桌面
标头 prcomoem.h (包括 Prcomoem.h)

另请参阅

IPrintOemPrintTicketProvider

IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket