Partilhar via


Recebendo notificações

O OLE DB fornece interfaces para receber notificações quando ocorrem eventos. Elas são descritas em Notificações de Objeto OLE DB na Referência do Programador OLE DB. A instalação desses eventos usa o mecanismo de ponto de conexão COM padrão. Por exemplo, um objeto ATL que deseja recuperar eventos por meio de IRowsetNotify implementa a interface IRowsetNotify adicionando IRowsetNotify à lista derivada de classe e expondo-a por meio de uma macro COM_INTERFACE_ENTRY.

IRowsetNotify tem três métodos, que podem ser chamados em vários momentos. Se você quiser responder a apenas um desses métodos, poderá usar a classe IRowsetNotifyImpl, que retorna E_NOTIMPL para os métodos nos quais não está interessado.

Ao criar o conjunto de linhas, você deve informar ao provedor que deseja que o objeto de conjunto de linhas retornado dê 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 ATL e usar a função AtlAdvise para configurar o coletor de notificação. AtlAdvise retorna um cookie que é usado quando você chama AtlUnadvise.

CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_IConnectionPointContainer, true);

Depois, usado pelo seguinte código:

product.Open(session, _T("Products"), &propset);

AtlAdvise(product.m_spRowset, GetUnknown(), IID_IRowsetNotify, &m_dwCookie);

Confira também

Usando acessadores