Compartilhar via


Método IViewObject::SetAdvise (oleidl.h)

Estabelece uma conexão entre o objeto de exibição e um coletor de aconselhamento para que o coletor de aconselhamento possa ser notificado sobre as alterações no modo de exibição do objeto.

Sintaxe

HRESULT SetAdvise(
  [in] DWORD       aspects,
  [in] DWORD       advf,
  [in] IAdviseSink *pAdvSink
);

Parâmetros

[in] aspects

Exibição para a qual a conexão de consultoria está sendo configurada. Os valores válidos são obtidos da enumeração DVASPECT. Consulte a enumeração DVASPECT para obter mais informações.

[in] advf

Contém um grupo de sinalizadores para controlar a conexão de consultoria. Os valores válidos são do ADVF de enumeração. No entanto, apenas alguns dos valores possíveis do ADVF são relevantes para esse método. A tabela a seguir descreve brevemente os valores relevantes. Consulte a enumeração ADVF para obter uma descrição mais detalhada.

Valor Significado
ADVF_ONLYONCE
Faz com que a conexão de consultoria seja destruída após o envio da primeira notificação.
ADVF_PRIMEFIRST
Faz com que uma notificação inicial seja enviada independentemente de os dados tiverem sido alterados do estado atual.
 
Nota O ADVF_ONLYONCE e ADVF_PRIMEFIRST podem ser combinados para fornecer uma chamada assíncrona para IDataObject::GetData.
 

[in] pAdvSink

Ponteiro para a interface IAdviseSink no coletor de consultoria que deve ser informado das alterações. Um valor NULL exclui qualquer conexão de consultoria existente.

Valor retornado

Esse método retorna S_OK com êxito. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
OLE_E_ADVISENOTSUPPORTED
Não há suporte para notificações de consultoria.
DV_E_DVASPECT
Valor inválido para dwAspect.
E_INVALIDARG
Um ou mais dos valores fornecidos são inválidos.
E_OUTOFMEMORY
Memória insuficiente disponível para esta operação.

Comentários

Um aplicativo de contêiner que está solicitando uma operação de desenho em um objeto de exibição também pode se registrar com o método IViewObject::SetAdvise para ser notificado quando a apresentação do objeto de exibição for alterada. Para saber mais sobre quando os dados subjacentes de um objeto são alterados, você deve chamar IDataObject::D Advise separadamente.

Para remover uma conexão de consultoria existente, chame o método IViewObject::SetAdvise com pAdvSink definido como NULL.

Se o objeto de exibição for alterado, uma chamada será feita ao coletor de aconselhamento apropriado por meio do método IAdviseSink::OnViewChange .

A qualquer momento, um determinado objeto de exibição pode dar suporte a apenas uma conexão de consultoria. Portanto, quando IViewObject::SetAdvise é chamado e o objeto de exibição já está segurando um ponteiro de coletor de aviso, o OLE libera o ponteiro existente antes que o novo seja registrado.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho oleidl.h

Confira também

ADVF

Iadvisesink

Iviewobject

IViewObject::GetAdvise