Réception des notifications
OLE DB fournit des interfaces pour recevoir des notifications lorsque des événements se produisent. Ces informations sont décrites dans les notifications d’objet OLE DB dans la référence du programmeur OLE DB. La configuration de ces événements utilise le mécanisme de point de connexion COM standard. Par exemple, un objet ATL qui souhaite récupérer des événements via 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
a trois méthodes, qui peuvent être appelées à différents moments. Si vous souhaitez 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 l’ensemble de lignes, vous devez indiquer au fournisseur que vous souhaitez que l’objet d’ensemble de lignes retourné soit pris en charge IConnectionPointContainer
, ce qui est nécessaire pour configurer la notification.
Le code suivant montre comment ouvrir l’ensemble de lignes à partir d’un objet ATL et utiliser la AtlAdvise
fonction pour configurer le récepteur de notification. AtlAdvise
retourne un cookie utilisé lorsque vous appelez AtlUnadvise
.
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_IConnectionPointContainer, true);
Ensuite, utilisé par le code suivant :
product.Open(session, _T("Products"), &propset);
AtlAdvise(product.m_spRowset, GetUnknown(), IID_IRowsetNotify, &m_dwCookie);