Identificatori di interfaccia per i driver della stampante

Importante

È consigliabile 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 stampanti.

Per altre informazioni, vedere la guida alla progettazione dell'app di supporto stampa.

Un set di GUID è definito in prcomoem.h. Ognuno di questi GUID è un identificatore di interfaccia per una delle interfacce COM usate per la comunicazione tra i driver della stampante (Unidrv e Pscript5) e i plug-in.

Per Windows 2000 e Windows XP, sono definiti i GUID seguenti:

IID_IPrintOemUI IID_IPrintOemUI2 (plug-in interfaccia utente Pscript5 in Windows XP e versioni successive del sistema operativo Windows) IID_IPrintOemDriverUIIID_IPrintCoreUI2 (plug-in interfaccia utente Pscript5 in Windows XP e versioni successive del sistema operativo Windows) IID_IPrintOemUni IID_IPrintOemUni2 (plug-in di rendering unidrv in Windows XP e versioni successive del sistema operativo Windows) IID_IPrintOemUni3 (Plug-in di rendering unidrv in Windows Vista e versioni successive del sistema operativo Windows) IID_IPrintOemDriverUniIID_IPrintOemPS IID_IPrintOemPS2(plug-in di rendering Pscript5 in Windows XP e versioni successive del sistema operativo Windows) IID_IPrintOemDriverPS IID_IPrintCorePS2 (plug-in di rendering Pscript5 in Windows XP e versioni successive del sistema operativo Windows) Ogni GUID identifica una versione di un'interfaccia. Se viene definita una nuova versione di un'interfaccia, viene aggiunto un nuovo GUID all'elenco.

I plug-in dell'interfaccia utente e i plug-in di rendering devono identificare le versioni dell'interfaccia supportate. Il driver della stampante (Unidrv o Pscript5) chiama un metodo IUnknown::QueryInterface (descritto nella documentazione di Windows SDK), specificando un identificatore di interfaccia come input. Se il plug-in supporta la versione specificata, il metodo deve restituire un puntatore all'interfaccia insieme a uno stato restituito di S_OK. In caso contrario, deve restituire E_NOINTERFACE. Il driver inizia con l'identificatore dell'interfaccia per la versione più recente e continua a chiamare QueryInterface con identificatori di versione precedenti fino a quando il metodo restituisce S_OK o il driver esaurisce l'elenco di identificatori di versione.

Analogamente, Unidrv e Pscript5 forniscono metodi IUnknown::QueryInterface per le interfacce COM IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS o IPrintCorePS2. I plug-in devono chiamare il metodo QueryInterface dell'interfaccia appropriata per determinare la versione dell'interfaccia supportata dal driver e ricevere un puntatore dell'interfaccia.