Zeigermoniker

Ein Zeigermoniker identifiziert ein Objekt, das nur im aktiven oder ausgeführten Zustand vorhanden sein kann. Dies unterscheidet sich von anderen Klassen von Monikern, die Objekte identifizieren, die im passiven oder aktiven Zustand vorhanden sein können.

Angenommen, eine Anwendung verfügt über ein -Objekt, das keine permanente Darstellung hat. Wenn ein Client Ihrer Anwendung Zugriff auf dieses Objekt benötigt, können Sie dem Client normalerweise einfach einen Zeiger auf das Objekt übergeben. Angenommen, Ihr Client erwartet einen Moniker. Das Objekt kann nicht mit einem Dateimoniker identifiziert werden, da es weder in einer Datei noch mit einem Elementmoniker gespeichert wird, da es nicht in einem anderen Objekt enthalten ist.

Stattdessen kann Ihre Anwendung einen Zeigermoniker erstellen, bei dem es sich um einen Moniker handelt, der intern einfach einen Zeiger enthält, und diesen an den Client übergeben. Der Client kann diesen Moniker wie jeder andere moniker behandeln. Wenn der Client jedoch IMoniker::BindToObject für den Zeigermoniker aufruft, überprüft der Monikercode weder die ausgeführte Objekttabelle (ROT) noch ladet er etwas aus dem Speicher. Stattdessen ruft der Monikercode einfach QueryInterface für den Zeiger auf, der im Moniker gespeichert ist.

Zeigermoniker ermöglichen es Objekten, die nur im aktiven oder ausgeführten Zustand vorhanden sind, an Monikervorgängen teilzunehmen und von Monikerclients verwendet zu werden. Ein wichtiger Unterschied zwischen Zeigermonikern und anderen Klassen von Monikern ist, dass Zeigermoniker nicht im persistenten Speicher gespeichert werden können. Wenn Sie dies tun, gibt der Aufruf der IMoniker::Save-Methode einen Fehler zurück. Dies bedeutet, dass Zeigermoniker nur in speziellen Situationen nützlich sind. Sie können die CreatePointerMoniker-Funktion verwenden, wenn Sie einen Zeigermoniker verwenden müssen.

Antimoniker

Klassenmoniker

Zusammengesetzte Moniker

Dateimoniker

Elementmoniker