Recebendo notificações
O OLE DB fornece interfaces para receber notificações quando os eventos ocorrem. Esses são descritos em Notificações do objeto OLE DBna referência do programador de OLE DB. A configuração desses eventos usa o mecanismo padrão do ponto da. Por exemplo, um objeto de ATL que deseja recuperar eventos com IRowsetNotify implementa a interface de IRowsetNotify adicionando IRowsetNotify classe à lista derivado e expõe o com uma macro de COM_INTERFACE_ENTRY .
IRowsetNotify tem três métodos, que podem ser chamados diversas vezes. Se você quiser responder a somente um desses métodos, você pode usar a classe de IRowsetNotifyImpl , que retorna E_NOTIMPL para os métodos que não está interessado.
Quando você cria o conjunto de linhas, você deve informar ao provedor que você deseja que o objeto retornado do conjunto de linhas para dar suporte a IConnectionPointContainer, que é necessário para configurar a notificação.
O código a seguir mostra como abrir o conjunto de linhas de um objeto de ATL e usar a função de AtlAdvise para configurar o coletor de notificação. AtlAdvise retorna um cookie usada quando você chama AtlUnadvise.
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_IConnectionPointContainer, true);
product.Open(session, _T("Products"), &propset);
AtlAdvise(product.m_spRowset, GetUnknown(), IID_IRowsetNotify, &m_dwCookie);