Verwenden von CPSUI mit Druckertreibern
Wichtig
Die Modern Print-Plattform ist die von Windows bevorzugte Methode zur Kommunikation mit Druckern. 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 Modern Print-Plattform und der Anleitung zum Design der Print-Support-App.
Der Druckspooler verwendet CPSUI in Verbindung mit den DLLs der Druckerschnittstelle, um Eigenschaftenblattseiten für Druckdokumente und Druckergeräte zu erstellen. Die folgenden Schritte sind beteiligt, wenn eine Anwendung (z. B. Microsoft Word) ein Eigenschaftenblatt für ein Druckdokument anzeigt:
Die Anwendung ruft die DocumentProperties-Funktion des Druckspoolers auf und gibt den Drucker an, auf dem das Dokument gedruckt werden soll.
Der Druckerspooler ruft die Einstiegspunktfunktion von CPSUI, CommonPropertySheetUI, auf und gibt eine interne Rückruffunktion vom Typ PFNPROPSHEETUIan.
CPSUI ruft die PFNPROPSHEETUI-Typ-Rückruffunktion des Spoolers auf.
Die Rückruffunktion des Spoolers vom Typ PFNPROPSHEETUI ruft die Funktion ComPropSheet on CPSUI (mit einem Funktionscode CPSFUNC_ADD_PFNPROPSHEETUI auf, um CPSUI die Adresse der Funktion DrvDocumentPropertySheets der entsprechenden Druckerschnittstellen-DLL mitzuteilen.
CPSUI ruft die DrvDocumentPropertySheets-Funktion der Druckerschnittstelle auf.
Die Funktion DrvDocumentPropertySheets der Druckerschnittstellen-DLL ruft die Funktion ComPropSheet von CPSUI auf (normalerweise mit einem Funktionscode CPSFUNC_ADD_PCOMPROPSHEETUI), um CPSUI Seitenbeschreibungen für Eigenschaftenblätter und Rückrufe für Seitenereignisse bereitzustellen.
Die Funktion ComPropSheet von CPSUI ruft CreatePropertySheetPage(beschrieben in der Windows SDK-Dokumentation) auf, um die von der Druckerschnittstellen-DLL angegebenen Eigenschaftenblattseiten zu erstellen. CPSUI ruft dann PropertySheet auf, um die Eigenschaftenblattseiten anzuzeigen.
Diese Schritte werden im folgenden Diagramm veranschaulicht:
Während der Anwendungsbenutzer die Eigenschaftenblattseiten durchläuft und Optionswerte ändert, benachrichtigt das Betriebssystem CPSUI von Seitenereignissen und CPSUI wiederum den von der Druckerschnittstellen-DLL bereitgestellten Seitenereignisrückruf. Der Seitenereignisrückruf verarbeitet Seitenereignisse und speichert bei Bedarf neu ausgewählte Optionswerte intern.
Wenn der Benutzer das Eigenschaftenblatt durch Klicken auf die Schaltfläche "Ok " oder "Abbrechen " schließt, zerstört CPSUI die Seiten und bewirkt, dass die CommonPropertySheetUI-Funktion zum Druckspooler zurückkehrt, der dann die Steuerung an die Anwendung zurückgibt.
Wenn eine Anwendung anstelle eines Druckdokuments ein Eigenschaftenblatt für ein Druckergerät anzeigt, werden dieselben Schritte ausgeführt, mit der Ausnahme, dass die Anwendung die Funktion PrinterProperties es Spoolers aufruft und der Spooler die Adresse der Funktion DrvDevicePropertySheets der Druckerschnittstellen-DLL an CPSUI übergibt.