Modifica di una pagina della finestra delle proprietà fornita dal driver
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.
Per altre informazioni, vedere Piattaforma di stampa moderna e guida alla progettazione dell'app di supporto per la stampa.
Un plug-in dell'interfaccia utente può modificare le pagine della finestra delle proprietà fornite da Unidrv o Pscript5 implementando il metodo IPrintOemUI::CommonUIProp e una funzione di callback.
Il plug-in dell'interfaccia utente usa il metodo IPrintOemUI::CommonUIProp per specificare un set di elementi di opzione che CPSUI può aggiungere, rimuovere o sostituire all'interno della pagina Impostazioni dispositivo della finestra delle proprietà della stampante o le pagine Layout, Carta/Qualità e Avanzate della finestra delle proprietà del documento.
La funzione di callback, di tipo OEMCUIPCALLBACK, viene usata per elaborare le modifiche dell'utente per gli elementi di opzione personalizzati.
Aggiunta di elementi di opzione
Il plug-in dell'interfaccia utente deve descrivere i nuovi elementi di opzione inserendoli in una matrice di strutture OPTITEM fornite dal driver. La DLL dell'interfaccia della stampante del driver chiama il metodo IPrintOemUI::CommonUIProp del plug-in dell'interfaccia utente due volte. La prima volta che viene chiamato il metodo, deve restituire il numero di strutture OPTITEM necessarie. Il driver alloca spazio per una matrice OPTITEM e descrive la matrice in una struttura OEMCUIPPARAM. Il driver chiama nuovamente IPrintOemUI::CommonUIProp , fornendo l'indirizzo della struttura OEMCUIPPARAM, in modo che il metodo possa caricare le strutture OPTITEM con descrizioni delle opzioni.
Rimozione di elementi di opzione
Per rimuovere un'opzione da una pagina della finestra delle proprietà fornita da Unidrv o Pscript5, il metodo IPrintOemUI::CommonUIProp del plug-in dell'interfaccia utente può attraversare la matrice di strutture OPTITEM a cui punta la struttura OEMCUIPPARAM. Per ogni opzione che si desidera rimuovere dalla finestra delle proprietà, è possibile impostare il flag di OPTIF_HIDE della struttura OPTITEM. Si noti che questa opzione non viene effettivamente rimossa. Nasconde l'opzione dall'utente in modo che l'utente non possa modificare il valore predefinito.
Sostituzione di elementi di opzione
Per sostituire un'opzione in una pagina della finestra delle proprietà fornita da Unidrv o Pscript, è necessario seguire le istruzioni illustrate nella sezione Precedente Rimozione di elementi opzione per rimuovere l'elemento di opzione esistente e quindi seguire le istruzioni nella sezione Aggiunta di elementi opzione precedente per creare un nuovo elemento di opzione per sostituire quello precedente.
Gestione delle modifiche ai valori di opzione personalizzati
Per elaborare le modifiche dell'utente agli elementi di opzione personalizzati, è necessario fornire almeno una funzione di callback. È possibile specificare una singola funzione di callback che gestisce le opzioni sia per la finestra delle proprietà del documento che per la finestra delle proprietà della stampante oppure è possibile specificare una funzione separata per ognuna. Questi callback sono di tipo OEMCUIPCALLBACK.
Una funzione di callback viene specificata inserendo il relativo indirizzo in una struttura OEMCUIPPARAM. Il plug-in dell'interfaccia utente riceve l'indirizzo di questa struttura come input per il metodo IPrintOemUI::CommonUIProp.
Quando un utente apre la finestra delle proprietà della stampante o la finestra delle proprietà del documento e modifica le opzioni, CPSUI chiama la DLL dell'interfaccia della stampante del driver della stampante. Questa DLL elabora i valori di opzione contenuti nelle proprie strutture OPTITEM . Quindi, per ogni plug-in dell'interfaccia utente, la DLL dell'interfaccia della stampante chiama la funzione di callback tipizzata OEMCUIPCALLBACK specificata in precedenza da IPrintOemUI::CommonUIProp.