描述
合并两张打印机票,并返回一张有效,可行的打印机票。
C++ 语法
HRESULT PTMergeAndValidatePrintTicket( __in HPTPROVIDER hProvider, __in IStream *pBaseTicket, __in IStream *pDeltaTicket, __in EPrintTicketScope scope, __in IStream *pResultTicket, __out BSTR *pbstrErrorMessage ); |
PowerBASIC 语法
FUNCTION PTMergeAndValidatePrintTicket ( _ BYVAL hProvider AS DWORD, _ BYVAL pBaseTicket AS IStream, _ BYVAL pDeltaTicket AS IStream, _ BYVAL scope AS DWORD, _ BYVAL pResultTicket AS IStream, _ BYREF pbstrErrorMessage AS WSTRING _ ) AS LONG |
参数
hProvider
[in]打开打印机票提供者的句柄。该句柄由PTOpenProvider或PTOpenProviderEx功能返回。
pPrintTicket
[in]指向打印机票的指针。流的查询位置必须在打印票内容的开头。
注意PTMergeAndValidatePrintTicket将在合并之前验证打印架构框架的基本票据。
pDeltaTicket
[in]指向打印机票的指针。流的查询位置必须在打印票内容的开头。NULL可以传递给此参数。见备注.
注意PTMergeAndValidatePrintTicket将在合并之前验证打印架构框架的增量票据。
scope
[in]一个值,指定pDeltaTicket和pResultTicket的范围是单页,整个文档还是打印作业中的所有文档。见备注.
pResultTicket
[in]一个指向可写的合并票据的流的指针。寻求职位将在打印机票的最后。见备注.
pbstrErrorMessage
[out]指向一个字符串的指针,该字符串指定pBaseTicket或pDeltaTicket无效的内容(如果有)。如果两者都有效,则为NULL。生存能力问题在pbstrErrorMessage中未报告。
返回值
如果操作成功,合并票据的设置与打印机的功能之间没有冲突,则HRESULT为S_PT_NO_CONFLICT。
如果操作成功,但是必须在一个或多个设置中更改合并的故障单,因为它要求打印机不支持的功能,则HRESULT为S_PT_CONFLICT_RESOLVED。见备注.
如果hProvider以不同的线程打开,则HRESULT为E_INVALIDARG。
如果pBaseTicket无效,则HRESULT为E_PRINTTICKET_FORMAT。
如果pDeltaTicket无效,则HRESULT为E_DELTA_PRINTTICKET_FORMAT。
否则,在HRESULT中返回一些其他错误代码。
备注
hProvider必须是在与用于此函数的线程相同的线程中打开的句柄。
此函数通过两种方式进行验证:它首先根据打印模式框架验证两个输入票证,报告pbstrErrorMessage中的错误。然后用打印机驱动程序检查合并的打印票的可行性。如果合并的票据要求打印机不支持的功能,则不可修改的设置将被替换,打印机驱动程序决定要使用的替代设置。通常,打印机驱动程序使用用户的默认打印票据设置。如果打印机驱动程序不使用pBaseTicket指向作为替代值的来源的相同打印单,那么pResultTicket在某些设置中与两个输入打印票可能不同。
通常,pBaseTicket包含完整的作业,文档和页面设置。通常用户默认或设备默认打印票证用于pBaseTicket.
如果pDeltaTicket为NULL,则该方法验证pBaseTicket,检查其可行性,并在pResultTicket指向的流中返回可能的修改。
超出范围的pDeltaTicket的值将被忽略。例如,如果范围只是一个页面,则忽略作业范围的设置和文档范围的设置。作业范围包括文档范围和页面范围。文档范围包括页面范围。
超出范围的设置不包括在pResultTicket中。
当函数返回值时,搜索位置pResultTicket位于打印票据内容的末尾。来电者负责在读取数据之前重新设置查找位置。
引用文件 #INCLUDE Once
Prntvpt.inc