Share via


IOleLink::SetSourceMoniker-Methode (oleidl.h)

Legt den Moniker für die Linkquelle fest.

Syntax

HRESULT SetSourceMoniker(
  [in] IMoniker *pmk,
  [in] REFCLSID rclsid
);

Parameter

[in] pmk

Ein Zeiger auf die IMoniker-Schnittstelle auf einem Moniker, der die neue Linkquelle des verknüpften Objekts identifiziert. Der Wert NULL unterbricht den Link.

[in] rclsid

Die CLSID der Linkquelle, die das verknüpfte Objekt verwenden soll, um auf Informationen über das verknüpfte Objekt zuzugreifen, wenn es nicht gebunden ist.

Rückgabewert

Diese Methode gibt S_OK bei Erfolg zurück.

Hinweise

Hinweise für Anrufer

Ihre Containeranwendung kann IOleLink::SetSourceMoniker aufrufen, wenn der Endbenutzer die Quelle eines Links ändert oder einen Link unterbricht. Beachten Sie, dass ihr Container dazu die MkParseDisplayName-Funktion verwenden muss, um einen Moniker aus dem Anzeigenamen zu erstellen, den der Endbenutzer eingibt. Wenn Sie lieber das verknüpfte Objekt analysieren lassen möchten, kann Ihr Container IOleLink::SetSourceDisplayName anstelle von IOleLink::SetSourceMoniker aufrufen.

Der Endbenutzer ändert die Quelle eines Links oder unterbricht einen Link mithilfe des Dialogfelds Links . Wenn Sie die OleUIEditLinks-Funktion zum Anzeigen des Dialogfelds Links verwenden, müssen Sie die IOleUILinkContainer-Schnittstelle implementieren. Das Dialogfeld ruft Ihre Implementierungen von IOleUILinkContainer::SetLinkSource und IOleUILinkContainer::CancelLink auf; Ihre Implementierung dieser Methoden kann IOleLink::SetSourceMoniker aufrufen.

Wenn das verknüpfte Objekt derzeit an seine Linkquelle gebunden ist, wird der Link durch die Implementierung von IOleLink::SetSourceMoniker des verknüpften Objekts geschlossen, bevor der Moniker geändert wird.

Hinweise zu Implementierern

Der IOleLink-Vertrag gibt nicht an, wie das verknüpfte Objekt den Linkquellmoniker speichert oder verwendet. Die bereitgestellte Implementierung speichert den absoluten Moniker, der beim Erstellen des Links oder beim Ändern des Monikers angegeben ist. Anschließend wird ein relativer Moniker berechnet und gespeichert. Zukünftige Implementierungen könnten Moniker anders verwalten, um eine bessere Monikernachverfolgung zu ermöglichen. Der absolute Moniker stellt den vollständigen Pfad zur Linkquelle bereit. Das verknüpfte Objekt verwendet diesen absoluten Moniker und den Moniker des zusammengesetzten Dokuments, um einen relativen Moniker zu berechnen, der die Linkquelle relativ zum zusammengesetzten Dokument identifiziert, das den Link enthält.

pmkCompoundDoc-RelativePathTo>(pmkAbsolute, ppmkRelative)

Bei der Bindung an die Linkquelle versucht das verknüpfte Objekt zunächst, mithilfe des relativen Monikers zu binden. Wenn dies fehlschlägt, versucht er, den absoluten Moniker zu binden.

Wenn das verknüpfte Objekt erfolgreich mithilfe des relativen oder absoluten Monikers gebunden wird, aktualisiert es automatisch den anderen Moniker. Das verknüpfte Objekt aktualisiert auch beide Moniker, wenn es an die Linkquelle gebunden ist und eine Umbenennungsbenachrichtigung über die IAdviseSink::OnRename-Methode empfängt. Eine Containeranwendung kann auch die IOleLink::SetSourceDisplayName-Methode verwenden, um den Moniker eines Links zu ändern.

Die Implementierung von IPersistStorage::Save des verknüpften Objekts speichert sowohl den relativen als auch den absoluten Moniker.

Anforderungen

   
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

IOleLink

IOleLink::GetSourceMoniker

IOleLink::SetSourceDisplayName

IOleUILinkContainer

OleUIEditLinks