Pubblicazione delle interfacce
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.
I plug-in ricevono in genere istanze di oggetti che implementano il comportamento nei driver principali da un meccanismo denominato pubblicazione. Le interfacce helper IPrintCoreHelper, IPrintCoreHelperPS e IPrintCoreHelperUni vengono pubblicate con lo stesso modello, con alcune piccole differenze.
Gli elenchi seguenti riepilogano l'ordine in cui gli oggetti vengono pubblicati nell'interfaccia utente e nei moduli di rendering, sia per Unidrv che per Pscript5. Per ognuno dei quattro moduli, il numero nell'elenco indica l'ordine in cui viene pubblicato un oggetto e le interfacce COM denominate indicano quali interfacce implementano l'oggetto.
In un determinato modulo, il driver deve mantenere solo uno degli oggetti pubblicati salvando un puntatore e chiamando il metodo AddRef su tale oggetto. Dopo che il plug-in archivia il riferimento all'oggetto, il plug-in deve restituire S_OK. Il driver principale interromperà quindi la pubblicazione delle interfacce. Questo modello non è significativamente diverso dal meccanismo di pubblicazione precedente.
Nel contesto dell'interfaccia utente gli oggetti vengono pubblicati nell'interfaccia IPrintOemUI nella classe il cui identificatore di classe è CLSID_OEMUI. Nel contesto di rendering, gli oggetti vengono pubblicati nelle interfacce IPrintOemPS o IPrintOemUni .
Gli oggetti contrassegnati con un asterisco (*) negli elenchi seguenti vengono pubblicati nell'interfaccia IPrintOemPrintTicketProvider .
Ordine di pubblicazione del modulo dell'interfaccia utente unidrv
IUnknown e *IPrintCoreHelper e IPrintCoreHelperUni
IUnknown e IPrintOemDriverUI
Ordine di pubblicazione del modulo di rendering unidrv
IUnknown e IPrintCoreHelper e IPrintCoreHelperUni
IUnknown e IPrintOemDriverUni
Ordine di pubblicazione del modulo dell'interfaccia utente Pscript5
IUnknown e *IPrintCoreHelper e IPrintCoreHelperPS
IUnknown e IPrintCoreUI2
IUnknown e IPrintOemDriverUI
Ordine di pubblicazione del modulo di rendering Pscript5
IUnknown e IPrintCoreHelper e IPrintCoreHelperPS
IUnknown e IPrintCorePS2