IPrintOemPS::EnableDriver-Methode (prcomoem.h)
Mit der IPrintOemPS::EnableDriver-Methode kann ein Rendering-Plug-In für Pscript einige DDI-Grafikfunktionen einbinden.
Syntax
HRESULT EnableDriver(
DWORD DriverVersion,
DWORD cbSize,
PDRVENABLEDATA pded
);
Parameter
DriverVersion
Vom Aufrufer bereitgestellte Schnittstellenversionsnummer. Dieser Wert wird durch PRINTER_OEMINTF_VERSION in printoem.h definiert.
cbSize
Vom Aufrufer bereitgestellte Größe der Struktur, auf die pded verweist, in Bytes.
pded
Vom 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 wurde erfolgreich ausgeführt. |
E_FAIL | Fehler beim Vorgang |
E_NOTIMPL | Die Methode ist nicht implementiert. |
Hinweise
Die IPrintOemPS::EnableDriver-Methode ermöglicht es einem Rendering-Plug-In, dieselben Arten von Vorgängen wie die DrvEnableDriver-Funktion auszuführen, die von Druckergrafik-DLLs exportiert wird.
Wie die DrvEnableDriver-Funktion ist die IPrintOemPS::EnableDriver-Methode für die Bereitstellung von Adressen intern unterstützter Grafik-DDI-Funktionen zuständig, die als Hookfunktionen bezeichnet werden. Es können auch andere einmalige Initialisierungsvorgänge ausgeführt werden. Im Gegensatz zur DrvEnableDriver-Funktion ist die Implementierung der IPrintOemPS::EnableDriver-Methode optional.
Wenn Sie IPrintOemPS::EnableDriver implementieren, 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::EnableDriver zugeordnet wird, die Zuordnung in IPrintOemPS::D isableDriver jedoch nicht aufgehoben wird, kann es zu einem Speicherverlust kommen.
Die -Methode sollte die angegebene DRVENABLEDATA-Struktur füllen und ein Array von DRVFN-Strukturen zuordnen. Es sollte das Array mit Zeigern auf Hookingfunktionen zusammen mit von 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 einbinden, wenn der Pscript5-Treiber die Funktion definiert. Die folgenden Grafik-DDI-Funktionen sind in Pscript5 und oder Unidrv definiert und können daher eingebunden werden:
Wenn Sie eine benutzerdefinierte Hookingfunktion bereitstellen, wird die entsprechende Grafik-DDI-Funktion des Treibers vorzeitig entfernt. Hooking-Funktionen können auch die Grafik-DDI-Funktionen des Treibers zurückrufen. Weitere Informationen finden Sie unter Angepasste Grafik-DDI-Funktionen.
Angepasste Hookingfunktionen verfügen über die gleichen Eingabe- und Ausgabeparameter wie die entsprechende Grafik-DDI-Funktion, mit einer Ausnahme: Wenn Grafik-DDI-Funktionen PDEV-Zeiger empfangen, erhalten benutzerdefinierte Hookingfunktionen DEVOBJ-Zeiger . Es gibt zwei Möglichkeiten, wie diese Funktionen PDEV-Zeiger empfangen können:
Als Inhalt des dhpdev-Elements einer SURFOBJ-Struktur für die Zieloberfläche. Für die entsprechende angepasste Hookingfunktion zeigt der dhpdev-Member der SURFOBJ-Zielstruktur auf eine DEVOBJ-Struktur und muss in den Typ PDEVOBJ umgewandelt werden, wenn darauf verwiesen wird. Ein Beispiel für grafik-DDI-Funktion ist DrvBitBlt.
Als Eingabeargument für einen dhpdev-Parameter . Die entsprechende benutzerdefinierte Hookingfunktion muss diesen Eingabeparameter in den Typ PDEVOBJ umwandeln, wenn auf ihn verwiesen wird. Ein Beispiel für grafik-DDI-Funktion ist DrvDitherColor.
Während eine Druckergrafik-DLL die Adressen ihrer Funktionen DrvEnablePDEV, DrvDisablePDEV und DrvResetPDEV in der DRVENABLEDATA-Struktur enthält, implementiert ein Rendering-Plug-In für Pscript5 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 integrieren, werden alle Hookouts 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 |
Kopfzeile | prcomoem.h (include Prcomoem.h) |