Freigeben über


IPrintOemPS::EnableDriver-Methode (prcomoem.h)

Die IPrintOemPS::EnableDriver-Methode ermöglicht ein Rendering-Plug-In für Pscript-, um einige Grafik-DDI-Funktionen zu verbinden.

Syntax

HRESULT EnableDriver(
  DWORD          DriverVersion,
  DWORD          cbSize,
  PDRVENABLEDATA pded
);

Parameter

DriverVersion

Vom Anrufer bereitgestellte Schnittstellenversionsnummer. Dieser Wert wird durch PRINTER_OEMINTF_VERSION in printoem.h definiert.

cbSize

Vom Aufrufer bereitgestellte Größe in Byte der Struktur, auf die durch pdedverwiesen wird.

pded

Aufrufer-bereitgestellter Zeiger auf eine DRVENABLEDATA--Struktur.

Rückgabewert

Die Methode muss einen der folgenden Werte zurückgeben:

Rückgabecode Beschreibung
S_OK Der Vorgang war erfolgreich.
E_FAIL Fehler beim Vorgang.
E_NOTIMPL Die Methode ist nicht implementiert.

Bemerkungen

Mit der IPrintOemPS::EnableDriver-Methode kann ein Rendering-Plug-In dieselben Arten von Vorgängen wie die DrvEnableDriver--Funktion ausführen, die von Druckergrafik-DLLs exportiert wird.

Wie die DrvEnableDriver--Funktion ist die IPrintOemPS::EnableDriver-Methode dafür verantwortlich, Adressen intern unterstützter Grafik-DDI-Funktionen bereitzustellen, die als Hooking-Funktionen bezeichnet werden. Sie kann auch andere einmalige Initialisierungsvorgänge ausführen. Im Gegensatz zur DrvEnableDriver--Funktion ist die Implementierung der IPrintOemPS::EnableDriver-Methode optional.

Wenn Sie IPrintOemPS::EnableDriverimplementieren, müssen Sie auch IPrintOemPS::D isableDriver-implementieren. Aktionen, die mit der früheren Methode begonnen wurden, müssen möglicherweise in der letztgenannten Methode abgeschlossen werden. Wenn z. B. ein großer Puffer in IPrintOemPS::EnableDriverzugeordnet ist, jedoch nicht in IPrintOemPS::D isableDriver, kann ein Speicherverlust auftreten.

Die Methode sollte die bereitgestellte DRVENABLEDATA Struktur ausfüllen und ein Array von DRVFN- Strukturen zuordnen. Es sollte das Array mit Zeigern auf Hooking-Funktionen zusammen mit winddi.h-definierten Indexwerten füllen, die die eingebundenen Grafik-DDI-Funktionen identifizieren.

Ein Rendering-Plug-In für Pscript5 kann eine Grafik-DDI-Funktion nur dann verbinden, wenn der Pscript5-Treiber die Funktion definiert. Die folgenden Grafik-DDI-Funktionen sind in Pscript5 und unidrv definiert und können daher eingebunden werden:

Wenn Sie eine benutzerdefinierte Hooking-Funktion bereitstellen, wird die entsprechende Grafik-DDI-Funktion des Treibers vorgebezahlt. Hooking-Funktionen können auch in die Grafik-DDI-Funktionen des Treibers zurückrufen. Weitere Informationen finden Sie unter Benutzerdefinierte Grafik-DDI-Funktionen.

Benutzerdefinierte Hooking-Funktionen verfügen über die gleichen Eingabe- und Ausgabeparameter wie die entsprechende Grafik-DDI-Funktion, mit einer Ausnahme: Grafik-DDI-Funktionen empfangen PDEV-Zeiger, angepasste Hookingfunktionen empfangen DEVOBJ Zeiger. Für diese Funktionen gibt es zwei Möglichkeiten, PDEV-Zeiger zu empfangen:

  1. Als Inhalt des dhpdev Mitglied einer SURFOBJ Struktur für die Zieloberfläche. Für die entsprechende angepasste Hooking-Funktion verweist die ziel-SURFOBJ-Struktur auf die dhpdev Member auf eine DEVOBJ-Struktur und muss bei Verweisen in den Typ PDEVOBJ umgestellt werden. Eine Beispiel-Grafik-DDI-Funktion ist DrvBitBlt.

  2. Als Eingabeargument für einen dhpdev Parameter. Die entsprechende benutzerdefinierte Hooking-Funktion muss diesen Eingabeparameter in den Typ PDEVOBJ umwandeln, wenn darauf verwiesen wird. Eine Beispiel-Grafik-DDI-Funktion ist DrvDitherColor.

Während eine Druckergrafik DLL die Adressen seiner DrvEnablePDEV, DrvDisablePDEVund DrvResetPDEV Funktionen in der DRVENABLEDATA-Struktur enthält, Ein Rendering-Plug-In für Pscript5 implementiert EnablePDEV-, DisablePDEV-und ResetPDEV als Methoden der IPrintOemPS--Schnittstelle und platziert ihre Adressen nicht in der DRVENABLEDATA-Struktur.

Wenn IPrintOemPS::EnableDriver 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.

Jede Grafik-DDI-Funktion kann durch ein Rendering-Plug-In eingebunden werden. Wenn mehrere Plug-Ins versuchen, dieselbe Grafik-DDI-Funktion zu verbinden, werden alle Hook-Outs nach dem ersten ignoriert.

Weitere Informationen zum Erstellen und Installieren von Rendering-Plug-Ins finden Sie unter Anpassen der Druckertreiber von Microsoft.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- prcomoem.h (einschließlich Prcomoem.h)