PTConvertDevModeToPrintTicket 函数 (prntvpt.h)

DEVMODE 结构转换为 IStream 中的打印票证。

语法

HRESULT PTConvertDevModeToPrintTicket(
  [in] HPTPROVIDER       hProvider,
       ULONG             cbDevmode,
  [in] PDEVMODE          pDevmode,
  [in] EPrintTicketScope scope,
       IStream           *pPrintTicket
);

parameters

[in] hProvider

打开的打印票证提供程序的句柄。 此句柄由 PTOpenProviderPTOpenProviderEx 函数返回。

cbDevmode

DEVMODE 的大小(以字节为单位)。

[in] pDevmode

指向 DEVMODE 的指针。

[in] scope

一个值,该值指定 pPrintTicket 的范围。 此值可以指定打印作业中的单个页面、整个文档或所有文档。 pDevmode 中超出指定范围的设置不会包含在 pPrintTicket 中。 请参阅“备注”。

pPrintTicket

指向 IStream 的指针,其查找位置位于打印票证的开头。

返回值

如果操作成功,则返回值为S_OK,否则 HRESULT 包含错误代码。

如果 hProvider 在不同的线程中打开,则 E_INVALIDARG HRESULT

有关 COM 错误代码的详细信息,请参阅错误处理

注解

注意 这是一个阻塞或同步函数,可能不会立即返回。 此函数返回的速度取决于运行时因素(例如网络状态、打印服务器配置和打印机驱动程序实现),这些因素在编写应用程序时难以预测。 从管理与用户界面交互的线程调用此函数可能会使应用程序看起来无响应。
 
hProvider 必须是在与用于此函数的线程相同的线程中打开的句柄。

如果 pDevmode 指向其他打印机,则其设置可能会丢失并替换为默认值。

pDevmode 中超出作用域的设置不包括在 pPrintTicket 中。 例如,如果范围是单个页面,则不包括作业范围的设置和文档范围的设置。 作业范围包括文档范围和页面范围。 文档范围包括页面范围。

PTConvertDevModeToPrintTicket 从流的当前查找点开始,将打印票证写入 pPrintTicket 引用的 IStream在 PTConvertDevModeToPrintTicket 返回后,调用方必须将查找点重置为初始查找点,以读取函数返回的打印票证。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 prntvpt.h
Library Prntvpt.lib
DLL Prntvpt.dll

请参阅

打印架构

打印后台处理程序 API 函数

打印