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 |
---|---|
|
Gli argomenti pformatetc o advf forniti non sono validi. |
|
Si è verificato un errore imprevisto. |
|
Memoria insufficiente disponibile per l'operazione. |
|
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. |
|
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. |
|
Valore non valido per pformatetc-lindex>; attualmente è supportato solo -1. |
|
Il valore non è valido per pformatetc-tymed>. |
|
Il valore non è valido per pformatetc-dwAspect>. |
|
Il valore non è valido per pformatetc-cfFormat>. |
|
L'archiviazione della cache non viene inizializzata. |
|
Il valore non è valido per pformatetc-->ptd. |
|
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 |