Freigeben über


ADVF-Enumeration (objidl.h)

Flags, die die Zwischenspeicherung und Benachrichtigung über Änderungen an Daten steuern.

Syntax

typedef enum tagADVF {
  ADVF_NODATA = 1,
  ADVF_PRIMEFIRST = 2,
  ADVF_ONLYONCE = 4,
  ADVF_DATAONSTOP = 64,
  ADVFCACHE_NOHANDLER = 8,
  ADVFCACHE_FORCEBUILTIN = 16,
  ADVFCACHE_ONSAVE = 32
} ADVF;

Konstanten

 
ADVF_NODATA
Wert: 1
Für Datenempfehlungsverbindungen (IDataObject::D Advise oder IDataAdviseHolder::Advise) fordert dieses Flag das Datenobjekt auf, keine Daten zu senden, wenn es IAdviseSink::OnDataChange aufruft. Der Empfänger der Änderungsbenachrichtigung kann die Daten später anfordern, indem er IDataObject::GetData aufruft. Das Datenobjekt kann die Anforderung berücksichtigen, indem es TYMED_NULL im STGMEDIUM-Parameter übergibt, oder es kann die Daten trotzdem bereitstellen. Beispielsweise kann das Datenobjekt mehrere Empfehlungsverbindungen aufweisen, von denen nicht alle ADVF_NODATA angegeben haben. In diesem Fall sendet das Objekt möglicherweise dieselbe Benachrichtigung an alle Verbindungen. Unabhängig von der Anforderung des Containers muss die IAdviseSink-Implementierung den STGMEDIUM-Parameter überprüfen, da er für die Freigabe des Mediums verantwortlich ist, wenn es nicht TYMED_NULL ist.

Für Cacheverbindungen (IOleCache::Cache) fordert dieses Flag an, dass der Cache nicht durch Änderungen aktualisiert wird, die am ausgeführten Objekt vorgenommen wurden. Stattdessen aktualisiert der Container den Cache durch expliziten Aufruf von IOleCache::SetData. Diese Situation tritt in der Regel auf, wenn der ikonische Aspekt eines Objekts zwischengespeichert wird.

ADVF_NODATA ist kein gültiges Flag für View Advisory-Verbindungen (IViewObject::SetAdvise) und gibt E_INVALIDARG zurück.
ADVF_PRIMEFIRST
Wert: 2
Fordert an, dass das Objekt nicht darauf wartet, dass sich die Daten oder Sicht ändern, bevor IAdviseSink::OnDataChange (für Daten- oder Ansichtsempfehlungenverbindungen) oder der Cache aktualisiert wird (für Cacheverbindungen). Dieser Parameter wird mit ADVF_ONLYONCE verwendet und stellt einen asynchronen IDataObject::GetData-Aufruf bereit.
ADVF_ONLYONCE
Wert: 4
Fordert an, dass das Objekt nur eine Änderungsbenachrichtigung oder Zwischenspeicheraktualisierung durchführt, bevor die Verbindung beendet wird.

ADVF_ONLYONCE löscht die Empfehlungsverbindung automatisch, nachdem eine Daten- oder Ansichtsbenachrichtigung gesendet wurde. Die Beratungssenke empfängt nur einen IAdviseSink-Aufruf . Wenn die Verbindung hergestellt wird, wird ein Verbindungsbezeichner ungleich 0 zurückgegeben, sodass der Aufrufer sie verwenden kann, um die Verbindung vor der ersten Änderungsbenachrichtigung zu löschen.

Bei Datenänderungsbenachrichtigungen stellt die Kombination aus ADVF_ONLYONCE und ADVF_PRIMEFIRST tatsächlich einen asynchronen IDataObject::GetData-Aufruf bereit.

