Ändern einer vom Treiber bereitgestellten Eigenschaftenseite
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.
Ein UI-Plug-in kann mit Unidrv oder Pscript5 gelieferte Eigenschaftenseiten durch Implementierung der Methode IPrintOemUI::CommonUIProp und einer Callback-Funktion ändern.
Das UI-Plugin verwendet die Methode IPrintOemUI::CommonUIProp, um eine Reihe von Optionselementen festzulegen, die CPSUI entweder auf der Seite Geräteeinstellungen der Eigenschaftsseite des Druckers oder auf den Seiten Layout, Papier/Qualität und Erweitert der Dokumenteneigenschaftsseite hinzufügen, entfernen oder ersetzen kann.
Die Callback-Funktion vom Typ OEMCUIPCALLBACK wird verwendet, um Änderungen des Benutzers an angepassten Optionseinträgen zu verarbeiten.
Hinzufügen von Optionselementen
Ihr UI-Plugin muss neue Optionen beschreiben, indem es sie in einem Array von OPTITEM-Strukturen ablegt, die vom Treiber bereitgestellt werden. Die Druckerschnittstellen-DLL des Treibers ruft die Methode IPrintOemUI::CommonUIProp des UI-Plug-Ins zweimal auf. Beim ersten Aufruf der Methode sollte sie die Anzahl der benötigten OPTITEM-Strukturen zurückgeben. Der Treiber weist Platz für ein OPTITEM-Array zu und beschreibt das Array in einer OEMCUIPPARAM Struktur. Der Treiber ruft IPrintOemUI::CommonUIProp erneut auf und liefert die Adresse der OEMCUIPPARAM-Struktur, damit die Methode die OPTITEM-Strukturen mit den Optionsbeschreibungen laden kann.
Entfernen von Optionselementen
Um eine Option von einer Eigenschaftenseite zu entfernen, die von Unidrv oder Pscript5 bereitgestellt wird, kann die IPrintOemUI::CommonUIProp-Methode Ihres UI-Plug-Ins das Array der OPTITEM-Strukturen durchlaufen, auf die die OEMCUIPPARAM-Struktur zeigt. Für jede Option, die Sie aus der Eigenschaftsseite entfernen möchten, können Sie in der OPTITEM-Struktur das Flag OPTIF_HIDE festlegen. (Beachten Sie, dass die Option dadurch nicht entfernt wird, sondern vor dem Benutzer verborgen wird, so dass der Benutzer den Standardwert nicht ändern kann).
Ersetzen von Optionselementen
Um eine Option in einer Eigenschaftenseite zu ersetzen, die von Unidrv oder Pscript bereitgestellt wird, sollten Sie die Anweisungen im vorangegangenen Abschnitt Optionseinträge entfernen befolgen, um den vorhandenen Optionseintrag zu entfernen, und dann die Anweisungen im vorangegangenen Abschnitt Optionseinträge hinzufügen befolgen, um einen neuen Optionseintrag zu erstellen, der den alten ersetzt.
Behandlung von Änderungen an angepassten Optionswerten
Um Änderungen des Benutzers an angepassten Optionswerten zu verarbeiten, müssen Sie mindestens eine Callback-Funktion bereitstellen. Sie können entweder eine einzige Callback-Funktion angeben, die Optionen sowohl für das Dokumenteneigenschaftsblatt als auch für die Druckereigenschaftsseite behandelt, oder Sie können für jede Funktion eine eigene angeben. Diese Callbacks sind vom Typ OEMCUIPCALLBACK.
Eine Callback-Funktion wird angegeben, indem ihre Adresse in einer OEMCUIPPARAM-Struktur abgelegt wird. Das UI-Plugin erhält die Adresse dieser Struktur als Eingabe für seine IPrintOemUI::CommonUIProp Methode.
Wenn ein Benutzer die Eigenschaftsseite des Druckers oder des Dokuments öffnet und die Optionen ändert, ruft CPSUI die Druckerschnittstellen-DLL des Druckertreibers auf. Diese DLL verarbeitet Optionswerte, die in ihren eigenen OPTITEM Strukturen enthalten sind. Dann ruft die Druckerschnittstellen-DLL für jedes UI-Plugin die Callback-Funktion vom Typ OEMCUIPCALLBACK auf, die zuvor durch IPrintOemUI::CommonUIProp festgelegt wurde.