OLE DB bietet Schnittstellen zum Empfangen von Benachrichtigungen, wenn Ereignisse auftreten. Diese werden beschrieben der Benachrichtigungen Kapitel der OLE DB Programmer's Reference. Setup dieser Ereignisse verwendet den Standardmechanismus COM-Verbindungspunkt. Beispielsweise implementiert ein ATL-Objekt, das Ereignisse über IRowsetNotify abrufen möchte die IRowsetNotify -Schnittstelle, indem IRowsetNotify zu der aus Klassen abgeleiteten Liste hinzugefügt und mit einem COM_INTERFACE_ENTRY -Makro.
IRowsetNotify besitzt drei Methoden, die zu verschiedenen Zeiten aufgerufen werden können. Wenn Sie nur eine dieser Methoden reagieren möchten, können Sie die IRowsetNotifyImpl -Klasse verwenden, die E_NOTIMPL für die Methoden zurückgibt, an denen Sie nicht interessiert sind.
Wenn Sie das Rowset zu erstellen, müssen Sie dem Anbieter mitteilen, dass das zurückgegebene Rowset-Objekt IConnectionPointContainer, unterstützen, die notwendig ist, um die Benachrichtigung einrichten soll.
Der folgende Code veranschaulicht das Rowset über ein ATL-Objekt öffnen, dann die AtlAdvise -Funktion verwenden, um den Benachrichtigungsempfänger einzurichten. AtlAdvise gibt einen Cookie, der beim Aufruf von AtlUnadvise verwendet wird.
CDBPropSet propset(DBPROPSET_ROWSET);
Propset.AddProperty(DBPROP_IConnectionPointContainer, true);
Produkt.Öffnen Sie (Session, _T("Products"), Amp Propset);
AtlAdvise (product.m_spRowset, GetUnknown(), IID_IRowsetNotify & M_dwCookie)