IAdviseSink
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 |
---|---|
Quando um documento é salvo, fechado ou renomeado |
|
Quando dados de um documento for alterado |
|
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 |
---|---|
Aconselha o coletor que dados alterados. |
|
Aconselha o coletor que uma exibição objeto alterado. |
|
Aconselha o coletor que um nome objeto alterado. |
|
Aconselha o coletor que um objeto foi salvo para disco. |
|
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