Condividi tramite


Ricezione di notifiche

OLE DB fornisce interfacce per la ricezione di notifiche quando si verificano eventi. Queste informazioni sono descritte in Ole DB Object Notifications in OLE DB Programmer's Reference .These are described in OLE DB Object Notifications in the OLE DB Programmer's Reference. L'installazione di questi eventi usa il meccanismo standard del punto di connessione COM. Ad esempio, un oggetto ATL che desidera recuperare gli eventi tramite IRowsetNotify implementa l'interfaccia IRowsetNotify aggiungendo IRowsetNotify all'elenco derivato dalla classe ed esponendolo tramite una macro COM_INTERFACE_ENTRY.

IRowsetNotify dispone di tre metodi, che possono essere chiamati in vari momenti. Se si vuole rispondere solo a uno di questi metodi, è possibile usare la classe IRowsetNotifyImpl , che restituisce E_NOTIMPL per i metodi a cui non si è interessati.

Quando si crea il set di righe, è necessario indicare al provider che si desidera che l'oggetto set di righe restituito supporti IConnectionPointContainer, necessario per configurare la notifica.

Il codice seguente illustra come aprire il set di righe da un oggetto ATL e usare la AtlAdvise funzione per configurare il sink di notifica. AtlAdvise restituisce un cookie utilizzato quando si chiama AtlUnadvise.

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

Quindi, usato dal codice seguente:

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

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

Vedi anche

Uso delle funzioni di accesso