Partager via


IPrintOemPS ::Command, méthode (prcomoem.h)

La méthode IPrintOemPS ::Command est utilisée par le rendu des plug-ins pour le pilote d’imprimante Microsoft PostScript afin d’insérer des commandes PostScript dans le flux de données du travail d’impression.

Syntaxe

HRESULT Command(
        PDEVOBJ   pdevobj,
        DWORD     dwIndex,
        PVOID     pData,
        DWORD     cbSize,
  [out] OUT DWORD *pdwResult
);

Paramètres

pdevobj

Pointeur fourni par l’appelant vers une structure DEVOBJ.

dwIndex

Valeur fournie par l’appelant représentant le point d’injection actuel dans le flux de données du travail d’impression. Pour plus d’informations, consultez la section Remarques suivante.

pData

Non utilisé.

cbSize

Non utilisé.

[out] pdwResult

Reçoit une valeur fournie par la méthode indiquant le résultat de l’opération d’insertion. Si l’insertion réussit, cette valeur doit être ERROR_SUCCESS. Si l’insertion échoue, la valeur doit être l’un des codes d’erreur définis dans winerror.h. Si la méthode ne tente pas d’insérer des données pour une valeur dwIndex spécifiée, la valeur doit être ERROR_NOT_SUPPORTED.

Valeur de retour

La méthode doit retourner l’une des valeurs suivantes.

Retourner le code Description
S_OK
L’opération a réussi.
E_FAIL
Échec de l’opération
E_NOTIMPL
La méthode n’est pas implémentée.

Remarques

La méthode IPrintOemPS ::Command est utilisée pour insérer des commandes PostScript dans le flux de données généré par le Microsoft PostScript Printer Driver. Si vous souhaitez fournir cette méthode, vous devez la définir dans un plug-in de rendu.

Lorsque la méthode IPrintOemPS ::Command est appelée, son paramètre dwIndex spécifie le point d’injection actuel dans le flux de données du travail d’impression. La méthode doit utiliser cette valeur pour déterminer quelle opération, le cas échéant, effectuer. Les valeurs d’index, définies dans wingdi.h, sont répertoriées dans le tableau suivant.

Valeur d’index Lorsqu’il est reçu
PSINJECT_BEGINDEFAULTS Une fois le pilote d’imprimante envoyé %%BeginDefaults au flux de données.
PSINJECT_BEGINPAGESETUP Une fois le pilote d’imprimante envoyé %%BeginPageSetup au flux de données.
PSINJECT_BEGINPROLOG Une fois le pilote d’imprimante envoyé %%BeginProlog au flux de données.
PSINJECT_BEGINSETUP Une fois le pilote d’imprimante envoyé %%BeginSetup au flux de données.
PSINJECT_BEGINSTREAM Avant que le pilote d’imprimante envoie le premier octet du flux de données.
PSINJECT_BOUNDINGBOX Lorsque le pilote d’imprimante est prêt à insérer %%BoundingBox: dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le %%BoundingBoxdu pilote : commentaire.
PSINJECT_COMMENTS Avant que le pilote d’imprimante n’envoie %%EndComments au flux de données.
PSINJECT_DLFONT Avant que le pilote d’impression télécharge une police réversible.
PSINJECT_DOCNEEDEDRES Une fois le pilote d’imprimante envoyé %%DocumentNeededResources: au flux de données, ainsi que des informations sur les ressources. Si la méthode IPrintOemPS ::Command envoie des informations de ressource, elle est ajoutée au flux après les informations de ressource du pilote. Le format d’entrée est le suivant :

%%+ ResourceTypeResourceNames

Le pilote d’imprimante envoie %%DocumentNeededResources: après l’envoi de %%Trailer section.

PSINJECT_DOCSUPPLIEDRES Une fois le pilote d’imprimante envoyé %%DocumentSuppliedResources: au flux de données, ainsi que des informations sur les ressources. Si la méthode IPrintOemPS ::Command envoie des informations de ressource, elle est ajoutée au flux après les informations de ressource du pilote. Le format d’entrée est le suivant :

%%+ ResourceTypeResourceNames

Le pilote d’imprimante envoie %%DocumentSuppliedResources: après l’envoi de %%Trailer section.

