Anti-Monikers
OLE fournit une implémentation d’un type spécial de moniker appelé anti-moniker. Vous utilisez ce moniker dans la création de nouvelles classes moniker. Vous l’utilisez comme inverse du moniker sur lequel il est composé, annulant efficacement ce moniker, de la même façon que l’opérateur « ». » déplace un niveau de répertoire dans une commande de système de fichiers.
Il est nécessaire d’avoir un anti-moniker disponible, car une fois qu’un moniker composite est créé, il n’est pas possible de supprimer des parties du moniker si, par exemple, un objet se déplace. Au lieu de cela, vous utilisez un anti-moniker pour supprimer une ou plusieurs entrées d’un moniker composite.
Les anti-monikers sont une classe moniker explicitement destinée à être utilisée comme inverse. COM définit la fonction CreateAntiMoniker nommée, qui retourne un anti-moniker. Vous utilisez généralement cette fonction pour implémenter la méthode IMoniker ::Inverse.
Un anti-moniker n’est qu’un inverse pour ces types de monikers implémentés pour traiter les anti-monikers comme un inverse. Par exemple, si vous souhaitez supprimer le dernier morceau d’un moniker composite, vous ne devez pas créer un anti-moniker et le composer à la fin du composite. Vous ne pouvez pas être sûr que le dernier morceau du composite considère un anti-moniker comme son inverse. Au lieu de cela, vous devez appeler IMoniker ::Enum sur le moniker composite, en spécifiant FALSE comme premier paramètre. Cela crée un énumérateur qui retourne les monikers de composant dans l’ordre inverse. Utilisez l’énumérateur pour récupérer le dernier élément du composite et appelez inverse sur ce moniker. Le moniker retourné par Inverse est ce que vous devez supprimer le dernier morceau du composite.
Rubriques connexes