PTMergeAndValidatePrintTicket, fonction (prntvpt.h)
Fusionne deux tickets d’impression et retourne un ticket d’impression valide et viable.
Syntaxe
HRESULT PTMergeAndValidatePrintTicket(
[in] HPTPROVIDER hProvider,
[in] IStream *pBaseTicket,
[in] IStream *pDeltaTicket,
[in] EPrintTicketScope scope,
IStream *pResultTicket,
[out] BSTR *pbstrErrorMessage
);
Paramètres
[in] hProvider
Handle pour un fournisseur de tickets d’impression ouvert. Ce handle est retourné par la fonction PTOpenProvider ou PTOpenProviderEx .
[in] pBaseTicket
Pointeur vers un ticket d’impression. La position de recherche du flux doit se trouver au début du contenu du ticket d’impression.
[in] pDeltaTicket
Pointeur vers un ticket d’impression. La position de recherche du flux doit se trouver au début du contenu du ticket d’impression. Null peut être passé à ce paramètre. Consultez la section Notes.
[in] scope
Valeur spécifiant si l’étendue de pDeltaTicket et pResultTicket est une page unique, un document entier ou tous les documents du travail d’impression. Consultez la section Notes.
pResultTicket
Pointeur vers le flux dans lequel le ticket fusionné viable sera écrit. La position de recherche se trouvera à la fin du ticket d’impression. Consultez la section Notes.
[out] pbstrErrorMessage
Pointeur vers une chaîne qui spécifie ce qui, le cas échéant, n’est pas valide à propos de pBaseTicket ou pDeltaTicket. Si les deux sont valides, il s’agit de NULL. Les problèmes de viabilité ne sont pas signalés dans pbstrErrorMessage.
Valeur retournée
Si l’opération réussit sans conflit entre les paramètres du ticket fusionné et les fonctionnalités de l’imprimante, le HRESULT est S_PT_NO_CONFLICT.
Si l’opération réussit, mais que le ticket fusionné a dû être modifié dans un ou plusieurs paramètres, car il a demandé des fonctionnalités que l’imprimante ne prend pas en charge, hresult est S_PT_CONFLICT_RESOLVED. Consultez la section Notes.
Si hProvider a été ouvert dans un thread différent, hrESULT est E_INVALIDARG.
Si pBaseTicket n’est pas valide, HRESULT est E_PRINTTICKET_FORMAT.
Si pDeltaTicket n’est pas valide, HRESULT est E_DELTA_PRINTTICKET_FORMAT.
Sinon, un autre code d’erreur est retourné dans le HRESULT. Pour plus d’informations sur les codes d’erreur COM, consultez Gestion des erreurs.
Remarques
Cette fonction valide de deux manières : elle valide d’abord les deux tickets d’entrée par rapport à Print Schema Framework, en signalant des erreurs dans pbstrErrorMessage. Il vérifie ensuite la viabilité du ticket d’impression fusionné avec le pilote d’imprimante. Si le ticket fusionné demande des fonctionnalités que l’imprimante ne prend pas en charge, les paramètres non utilisables sont remplacés et le pilote d’imprimante détermine le paramètre de remplacement à utiliser. En règle générale, le pilote d’imprimante utilise le paramètre de ticket d’impression par défaut de l’utilisateur. Si le pilote d’imprimante n’utilise pas le même ticket d’impression que pBaseTicket pointe vers comme source pour les valeurs de remplacement, il est possible que pResultTicket diffère dans certains paramètres des deux tickets d’impression d’entrée.
En règle générale, pBaseTicket contient une gamme complète de paramètres de travail, de document et de page. En règle générale, le ticket d’impression par défaut de l’utilisateur ou le ticket d’impression par défaut de l’appareil est utilisé pour pBaseTicket.
Si pDeltaTicket a la valeur NULL, la méthode valide pBaseTicket, vérifie sa viabilité et le retourne, éventuellement modifié, dans le flux vers lequel pResultTicket pointe.
Les valeurs de pDeltaTicket qui se trouvent en dehors de l’étendue sont ignorées. Par exemple, si l’étendue n’est qu’une seule page, les paramètres à l’échelle du travail et les paramètres à l’échelle du document sont ignorés. L’étendue du travail inclut l’étendue du document et l’étendue de la page. L’étendue du document inclut l’étendue de la page.
Les paramètres qui se trouvent en dehors de l’étendue ne sont pas inclus dans le pResultTicket.
Lorsque la fonction retourne une valeur, la position de recherche de pResultTicket se trouve à la fin du contenu du ticket d’impression. L’appelant est chargé de réinitialiser la position de recherche avant de lire les données.
Si pbstrErrorMessage n’est pas NULL lorsque la fonction est retournée, l’appelant doit libérer la chaîne avec SysFreeString.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | prntvpt.h |
Bibliothèque | Prntvpt.lib |
DLL | Prntvpt.dll |