IOleClientSite::GetMoniker-Methode (oleidl.h)

Ruft einen Moniker für die Clientwebsite des Objekts ab. Ein -Objekt kann die Zuweisung eines eigenen oder des Monikers seines Containers erzwingen, indem es einen Wert für dwAssign angibt.

Syntax

HRESULT GetMoniker(
  [in]  DWORD    dwAssign,
  [in]  DWORD    dwWhichMoniker,
  [out] IMoniker **ppmk
);

Parameter

[in] dwAssign

Gibt an, ob ein Moniker nur abgerufen werden soll, wenn er bereits vorhanden ist, die Zuweisung eines Monikers erzwingen, einen temporären Moniker erstellen oder einen zugewiesenen Moniker entfernen soll. In der Praxis fordern Sie normalerweise an, dass der Container die Zuweisung des Monikers erzwingt. Mögliche Werte werden der OLEGETMONIKER-Enumeration entnommen.

[in] dwWhichMoniker

Gibt an, ob der Moniker des Containers, der Moniker des Objekts relativ zum Container oder der vollständige Moniker des Objekts zurückgegeben werden soll. In der Praxis fordern Sie normalerweise den vollständigen Moniker des Objekts an. Mögliche Werte werden der OLEWHICHMK-Enumeration entnommen.

[out] ppmk

Ein Zeiger auf eine IMoniker-Zeigervariable , die den Schnittstellenzeiger auf den Moniker für den Clientstandort des Objekts empfängt. Wenn ein Fehler auftritt, muss die Implementierung ppmk auf NULL festlegen. Jedes Mal, wenn ein Container einen Aufruf von IOleClientSite::GetMoniker empfängt, muss die Verweisanzahl für den zurückgegebenen ppmk-Zeiger erhöht werden. Es liegt in der Verantwortung des Aufrufers , Release aufzurufen, wenn er mit dem Zeiger abgeschlossen ist.

Rückgabewert

Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Rückgabewerte:

Rückgabecode Beschreibung
E_NOTIMPL
Dieser Container kann Objekten keine Moniker zuweisen. Dies ist bei OLE 1-Containern der Fall.

Hinweise

Container implementieren GetMoniker , um Moniker für ihre eingebetteten Objekte an Clients zu übergeben, die mit diesen Objekten verknüpft werden müssen.

Wenn eine Verknüpfung mit einem eingebetteten Objekt oder einem darin enthaltenen Pseudoobjekt (z. B. einem Zellbereich in einer Kalkulationstabelle) hergestellt wird, benötigt das Objekt einen Moniker, um den zusammengesetzten Moniker zu erstellen, der die Quelle des Links angibt. Wenn das eingebettete Objekt nicht bereits über einen Moniker verfügt, kann es GetMoniker aufrufen, um einen anzufordern.

Jeder Container, der Links zu Einbettungen enthält, sollte GetMoniker unterstützen, um OLEWHICHMK_CONTAINER zu vergeben, wodurch die Linknachverfolgung aktiviert wird, wenn sich der Linkclient und die Linkquelldateien verschieben, aber die gleiche relative Position beibehalten.

Ein Objekt darf seinen vollständigen Moniker oder den Moniker seines Containers nicht dauerhaft speichern, da diese sich ändern können, während das Objekt nicht geladen wird. Beispielsweise könnte entweder der Container oder das Objekt umbenannt werden. In diesem Fall würde das Speichern des Monikers des Containers oder des vollständigen Monikers des Objekts es für einen Client unmöglich machen, einen Link zum Objekt nachzuverfolgen.

In einigen sehr spezialisierten Fällen benötigt ein Objekt möglicherweise keinen Moniker mehr, der ihm zuvor zugewiesen wurde, und kann es als Optimierung entfernen lassen. In solchen Fällen kann das -Objekt GetMoniker mit OLEGETMONIKER_UNASSIGN aufrufen, um den Moniker zu entfernen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile oleidl.h

Weitere Informationen

IOleClientSite

IOleClientSite::GetMoniker

IOleObject::SetMoniker