Share via


Interfaccia IAdviseSink (objidl.h)

Consente ai contenitori e ad altri oggetti di ricevere notifiche di modifiche ai dati, visualizzare le modifiche e le modifiche del documento composto che si verificano negli oggetti di interesse. Le applicazioni contenitore, ad esempio, richiedono tali notifiche per mantenere memorizzate nella cache le presentazioni degli oggetti collegati e incorporati aggiornati. Le chiamate ai metodi IAdviseSink sono asincrone, quindi la chiamata viene inviata e quindi l'istruzione successiva viene eseguita senza attendere la restituzione della chiamata.

Per la presenza di una connessione consultiva, l'oggetto che consiste nel ricevere notifiche deve implementare IAdviseSink e gli oggetti in cui è interessato devono implementare IOleObject::Advise e IDataObject::D Advise. Gli oggetti e i gestori in-process possono anche implementare IViewObject::SetAdvise. Gli oggetti che implementano IOleObject devono supportare tutti i metodi di consulenza ragionevoli. Per semplificare le notifiche di consulenza, OLE fornisce implementazioni delle interfacce IDataAdviseHolder e IOleAdviseHolder, che mantengono traccia delle connessioni di consulenza e inviano notifiche ai sink appropriati tramite puntatori alle interfacce IAdviseSink. IViewObject (e i relativi metodi di consulenza) vengono implementati nel gestore predefinito.

Come illustrato nella tabella seguente, un oggetto che ha implementato un sink di consigli registra l'interesse per ricevere determinati tipi di notifiche chiamando il metodo appropriato.

Chiamare questo metodo Per eseguire la registrazione per queste notifiche
IOleObject::Consigli Quando un documento viene salvato, chiuso o rinominato.
IDataObject::D Advise Quando cambiano i dati di un documento.
IViewObject::SetAdvise Quando la presentazione di un documento cambia.
 

Quando si verifica un evento che si applica a un tipo di notifica registrato, l'applicazione oggetto chiama il metodo IAdviseSink appropriato. Ad esempio, quando un oggetto incorporato si chiude, chiama il metodo IAdviseSink::OnClose per notificarne il contenitore. Queste notifiche sono asincrone, che si verificano dopo gli eventi che li attivano.

Ereditarietà

L'interfaccia IAdviseSink eredita dall'interfaccia IUnknown . IAdviseSink include anche questi tipi di membri:

Metodi

L'interfaccia IAdviseSink include questi metodi.

 
IAdviseSink::OnClose

Chiamato dal server per notificare a tutti i sink di consulenza registrati che l'oggetto è cambiato dall'esecuzione allo stato caricato.
IAdviseSink::OnDataChange

Chiamato dal server per notificare a un oggetto dati attualmente registrato i sink che i dati nell'oggetto sono stati modificati.
IAdviseSink::OnRename

Chiamato dal server per notificare a tutti i sink di consulenza registrati che l'oggetto è stato rinominato.
IAdviseSink::OnSave

Chiamato dal server per notificare a tutti i sink di consulenza registrati che l'oggetto è stato salvato.
IAdviseSink::OnViewChange

Notifica ai sink registrati di un oggetto che la visualizzazione è stata modificata.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione objidl.h

Vedi anche

IAdviseSink2

IAdviseSinkEx

IDataAdviseHolder

IDataObject::D Advise

IOleAdviseHolder

IOleObject::Consigli

IUnknown

IViewObject::SetAdvise