描述
将打印票据转换为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]打开的打印机票提供者的句柄。该句柄由PTOpenProvider或PTOpenProviderEx函数返回。
pPrintTicket
[in]指向IStream的指针,其搜索位置位于打印机票的开头。
baseDevmodeType
[in]pPrintTicket当pPrintTicket未指定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