Come posso ricevere le notifiche?

OLE DB fornisce interfacce per la ricezione di notifiche quando si verificano eventi. Questi sono descritti nei capitolo di notifiche di OLE DB Programmer di riferimento. Installazione di questi eventi utilizza il meccanismo di punti di connessione COM standard. Ad esempio, un oggetto ATL che vuole recuperare degli eventi tramite IRowsetNotify implementa l'interfaccia IRowsetNotify aggiungendo IRowsetNotify all'elenco classe derivata ed esponendo attraverso una macro COM_INTERFACE_ENTRY.

IRowsetNotify dispone di tre metodi, che possono essere chiamati in tempi diversi. Se si desidera rispondere a uno solo di questi metodi, č possibile utilizzare la classe IRowsetNotifyImpl , che restituisce E_NOTIMPL per i metodi non desiderati.

Quando si crea il set di righe, č necessario indicare il provider che si desidera che l'oggetto del set di righe restituito per supportare IConnectionPointContainer, che č necessario impostare la notifica.

Il codice riportato di seguito viene illustrato come aprire il rowset da un oggetto ATL, quindi utilizzare la funzione AtlAdvise per impostare il sink di notifica. AtlAdvise restituisce un cookie che verrā utilizzato quando si chiama AtlUnadvise.

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

prodotto.Aprire (sessione, _T("Products"), amp propset);

AtlAdvise (product.m_spRowset, GetUnknown(), IID_IRowsetNotify e m_dwCookie) 

Index