PSINJECT_DOCUMENTPROCESSCOLORS
Lorsque le pilote d’imprimante est prêt à insérer %%DocumentProcessColors:couleur dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le %%DocumentProcessColorsdu pilote :commentaire de couleur.
PSINJECT_DOCUMENTPROCESSCOLORSATEND
Lorsque le pilote d’imprimante est prêt à insérer %%DocumentProcessColors:(atend) dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le commentaire %%DocumentProcessColorsdu pilote :(atend).
PSINJECT_ENDDEFAULTS Avant que le pilote d’imprimante n’envoie %%EndDefaults au flux de données.
PSINJECT_ENDPAGECOMMENTS Avant que le pilote d’imprimante n’envoie %%EndPageComments au flux de données.
PSINJECT_ENDPAGESETUP Avant que le pilote d’imprimante n’envoie %%EndPageSetup au flux de données.
PSINJECT_ENDPROLOG Avant que le pilote d’imprimante n’envoie %%EndProlog au flux de données.
PSINJECT_ENDSETUP Avant que le pilote d’imprimante n’envoie %%EndSetup au flux de données.
PSINJECT_ENDSTREAM Une fois que le pilote d’imprimante envoie le dernier octet du flux de données.
PSINJECT_EOF Une fois le pilote d’imprimante envoyé %%EOF au flux de données.
PSINJECT_ORIENTATION Lorsque le pilote d’imprimante est prêt à insérer %%Orientation: dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le %%Orientationdu pilote : commentaire.
PSINJECT_PAGEBBOX Lorsque le pilote d’imprimante est prêt à insérer %%PageBoundingBox: dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le %%PageBoundingBoxdu pilote : commentaire.
PSINJECT_PAGENUMBER Lorsque le pilote d’imprimante est prêt à insérer %%Page: dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le %%Pagedu pilote : commentaire.
PSINJECT_PAGEORDER Lorsque le pilote d’imprimante est prêt à insérer %%PageOrder: dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le %%PageOrderdu pilote : commentaire.
PSINJECT_PAGES Lorsque le pilote d’imprimante est prêt à insérer %%Pages:nnn dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le %%Pagesdu pilote :nnn commentaire.
PSINJECT_PAGESATEND Lorsque le pilote d’imprimante est prêt à insérer %%Pages:(atend) dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le commentaire %%Pagesdu pilote :(atend).
PSINJECT_PAGETRAILER Une fois le pilote d’imprimante envoyé %%PageTrailer au flux de données.
PSINJECT_PLATECOLOR Lorsque le pilote d’imprimante est prêt à insérer %%PlateColor:couleur dans le flux de données. Les données fournies par IPrintOemPS ::Command remplace le %%PlateColordu pilote :commentaire de couleur.
PSINJECT_PSADOBE Avant que le pilote d’imprimante envoie %! PS-Adobe au flux de données.
PSINJECT_SHOWPAGE Avant que le pilote d’imprimante envoie une commande showpage.
PSINJECT_TRAILER Une fois le pilote d’imprimante envoyé %%Trailer au flux de données.
PSINJECT_VMRESTORE Une fois que le pilote d’imprimante envoie une commande restore. (La méthode IPrintOemPS ::Command doit renvoyer toutes les ressources qu’elle a envoyées après la dernière PSINJECT_VMSAVE, si les ressources vont être réutilisées.)
PSINJECT_VMSAVE Avant que le pilote d’imprimante envoie une commande enregistrer. (Voir PSINJECT_VMRESTORE.)

La méthode IPrintOemPS ::Command doit appeler IPrintOemDriverPS ::D rvWriteSpoolBuf pour insérer les commandes PostScript.

Si méthodes IPrintOemPS ::Command sont exportées par plusieurs plug-ins de rendu, les méthodes sont appelées dans l’ordre dans lequel les plug-ins sont spécifiés pour l’installation, chaque fois que le pilote d’imprimante atteint un point d’injection. Les règles suivantes s’appliquent :

  • Si le point d’injection est un pour lequel les données fournies sont ajoutées aux données fournies par le pilote d’imprimante, chaque plug-in est appelé et chaque plug-in est autorisé à ajouter des commandes PostScript.

  • Si le point d’injection est un pour lequel les données fournies remplacent les données fournies par le pilote d’imprimante, les plug-ins sont appelés jusqu’à ce qu’un méthode IPrintOemPS ::Command fournit ERROR_SUCCESS pour dwResult. Aucun autre plug-in n’est appelé. Si tous les plug-ins fournissent ERROR_NOT_SUPPORTED, les données fournies par le pilote ne sont pas remplacées.

  • Si le point d’injection est un pour lequel les données fournies remplacent les données fournies par le pilote d’imprimante et si une application a déjà remplacé les données fournies par le pilote à l’aide de la fonction d’échappement de l’imprimante POSTSCRIPT_INJECTION, aucun plug-in n’est appelé.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête prcomoem.h (include Prcomoem.h)