Как я могу получить уведомления?

OLE DB предоставляет интерфейсы для получения уведомлений о возникновении событий. Они описаны в уведомления глава OLE DB Справочник программиста. Программа установки этих событий использует стандартный механизм точек подключения COM. Например объект ATL, который хочет получить события через IRowsetNotify реализует интерфейс IRowsetNotify , добавляя IRowsetNotify к списку производного класса и подвергая его через COM_INTERFACE_ENTRY макрос.

IRowsetNotify есть три метода, которые могут вызываться в разное время. Если вы хотите отвечать на только один из этих методов, используйте класс IRowsetNotifyImpl , который возвращает значение E_NOTIMPL для методов, которые вы не заинтересованы в.

При создании набора строк сообщите поставщику который объект возвращаемого набора строк для поддержки IConnectionPointContainer, который необходим для создания уведомления.

Следующий код показывает, как открыть набор строк из объекта, а затем использовать функцию AtlAdvise для настройки уведомления приемника. AtlAdvise возвращает файл cookie, который будет использоваться при вызове AtlUnadvise.

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

продукт.Открыть (сессия, _T("Products"), amp propset);

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

Index