Réception des notifications
OLE DB fournit des interfaces pour la réception des notifications quand des événements se produisent. Ces notifications sont décrites dans Notifications relatives à l'objet OLE DB, dans le Guide de référence du programmeur OLE DB. La configuration de ces événements utilise le mécanisme des points de connexion COM standard. Par exemple, un objet ATL qui souhaite récupérer des événements par l'intermédiaire de IRowsetNotify implémente l'interface IRowsetNotify en ajoutant IRowsetNotify à la liste dérivée de la classe et en l'exposant via une macro COM_INTERFACE_ENTRY.
IRowsetNotify possède trois méthodes, qui peuvent être appelées à différents moments. Si vous voulez répondre à une seule de ces méthodes, vous pouvez utiliser la classe IRowsetNotifyImpl, qui retourne E_NOTIMPL pour les méthodes qui ne vous intéressent pas.
Lorsque vous créez le jeu de lignes, vous devez indiquer au fournisseur que vous voulez que l'objet jeu de lignes retourné prenne en charge IConnectionPointContainer, qui est nécessaire pour configurer la notification.
Le code suivant indique comment ouvrir l'ensemble de lignes d'un objet ATL et utiliser la fonction AtlAdvise pour installer le récepteur de notification. AtlAdvise retourne un cookie utilisé lorsque vous appelez 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);