Partager via


Méthode IPrintOemPS ::Command (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 Notes qui suit.

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 de données pour une valeur dwIndex spécifiée, la valeur doit être ERROR_NOT_SUPPORTED.

Valeur retournée

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

Code de retour Description
S_OK
L’opération a réussi.
E_FAIL
L’opération a échoué
E_NOTIMPL
Cette 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 pilote d’imprimante Microsoft PostScript. 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, qui sont définies dans wingdi.h, sont répertoriées dans le tableau suivant.

Valeur de l’index Lors de la réception
PSINJECT_BEGINDEFAULTS Une fois que le pilote d’imprimante a envoyé %%BeginDefaults au flux de données.
PSINJECT_BEGINPAGESETUP Une fois que le pilote d’imprimante a envoyé %%BeginPageSetup au flux de données.
PSINJECT_BEGINPROLOG Une fois que le pilote d’imprimante a envoyé %%BeginProlog au flux de données.
PSINJECT_BEGINSETUP Une fois que le pilote d’imprimante a 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 remplacent le commentaire %%BoundingBox : du pilote.
PSINJECT_COMMENTS Avant que le pilote d’imprimante envoie %%EndComments au flux de données.
PSINJECT_DLFONT Avant que le pilote d’impression télécharge une police souple.
PSINJECT_DOCNEEDEDRES Une fois que le pilote d’imprimante a 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, elles sont ajoutées 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 la section %%Trailer .

PSINJECT_DOCSUPPLIEDRES Une fois que le pilote d’imprimante a 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, elles sont ajoutées 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 la section %%Trailer .

PSINJECT_DOCUMENTPROCESSCOLORS
Lorsque le pilote d’imprimante est prêt à insérer %%DocumentProcessColors :color dans le flux de données. Les données fournies par IPrintOemPS ::Command remplacent le commentaire %%DocumentProcessColors :color du pilote.
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 remplacent le commentaire %%DocumentProcessColors :(atend) du pilote.
PSINJECT_ENDDEFAULTS Avant que le pilote d’imprimante n’envoie %%EndDefaults au flux de données.
PSINJECT_ENDPAGECOMMENTS Avant que le pilote d’imprimante envoie %%EndPageComments au flux de données.
PSINJECT_ENDPAGESETUP Avant que le pilote d’imprimante envoie %%EndPageSetup au flux de données.
PSINJECT_ENDPROLOG Avant que le pilote d’imprimante 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 Après que le pilote d’imprimante a envoyé le dernier octet du flux de données.
PSINJECT_EOF Une fois que le pilote d’imprimante a 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 remplacent le commentaire %%Orientation : du pilote.
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 remplacent le commentaire %%PageBoundingBox : du pilote.
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 remplacent le commentaire %%Page : du pilote.
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 remplacent le commentaire %%PageOrder : du pilote.
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 remplacent le commentaire %%Pages :nnn du pilote.
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 remplacent le commentaire %%Pages :(atend) du pilote.
PSINJECT_PAGETRAILER Une fois que le pilote d’imprimante a envoyé %%PageTrailer au flux de données.
PSINJECT_PLATECOLOR Lorsque le pilote d’imprimante est prêt à insérer %%PlateColor :color dans le flux de données. Les données fournies par IPrintOemPS ::Command remplacent le commentaire %%PlateColor :color du pilote.
PSINJECT_PSADOBE Avant que le pilote d’imprimante envoie % ! PS-Adobe dans le flux de données.
PSINJECT_SHOWPAGE Avant que le pilote d’imprimante envoie une commande showpage .
PSINJECT_TRAILER Une fois que le pilote d’imprimante a envoyé %%Trailer au flux de données.
PSINJECT_VMRESTORE Une fois que le pilote d’imprimante a envoyé une commande de restauration . (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 save . (Voir PSINJECT_VMRESTORE.)

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

Si les 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 l’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 l’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’une méthode IPrintOemPS ::Command fournisse 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 l’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 d’imprimante POSTSCRIPT_INJECTION , aucun plug-in n’est appelé.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête prcomoem.h (inclure Prcomoem.h)