Publication des interfaces
Important
La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.
Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.
Les plug-ins reçoivent généralement des instances d’objets qui implémentent le comportement dans les pilotes de base par un mécanisme appelé publication. Les interfaces d’assistance IPrintCoreHelper, IPrintCoreHelperPS et IPrintCoreHelperUni sont publiées par le biais de ce même modèle, avec quelques différences mineures.
Les listes suivantes résument l’ordre dans lequel les objets sont publiés dans les modules d’interface utilisateur (UI) et de rendu, pour Unidrv et Pscript5. Pour chacun des quatre modules, le numéro dans la liste indique l’ordre dans lequel un objet est publié, et les interfaces COM nommées indiquent les interfaces que l’objet implémente.
Dans un module donné, le pilote ne doit conserver qu’un seul des objets publiés en sauvegardant un pointeur et en appelant la méthode AddRef sur cet objet. Après que le plug-in ait stocké la référence à l’objet, le plug-in doit retourner S_OK. Le pilote de base cessera alors de publier les interfaces. Ce modèle n’est pas très différent du mécanisme de publication précédent.
Dans le contexte UI, les objets sont publiés dans l’interface IPrintOemUI sur la classe dont l’identificateur de classe est CLSID_OEMUI. Dans le contexte de rendu, les objets sont publiés dans les interfaces IPrintOemPS ou IPrintOemUni.
Les objets marqués d’un astérisque (*) dans les listes suivantes sont publiés dans l’interface IPrintOemPrintTicketProvider.
Ordre de publication du module UI Unidrv
IUnknown et *IPrintCoreHelper et IPrintCoreHelperUni
IUnknown et IPrintOemDriverUI
Ordre de publication du module de rendu Unidrv
IUnknown et IPrintCoreHelper et IPrintCoreHelperUni
IUnknown et IPrintOemDriverUni
Ordre de publication du module UI Pscript5
IUnknown et *IPrintCoreHelper et IPrintCoreHelperPS
IUnknown et IPrintCoreUI2
IUnknown et IPrintOemDriverUI
Ordre de publication du module de rendu Pscript5
IUnknown et IPrintCoreHelper et IPrintCoreHelperPS
IUnknown et IPrintCorePS2