Wie kann ich Benachrichtigungen empfangen.?

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) 

Index