Empfangen von Benachrichtigungen

OLE DB stellt Schnittstellen zum Empfangen von Benachrichtigungen bereit, wenn Ereignisse auftreten. Diese werden in OLE DB-Objektbenachrichtigungen in der OLE DB-Programmierreferenz beschrieben. Bei der Einrichtung dieser Ereignisse wird der standardmäßige COM-Verbindungspunktmechanismus verwendet. Beispielsweise implementiert ein ATL-Objekt, das Ereignisse über IRowsetNotify die IRowsetNotify Schnittstelle abrufen möchte, indem er der von der Klasse abgeleiteten Liste hinzufügt IRowsetNotify und sie über ein COM_INTERFACE_ENTRY Makro verfügbar macht.

IRowsetNotify verfügt über drei Methoden, die zu verschiedenen Zeiten aufgerufen werden können. Wenn Sie nur auf eine dieser Methoden reagieren möchten, können Sie die IRowsetNotifyImpl-Klasse verwenden, die E_NOTIMPL für die Methoden zurückgibt, die Sie nicht interessieren.

Wenn Sie das Rowset erstellen, müssen Sie dem Anbieter mitteilen, dass das zurückgegebene Rowset-Objekt unterstützt IConnectionPointContainerwerden soll, das zum Einrichten der Benachrichtigung erforderlich ist.

Der folgende Code zeigt, wie sie das Rowset aus einem ATL-Objekt öffnen und die AtlAdvise Funktion zum Einrichten der Benachrichtigungssenke verwenden. AtlAdvise gibt ein Cookie zurück, das beim Aufrufen AtlUnadviseverwendet wird.

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

Anschließend wird der folgende Code verwendet:

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

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

Siehe auch

Verwenden von Zugriffsmethoden