次の方法で共有


通知の受信

OLE DB では、イベント発生時に通知を受信するためのインターフェイスを用意しています。これらのインターフェイスについては、『OLE DB Programmer's Reference』の「Chapter 12: OLE DB Object Notifications」を参照してください。これらのイベントのセットアップでは、標準の COM コネクション ポイント機構を使用します。たとえば、IRowsetNotify を通じてイベントを取得する ATL オブジェクトは、クラスから派生した一覧に IRowsetNotify を追加し、これを COM_INTERFACE_ENTRY マクロを通じて公開することで、IRowsetNotify インターフェイスを実装します。

IRowsetNotify には、さまざまな時点で呼び出すことができる 3 つのメソッドがあります。これらのメソッドの 1 つに対してだけ応答する場合は、IRowsetNotifyImpl クラスを使用します。このクラスは、関係のないメソッドに対しては E_NOTIMPL を返します。

行セットを作成するときは、返された行セット オブジェクトで IConnectionPointContainer をサポートすることをプロバイダーに通知する必要があります。これは通知のセットアップに必要です。

ATL オブジェクトから行セットを開き、AtlAdvise 関数を使用して通知シンクをセットアップする方法を次のコード例に示します。AtlAdvise は、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);

参照

概念

アクセサーの使用