Como posso receber notificações?

OLE DB fornece interfaces para receber notificações quando ocorrerem eventos. Estes são descritos na capítulo notificações de referência OLE DB Programmer. A instalação desses eventos usa o mecanismo de ponto de conexão de COM padrão. Por exemplo, um objeto ATL que deseja recuperar eventos por meio de IRowsetNotify implementa a interface de IRowsetNotify adicionando IRowsetNotify à lista classe derivada e expor-lo por meio de uma macro COM_INTERFACE_ENTRY.

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

Quando você cria o conjunto de linhas, você deve informar o provedor que você deseja que o objeto de conjunto de linhas retornado para suporte 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, em seguida, use a função AtlAdvise para configurar o coletor de notificação. AtlAdvise retorna um cookie que será usado quando você chamar AtlUnadvise.

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

produto.Abrir (sessão, _T("Products"), amp; propset);

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

Index