IPrintOemPS::Command-Methode (prcomoem.h)

Die IPrintOemPS::Command-Methode wird verwendet, um Plug-Ins für den Microsoft PostScript-Druckertreiber zu rendern, um PostScript-Befehle in den Datenstrom des Druckauftrags einzufügen.

Syntax

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

Parameter

pdevobj

Vom Aufrufer bereitgestellter Zeiger auf eine DEVOBJ-Struktur .

dwIndex

Vom Aufrufer bereitgestellter Wert, der den aktuellen Einschleuspunkt innerhalb des Datenstroms des Druckauftrags darstellt. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

pData

Nicht verwendet.

cbSize

Nicht verwendet.

[out] pdwResult

Empfängt einen von der Methode bereitgestellten Wert, der das Ergebnis des Einfügevorgangs angibt. Wenn die Einfügung erfolgreich ist, sollte dieser Wert ERROR_SUCCESS werden. Wenn die Einfügung fehlschlägt, sollte der Wert einer der in winerror.h definierten Fehlercodes sein. Wenn die Methode nicht versucht, Daten für einen angegebenen dwIndex-Wert einzufügen, sollte der Wert ERROR_NOT_SUPPORTED werden.

Rückgabewert

Die -Methode muss einen der folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Der Vorgang wurde erfolgreich ausgeführt.
E_FAIL
Fehler beim Vorgang
E_NOTIMPL
Die Methode ist nicht implementiert.

Hinweise

Die IPrintOemPS::Command-Methode wird verwendet, um PostScript-Befehle in den Datenstrom einzufügen, der vom Microsoft PostScript-Druckertreiber generiert wird. Wenn Sie diese Methode bereitstellen möchten, müssen Sie sie in einem Rendering-Plug-In definieren.

Wenn die IPrintOemPS::Command-Methode aufgerufen wird, gibt ihr dwIndex-Parameter den aktuellen Injektionspunkt innerhalb des Datenstroms des Druckauftrags an. Die -Methode sollte diesen Wert verwenden, um zu bestimmen, welcher Vorgang ggf. ausgeführt werden soll. Indexwerte, die in wingdi.h definiert sind, sind in der folgenden Tabelle aufgeführt.

Indexwert Beim Empfang
PSINJECT_BEGINDEFAULTS Nachdem der Druckertreiber %%BeginDefaults an den Datenstrom gesendet hat.
PSINJECT_BEGINPAGESETUP Nachdem der Druckertreiber %%BeginPageSetup an den Datenstrom gesendet hat.
PSINJECT_BEGINPROLOG Nachdem der Druckertreiber %%BeginProlog an den Datenstrom gesendet hat.
PSINJECT_BEGINSETUP Nachdem der Druckertreiber %%BeginSetup an den Datenstrom gesendet hat.
PSINJECT_BEGINSTREAM Bevor der Druckertreiber das erste Byte des Datenstroms sendet.
PSINJECT_BOUNDINGBOX Wenn der Druckertreiber bereit ist, %%BoundingBox: in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%BoundingBox-Kommentar des Treibers.
PSINJECT_COMMENTS Bevor der Druckertreiber %%EndComments an den Datenstrom sendet.
PSINJECT_DLFONT Bevor der Drucktreiber eine weiche Schriftart herunterlädt.
PSINJECT_DOCNEEDEDRES Nachdem der Druckertreiber %%DocumentNeededResources: zusammen mit Ressourceninformationen an den Datenstrom gesendet hat. Wenn die IPrintOemPS::Command-Methode Ressourceninformationen sendet, werden sie nach den Ressourceninformationen des Treibers an den Stream angefügt. Das Eingabeformat lautet wie folgt:

%%+ResourceTypeResourceNames

Der Druckertreiber sendet %%DocumentNeededResources: nach dem Senden des %%Trailer-Abschnitts .

PSINJECT_DOCSUPPLIEDRES Nachdem der Druckertreiber %%DocumentSuppliedResources: zusammen mit Ressourceninformationen an den Datenstrom gesendet hat. Wenn die IPrintOemPS::Command-Methode Ressourceninformationen sendet, werden sie nach den Ressourceninformationen des Treibers an den Stream angefügt. Das Eingabeformat lautet wie folgt:

%%+ResourceTypeResourceNames

Der Druckertreiber sendet %%DocumentSuppliedResources: nach dem Senden des %%Trailer-Abschnitts .

