Share via


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.

RemarquePTMergeAndValidatePrintTicket valide le ticket de base par rapport à Print Schema Framework avant la fusion.
 

[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.

RemarquePTMergeAndValidatePrintTicket valide le ticket delta par rapport à Print Schema Framework avant la fusion.
 

[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

Note Il s’agit d’une fonction bloquante ou synchrone qui peut ne pas être retournée immédiatement. La rapidité avec laquelle cette fonction retourne dépend de facteurs d’exécution tels que l’status réseau, la configuration du serveur d’impression et l’implémentation du pilote d’imprimante, facteurs difficiles à prédire lors de l’écriture d’une application. L’appel de cette fonction à partir d’un thread qui gère l’interaction avec l’interface utilisateur peut donner l’impression que l’application ne répond pas.
 
hProvider doit être un handle qui a été ouvert dans le même thread que le thread dans lequel il est utilisé pour cette fonction.

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

Voir aussi

Imprimer le schéma

Fonctions API du spouleur d’impression

Impression