Partager via


PTConvertPrintTicketToDevMode, fonction (prntvpt.h)

Convertit un ticket d’impression en structure DEVMODE .

Syntaxe

HRESULT PTConvertPrintTicketToDevMode(
  [in]  HPTPROVIDER         hProvider,
  [in]  IStream             *pPrintTicket,
        EDefaultDevmodeType baseDevmodeType,
  [in]  EPrintTicketScope   scope,
  [out] ULONG               *pcbDevmode,
  [out] PDEVMODE            *ppDevmode,
  [out] BSTR                *pbstrErrorMessage
);

Paramètres

[in] hProvider

Handle pour un fournisseur de ticket d’impression ouvert. Ce handle est retourné par la fonction PTOpenProvider ou PTOpenProviderEx .

[in] pPrintTicket

Pointeur vers un IStream avec sa position de recherche au début du ticket d’impression.

baseDevmodeType

Valeur indiquant si le DEVMODE par défaut de l’utilisateur ou le DEVMODE par défaut de la file d’attente d’impression est utilisé pour fournir des valeurs au DEVMODE de sortie lorsque pPrintTicket ne spécifie pas tous les paramètres possibles pour un DEVMODE.

[in] scope

Valeur qui spécifie l’étendue de pPrintTicket. Cette valeur peut spécifier une page unique, un document entier ou tous les documents du travail d’impression. Les paramètres de pPrintTicket qui se trouvent en dehors de l’étendue spécifiée sont ignorés. Consultez la section Notes.

[out] pcbDevmode

Pointeur vers la taille du DEVMODE en octets.

[out] ppDevmode

Pointeur vers le DEVMODE nouvellement créé.

[out] pbstrErrorMessage

Pointeur vers une chaîne qui spécifie ce qui, le cas échéant, n’est pas valide à propos de pPrintTicket. S’il est valide, cette valeur est NULL.

Valeur retournée

Si l’opération réussit, la valeur de retour est S_OK.

Si hProvider a été ouvert dans un autre thread, hrESULT est E_INVALIDARG.

Si pPrintTicket n’est pas valide, HRESULT est E_PRINTTICKET_FORMAT.

Sinon, un autre code d’erreur est retourné dans 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.
 
Le paramètre 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.

Si baseDevmodeType est kUserDefaultDevmode, mais que la valeur par défaut de l’utilisateur n’est pas disponible, la valeur par défaut de l’appareil est utilisée.

Le DEVMODE retourné peut être incohérent en interne ou en conflit avec les paramètres de l’imprimante matérielle, même si chaque paramètre qu’il contient est viable individuellement. Par exemple, si l’imprimante prend en charge un duplexeur facultatif, mais que le pPrintTicket appelle le duplexing, le DEVMODE retourné appelle également pour le duplexing, même si le duplexeur n’est pas installé. Utilisez DocumentProperties pour corriger le DEVMODE retourné.

La mémoire tampon dans le ppDevmode retourné doit être libérée avec PTReleaseMemory.

Les valeurs de pPrintTicket 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.

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

Schéma d’impression

Fonctions API du spouleur d’impression

Impression