勇芳软件工作室.汉化:  Printing > Print Ticket API > Print Ticket API Functions >

PTConvertPrintTicketToDevMode (XP)

Previous pageReturn to chapter overviewNext page

描述

 

将打印票据转换为DEVMODE结构。

 

C++ 语法

 

HRESULT PTConvertPrintTicketToDevMode(

__in  HPTPROVIDER hProvider,

__in  IStream *pPrintTicket,

__in  EDefaultDevmodeType baseDevmodeType,

__in  EPrintTicketScope scope,

__out ULONG *pcbDevmode,

__out PDEVMODE *ppDevmode,

__out BSTR *pbstrErrorMessage

);

 

PowerBASIC 语法

 

FUNCTION PTConvertPrintTicketToDevMode ( _

BYVAL hProvider AS DWORD, _

BYVAL pPrintTicket AS IStream, _

BYVAL baseDevmodeType AS DWORD, _

BYVAL scope AS DWORD, _

BYREF pcbDevmode AS DWORD, _

BYREF ppDevmode AS DEVMODEA, _

BYREF pbstrErrorMessage AS STRING _

) AS LONG

 

参数

 

hProvider

 

[in]打开的打印机票提供者的句柄。该句柄由PTOpenProviderPTOpenProviderEx函数返回。

 

pPrintTicket

 

[in]指向IStream的指针,其搜索位置位于打印机票的开头。

 

baseDevmodeType

 

[in]pPrintTicketpPrintTicket未指定DEVMODE的每个可能设置时,都会使用一个值来指示用户的默认DEVMODE或打印队列的默认值DEVMODE是否为输出DEVMODE提供值。

 

scope

 

[in]指定pPrintTicket范围的值。该值可以指定单页,整个文档或打印作业中的所有文档。超出指定范围的pPrintTicket中的设置将被忽略。见备注.

 

pcbDevmode

 

[out]指向DEVMODE(以字节为单位)的大小的指针。

 

ppDevmode

 

[out]指向新创建的DEVMODE的指针。

 

pbstrErrorMessage

 

[out]指向一个字符串的指针,指定对pPrintTicket无效的内容(如果有的话)。如果它有效,则为NULL。

 

返回值

 

如果操作成功,返回值为S_OK。

 

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

 

如果pPrintTicket无效,则HRESULT为E_PRINTTICKET_FORMAT。

 

否则,在HRESULT中返回一些其他错误代码。

 

备注

 

hProvider必须是在与用于此函数的线程相同的线程中打开的句柄。

 

如果baseDevmodeType为kUserDefaultDevmode,但用户的默认值不可用,则将使用设备的默认值。

 

返回的DEVMODE可能内部不一致或与硬式打印机设置冲突,即使其中的每个设置都可以单独访问。例如,如果打印机支持可选的双面打印器,但是pPrintTicket需要进行双面打印,则即使未安装双面打印器,返回的DEVMODE也将调用双面打印。使用DocumentProperties更正返回的DEVMODE.

 

返回的ppDevmode中的缓冲区应与PTReleaseMemory一起发布。

 

超出范围的pPrintTicket的值将被忽略。例如,如果范围只是一个页面,则忽略作业范围的设置和文档范围的设置。作业范围包括文档范围和页面范围。文档范围包括页面范围。

 

引用文件 #INCLUDE Once

 

Prntvpt.inc