Freigeben über


IAdviseSink-Schnittstelle (objidl.h)

Ermöglicht Containern und anderen Objekten das Empfangen von Benachrichtigungen über Datenänderungen, Anzeigen von Änderungen und Änderungen an Verbunddokumenten, die in objekten von Interesse auftreten. Containeranwendungen benötigen beispielsweise solche Benachrichtigungen, um zwischengespeicherte Präsentationen ihrer verknüpften und eingebetteten Objekte auf dem neuesten Stand zu halten. Aufrufe von IAdviseSink-Methoden sind asynchron, sodass der Aufruf gesendet und dann die nächste Anweisung ausgeführt wird, ohne auf die Rückgabe des Aufrufs zu warten.

Damit eine Empfehlungsverbindung vorhanden ist, muss das Objekt, das Benachrichtigungen empfangen soll, IAdviseSink implementieren, und die Objekte, an denen es interessiert ist, müssen IOleObject::Advise und IDataObject::D Advise implementieren. Prozessinterne Objekte und Handler können auch IViewObject::SetAdvise implementieren. Objekte, die IOleObject implementieren, müssen alle sinnvollen Beratungsmethoden unterstützen. Zur Vereinfachung von Beratungsbenachrichtigungen stellt OLE Implementierungen von IDataAdviseHolder und IOleAdviseHolder bereit, die Beratungsverbindungen nachverfolgen und Benachrichtigungen über Zeiger auf die IAdviseSink-Schnittstellen an die richtigen Senken senden. IViewObject (und seine Beratungsmethoden) ist im Standardhandler implementiert.

Wie in der folgenden Tabelle gezeigt, registriert ein Objekt, das eine Empfehlungssenke implementiert hat, sein Interesse am Empfang bestimmter Arten von Benachrichtigungen, indem die entsprechende Methode aufgerufen wird.

Aufrufen dieser Methode So registrieren Sie sich für diese Benachrichtigungen
IOleObject::Advise Wenn ein Dokument gespeichert, geschlossen oder umbenannt wird.
IDataObject::D Advise Wenn sich die Daten eines Dokuments ändern.
IViewObject::SetAdvise Wenn sich die Präsentation eines Dokuments ändert.
 

Wenn ein Ereignis auftritt, das für einen registrierten Benachrichtigungstyp gilt, ruft die Objektanwendung die entsprechende IAdviseSink-Methode auf. Wenn beispielsweise ein eingebettetes Objekt geschlossen wird, ruft es die IAdviseSink::OnClose-Methode auf, um den Container zu benachrichtigen. Diese Benachrichtigungen sind asynchron und treten nach den Ereignissen auf, die sie auslösen.

Vererbung

Die IAdviseSink-Schnittstelle erbt von der IUnknown-Schnittstelle . IAdviseSink verfügt auch über folgende Arten von Membern:

Methoden

Die IAdviseSink-Schnittstelle verfügt über diese Methoden.

 
IAdviseSink::OnClose

Wird vom Server aufgerufen, um alle registrierten Empfehlungssenken darüber zu benachrichtigen, dass das Objekt vom ausgeführten in den geladenen Zustand geändert wurde.
IAdviseSink::OnDataChange

Wird vom Server aufgerufen, um die aktuell registrierten Empfehlungssenken eines Datenobjekts zu benachrichtigen, dass sich die Daten im Objekt geändert haben.
IAdviseSink::OnRename

Wird vom Server aufgerufen, um alle registrierten Beratungssenken zu benachrichtigen, dass das Objekt umbenannt wurde.
IAdviseSink::OnSave

Wird vom Server aufgerufen, um alle registrierten Beratungssenken zu benachrichtigen, dass das Objekt gespeichert wurde.
IAdviseSink::OnViewChange

Benachrichtigt die registrierten Empfehlungssenken eines Objekts, dass seine Ansicht geändert wurde.

Anforderungen

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

Weitere Informationen

IAdviseSink2

IAdviseSinkEx

IDataAdviseHolder

IDataObject::D Advise

IOleAdviseHolder

IOleObject::Advise

IUnknown

IViewObject::SetAdvise