Condividi tramite


Metodo IOleCache::Cache (oleidl.h)

Specifica il formato e altri dati da memorizzare nella cache all'interno di un oggetto incorporato.

Sintassi

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

Parametri

[in] pformatetc

Puntatore a una struttura FORMATETC che specifica il formato e altri dati da memorizzare nella cache. La memorizzazione nella cache viene specificata passando un formato zero appunti in pformatetc.

[in] advf

Gruppo di flag che controllano la memorizzazione nella cache. I valori possibili provengono dall'enumerazione ADVF . Se usato in questo contesto, per una cache, questi valori hanno significati specifici, descritti in Osservazioni. Per una descrizione più dettagliata, vedere l'enumerazione ADVF .

[out] pdwConnection

Puntatore a una variabile che riceve l'identificatore di questa connessione, che può essere usata in seguito per disattivare la memorizzazione nella cache (passandola a IOleCache::Uncache). Se questo valore è 0, la connessione non è stata stabilita. L'implementazione fornita da OLE usa numeri non zero per gli identificatori di connessione.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
E_INVALIDARG
Gli argomenti pformatetc o advf forniti non sono validi.
E_UNEXPECTED
Si è verificato un errore imprevisto.
E_OUTOFMEMORY
Memoria insufficiente disponibile per l'operazione.
CACHE_S_FORMATETC_NOTSUPPORTED
La cache è stata creata, ma l'applicazione dell'oggetto non supporta il formato specificato. La creazione della cache ha esito positivo anche se il formato non è supportato, consentendo al chiamante di riempire la cache. Se, tuttavia, il chiamante non deve mantenere la cache, chiamare IOleCache::Uncache.
CACHE_S_SAMECACHE
Esiste già una cache per FORMATETC passata a IOleCache::Uncache. In questo caso, i nuovi flag di avviso vengono assegnati alla cache e viene restituito l'identificatore di connessione assegnato in precedenza.
DV_E_LINDEX
Valore non valido per pformatetc-lindex>; attualmente è supportato solo -1.
DV_E_TYMED
Il valore non è valido per pformatetc-tymed>.
DV_E_DVASPECT
Il valore non è valido per pformatetc-dwAspect>.
DV_E_CLIPFORMAT
Il valore non è valido per pformatetc-cfFormat>.
CO_E_NOTINITIALIZED
L'archiviazione della cache non viene inizializzata.
DV_E_DVTARGETDEVICE
Il valore non è valido per pformatetc-->ptd.
OLE_E_STATIC
La cache è per un oggetto statico e dispone già di un nodo della cache.

Commenti

IOleCache::Cache può specificare la memorizzazione nella cache dei dati o nella memorizzazione nella cache (presentazione). Per specificare la memorizzazione nella cache dei dati, è necessario passare un formato di dati valido in pformatetc. Per la memorizzazione nella cache, l'oggetto cache stesso decide il formato da memorizzare nella cache, quindi un chiamante passerà un formato di dati zero in pformatetc come indicato di seguito:

pFormatetc->cfFormat == 0

Un gestore oggetti personalizzato può scegliere di non archiviare i dati in un determinato formato. Può invece sintetizzarlo su richiesta quando richiesto.

Il valore advf specifica un membro dell'enumerazione ADVF . Quando uno di questi valori (o una combinazione OR di più valori) viene utilizzata in questo contesto, questi valori indicano quanto segue.

Valore ADVF Descrizione
ADVF_NODATA La cache non deve essere aggiornata dalle modifiche apportate all'oggetto in esecuzione. Il contenitore aggiornerà invece la cache chiamando in modo esplicito IOleCache::SetData, IDataObject::SetData o IOleCache2::UpdateCache. Questo flag viene in genere usato quando viene memorizzato nella cache l'aspetto iconico di un oggetto.
ADVF_ONLYONCE Aggiornare la cache una sola volta. Al termine dell'aggiornamento, la connessione consultiva tra l'oggetto e la cache viene disconnessa. L'oggetto di origine per la connessione consultiva chiama il metodo Release .
ADVF_PRIMEFIRST L'oggetto non deve attendere che i dati o la visualizzazione vengano modificati prima di aggiornare la cache. OR con ADVF_ONLYONCE, questo parametro fornisce una chiamata IDataObject::GetDataData asincrona.
ADVFCACHE_NOHANDLER Sinonimo di ADVFCACHE_FORCEBUILTIN.
ADVFCACHE_FORCEBUILTIN Usato da applicazioni oggetti DLL e gestori di oggetti che disegnano gli oggetti per memorizzare nella cache i dati della presentazione per assicurarsi che sia presente una presentazione nella cache. Ciò garantisce che i dati possano essere recuperati anche quando il codice dell'oggetto o del gestore non è disponibile.
ADVFCACHE_ONSAVE Aggiornamenti la rappresentazione memorizzata nella cache solo quando l'oggetto contenente la cache viene salvato. La cache viene aggiornata anche quando l'oggetto OLE cambia dallo stato in esecuzione allo stato caricato (perché un'operazione di salvataggio successiva richiederebbe di nuovo l'esecuzione dell'oggetto).

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleidl.h

Vedi anche

IOleCache

IOleCache::Uncache