共用方式為


支援告知

在提供者和取用者上實作連接點介面

若要實作通知,提供者類別必須繼承自 IRowsetNotifyCPIConnectionPointContainer

IRowsetNotifyCP 會實作連接點介面 IRowsetNotify 的提供者月臺。 IRowsetNotifyCP 會實作廣播函式,以在數據列集內容的變更連接點 IID_IRowsetNotify 上建議接聽程式。

您也必須使用 IRowsetNotifyImpl 在取用者上實作和註冊IRowsetNotify,讓取用者可以處理通知。 如需在取用者上實作連接點介面的相關信息,請參閱 接收通知

此外,類別必須有定義連接點進入的對應,如下所示:

BEGIN_CONNECTION_POINT_MAP
   CONNECTIONPOINT_ENTRY (IID_IRowsetNotify)
END_CONNECTION_POINT_MAP

新增 IRowsetNotify

若要新增 IRowsetNotify,您必須將 和 IRowsetNotifyCP<rowset-name> 新增IConnectionPointContainerImpl<rowset-name>至繼承鏈結。

例如,以下是 UpdatePV 中的繼承鏈結RUpdateRowset

注意

範例程式碼可能會與此處所列的不同;您應該將範例程式碼視為更新版本。

///////////////////////////////////////////////////////////////////////////
// class RUpdateRowset (in rowset.h)

class RUpdateRowset :
public CRowsetImpl< RUpdateRowset, CAgentMan, CUpdateCommand,
         CAtlArray< CAgentMan, CAtlArray<CAgentMan>>, CSimpleRow,
         IRowsetScrollImpl< RUpdateRowset, IRowsetScroll >>,
      public IRowsetUpdateImpl< RUpdateRowset, CAgentMan >,
      public IConnectionPointContainerImpl<RUpdateRowset>,
      public IRowsetNotifyCP<RUpdateRowset>

設定 COM 對應專案

您也需要將下列內容新增至資料列集中的 COM 對應:

COM_INTERFACE_ENTRY(IConnectionPointContainer)
COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)

這些巨集可讓任何人呼叫 QueryInterface 您的連接點容器 (基礎 IRowsetNotify) 來尋找提供者上要求的介面。 如需如何使用連接點的範例,請參閱 ATL POLYGON 範例和教學課程。

設定連接點對應專案

您也需要新增連接點對應。 您應該會看到類似下面的畫面:

BEGIN_CONNECTION_POINT_MAP(rowset-name)
     CONNECTION_POINT_ENTRY(_uuidof(IRowsetNotify))
END_CONNECTION_POINT_MAP()

此連接點對應可讓尋找介面的 IRowsetNotify 元件在您的提供者中尋找它。

設定屬性

您也需要將下列屬性新增至提供者。 您只需要根據您支援的介面來新增屬性。

屬性 如果您支援,請新增
DBPROP_IConnectionPointContainer 永遠
DBPROP_NOTIFICATIONGRANULARITY 永遠
DBPROP_NOTIFICATIONPHASES 永遠
DBPROP_NOTIFYCOLUMNSET IRowsetChange
DBPROP_NOTIFYROWDELETE IRowsetChange
DBPROP_NOTIFYROWINSERT IRowsetChange
DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE 永遠
DBPROP_NOTIFYROWFIRSTCHANGE IRowsetUpdate
DBPROP_NOTIFYROWSETRELEASE 永遠
DBPROP_NOTIFYROWUNDOCHANGE IRowsetUpdate
DBPROP_NOTIFYROWUNDODELETE IRowsetUpdate
DBPROP_NOTIFYROWUNDOINSERT IRowsetUpdate
DBPROP_NOTIFYROWUPDATE IRowsetUpdate

通知的大部分實作都已內嵌在 OLE DB 提供者範本中。 如果您未新增 IRowsetNotifyCP 至繼承鏈結,編譯程式會從編譯數據流中移除所有該程序代碼,因此您的程式代碼大小較小。

另請參閱

進階的提供者技術