Artikel Moniker

Eine weitere OLE-implementierte Monikerklasse ist der Elementmoniker, der verwendet werden kann, um ein Objekt zu identifizieren, das in einem anderen Objekt enthalten ist. Ein Typ des enthaltenen Objekts ist ein OLE-Objekt, das in ein zusammengesetztes Dokument eingebettet ist. Ein zusammengesetztes Dokument könnte die eingebetteten Objekte identifizieren, die sie enthält, indem jeder ein beliebiger Name zugewiesen wird, z. B. "embedobj1", "embedobj2" usw. Ein anderer Typ des enthaltenen Objekts ist eine Benutzerauswahl in einem Dokument, z. B. ein Zellbereich in einer Kalkulationstabelle oder ein Zeichenbereich in einem Textdokument. Ein Objekt, das aus einer Auswahl besteht, wird als Pseudoobjekt bezeichnet, da es erst als ein separates Objekt behandelt wird, bis ein Benutzer die Auswahl markiert. Eine Kalkulationstabelle kann einen Zellbereich mithilfe eines Namens wie "1A:7F" identifizieren, während ein Textverarbeitungsdokument möglicherweise einen Zeichenbereich mit dem Namen einer Textmarke identifiziert.

Ein Elementmoniker ist in erster Linie nützlich, wenn er verkettet oder mit einem anderen Moniker zusammengesetzt wird, der den Container identifiziert. Ein Elementmoniker wird in der Regel erstellt und dann auf (z. B.) einen Dateimoniker zusammengesetzt, um das Äquivalent eines vollständigen Pfads zum Objekt zu erstellen. Sie können beispielsweise den Dateimoniker "c:\work\report.doc" (die das Containerobjekt identifiziert) mit dem Elementmoniker "embedobj1" (die ein Objekt im Container identifiziert) verfassen, um den Moniker "c:\work\report.doc\embedobj1" zu bilden, der ein bestimmtes Objekt innerhalb einer bestimmten Datei eindeutig identifiziert. Sie können auch zusätzliche Elementmoniker verketten, um tief geschachtelte Objekte zu identifizieren. Wenn "embedobj1" beispielsweise der Name eines Tabellenkalkulationsobjekts ist, um einen bestimmten Zellbereich in diesem Tabellenkalkulationsobjekt zu identifizieren, könnten Sie einen anderen Elementmoniker anfügen, um einen Moniker zu erstellen, der "c:\work\report.doc\embedobj1\1A:7F" entspricht.

In Kombination mit einem Dateimoniker bildet ein Elementmoniker einen vollständigen Pfad. Elementmoniker erweitern somit den Begriff von Pfadnamen über das Dateisystem hinaus, indem Pfadnamen definiert werden, um einzelne Objekte zu identifizieren, nicht nur Dateien.

Es gibt einen erheblichen Unterschied zwischen einem Artikelmoniker und einem Dateimoniker. Der pfad, der in einem Dateimoniker enthalten ist, ist für jeden sinnvoll, der das Dateisystem versteht, während der in einem Elementmoniker enthaltene Teilpfad nur für einen bestimmten Container sinnvoll ist. Jeder weiß, was "c:\work\report.doc" bezieht, aber nur ein bestimmtes Containerobjekt weiß, was "1A:7F" bezieht. Ein Container kann keinen Elementmoniker interpretieren, der von einer anderen Anwendung erstellt wurde; Der einzige Container, der weiß, auf welches Objekt durch einen Elementmoniker verwiesen wird, ist der Container, der dem Objekt zuerst den Elementmoniker zugewiesen hat. Aus diesem Grund muss die Quelle des Objekts, das durch die Kombination einer Datei und elementmoniker benannt wird, nicht nur IPersistFile implementieren, um die Bindung des Dateimonikers zu erleichtern, sondern auch IOleItemContainer , um die Auflösung des Namens des Elementmonikers in das entsprechende Objekt im Kontext einer Datei zu erleichtern.

Der Vorteil von Monikern ist, dass jemand, der einen Moniker verwendet, um ein Objekt zu finden, nicht den Namen verstehen muss, der innerhalb des Elementmonikers enthalten ist, solange der Elementmoniker Teil eines Zusammengesetzten ist. Im Allgemeinen wäre es nicht sinnvoll, dass ein Artikelmoniker selbst existiert. Stattdessen würden Sie einen Elementmoniker auf einen Dateimoniker verfassen. Sie würden dann IMoniker::BindToObject für das Zusammengesetzt aufrufen, das die einzelnen Moniker darin bindet und die Namen interpretiert.

Um ein Element moniker-Objekt zu erstellen und den Mauszeiger an den Monikeranbieter zurückzugeben, stellt OLE die Hilfsfunktion CreateItemMoniker bereit. Diese Funktion erstellt ein Element moniker-Objekt und gibt den Mauszeiger an den Anbieter zurück.

Antimoniker

Klasse Moniker

Zusammengesetzte Moniker

Datei Moniker

Zeiger Moniker