Accès aux interfaces du pilote d'imprimante à partir des plug-ins
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 les articles Plateforme d’impression moderne et Guide de conception des applications de support d’impression.
Si un plug-in appelle des méthodes qui appartiennent aux interfaces COM IPrintOemDriverUI, IPrintCoreHelperPS, IPrintCoreHelperUni, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS ou IPrintCorePS2 fournies par le pilote, il doit obtenir un pointeur d’interface auprès du pilote comme suit :
Le plug-in doit implémenter la méthode PublishDriverInterface de l’interface IPrintOemUI, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemPS ou IPrintOemPS2.
Lorsque le pilote (Unidrv ou Pscript5) appelle la méthode PublishDriverInterface du plug-in, il fournit un pointeur vers l’interface IUnknown de l'instance IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS ou IPrintCorePS2.
Le plug-in doit utiliser le pointeur d’interface IUnknown pour appeler IUnknown::QueryInterface, en spécifiant l’identifiant d’interface qui représente la version souhaitée de l’interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS ou IPrintCorePS2. (Pour plus d’informations, consultez Identifiants d’interface pour les pilotes d’imprimante.)
Si le plug-in spécifie un identifiant d’interface représentant une version d’interface prise en charge par le pilote, QueryInterface renvoie un pointeur vers l’interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS ou IPrintCorePS2. Notez que le pilote appelle la méthode AddRef de l’interface (décrite dans la documentation du SDK Windows) avant de renvoyer le pointeur d’interface vers le plug-in. Le plug-in doit enregistrer ce pointeur pour l’utiliser ultérieurement pour appeler des méthodes d’interface.
Lorsque le pointeur d'interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS ou IPrintCorePS2 n'est plus nécessaire, le plug-in doit appeler la méthode Release de l'interface (décrite dans la documentation sur le SDK Windows).
Pour que les plug-ins utilisent la nouvelle interface Windows Vista IPrintCoreHelperPS ou IPrintCoreHelperUni, le plug-in doit ajouter la prise en charge de OEMGI_GETREQUESTEDHELPERINTERFACES dans sa méthode IPrintOemUI::GetInfo, IPrintOemPS::GetInfo ou IPrintOemUni::GetInfo.