Método IDataAdviseHolder::Advise (objidl.h)
Cria uma conexão entre um coletor de consultoria e um objeto de dados para receber notificações.
Sintaxe
HRESULT Advise(
[in] IDataObject *pDataObject,
[in] FORMATETC *pFetc,
[in] DWORD advf,
[in] IAdviseSink *pAdvise,
[out] DWORD *pdwConnection
);
Parâmetros
[in] pDataObject
Um ponteiro para a interface IDataObject no objeto de dados para o qual as notificações são solicitadas. Se os dados nesse objeto forem alterados, uma notificação será enviada aos coletores de aviso que solicitaram a notificação.
[in] pFetc
Um ponteiro para uma estrutura FORMATETC que contém o formato, o meio e o dispositivo de destino especificados que é de interesse para o coletor de aviso solicitando notificação. Por exemplo, talvez um coletor queira saber somente quando a representação de bitmap dos dados no objeto de dados for alterada. Outro coletor pode estar interessado apenas no formato de metarquivo do mesmo objeto. Cada coletor de consultoria é notificado quando os dados de interesse são alterados. Esses dados são passados de volta para o coletor de avisos quando a notificação ocorre.
[in] advf
Um grupo de sinalizadores que controlam a conexão de consultoria. Os valores possíveis são da enumeração ADVF . 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; uma descrição mais detalhada pode ser encontrada na descrição da enumeração ADVF .
Valor | Significado |
---|---|
|
Solicita que nenhum dado seja enviado junto com a notificação. |
|
Faz com que a conexão de consultoria seja destruída após o envio da primeira notificação. Uma chamada implícita para IDataAdviseHolder::Unadvise é feita em nome do chamador para remover a conexão. |
|
Faz com que uma notificação inicial seja enviada independentemente de os dados tiverem sido alterados do estado atual. |
|
Quando especificado com ADVF_NODATA, esse sinalizador faz com que uma última notificação com os dados incluídos sejam enviados antes que o objeto de dados seja destruído. Quando ADVF_NODATA não é especificado, esse sinalizador não tem efeito. |
[in] pAdvise
Um ponteiro para a interface IAdviseSink no coletor de consultoria que recebe a notificação de alteração.
[out] pdwConnection
Um ponteiro para uma variável que recebe um token que identifica essa conexão. O objeto de chamada pode excluir posteriormente a conexão de consultoria passando esse token para IDataAdviseHolder::Unadvise. Se esse valor for zero, a conexão não terá sido estabelecida.
Retornar valor
Esse método retorna S_OK com êxito.
Comentários
Por meio da conexão estabelecida por meio desse método, o coletor de consultoria pode receber notificações futuras em uma chamada para IAdviseSink::OnDataChange.
Um objeto emite uma chamada para IDataObject::D Vise para solicitar notificação sobre alterações no formato, dispositivo médio ou de destino de interesse. Esses dados são especificados no parâmetro pFormatetc . O método DAdvise geralmente é implementado para chamar IDataAdviseHolder::Advise para delegar a tarefa de configurar e rastrear uma conexão com o titular da consultoria. Quando o formato, o dispositivo médio ou de destino em questão é alterado, o objeto de dados chama IDataAdviseHolder::SendOnDataChange para enviar as notificações necessárias.
A conexão estabelecida pode ser excluída passando o valor em pdwConnection em uma chamada para IDataAdviseHolder::Unadvise.
Requisitos
Requisito | Valor |
---|---|
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 | objidl.h |