Veröffentlichen der Interfaces
Wichtig
Die moderne Druckplattform ist das bevorzugte Mittel von Windows, um mit Druckern zu kommunizieren. Wir empfehlen die Verwendung des Microsoft IPP-Treibers für die Posteingangsklasse zusammen mit Print Support Apps (PSA), um das Druckverhalten in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.
Weitere Informationen finden Sie unter Moderne Druckplattform und im Entwurfsleitfaden für die Druckunterstützungs-App.
Plug-ins erhalten in der Regel Instanzen von Objekten, die das Verhalten der Kerntreiber implementieren, über einen Mechanismus namens Publishing. Die Hilfsschnittstellen IPrintCoreHelper, IPrintCoreHelperPSund IPrintCoreHelperUni werden mit Hilfe desselben Modells veröffentlicht, mit ein paar kleinen Unterschieden.
Die folgenden Listen fassen die Reihenfolge zusammen, in der Objekte in der Benutzeroberfläche (UI) und in den Rendermodulen veröffentlicht werden, sowohl für Unidrv als auch für Pscript5. Für jedes der vier Module gibt die Nummer in der Liste die Reihenfolge an, in der ein Objekt veröffentlicht wird, und die genannten COM-Schnittstellen geben an, welche Schnittstellen das Objekt implementiert.
In jedem Modul sollte der Treiber nur eines der veröffentlichten Objekte behalten, indem er einen Zeiger speichert und die Methode AddRef für dieses Objekt aufruft. Nachdem das Plug-in den Verweis auf das Objekt gespeichert hat, sollte das Plug-in S_OK zurückgeben. Der Kerntreiber wird dann die Veröffentlichung von Schnittstellen einstellen. Dieses Modell unterscheidet sich nicht wesentlich von dem früheren Veröffentlichungsmechanismus.
Im UI-Kontext werden die Objekte in der Schnittstelle IPrintOemUI der Klasse veröffentlicht, deren Klassenkennung CLSID_OEMUI lautet. Im Renderkontext werden Objekte an die Schnittstellen IPrintOemPS oder IPrintOemUni veröffentlicht.
Die Objekte, die in den folgenden Listen mit einem Sternchen (*) gekennzeichnet sind, werden für die Schnittstelle IPrintOemPrintTicketProvider veröffentlicht.
Unidrv UI Modul Veröffentlichungsreihenfolge
IUnknown und *IPrintCoreHelper und IPrintCoreHelperUni
IUnknown und IPrintOemDriverUI
Unidrv Rendermodul Veröffentlichungsauftrag
IUnknown und IPrintCoreHelper und IPrintCoreHelperUni
IUnknown und IPrintOemDriverUni
Pscript5 UI-Modul Veröffentlichungsreihenfolge
IUnknown und *IPrintCoreHelper und IPrintCoreHelperPS
IUnknown und IPrintCoreUI2
IUnknown und IPrintOemDriverUI
Pscript5 Rendermodul Veröffentlichungsreihenfolge
IUnknown und IPrintCoreHelper und IPrintCoreHelperPS
IUnknown und IPrintCorePS2