Partager via


Accès aux interfaces Plug-In à partir de pilotes d’imprimante

Important

Nous vous recommandons d’utiliser le pilote de classe de boîte de réception IPP 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’imprimante.

Pour plus d’informations, consultez le Guide de conception de l’application de support d’impression.

Si un plug-in d’interface utilisateur ou un plug-in de rendu est installé, le pilote d’imprimante (Unidrv ou Pscript5) utilise la séquence d’appel suivante pour obtenir l’accès à l’interface IPrintOemUI, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemUni3, IPrintOemPS ou IPrintOemPS2 COM du plug-in :

  1. Le pilote appelle LoadLibrary pour charger la DLL du plug-in, ce qui provoque un appel à la fonction du DllMain plug-in.

  2. Le pilote appelle la fonction du DllGetClassObject plug-in, qui retourne un pointeur vers l’interface IClassFactory du plug-in.

  3. Le pilote appelle la méthode CreateInstance de l’interface IClassFactory, en spécifiant un identificateur d’interface de IID_IUnknown, ce qui amène la méthode à créer une instance de l’interface IPrintOemUI, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemUni3, IPrintOemPS ou IPrintOemPS2 du plug-in et à retourner un pointeur vers l’interface IUnknown de l’instance.

  4. Le pilote appelle la méthode QueryInterface de l’interface IUnknown pour déterminer quelle version de l’interface IPrintOemUI, IPrintOemUI2, IPrintOemUni2, IPrintOemUni2, IPrintOemUni3, IPrintOemPS ou IPrintOemPS2 est prise en charge par le plug-in et pour recevoir un pointeur vers l’interface prise en charge.

  5. Le pilote appelle la méthode de l’interface du PublishDriverInterface plug-in pour rendre l’interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS ou IPrintCorePS2 du pilote disponible pour le plug-in.

  6. Si le plug-in a implémenté l’interface IPrintOemUni , le pilote appelle IPrintOemUni::GetImplementedMethod pour déterminer les méthodes d’interface qui ont été implémentées. De même, si le plug-in a implémenté l’interface IPrintOemUni2 , le pilote appelle IPrintOemUni2::GetImplementedMethod dans le même but.