Método IAdviseSink::OnDataChange (objidl.h)
Chamado pelo servidor para notificar os coletores de aviso atualmente registrados de um objeto de dados de que os dados no objeto foram alterados.
Sintaxe
void OnDataChange(
[in] FORMATETC *pFormatetc,
[in] STGMEDIUM *pStgmed
);
Parâmetros
[in] pFormatetc
Um ponteiro para uma estrutura FORMATETC , que descreve o formato, o dispositivo de destino, a renderização e as informações de armazenamento do objeto de dados de chamada.
[in] pStgmed
Um ponteiro para uma estrutura STGMEDIUM , que define o meio de armazenamento (memória global, arquivo de disco, objeto de armazenamento, objeto de fluxo, objeto GDI ou indefinido) e a propriedade desse meio para o objeto de dados de chamada.
Retornar valor
Nenhum
Comentários
Manipuladores de objetos e contêineres de objetos de link implementam IAdviseSink::OnDataChange para executar as etapas apropriadas quando notificados de que os dados no objeto foram alterados. Eles também devem chamar IDataObject::D Advise para configurar conexões de consultoria com os objetos em cujos dados eles estão interessados.
Os contêineres que aproveitam o suporte ao cache do OLE não precisam se registrar para notificações de alteração de dados, pois as informações necessárias para atualizar a apresentação do objeto do contêiner, incluindo quaisquer alterações em seus dados, são mantidas no cache do objeto.
Anotações aos implementadores
Se você implementar IAdviseSink::OnDataChange para um contêiner, lembre-se de que esse método é assíncrono e que fazer chamadas síncronas em métodos assíncronos não é válido. Portanto, você não pode chamar IDataObject::GetData para obter os dados necessários para atualizar seu objeto. Em vez disso, você posta uma mensagem interna ou invalida o retângulo dos dados alterados chamando InvalidateRect e aguardando uma mensagem de WM_PAINT , momento em que você está livre para obter os dados e atualizar o objeto.Os dados em si, que são válidos apenas durante a chamada, são passados usando o meio de armazenamento apontado por pStgmed. Como o chamador é proprietário do meio, o coletor de aconselhamento não deve liberá-lo. Além disso, se pStgmed apontar para uma interface IStorage ou IStream , o coletor não deverá incrementar a contagem de referência.
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 |