接收告知
OLE DB 會提供事件發生時負責接收告知的介面。 如需詳細資訊,請參閱《OLE DB 程式設計人員參考》的 OLE DB 物件告知。 這些事件的設定會使用標準 COM 連接點 (Connection Point) 機制。 例如,一個想要透過 IRowsetNotify 擷取事件的 ATL 物件,會將 IRowsetNotify 加入至類別衍生清單以實作 IRowsetNotify 介面,並透過 COM_INTERFACE_ENTRY 巨集以顯露這個介面。
IRowsetNotify 有三個可以在不同時間呼叫的方法。 如果您只想要回應其中一個方法,您可以使用 IRowsetNotifyImpl 類別,它會對您不感興趣的方法傳回 E_NOTIMPL。
您必須在建立資料列集時,通知提供者您希望傳回的資料列集物件以支援 IConnectionPointContainer (設定告知時需要使用到)。
下列程式碼示範如何開啟 ATL 物件的資料列集,並使用 AtlAdvise 功能設定告知接收。 AtlAdvise 會傳回您在呼叫 AtlUnadvise 時所使用的 Cookie。
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_IConnectionPointContainer, true);
product.Open(session, _T("Products"), &propset);
AtlAdvise(product.m_spRowset, GetUnknown(), IID_IRowsetNotify, &m_dwCookie);