IOleCache::Cache-Methode (oleidl.h)

Gibt das Format und andere Daten an, die in einem eingebetteten Objekt zwischengespeichert werden sollen.

Syntax

HRESULT Cache(
  [in]  FORMATETC *pformatetc,
  [in]  DWORD     advf,
  [out] DWORD     *pdwConnection
);

Parameter

[in] pformatetc

Ein Zeiger auf eine FORMATETC-Struktur , die das Format und andere daten angibt, die zwischengespeichert werden sollen. Die Zwischenspeicherung der Ansicht wird durch Übergeben eines Null-Zwischenablageformats in pformatetc angegeben.

[in] advf

Eine Gruppe von Flags, die die Zwischenspeicherung steuern. Mögliche Werte stammen aus der ADVF-Enumeration . Wenn sie in diesem Kontext verwendet werden, haben diese Werte für einen Cache eine bestimmte Bedeutung, die in Den Anmerkungen beschrieben werden. Eine ausführlichere Beschreibung finden Sie in der ADVF-Enumeration .

[out] pdwConnection

Ein Zeiger auf eine Variable, die den Bezeichner dieser Verbindung empfängt, der später verwendet werden kann, um die Zwischenspeicherung zu deaktivieren (indem sie an IOleCache::Uncache übergeben wird). Wenn dieser Wert 0 ist, wurde die Verbindung nicht hergestellt. Die von OLE bereitgestellte Implementierung verwendet nonzero-Nummern für Verbindungsbezeichner.

Rückgabewert

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

Rückgabecode Beschreibung
E_INVALIDARG
Die angegebenen pformatetc - oder advf-Argumente sind ungültig.
E_UNEXPECTED
Ein unerwarteter Fehler ist aufgetreten.
E_OUTOFMEMORY
Unzureichender Arbeitsspeicher für den Vorgang.
CACHE_S_FORMATETC_NOTSUPPORTED
Der Cache wurde erstellt, aber die Objektanwendung unterstützt das angegebene Format nicht. Die Cacheerstellung ist auch dann erfolgreich, wenn das Format nicht unterstützt wird, sodass der Aufrufer den Cache füllen kann. Wenn der Aufrufer den Cache jedoch nicht beibehalten muss, rufen Sie IOleCache::Uncache auf.
CACHE_S_SAMECACHE
Für das formatTC , das an IOleCache::Uncache übergeben wurde, ist bereits ein Cache vorhanden. In diesem Fall werden die neuen Hinweisflags dem Cache zugewiesen, und der zuvor zugewiesene Verbindungsbezeichner wird zurückgegeben.
DV_E_LINDEX
Ungültiger Wert für pformatetc-lindex>; derzeit wird nur -1 unterstützt.
DV_E_TYMED
Der Wert ist für pformatetc-tymed> ungültig.
DV_E_DVASPECT
Der Wert ist für pformatetc-dwAspect> ungültig.
DV_E_CLIPFORMAT
Der Wert ist für pformatetc-cfFormat> ungültig.
CO_E_NOTINITIALIZED
Der Speicher des Caches wird nicht initialisiert.
DV_E_DVTARGETDEVICE
Der Wert ist für pformatetc-->ptd ungültig.
OLE_E_STATIC
Der Cache ist für ein statisches Objekt und hat bereits einen Cacheknoten.

Hinweise

IOleCache::Cache kann entweder Datenzwischenspeicherung oder Ansichts-Zwischenspeicherung (Präsentation) angeben. Zum Angeben der Datenzwischenspeicherung muss ein gültiges Datenformat in pformatetc übergeben werden. Für das Zwischenspeichern der Ansicht entscheidet das Cacheobjekt selbst für das zwischengespeicherte Format, sodass ein Aufrufer ein Nulldatenformat in pformatetc wie folgt übergeben würde:

pFormatetc->cfFormat == 0

Ein benutzerdefinierter Objekthandler kann auswählen, dass Daten nicht in einem bestimmten Format gespeichert werden sollen. Stattdessen kann sie bei Bedarf bei Bedarf synthetisiert werden.

Der advf-Wert gibt ein Element der ADVF-Enumeration an. Wenn einer dieser Werte (oder eine OR'd-Kombination aus mehr als einem Wert) in diesem Kontext verwendet wird, bedeuten diese Werte Folgendes.

ADVF-Wert BESCHREIBUNG
ADVF_NODATA Der Cache soll nicht durch Änderungen aktualisiert werden, die am ausgeführten Objekt vorgenommen werden. Stattdessen aktualisiert der Container den Cache, indem er explizit IOleCache::SetData, IDataObject::SetData oder IOleCache2::UpdateCache aufruft. Dieses Flag wird normalerweise verwendet, wenn der ikonische Aspekt eines Objekts zwischengespeichert wird.
ADVF_ONLYONCE Aktualisieren Sie den Cache nur einmal. Nach Abschluss des Updates wird die Empfehlungsverbindung zwischen dem Objekt und dem Cache getrennt. Das Quellobjekt für die Advisory-Verbindung ruft die Release-Methode auf.
ADVF_PRIMEFIRST Das -Objekt darf nicht warten, bis sich die Daten oder Sicht ändern, bevor der Cache aktualisiert wird. Oder mit ADVF_ONLYONCE stellt dieser Parameter einen asynchronen IDataObject::GetData-Aufruf bereit.
ADVFCACHE_NOHANDLER Synonym für ADVFCACHE_FORCEBUILTIN.
ADVFCACHE_FORCEBUILTIN Wird von DLL-Objektanwendungen und -Objekthandlern verwendet, die ihre Objekte zeichnen, um Präsentationsdaten zwischenzuspeichern, um sicherzustellen, dass sich eine Präsentation im Cache befindet. Dadurch wird sichergestellt, dass die Daten auch dann abgerufen werden können, wenn das Objekt oder der Handlercode nicht verfügbar ist.
ADVFCACHE_ONSAVE Updates die zwischengespeicherte Darstellung nur dann, wenn das Objekt, das den Cache enthält, gespeichert wird. Der Cache wird auch aktualisiert, wenn das OLE-Objekt vom Ausführungszustand zurück in den geladenen Zustand wechselt (da für einen nachfolgenden Speichervorgang das Objekt erneut ausgeführt werden muss).

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

IOleCache

IOleCache::Uncache