Partager via


Contrôle par le pilote et contrôle par l’appareil

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.

Si le contrôle de gestion des couleurs est fourni par le pilote ou par le matériel de l’imprimante, la DLL graphique de l’imprimante du pilote doit définir l’indicateur GCAPS ICM dans la structure DEVINFO.

Le pilote doit indiquer la prise en charge de l’espace de couleur CMJN (le cas échéant), comme décrit dans Prise en charge de l’espace de couleur CMJN.

Les DLL graphiques de l’imprimante doivent définir les trois fonctions suivantes :

GDI appelle la fonction DrvIcmCreateColorTransform pour fournir au pilote des profils ICC pour le travail d’impression. Compte tenu de ces profils, la fonction peut créer une transformation de couleurs interne à utiliser pour corriger des informations de couleurs. Une transformation de couleur est un mappage spécifique au pilote, défini en interne, d’un espace de couleur à un autre. La fonction renvoie un handle à la transformation, que stocke GDI.

Les indicateurs dans les structures BRUSHOBJ et XLATEOBJ indiquent si la gestion des couleurs est effectuée par le système (ou l’application) ou par le pilote (ou l’appareil). Dans chaque fonction de dessin DDI graphique implémentée par le pilote qui reçoit l’une de ces structures (ou les deux), les indicateurs doivent être vérifiés. Si le système ou l’application gère actuellement la gestion des couleurs, le pilote ou l’appareil ne doit pas le faire. Si la gestion des couleurs par le pilote ou ou l’appareil est activée, la fonction DDI graphique doit appeler BRUSHOBJ_hGetColorTransform ou XLATEOBJ_hGetColorTransform (ou les deux) pour obtenir un handle à utiliser pour la transformation de la couleur. Le handle sera celui fourni par le pilote en réponse à un appel précédent à sa fonction DrvIcmCreateColorTransform.

Prise en charge de la gestion des couleurs propriétaires

Pour certains appareils, la gestion des couleurs propriétaires est effectuée (par le pilote ou par le matériel) indépendamment de l’activation de l’ICM. Les pilotes de ces appareils ne doivent pas autoriser la correction des couleurs si les données d’image reçues ont déjà été corrigées. Des données corrigées au préalable peuvent être reçues si :

  • Une application a corrigé la couleur de l’image « en dehors du DC » (consultez la documentation du SDK Microsoft Windows).

  • La gestion des couleurs est gérée par le système.

Pour l’un de ces scénarios, l’indicateur BR_ HOST_ICM dans le membre flColorType de BRUSHOBJ et l’indicateur XO_HOST_ICM dans le membre flXlate de XLATEOBJ seront définis. Ces indicateurs peuvent être définis même si le membre dmICMMethod de DEVMODEW est DMICMMETHOD_NONE.