Enumerazione ADVF (objidl.h)
Flag che controllano la memorizzazione nella cache e la notifica delle modifiche apportate ai dati.
Sintassi
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;
Costanti
ADVF_NODATA Valore: 1 Per le connessioni di consulenza dati (IDataObject::D Advise o IDataAdviseHolder::Advise), questo flag richiede all'oggetto dati di non inviare dati quando chiama IAdviseSink::OnDataChange. Il destinatario della notifica di modifica può successivamente richiedere i dati chiamando IDataObject::GetData. L'oggetto dati può rispettare la richiesta passando TYMED_NULL nel parametro STGMEDIUM oppure può comunque fornire i dati. Ad esempio, l'oggetto dati potrebbe avere più connessioni consultive, non tutte le connessioni specificate ADVF_NODATA, nel qual caso l'oggetto potrebbe inviare la stessa notifica a tutte le connessioni. Indipendentemente dalla richiesta del contenitore, l'implementazione IAdviseSink deve controllare il parametro STGMEDIUM perché è responsabile del rilascio del supporto se non è TYMED_NULL. Per le connessioni alla cache (IOleCache::Cache), questo flag richiede che la cache non venga aggiornata dalle modifiche apportate all'oggetto in esecuzione. Al contrario, il contenitore aggiornerà la cache chiamando in modo esplicito IOleCache::SetData. Questa situazione si verifica in genere quando l'aspetto iconico di un oggetto viene memorizzato nella cache. ADVF_NODATA non è un flag valido per le connessioni consultive di visualizzazione (IViewObject::SetAdvise) e restituisce E_INVALIDARG. |
ADVF_PRIMEFIRST Valore: 2 Richiede che l'oggetto non attenda la modifica dei dati o della visualizzazione prima di effettuare una chiamata iniziale a IAdviseSink::OnDataChange (per le connessioni consultive di dati o viste) o l'aggiornamento della cache (per le connessioni cache). Usato con ADVF_ONLYONCE, questo parametro fornisce una chiamata asincrona IDataObject::GetData . |
ADVF_ONLYONCE Valore: 4 Richiede che l'oggetto effettui una sola notifica di modifica o aggiornamento della cache prima di eliminare la connessione. ADVF_ONLYONCE elimina automaticamente la connessione consultiva dopo l'invio di una notifica di dati o visualizzazione. Il sink consultivo riceve una sola chiamata IAdviseSink . Se viene stabilita la connessione, viene restituito un identificatore di connessione diverso da zero, in modo che il chiamante possa usarlo per eliminare la connessione prima della prima notifica di modifica. Per le notifiche di modifica dei dati, la combinazione di ADVF_ONLYONCE e ADVF_PRIMEFIRST fornisce, in effetti, una chiamata asincrona IDataObject::GetData . Se usato con la memorizzazione nella cache, ADVF_ONLYONCE aggiorna la cache una sola volta, alla ricezione della prima notifica IAdviseSink::OnDataChange . 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_DATAONSTOP Valore: 64 Per connessioni consultive di dati, assicura l'accessibilità ai dati. Questo flag indica che quando l'oggetto dati viene chiuso, deve chiamare , fornendo i dati con la chiamata. In genere, questo valore viene usato in combinazione con ADVF_NODATA. Senzath IAdviseSink::OnDataChange è un valore, quando una chiamata OnDataChange senza dati raggiunge il sink, l'origine potrebbe aver completato l'arresto e i dati potrebbero non essere accessibili. I sink che specificano questo valore devono accettare i dati forniti in OnDataChange se vengono passati, perché potrebbero non ottenere un'altra possibilità di recuperarli. Per le connessioni alla cache, questo flag indica che l'oggetto deve aggiornare la cache come parte della chiusura dell'oggetto. ADVF_DATAONSTOP non è un flag valido per le connessioni di avviso di visualizzazione. |
ADVFCACHE_NOHANDLER Valore: 8 Sinonimo di ADVFCACHE_FORCEBUILTIN, che viene usato più spesso. |
ADVFCACHE_FORCEBUILTIN Valore: 16 Questo valore viene utilizzato dalle applicazioni di oggetti DLL e gestori di oggetti che disegnano i propri oggetti. ADVFCACHE_FORCEBUILTIN indica a OLE di memorizzare nella cache i dati della presentazione per assicurarsi che nella cache sia presente una presentazione. Questo valore non è un flag valido per le connessioni di consulenza di dati o di visualizzazione. Per le connessioni alla cache, questo flag memorizza nella cache i dati che richiedono che sia presente solo il codice fornito con OLE (o il sistema operativo sottostante) per produrli con IDataObject::GetData o IViewObject::D raw. Specificando questo valore, il contenitore può garantire che i dati possano essere recuperati anche quando il codice dell'oggetto o del gestore non è disponibile. |
ADVFCACHE_ONSAVE Valore: 32 Per le connessioni cache, questo flag aggiorna la rappresentazione nella cache solo quando viene salvato l'oggetto contenente la cache. La cache viene aggiornata anche quando l'oggetto OLE passa di nuovo dallo stato di esecuzione allo stato caricato ( perché un'operazione di salvataggio successiva richiederebbe la riesecuzione dell'oggetto ). Questo valore non è un flag valido per le connessioni di consulenza di dati o di visualizzazione. |
Commenti
Per una connessione consultiva di dati o viste, il contenitore usa le costanti ADVF durante la configurazione di una connessione tra un'istanza IAdviseSink e un'istanza IDataObject o IViewObject . Queste connessioni vengono configurate usando i metodi IDataObject::D Advise, IDataAdviseHolder::Advise o IViewObject::SetAdvise .
Per una connessione di memorizzazione nella cache, le costanti vengono specificate nel metodo IOleCache::Cache per indicare le richieste del contenitore su come aggiornare la cache dell'oggetto.
Queste costanti vengono usate anche nel membro advf della struttura STATDATA . Questa struttura viene utilizzata da IEnumSTATDATA per descrivere le connessioni enumerate e il membro advf indica i flag specificati quando è stata stabilita la connessione di avviso o cache. Quando STATDATA viene usato per un enumeratore IOleObject::EnumAdvise , il membro advf è indeterminato.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | objidl.h |