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


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

В 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);

См. также

Основные понятия

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