Compartilhar via


IAdviseSink

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

O IAdviseSink interface permite recipientes e outros objetos para receber notificações de alterações dados, exibição alterações e compostos - documento muda ocorrendo em objetos de interesse. De exemplo, aplicativos contêiner exigem tais notificações para apresentações manter em cache dos seus vinculado e incorporado objetos atualizado.

Chamadas para IAdviseSink Métodos são assíncrono, para que o chamar é enviada e, em seguida, o próximo instrução é executado sem esperar para a chamar do remetente.

Para uma de consultoria conexão existir, o objeto que seja receber notificações deve implementar IAdviseSinke os objetos no qual está interessado deve implementar IOleObject::Advise e IDataObject::DAdvise.

No-processo objetos e manipuladores também pode implementar IViewObject::SetAdvise.

Objetos implementação IOleObject Deve suporte de consultoria razoável todos os métodos. IViewObject e seu de consultoria métodos são implementados no manipulador de usar como padrão.

Como mostra a seguinte tabela, um objeto que implementou um coletor de avisos registra seu interesse no recebimento de certos tipos de notificações por chamado o apropriado método.

Chamar esse método Para registrar para essas notificações

IOleObject::Advise

Quando um documento é salvo, fechado ou renomeado

IDataObject::DAdvise

Quando dados de um documento for alterado

IViewObject::SetAdvise

Quando apresentação de um documento for alterado

Quando um evento ocorre que se aplica a um tipo registrado notificação, o aplicativo objeto chama o apropriado IAdviseSink método.

De exemplo, quando um objeto incorporado fecha, ele chama o IAdviseSink::OnClose método para notificar seu contêiner.

São essas notificações assíncrono, ocorrendo após os eventos que disparador-los.

Quando a implementar

Objetos, como aplicativos contêiner e documentos compostos, implementar IAdviseSink Para receber notificação de alterações em dados, apresentação, nome, ou estado de suas vinculado e incorporado objetos. Registrar implementadores para um ou mais tipos de notificação, depending on de acordo com suas necessidades.

Notificações de alterações em um objeto incorporado se originam no servidor e fluxo para o contêiner by Way of manipulador de objeto.

Se o objeto for um objeto vinculado, o objeto link OLE intercepta as notificações do manipulador de objeto e notifica o contêiner diretamente.

Todos os recipientes, o manipulador objeto e o objeto link OLE registrar para notificações OLE. O contêiner típica também registra para exibição notificações. Notificações de dados geralmente são enviadas para o objeto link OLE e objeto manipulador.

Quando usar

Servidores chamar os métodos de IAdviseSink Para notificar objetos com os quais eles têm uma de consultoria conexão de alterações em dados de um objeto, exibição, nome ou estado.

Observação

OLE não permite síncrono chama a implementação de assíncrono métodos, portanto, não é possível fazer síncrono chama em qualquer um do IAdviseSink métodos da interface.De exemplo, uma implementação de IAdviseSink::OnDataChange não pode conter um chamar para IDataObject::GetData.

Métodos

A seguinte tabela mostra os métodos para esta interface. Como todas as interfaces COM, essa interface herda os métodos para a IUnknown interface.

Método Descrição

IAdviseSink::OnClose

Aconselha o coletor que dados alterados.

IAdviseSink::OnDataChange

Aconselha o coletor que uma exibição objeto alterado.

IAdviseSink::OnRename

Aconselha o coletor que um nome objeto alterado.

IAdviseSink::OnSave

Aconselha o coletor que um objeto foi salvo para disco.

IAdviseSink::OnViewChange

Aconselha o coletor que um objeto fechado.

Remarks

Para determinar se a plataforma oferece suporte a esta interface, consulte Determinando suporte COM APIs.

Requisitos

Header objidl.h, objidl.idl
Library oleaut32.lib, uuid.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

OLE Interfaces
IDataObject::DAdvise
IDataObject::GetData
IOleObject
IOleObject::Advise
IUnknown
IViewObject
IViewObject::SetAdvise