Příjem oznámení
OLE DB poskytuje rozhraní pro příjem oznámení, když dojde k událostem. Tyto informace jsou popsány v oznámení o objektech OLE DB v odkazech programátora OLE DB. Nastavení těchto událostí používá standardní mechanismus spojovacího bodu modelu COM. Například objekt ATL, který chce načíst události prostřednictvím IRowsetNotify
implementuje IRowsetNotify
rozhraní přidáním IRowsetNotify
do odvozeného seznamu tříd a zveřejněním prostřednictvím COM_INTERFACE_ENTRY makra.
IRowsetNotify
má tři metody, které lze volat v různých časech. Pokud chcete odpovědět pouze na jednu z těchto metod, můžete použít IRowsetNotifyImpl třídy, která vrací E_NOTIMPL pro metody, které vás nezajímají.
Při vytváření sady řádků musíte poskytovateli sdělit, že chcete, aby vrácený objekt sady řádků podporoval IConnectionPointContainer
, což je potřeba k nastavení oznámení.
Následující kód ukazuje, jak otevřít sadu řádků z objektu ATL a pomocí AtlAdvise
funkce nastavit jímku oznámení. AtlAdvise
vrátí soubor cookie, který se používá při volání AtlUnadvise
.
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_IConnectionPointContainer, true);
Potom ho použije následující kód:
product.Open(session, _T("Products"), &propset);
AtlAdvise(product.m_spRowset, GetUnknown(), IID_IRowsetNotify, &m_dwCookie);