IAdviseSink 介面 (objidl.h)
可讓容器和其他物件接收數據變更、檢視變更,以及相關物件中發生的複合文件變更通知。 例如,容器應用程式需要這類通知,才能讓連結和內嵌物件的快取簡報保持在最新狀態。 IAdviseSink 方法的呼叫是異步的,因此會傳送呼叫,然後執行下一個指令,而不需要等待呼叫的傳回。
若要讓諮詢連線存在,要接收通知的對象必須實作 IAdviseSink,而感興趣的對象必須實作 IOleObject::Advisor 和 IDataObject::D Advise。 處理中的對象和處理程式也可以實作 IViewObject::SetAdvise。 實作 IOleObject 的對象必須支援所有合理的諮詢方法。 為了簡化諮詢通知,OLE 提供 IDataAdviseHolder 和 IOleAdviseHolder 的實作,以追蹤諮詢連線,並透過其 IAdviseSink 介面的指標將通知傳送至適當的接收。 IViewObject (及其諮詢方法) 會在預設處理程式中實作。
如下表所示,實作建議接收的物件會藉由呼叫適當的方法來註冊接收特定類型的通知。
呼叫這個方法 | 註冊這些通知 |
---|---|
IOleObject::建議 | 儲存、關閉或重新命名檔時。 |
IDataObject::D Advise | 文件的數據變更時。 |
IViewObject::SetAdvise | 當文件的簡報變更時。 |
當套用至已註冊通知類型的事件時,物件應用程式會呼叫適當的 IAdviseSink 方法。 例如,當內嵌物件關閉時,它會呼叫 IAdviseSink::OnClose 方法來通知其容器。 這些通知是異步的,會在觸發這些通知的事件之後發生。
繼承
IAdviseSink 介面繼承自 IUnknown 介面。 IAdviseSink 也有下列類型的成員:
方法
IAdviseSink 介面具有這些方法。
IAdviseSink::OnClose 由伺服器呼叫,通知所有已註冊的諮詢接收物件已從執行中變更為載入狀態。 |
IAdviseSink::OnDataChange 由伺服器呼叫,以通知目前已註冊的數據對象,建議接收物件中的數據已變更。 |
IAdviseSink::OnRename 由伺服器呼叫,以通知所有已註冊的諮詢接收物件已重新命名。 |
IAdviseSink::OnSave 由伺服器呼叫,以通知所有已註冊的諮詢接收已儲存物件。 |
IAdviseSink::OnViewChange 通知物件的已註冊建議接收其檢視已變更。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | objidl.h |