Fonctions de gestion des profils

Fonctions de gestion des profils

Les fonctions d’API suivantes sont utiles dans la gestion des profils.

Fonction Description
AssociateColorProfileWithDeviceW Associe un profil de couleurs spécifié à un appareil spécifié.
[CreateProfileFromLogColorSpaceW] ((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) Convertit un espace de couleurs logique en profil d’appareil.
DisassociateColorProfileFromDeviceW Dissocie un profil de couleur spécifié avec un appareil spécifié sur un ordinateur spécifié.
EnumColorProfilesW Énumère tous les profils répondant aux critères d’énumération donnés.
GetColorDirectoryW Récupère le chemin d’accès du répertoire Windows COLOR sur un ordinateur spécifié.
GetDeviceGammaRamp Obtient la rampe gamma à partir de tableaux d’affichage en couleurs directes.
GetStandardColorSpaceProfileW Récupère le profil de couleur inscrit pour l’espace de couleurs standard spécifié.
InstallColorProfileW Installe un profil donné à utiliser sur un ordinateur spécifié. Le profil est également copié dans le répertoire COLOR.
RegisterCMMW Associe une valeur d’identification spécifiée à la bibliothèque de liens dynamiques du module de gestion des couleurs (DLL CMM) spécifiée. Lorsque cet ID apparaît dans un profil de couleur, Windows peut ensuite localiser la CMM correspondante afin de créer une transformation.
SetDeviceGammaRamp Définit la rampe gamma sur les tableaux d’affichage en couleur directe.
SetStandardColorSpaceProfileW Inscrit un profil spécifié pour un espace de couleurs standard donné. Le profil peut être interrogé à l’aide de GetStandardColorSpaceProfileW.
UninstallColorProfileW Supprime un profil de couleur spécifié d’un ordinateur spécifié. Les fichiers associés sont éventuellement supprimés du système.
Annuler l’inscriptionCMMW Dissocie une valeur d’ID spécifiée d’une bibliothèque de liens dynamiques de module de gestion des couleurs (DLL CMM).
WcsAssociateColorProfileWithDevice Associe un profil de couleur WCS spécifié à un appareil spécifié.
WcsCreateIccProfile Convertit un profil WCS en profil ICC.
WcsDisassociateColorProfileFromDevice Dissocie un profil de couleur WCS spécifié avec un appareil spécifié sur un ordinateur spécifié.
WcsEnumColorProfiles Énumère tous les profils de couleur qui répondent aux critères d’énumération dans l’étendue de gestion des profils spécifiée.
WcsEnumColorProfilesSize Retourne la taille, en octets, de la mémoire tampon requise par la fonction WcsEnumColorProfiles pour énumérer les profils de couleur.
WcsGetDefaultColorProfile Récupère le profil de couleur par défaut d’un appareil, ou le profil par défaut indépendant de l’appareil si l’appareil n’est pas spécifié.
WcsGetDefaultColorProfileSize Retourne la taille, en octets, du nom de profil de couleur par défaut d’un appareil, y compris la marque de fin NULL .
WcsGetDefaultRenderingIntent Récupère l’intention de rendu par défaut dans l’étendue de gestion de profil spécifiée.
WcsGetUsePerUserProfiles Détermine si l’utilisateur a choisi d’utiliser une liste d’association de profil par utilisateur pour l’appareil spécifié.
WcsOpenColorProfileW Crée un handle pour un profil de couleur spécifié.
WcsSetDefaultColorProfile Définit le nom de profil de couleur par défaut du type de profil spécifié dans l’étendue de gestion des profils spécifiée.
WcsSetDefaultRenderingIntent Définit l’intention de rendu par défaut dans l’étendue de gestion des profils spécifiée.
WcsSetUsePerUserProfiles Permet à l’utilisateur de spécifier s’il faut utiliser une liste d’association de profil par utilisateur pour l’appareil spécifié.

 

Fonctions de consommation de profil

Les API de consommation de profil sont celles dans ICM2 qui prennent des profils XML ICC ou WCS, des descripteurs de profil ou des intentions de rendu en tant que paramètres, ainsi qu’un ensemble de nouvelles API pour la prise en charge des profils WCS pour le code de gestion des couleurs des applications.

 

Fonctions de gestion des profils et des profils

Le workflow de gestion des profils est basé sur les API ICM2 existantes qui sont augmentées pour fournir des fonctionnalités supplémentaires pour la révision du code d’application.

Les profils contiennent des informations utilisées par les algorithmes de traitement des couleurs pour traduire la couleur entre différents espaces de couleurs. La gestion des profils permet d’interroger et de spécifier les profils utilisés à différentes étapes par le modèle de traitement des couleurs pour gérer la sortie des couleurs de différents périphériques avec diverses caractéristiques de couleur.

La gestion des profils fournit l’ensemble de fonctionnalités suivant :

 

  1. Installation de profils de couleur à utiliser dans le système.

 

  1. Association d’un ou de plusieurs profils de couleur installés à un appareil particulier.

 

  1. Choix d’un profil de couleur par défaut d’un type particulier parmi les profils disponibles pour une utilisation à une étape particulière du traitement des couleurs. Il peut s’agir d’un appareil parmi les profils qui lui sont associés, ou parmi les profils installés dans le système et non spécifiques à l’appareil.

 

  1. Énumération des profils de couleur qui répondent à des critères particuliers parmi les profils installés dans le système.

Les extensions de nom de fichier de profil WCS sont « .cdmp » pour les DPM, .camp » pour les camps et .gmmp » pour les MPM.

 

Gestion des profils par utilisateur et activation de l’exécution dans le contexte LUA

L’objectif de la conception décrite dans le document actif est le suivant :

 

  1. L’implémentation ICM2 héritée ne prend pas en charge la gestion des profils par utilisateur. Différents utilisateurs ne peuvent pas avoir leurs propres paramètres de profil. Dans Vista, l’infrastructure de gestion des profils WCS permet aux utilisateurs de configurer des paramètres de profil individuels pour la plupart des fonctionnalités.

 

  1. Toutes les API de gestion des profils ICM2 héritées modifient les paramètres à l’échelle du système et nécessitent des privilèges d’administration. Dans Windows Vista, tous les utilisateurs s’exécutent dans les paramètres de compte d’utilisateur avec privilèges minimum (LUA) la plupart du temps, et les administrateurs peuvent élever les privilèges de manière sélective pour exécuter des applications qui modifient les paramètres à l’échelle du système. Dans la gestion des profils WCS, tous les paramètres de profil par utilisateur sont configurables dans le contexte LUA. Les applications de gestion des profils peuvent s’exécuter en tant que paramètres LUA, ce qui augmente leur étendue d’utilisation et garantit que la sécurité du système n’est pas compromise.

La gestion des profils dans Vista offre les améliorations suivantes par rapport à l’infrastructure ICM2 héritée :

 

  1. Il permet l’association de profil avec les appareils, les paramètres de profil par défaut et l’énumération des profils dans l’étendue par utilisateur et à l’échelle du système.

 

  1. L’installation d’un profil reste à l’échelle du système et nécessite des privilèges d’administrateur. Cela est cohérent avec l’installation du profil pendant l’installation de l’appareil, car l’installation de l’appareil est à l’échelle du système et nécessite des privilèges administratifs.

 

La possibilité d’installer des appareils à partir du contexte LUA est particulière à ce qui est pris en charge pour cette classe d’appareil. Par exemple, dans Vista, il est possible d’effectuer l’installation de l’imprimante à partir du contexte LUA si l’utilisateur a obtenu des droits de copie de fichiers dans le magasin de pilotes par un administrateur de domaine à l’aide de stratégies de magasin de pilotes. L’infrastructure de gestion des profils de couleur n’a pas besoin de faire quelque chose de spécial à cet égard, car l’installation se produit dans le contexte du spouleur.

 

  1. La modification des paramètres de profil dans l’étendue par utilisateur peut être effectuée dans le contexte de LUA ; les modifications à l’échelle du système nécessitaient des privilèges d’administration. Les opérations de gestion des profils qui nécessitent la lecture des informations de configuration peuvent être effectuées dans le contexte de LUA pour les paramètres par utilisateur et à l’échelle du système.

L’étendue de gestion des profils indique l’étendue des opérations effectuées ; par utilisateur ou à l’échelle du système.

Pour chaque opération, il est indiqué si elle peut être effectuée à partir du contexte LUA. Si une opération ne peut pas être effectuée dans le contexte LUA, l’API de gestion de profil correspondante retourne un échec avec accès refusé. Les applications qui utilisent l’API, telles que la gestion des couleurs Panneau de configuration, peuvent permettre à l’utilisateur d’élever vers un contexte administratif (à l’aide d’OTS ou d’une interface utilisateur de consentement), puis d’appeler l’API à partir du contexte avec élévation de privilèges afin que l’opération réussisse.

Opération

Étendue de gestion des profils

Pré-condition

Post-condition

Exécutable dans le contexte LUA

${ROWSPAN2}profil $Install${REMOVE}$

À l’échelle du système

Profil copié, installé dans le système et disponible pour utilisation. Le profil est énumérable à l’échelle du système et dans l’étendue utilisateur actuel pour tous les utilisateurs.

Pendant l’installation du pilote de périphérique, régie par les stratégies d’installation du pilote. « NON » dans le cas contraire.

Utilisateur actuel

Non pris en charge

${ROWSPAN2}profil $Uninstall${REMOVE}$

À l’échelle du système

Le profil est installé dans le système

Profil désinstallé du système et éventuellement supprimé du magasin de profils. Le profil n’est plus disponible pour une utilisation et n’est énumérable dans aucune étendue.

Non

Utilisateur actuel

Non pris en charge

${ROWSPAN2}$Associate profil avec appareil${REMOVE}$

À l’échelle du système

Le profil est installé et est de type ICC ou CDMP

Le profil peut être utilisé avec l’appareil par tous les utilisateurs. Il est énumérable, dans l’étendue du système et également dans l’étendue de l’utilisateur actuel pour tous les utilisateurs, comme associés à l’appareil.

Non

Utilisateur actuel

Le profil est installé. Peu importe que le profil soit déjà associé à l’appareil dans l’étendue du système et qu’il soit de type ICC ou CDMP.

Le profil est disponible pour une utilisation avec l’appareil par l’utilisateur actuel. Il n’est énumérable que dans l’étendue de l’utilisateur actuel (sauf s’il existe également une association à l’échelle du système) comme associé à l’appareil.

Oui

${ROWSPAN2}$Disassociate profil de l’appareil${REMOVE}$

À l’échelle du système

Le profil est associé à l’appareil dans l’étendue du système et est de type ICC ou CDMP

Le profil n’est plus disponible pour l’utilisation (à l’exception des utilisateurs qui ont également cette association dans leur étendue utilisateur actuel). Il n’est pas énumérable dans l’étendue du système. Il peut toutefois être énumérable dans l’étendue de l’utilisateur actuel, pour un utilisateur qui a cette association dans son étendue.

Non

Utilisateur actuel

Le profil est associé à l’appareil dans l’étendue utilisateur actuel (qu’il soit associé ou non dans l’étendue du système) et est de type ICC ou CDMP.

Le profil n’est plus disponible pour l’utilisation, ou énumérable comme associé à l’appareil, par l’utilisateur actuel (sauf s’il est également associé dans l’étendue du système à l’appareil).

Oui

${ROWSPAN2}$Set profil pour un type (DMP ou ICC) par défaut pour un appareil${REMOVE}$

À l’échelle du système

Le profil est de type ICC ou CDMP

Le profil est utilisé par défaut, pour le type particulier avec l’appareil, pour tous les utilisateurs, à l’exception de ceux qui ont remplacé ce paramètre dans leur étendue utilisateur actuel. (Le profil est installé et associé à l’ensemble du système de l’appareil, si ce n’est pas déjà le cas.)

Non

Utilisateur actuel

Le profil est de type ICC ou CDMP

Le profil est utilisé par défaut pour le type particulier avec l’appareil dans le cas de l’utilisateur actuel, quelle que soit la valeur par défaut à l’échelle du système. (Le profil est installé et associé à l’appareil pour l’utilisateur actuel, si ce n’est pas déjà le cas.)

Oui, si le profil est déjà installé

${ROWSPAN2}$Set profil pour une combinaison de type (ICC, DMP, CAMP, GMMP) et de sous-type comme valeur par défaut globale${REMOVE}$

À l’échelle du système

Seuls les profils ICC et CDMP peuvent être associés à des appareils.

Le profil est utilisé par défaut pour le type particulier. Les utilisateurs peuvent remplacer ce paramètre dans l’étendue utilisateur actuel. (Le profil est installé, si ce n’est pas déjà le cas.)

Non

Utilisateur actuel

Seuls les profils ICC et CDMP peuvent être associés à des appareils.

Le profil est utilisé par défaut pour le type particulier de l’utilisateur actuel. (Le profil est installé, si ce n’est pas déjà le cas.)

Oui, si le profil est déjà installé.

${ROWSPAN2}$Erase le remplacement de l’utilisateur actuel pour un paramètre de profil par défaut particulier, afin que la valeur par défaut du système soit toujours utilisée (comme secours) même pour l’étendue utilisateur actuel.${REMOVE}$

À l’échelle du système

Non applicable

Utilisateur actuel

Même pour les requêtes utilisateur actuelles sur les paramètres de profil par défaut, les paramètres à l’échelle du système sont retournés pour utilisation.

Oui

${ROWSPAN2} $Enumerate les profils installés répondant à des critères particuliers (comme la classe d’appareil, la classe de profil, etc.) ${REMOVE}$

À l’échelle du système

Seuls les profils ICC et CDMP peuvent être associés et énumérés pour les appareils.

Les profils installés et qui répondent aux critères spécifiés dans l’étendue du système sont énumérés.

Oui

Utilisateur actuel

Seuls les profils ICC et CDMP peuvent être associés aux appareils et donc énumérés pour les appareils.

Les profils qui sont installés et qui répondent aux critères spécifiés dans l’étendue du système sont énumérés.

Oui

${ROWSPAN2}$Enumerate profils associés à un appareil particulier répondant à des critères particuliers, tels que la classe d’appareil et la classe de profil${REMOVE}$

À l’échelle du système

Seuls les profils ICC et CDMP peuvent être associés et énumérés pour les appareils.

Les profils associés à l’appareil dans l’étendue du système et qui répondent aux critères spécifiés dans l’étendue du système sont énumérés.

Oui

Utilisateur actuel

Seuls les profils ICC et CDMP peuvent être associés et énumérés pour les appareils.

Les profils disponibles comme associés à l’appareil dans l’étendue utilisateur actuel, qui inclut les associations à l’échelle du système et qui répondent aux critères spécifiés dans l’étendue de l’utilisateur actuel sont énumérés.

Oui

 

Les types de profils de couleur valides sont fournis par l’énumération COLORPROFILETYPE.

Les sous-types de profil de couleur valides sont fournis par l’énumération COLORPROFILESUBTYPE.

Les combinaisons de type de profil/sous-type valides sont indiquées dans le tableau suivant.

COLORPROFILETYPE

COLORPROFILESUBTYPE valide

Notes

Paramètre par défaut de l’appareil

Valeur par défaut globale

Utilisation prévue

Utilisation prévue

CPT_ICC

CPST_NONE

Obtenir/définir le profil ICC par défaut associé à un appareil

CPST_RGBWorkingSpace ou CPST_CustomWorkingSpace

Obtenez/définissez le profil ICC comme profil RVB global ou un profil d’espace de travail personnalisé. Consultez Remarque.

Les CPT_ICC et CPT_DMP COLORPROFILETYPE s’excluent mutuellement. Le profil de couleur par défaut que vous définissez pour un espace de travail donné (RVB ou Personnalisé) peut être un profil ICC ou un profil DMP, mais pas les deux.

CPT_DMP

CPST_NONE

Obtenir/définir le profil DMP par défaut associé à un appareil

CPST_RGBWorkingSpace ou CPST_CustomWorkingSpace

Obtenez/définissez le profil DMP en tant que profil RVB global ou espace de travail personnalisé. Consultez Remarque.

Les CPT_ICC et CPT_DMP COLORPROFILETYPE s’excluent mutuellement. Le profil de couleur par défaut que vous définissez pour un espace de travail donné (RVB ou Personnalisé) peut être un profil ICC ou un profil DMP, mais pas les deux.

 

Notes

Lorsque WcsSetDefaultColorProfile est appelé pour définir un profil DMP comme profil par défaut pour l’espace de travail RVB ou un espace de travail personnalisé, seul un profil DMP de type RGBVirtualDevice, LCD ou CRT est valide.

 

Lorsque WcsSetDefaultColorProfile est appelé pour définir un profil ICC comme profil par défaut pour l’espace de travail RVB ou un espace de travail personnalisé, seul un profil ICC dont la classe est « spac » ou « disp » et dont l’espace de couleurs est « RVB » est valide.

 

L’architecture est conçue en fonction des exigences des opérations, comme indiqué dans les énumérations et les tableaux ci-dessus.

Couche d’API publique de gestion des profils

Étant donné que l’étendue de gestion des profils n’est pas prise en charge par les API ICM2 héritées, un nouvel ensemble d’API de gestion des profils WCS est requis qui définit l’étendue de gestion des profils en tant qu’utilisateur actuel ou à l’échelle du système. ? Les API ICM2 héritées continuent d’être prises en charge à des fins de compatibilité descendante et fonctionnent sur l’étendue de gestion des profils implicite pour l’appel. o LES API ICM2 qui fonctionnent sur l’étendue utilisateur actuel ? Il s’agit des opérations prises en charge à l’échelle du système et de l’étendue utilisateur actuel dans la gestion des profils WCS. Les API ICM2 héritées appellent les nouvelles API WCS avec l’étendue de gestion des profils en tant qu’utilisateur actuel. Cela est logique du point de vue de l’utilisateur, car cela permet d’activer les paramètres par utilisateur à partir d’applications héritées et d’exécuter la plupart des opérations dans le contexte LUA. o LES API ICM2 qui fonctionnent sur l’étendue du système ? Il s’agit des opérations (installer des profils et désinstaller des profils) qui prennent uniquement en charge l’étendue du système. Aucune nouvelle API de gestion de profil WCS n’est créée et les API existantes peuvent être modifiées.

Les implémentations sous-jacentes des opérations de gestion des profils fonctionnent sur les entités de données de configuration suivantes pour créer le contexte pour les algorithmes de traitement des couleurs afin de fournir des fonctionnalités de gestion des couleurs. Il s’agit de paramètres spécifiques à l’appareil ou globaux (indépendants de l’appareil). o Données de configuration spécifiques à l’appareil : ? Liste des profils associés à un appareil particulier. ? Profil par défaut pour différents types de profils associés à un appareil. ? Mode de correspondance des profils utilisés pour l’énumération. o Données de configuration globale : ? Liste des profils installés dans le système. ? Profil par défaut global pour différents types de profils. ? Les implémentations sous-jacentes du stockage des données de configuration prennent une étendue de stockage pour les données de configuration (indépendantes de l’appareil ou spécifiques à l’appareil), qui peuvent être à l’échelle du système ou utilisateur actuel. Ceci est différent de l’étendue de gestion des profils. Une opération avec l’étendue de gestion du profil utilisateur actuel peut entraîner une lecture à partir d’une étendue de stockage à l’échelle du système si le paramètre utilisateur actuel pour cette opération n’est pas présent. ? La couche API ICM2/WCS appelle dans cette couche de stockage pour obtenir et définir des données avec l’étendue de stockage appropriée. La couche de stockage est transparente pour l’étendue de gestion des profils. Logique permettant de combiner des données provenant d’étendues de stockage utilisateur actuel et à l’échelle du système pour créer ou mettre à jour une configuration en fonction de l’étendue de gestion des profils spécifiée par l’appelant d’API. Cette logique est présente dans la couche API ICM2/WCS.

Couche de stockage spécifique à l’appareil

Le stockage de différentes classes d’appareils comme l’impression, la capture ou l’affichage peut être différent les uns des autres. Par exemple, les données de configuration d’un périphérique d’impression doivent être stockées à l’aide d’API d’impression standard, telles que SetPrinterDataEx et GetPrinterDataEx, pour permettre la copie des profils et le transfert des paramètres vers un ordinateur client pendant la connexion Point-and-Print. ? Cette couche exporte des fonctionnalités pour ouvrir le magasin, obtenir des données, définir des données et fermer le magasin à l’aide d’interfaces prédéfinies courantes afin que la couche de stockage de configuration de gestion des profils puisse les appeler tout en étant transparent sur la façon dont les données sont stockées pour cet appareil.

Le diagramme suivant illustre cette architecture.

Couche d’API publique de gestion des profils

${ROWSPAN2}$Legacy API ICM2 pour les opérations qui prennent uniquement en charge l’étendue de gestion des profils à l’échelle du système dans Vista (installer, désinstaller et obtenir le répertoire de couleurs). Ils appellent la couche de stockage de configuration avec l’étendue de stockage appropriée.${REMOVE}$

API ICM2 héritée pour les opérations qui prennent en charge l’étendue de gestion des profils utilisateur actuels et à l’échelle du système dans Vista (toutes les opérations autres que l’installation, la désinstallation et l’obtention du répertoire de couleurs). Ils fonctionnent implicitement sur l’étendue de l’utilisateur actuel et appellent la nouvelle API WCS avec l’étendue de gestion des profils en tant qu’utilisateur actuel.

Nouvelle API WCS avec prise en charge de l’étendue de gestion des profils utilisateur actuels et à l’échelle du système. Ils appellent la couche de stockage de configuration avec l’étendue de stockage appropriée.

 

Couche de stockage configuration de la gestion des profils

Routines de configuration globale indépendantes de l’appareil

Routines de configuration spécifiques à l’appareil

${ROWSPAN3}$Profile l’installation et la gestion des paramètres de profil par défaut indépendants de l’appareil, prise en charge dans l’étendue du stockage à l’échelle du système et de l’utilisateur actuel.${REMOVE}$

Gestion des paramètres d’association d’appareils et de profil par défaut spécifiques à l’appareil, prise en charge dans l’étendue du stockage à l’échelle du système et de l’utilisateur actuel.

couche stockage Device-Specific

Imprimer un stockage spécifique

Afficher un stockage spécifique

Capturer un stockage spécifique

 

Les API ICM2 héritées pour les opérations qui prennent en charge uniquement l’étendue de gestion des profils à l’échelle du système dans Vista n’ont aucun changement de comportement. Les opérations d’installation et de désinstallation appartiennent à cette catégorie.

Les API ICM2 héritées pour les opérations qui prennent en charge l’étendue de gestion des profils utilisateur actuel et à l’échelle du système ont changé de comportement pour interroger et configurer les paramètres de l’utilisateur actuel. Toutes les opérations autres que l’installation et la désinstallation appartiennent à cette catégorie.