Anti-Moniker
OLE stellt eine Implementierung eines speziellen Monikertyps bereit, der als Antimoniker bezeichnet wird. Sie verwenden diesen Moniker bei der Erstellung neuer Monikerklassen. Sie verwenden ihn als Umgekehrten des Monikers, auf den er zusammengesetzt ist, und bricht diesen Moniker auf die gleiche Weise ab, wie der Operator ".." eine Verzeichnisebene in einem Dateisystembefehl nach oben bewegt.
Es ist erforderlich, einen Antimoniker zur Verfügung zu haben, da es nach der Erstellung eines zusammengesetzten Monikers nicht möglich ist, Teile des Monikers zu löschen, wenn z. B. ein Objekt verschoben wird. Stattdessen verwenden Sie einen Antimoniker, um einen oder mehrere Einträge aus einem zusammengesetzten Moniker zu entfernen.
Antimoniker sind eine Monikerklasse, die explizit für die Verwendung als umgekehrte Klasse vorgesehen ist. COM definiert die benannte CreateAntiMoniker-Funktion , die einen Antimoniker zurückgibt. Im Allgemeinen verwenden Sie diese Funktion, um die IMoniker::Inverse-Methode zu implementieren.
Ein Antimoniker ist nur ein Inverse für die Arten von Monikern, die implementiert sind, um Antimoniker als umgekehrt zu behandeln. Wenn Sie z. B. den letzten Teil eines zusammengesetzten Monikers entfernen möchten, sollten Sie keinen Antimoniker erstellen und am Ende des Zusammengesetzten verfassen. Sie können nicht sicher sein, dass der letzte Teil des Verbundwerkstoffs einen Antimoniker als umgekehrt betrachtet. Stattdessen sollten Sie IMoniker::Enum für den zusammengesetzten Moniker aufrufen und FALSE als ersten Parameter angeben. Dadurch wird ein Enumerator erstellt, der die Komponentenmoniker in umgekehrter Reihenfolge zurückgibt. Verwenden Sie den Enumerator, um den letzten Teil der Zusammengesetzten abzurufen, und rufen Sie Inverse für diesen Moniker auf. Der moniker, der von Inverse zurückgegeben wird, ist das, was Sie benötigen, um das letzte Stück des Zusammengesetzten zu entfernen.