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 l’inverse du moniker sur lequel il est composé, annulant ce moniker, de la même manière que l’opérateur « . » monte un niveau de répertoire dans une commande de système de fichiers.
Il est nécessaire de disposer d’un anti-moniker, 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 de 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 les types de monikers qui sont implémentés pour traiter les anti-monikers comme inverse. Par exemple, si vous souhaitez supprimer la dernière pièce 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 la dernière pièce 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 la dernière pièce du composite et appelez Inverse sur ce moniker. Le moniker retourné par Inverse est ce dont vous avez besoin pour supprimer la dernière pièce du composite.
Rubriques connexes