Icônes de classe
L’icône utilisée pour représenter un objet de classe peut être spécifiée dans l’attribut iconPath du conteneur DisplaySpecifiers. De plus, chaque classe peut stocker plusieurs états d’icône. Par exemple, une classe de dossier peut avoir des icônes pour les états ouverts, fermés et désactivés. L’implémentation actuelle accepte un maximum de seize états d’icône différents par classe.
L’attribut iconPath peut être spécifié de l’une des deux façons suivantes.
<state>,<icon file name>
or
<state>,<module file name>,<resource ID>
Dans ces exemples, «< state> » est un entier dont la valeur est comprise entre 0 et 15. La valeur 0 est définie pour être l’état par défaut ou fermé de l’icône. La valeur 1 est définie pour être l’état ouvert de l’icône. La valeur 2 est l’état désactivé. Toutes les autres valeurs sont définies par l’application.
Le «< nom> du fichier d’icône » est le chemin d’accès et le nom de fichier d’un fichier d’icône qui contient l’image d’icône.
Le «< nom> de fichier de module » est le chemin d’accès et le nom de fichier d’un module, tel qu’un EXE ou une DLL, qui contient l’image d’icône dans une ressource. L'«< ID de> ressource » est un entier qui spécifie l’identificateur de ressource de la ressource icône dans le module.
Ajout d’une valeur à l’attribut iconPath
Pour ajouter une valeur à l’attribut iconPath , procédez comme suit.
- Déterminez si la valeur de l’attribut existe. Si une valeur doit être remplacée, supprimez d’abord la valeur existante à l’aide de la méthode IADs::P utEx avec le paramètre lnControlCode défini sur ADS_PROPERTY_DELETE et le paramètre vProp défini sur la valeur à supprimer. N’utilisez pas ADS_PROPERTY_CLEAR ou ADS_PROPERTY_UPDATE pour lnControlCode.
- Créez la chaîne qui représente les données de l’icône d’attribut. Pour obtenir un exemple, consultez le format ci-dessus.
- Pour ajouter la nouvelle valeur, utilisez la méthode IADs::P utEx avec le paramètre lnControlCode défini sur ADS_PROPERTY_APPEND.
- Pour valider les modifications apportées au répertoire, appelez IADs::SetInfo.