Bei Verwendung mit Zwischenspeicherung aktualisiert ADVF_ONLYONCE den Cache nur einmal, nachdem die erste IAdviseSink::OnDataChange-Benachrichtigung empfangen wurde. Nach Abschluss des Updates wird die Empfehlungsverbindung zwischen dem Objekt und dem Cache getrennt. Das Quellobjekt für die Empfehlungsverbindung ruft die Release-Methode auf.
ADVF_DATAONSTOP
Wert: 64
Stellt bei Daten-Advise-Verbindungen den Zugriff auf die Daten sicher. Dieses Flag gibt an, dass beim Schließen des Datenobjekts aufgerufen werden soll, und daten mit dem Aufruf bereitgestellt wird. In der Regel wird dieser Wert in Kombination mit ADVF_NODATA verwendet. OhneIAdviseSink::OnDataChange ist der Wert, wenn ein OnDataChange-Aufruf ohne Daten die Senke erreicht, hat die Quelle möglicherweise das Herunterfahren abgeschlossen, und die Daten sind möglicherweise nicht zugänglich. Senken, die diesen Wert angeben, sollten die in OnDataChange bereitgestellten Daten akzeptieren, wenn sie übergeben werden, da sie möglicherweise keine weitere Möglichkeit haben, ihn abzurufen.

Bei Cacheverbindungen gibt dieses Flag an, dass das Objekt den Cache im Rahmen des Objektabschlusses aktualisieren soll.

ADVF_DATAONSTOP ist kein gültiges Flag für View Advisory-Verbindungen.
ADVFCACHE_NOHANDLER
Wert: 8
Synonym für ADVFCACHE_FORCEBUILTIN, das häufiger verwendet wird.
ADVFCACHE_FORCEBUILTIN
Wert: 16
Dieser Wert wird von DLL-Objektanwendungen und -Objekthandlern verwendet, die ihre Objekte selbst zeichnen. ADVFCACHE_FORCEBUILTIN weist OLE an, Präsentationsdaten zwischenzuspeichern, um sicherzustellen, dass sich eine Präsentation im Cache befindet. Dieser Wert ist kein gültiges Flag für Daten- oder Ansichtsempfehlungenverbindungen. Für Cacheverbindungen speichert dieses Flag Daten zwischen, für die nur code erforderlich ist, der mit OLE (oder dem zugrunde liegenden Betriebssystem) enthalten ist, um ihn mit IDataObject::GetData oder IViewObject::D raw zu erzeugen. Durch Angabe dieses Werts kann der Container sicherstellen, dass die Daten auch dann abgerufen werden können, wenn das Objekt oder der Handlercode nicht verfügbar ist.
ADVFCACHE_ONSAVE
Wert: 32
Bei Cachingverbindungen aktualisiert dieses Flag die zwischengespeicherte Darstellung nur dann, wenn das Objekt mit dem Cache gespeichert wird. Der Cache wird auch aktualisiert, wenn das OLE-Objekt vom Ausführungszustand zurück in den geladenen Zustand wechselt (da bei einem nachfolgenden Speichervorgang eine erneute Ausführung des Objekts erforderlich wäre). Dieser Wert ist kein gültiges Flag für Daten- oder Ansichtsempfehlungenverbindungen.

Hinweise

Für eine Daten- oder Ansichtsempfehlungsverbindung verwendet der Container die ADVF-Konstanten, wenn eine Verbindung zwischen einem IAdviseSink-instance und einem IDataObject- oder IViewObject-instance eingerichtet wird. Diese Verbindungen werden mit den Methoden IDataObject::D Advise, IDataAdviseHolder::Advise oder IViewObject::SetAdvise eingerichtet.

Für eine Zwischenspeicherungsverbindung werden die Konstanten in der IOleCache::Cache-Methode angegeben, um die Anforderungen des Containers zu angeben, wie das Objekt seinen Cache aktualisieren soll.

Diese Konstanten werden auch im advf-Member der STATDATA-Struktur verwendet. Diese Struktur wird von IEnumSTATDATA verwendet, um die aufgezählten Verbindungen zu beschreiben, und das advf-Element gibt die Flags an, die beim Herstellen der Empfehlungs- oder Cacheverbindung angegeben wurden. Wenn STATDATA für einen IOleObject::EnumAdvise-Enumerator verwendet wird, ist das advf-Element unbestimmt.

Anforderungen

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

Weitere Informationen

IDataAdviseHolder

Idataobject

IEnumSTATDATA

IOleCache

IViewObject