IPrintOemUni::EnableDriver-Methode (prcomoem.h)
Mit der IPrintOemUni::EnableDriver--Methode kann ein Rendering-Plug-In für Unidrv- einige Grafik-DDI-Funktionen eingebunden werden.
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. |
Bemerkungen
Ein Rendering-Plug-In für Unidrv muss die IPrintOemUni::EnableDriver-Methode implementieren.
Mit der IPrintOemUni::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 IPrintOemUni::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 von IPrintOemUni::EnableDriver optional.
Wenn Sie IPrintOemUni::EnableDriverimplementieren, müssen Sie auch IPrintOemUni::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 IPrintOemUni::EnableDriverzugeordnet ist, jedoch nicht in IPrintOemUni::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 Unidrv kann eine Grafik-DDI-Funktion nur dann verbinden, wenn der Unidrv-Treiber die Funktion definiert. Die folgenden Grafik-DDI-Funktionen sind in Unidrv und/oder Pscript5 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 Custom Graphics DDI Functions.
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. Es gibt zwei Möglichkeiten für Grafik-DDI-Funktionen zum Empfangen von PDEV-Zeigern:
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.
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.
Beachten Sie, dass während ein Druckergrafik DLL- die Adressen seiner DrvEnablePDEV, DrvDisablePDEVund DrvResetPDEV Funktionen in der DRVENABLEDATA-Struktur enthält, ein Rendering-Plug-In exportiert explizit EnablePDEV-, DisablePDEV-und ResetPDEV- als Methoden der IPrintOemUni Schnittstelle und platziert ihre Adressen nicht in der DRVENABLEDATA-Struktur.
Wenn IPrintOemUni::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 nur 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) |