Поделиться через


Получение уведомлений

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

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

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

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

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

Затем используется следующим кодом:

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

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

См. также

Использование методов доступа