共用方式為


IViewObject::SetAdvise 方法 (oleidl.h)

建立檢視物件與建議接收之間的連線,以便通知接收物件檢視中的變更。

語法

HRESULT SetAdvise(
  [in] DWORD       aspects,
  [in] DWORD       advf,
  [in] IAdviseSink *pAdvSink
);

參數

[in] aspects

正在設定諮詢連線的檢視。 有效值取自列舉 DVASPECT。 如需詳細資訊,請參閱 DVASPECT 列舉。

[in] advf

包含控制諮詢連接的旗標群組。 有效值來自列舉 ADVF。 不過,只有一些可能的 ADVF 值與此方法相關。 下表簡短描述相關值。 如需更詳細的描述,請參閱 ADVF 列舉。

意義
ADVF_ONLYONCE
會在傳送第一個通知之後終結諮詢連線。
ADVF_PRIMEFIRST
無論資料是否已從其目前狀態變更,都會導致傳送初始通知。
 
注意 您可以合併ADVF_ONLYONCE和ADVF_PRIMEFIRST,以提供 IDataObject::GetData的非同步呼叫。
 

[in] pAdvSink

要通知變更之諮詢接收上的 IAdviseSink 介面指標。 Null值會刪除任何現有的諮詢連線。

傳回值

此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。

傳回碼 描述
OLE_E_ADVISENOTSUPPORTED
不支援諮詢通知。
DV_E_DVASPECT
dwAspect的值無效。
E_INVALIDARG
提供的一或多個值無效。
E_OUTOFMEMORY
此作業可用的記憶體不足。

備註

在檢視物件上要求繪製作業的容器應用程式也可以向 IViewObject::SetAdvise 方法註冊,以便在檢視物件的呈現變更時收到通知。 若要瞭解物件的基礎資料何時變更,您必須分別呼叫 IDataObject::D Advise

若要移除現有的諮詢連線,請呼叫 IViewObject::SetAdvise 方法,並將 pAdvSink 設定為 Null

如果檢視物件變更,則會透過其 IAdviseSink::OnViewChange 方法呼叫適當的建議接收。

在任何時間,指定的檢視物件只能支援一個諮詢連線。 因此,當 呼叫 IViewObject::SetAdvise 且檢視物件已經保留建議接收指標時,OLE 會先釋放現有的指標,再註冊新的指標。

需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 oleidl.h

另請參閱

ADVF

IAdviseSink

IViewObject

IViewObject::GetAdvise