Condividi tramite


Metodo IDataAdviseHolder::Advise (objidl.h)

Crea una connessione tra un sink di avviso e un oggetto dati per la ricezione di notifiche.

Sintassi

HRESULT Advise(
  [in]  IDataObject *pDataObject,
  [in]  FORMATETC   *pFetc,
  [in]  DWORD       advf,
  [in]  IAdviseSink *pAdvise,
  [out] DWORD       *pdwConnection
);

Parametri

[in] pDataObject

Puntatore all'interfaccia IDataObject nell'oggetto dati per cui vengono richieste le notifiche. Se i dati in questo oggetto cambiano, viene inviata una notifica ai sink che hanno richiesto la notifica.

[in] pFetc

Puntatore a una struttura FORMATETC che contiene il formato, il supporto e il dispositivo di destinazione specificati che è di interesse per il sink che richiede la notifica. Ad esempio, è possibile che un sink desideri sapere solo quando la rappresentazione bitmap dei dati dell'oggetto dati viene modificata. Un altro sink potrebbe essere interessato solo al formato di metafile dello stesso oggetto. Ogni sink di notifica viene notificato quando i dati di interesse vengono modificati. Questi dati vengono passati nuovamente al sink di notifica quando si verifica la notifica.

[in] advf

Gruppo di flag che controllano la connessione consultiva. I valori possibili provengono dall'enumerazione ADVF . Tuttavia, solo alcuni dei possibili valori ADVF sono rilevanti per questo metodo. La tabella seguente descrive brevemente i valori pertinenti; Una descrizione più dettagliata è disponibile nella descrizione dell'enumerazione ADVF .

Valore Significato
ADVF_NODATA
Chiede che non vengano inviati dati insieme alla notifica.
ADVF_ONLYONCE
Fa sì che la connessione di avviso venga eliminata definitivamente dopo l'invio della prima notifica. Viene effettuata una chiamata implicita a IDataAdviseHolder::Unadvise per conto del chiamante per rimuovere la connessione.
ADVF_PRIMEFIRST
Fa sì che venga inviata una notifica iniziale indipendentemente dal fatto che i dati siano stati modificati dallo stato corrente.
ADVF_DATAONSTOP
Se specificato con ADVF_NODATA, questo flag causa l'invio di un'ultima notifica con i dati inclusi prima che l'oggetto dati venga eliminato definitivamente. Quando non viene specificato ADVF_NODATA, questo flag non ha alcun effetto.

[in] pAdvise

Puntatore all'interfaccia IAdviseSink nel sink di avviso che riceve la notifica di modifica.

[out] pdwConnection

Puntatore a una variabile che riceve un token che identifica questa connessione. L'oggetto chiamante può successivamente eliminare la connessione consultiva passando questo token a IDataAdviseHolder::Unadvise. Se il valore è zero, la connessione non è stata stabilita.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo.

Commenti

Tramite la connessione stabilita tramite questo metodo, il sink consultivo può ricevere notifiche future in una chiamata a IAdviseSink::OnDataChange.

Un oggetto invia una chiamata a IDataObject::D Advise per richiedere notifiche sulle modifiche apportate al formato, al supporto o al dispositivo di destinazione di interesse. Questi dati vengono specificati nel parametro pFormatetc . Il metodo DAdvise viene in genere implementato per chiamare IDataAdviseHolder::Advise per delegare l'attività di configurazione e rilevamento di una connessione al titolare del consiglio. Quando cambia il formato, il supporto o il dispositivo di destinazione in questione, l'oggetto dati chiama IDataAdviseHolder::SendOnDataChange per inviare le notifiche necessarie.

La connessione stabilita può essere eliminata passando il valore in pdwConnection in una chiamata a IDataAdviseHolder::Unadvise.

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 objidl.h

Vedi anche

CreateDataAdviseHolder

IDataAdviseHolder

IDataObject::D Advise