Jak odbierać powiadomienia?

OLE DB dostarcza interfejsy do odbierania powiadomień po wystąpieniu zdarzenia. Opisano je w powiadomienia o rozdziale OLE DB Programmer's Reference. Ustawienia tych zdarzeń używa standardowego mechanizmu punktu połączenia COM. Na przykład obiekt ATL, który chce pobrać zdarzenia za pomocą IRowsetNotify implementuje interfejs IRowsetNotify przez dodanie IRowsetNotify do listy Klasa pochodna i narażają je za pomocą makra COM_INTERFACE_ENTRY.

IRowsetNotify ma trzy metody, które mogą być w różnym czasie. Jeśli chcesz odpowiedzieć tylko jednej z tych metod, można użyć klasy IRowsetNotifyImpl , która zwraca E_NOTIMPL dla metod, które nie jesteś zainteresowany.

Podczas tworzenia zestawu wierszy, należy powiadomić dostawca żądany obiekt zwracanych wierszy do obsługi IConnectionPointContainer, co jest niezbędne do utworzenia powiadomienia.

Poniższy kod ilustruje sposób otwierania zestawu wierszy z obiektu ATL, a następnie użyć funkcji AtlAdvise zlew powiadomienia. AtlAdvise zwraca plik cookie, który będzie używany podczas wywołania AtlUnadvise.

CDBPropSet propset(DBPROPSET_ROWSET);
zestaw właściwości.AddProperty(DBPROP_IConnectionPointContainer, true);

produkt.Otwórz (sesji, _T("Products"), amp; zestaw właściwości);

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

Index