PSINJECT_DOCUMENTPROCESSCOLORS
Wenn der Druckertreiber bereit ist, %%DocumentProcessColors:color in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%DocumentProcessColors:color-Kommentar des Treibers.
PSINJECT_DOCUMENTPROCESSCOLORSATEND
Wenn der Druckertreiber bereit ist, %%DocumentProcessColors:(atend) in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%DocumentProcessColors:(atend)-Kommentar des Treibers.
PSINJECT_ENDDEFAULTS Bevor der Druckertreiber %%EndDefaults an den Datenstrom sendet.
PSINJECT_ENDPAGECOMMENTS Bevor der Druckertreiber %%EndPageComments an den Datenstrom sendet.
PSINJECT_ENDPAGESETUP Bevor der Druckertreiber %%EndPageSetup an den Datenstrom sendet.
PSINJECT_ENDPROLOG Bevor der Druckertreiber %%EndProlog an den Datenstrom sendet.
PSINJECT_ENDSETUP Bevor der Druckertreiber %%EndSetup an den Datenstrom sendet.
PSINJECT_ENDSTREAM Nachdem der Druckertreiber das letzte Byte des Datenstroms gesendet hat.
PSINJECT_EOF Nachdem der Druckertreiber %%EOF an den Datenstrom gesendet hat.
PSINJECT_ORIENTATION Wenn der Druckertreiber bereit ist, %%Ausrichtung: in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%Orientation:- Kommentar des Treibers.
PSINJECT_PAGEBBOX Wenn der Druckertreiber bereit ist, %%PageBoundingBox: in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%PageBoundingBox-Kommentar des Treibers.
PSINJECT_PAGENUMBER Wenn der Druckertreiber bereit ist, %%Page: in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den % %Page:- Kommentar des Treibers.
PSINJECT_PAGEORDER Wenn der Druckertreiber bereit ist, %%PageOrder: in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%PageOrder:- Kommentar des Treibers.
PSINJECT_PAGES Wenn der Druckertreiber bereit ist, %%Pages:nnn in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%Pages:nnn-Kommentar des Treibers.
PSINJECT_PAGESATEND Wenn der Druckertreiber bereit ist, %%Pages:(atend) in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%Pages:(atend)-Kommentar des Treibers.
PSINJECT_PAGETRAILER Nachdem der Druckertreiber %%PageTrailer an den Datenstrom gesendet hat.
PSINJECT_PLATECOLOR Wenn der Druckertreiber bereit ist, %%PlateColor:color in den Datenstrom einzufügen. Die von IPrintOemPS::Command bereitgestellten Daten ersetzen den %%PlateColor:color-Kommentar des Treibers.
PSINJECT_PSADOBE Bevor der Druckertreiber %! sendet PS-Adobe zum Datenstrom.
PSINJECT_SHOWPAGE Bevor der Druckertreiber einen showpage-Befehl sendet.
PSINJECT_TRAILER Nachdem der Druckertreiber %%Trailer an den Datenstrom gesendet hat.
PSINJECT_VMRESTORE Nachdem der Druckertreiber einen Wiederherstellungsbefehl gesendet hat. (Die IPrintOemPS::Command-Methode muss alle Ressourcen, die sie nach der letzten PSINJECT_VMSAVE gesendet hat, erneut senden, wenn die Ressourcen wiederverwendet werden.)
PSINJECT_VMSAVE Bevor der Druckertreiber einen Speicherbefehl sendet. (Siehe PSINJECT_VMRESTORE.)

Die IPrintOemPS::Command-Methode muss IPrintOemDriverPS::D rvWriteSpoolBuf aufrufen, um die PostScript-Befehle einzufügen.

Wenn IPrintOemPS::Command-Methoden von mehreren Rendering-Plug-Ins exportiert werden, werden die Methoden in der Reihenfolge aufgerufen, in der die Plug-Ins für die Installation angegeben werden, jedes Mal, wenn der Druckertreiber einen Einschleuspunkt erreicht. Es gelten die folgenden Regeln:

  • Wenn der Einschleuspunkt einer ist, für den die bereitgestellten Daten an die vom Druckertreiber bereitgestellten Daten angefügt werden, wird jedes Plug-In aufgerufen, und jedes Plug-In darf PostScript-Befehle anfügen.

  • Wenn der Einschleuspunkt einer ist, für den die bereitgestellten Daten die vom Druckertreiber bereitgestellten Daten ersetzen, werden die Plug-Ins aufgerufen, bis eine IPrintOemPS::Command-Methode ERROR_SUCCESS für dwResult bereitstellt. Es werden keine anderen Plug-Ins aufgerufen. Wenn alle Plug-Ins ERROR_NOT_SUPPORTED bereitstellen, werden die vom Treiber bereitgestellten Daten nicht ersetzt.

  • Wenn der Einschleuspunkt einer ist, für den die angegebenen Daten die vom Druckertreiber bereitgestellten Daten ersetzen, und wenn eine Anwendung die vom Treiber bereitgestellten Daten bereits mithilfe der POSTSCRIPT_INJECTION Drucker escape-Funktion ersetzt hat, werden keine Plug-Ins aufgerufen.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile prcomoem.h (include Prcomoem.h)