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 |