共用方式為


ADVF 列舉 (objidl.h)

旗標,控制資料的變更快取和通知。

Syntax

typedef enum tagADVF {
  ADVF_NODATA = 1,
  ADVF_PRIMEFIRST = 2,
  ADVF_ONLYONCE = 4,
  ADVF_DATAONSTOP = 64,
  ADVFCACHE_NOHANDLER = 8,
  ADVFCACHE_FORCEBUILTIN = 16,
  ADVFCACHE_ONSAVE = 32
} ADVF;

常數

 
ADVF_NODATA
值: 1
對於 (IDataObject::D AdviseIDataAdviseHolder::Advisor) 的資料諮詢連線,此旗標會要求資料物件在呼叫 IAdviseSink::OnDataChange時不會傳送資料。 變更通知的收件者稍後可以呼叫 IDataObject::GetData來要求資料。 資料物件可以透過在 STGMEDIUM 參數中傳遞TYMED_Null來接受要求,也可以提供資料。 例如,資料物件可能會有多個諮詢連線,並非所有指定的ADVF_NODATA,在此情況下,物件可能會傳送相同的通知給所有連線。 不論容器的要求為何,其 IAdviseSink 實作都必須檢查 STGMEDIUM 參數,因為它負責在未TYMED_Null時釋放媒體。

對於 IOleCache::Cache) (快取連線,此旗標會要求執行中物件的變更不會更新快取。 相反地,容器會藉由明確呼叫 IOleCache::SetData來更新快取。 這個情況通常是在快取物件的圖示層面時發生。

ADVF_NODATA不是檢視諮詢連線的有效旗標, (IViewObject::SetAdvise) ,它會傳回E_INVALIDARG。
ADVF_PRIMEFIRST
值: 2
要求物件在初始呼叫 IAdviseSink::OnDataChange (資料或檢視諮詢連線) 或更新快取連線的快取 () 之前,先變更資料或檢視檢視。 與ADVF_ONLYONCE搭配使用,此參數會提供非同步 的 IDataObject::GetData 呼叫。
ADVF_ONLYONCE
值: 4
要求物件在刪除連接之前只執行一次變更告知或快取更新。

ADVF_ONLYONCE傳送一個資料或檢視通知之後,自動刪除諮詢連線。 諮詢接收只會收到一個 IAdviseSink 呼叫。 如果已建立連線,則會傳回非零的連接識別碼,因此呼叫端可以使用它來刪除第一個變更通知之前的連線。

對於資料變更通知,ADVF_ONLYONCE和ADVF_PRIMEFIRST的組合提供非同步 IDataObject::GetData 呼叫。

搭配快取使用時,ADVF_ONLYONCE只會在收到第一個 IAdviseSink::OnDataChange 通知時更新快取一次。 更新完成後,物件與快取之間的諮詢連線會中斷連線。 諮詢連接的來源物件會呼叫 Release 方法。
ADVF_DATAONSTOP
值: 64
針對資料諮詢連接,確保資料的存取性。 這個旗標表示當資料物件關閉時,它應該呼叫 ,以提供呼叫的資料。 一般而言,此值會與ADVF_NODATA搭配使用。 如果沒有IAdviseSink::OnDataChange 是值,則當 OnDataChange 呼叫沒有資料到達接收時,來源可能已完成其關機,而且資料可能無法存取。 指定此值的接收應該在傳遞 時接受 OnDataChange 中提供的資料,因為它們可能不會取得另一個擷取的機會。

對於快取連線,此旗標表示物件應該在物件關閉時更新快取。

ADVF_DATAONSTOP不是檢視諮詢連線的有效旗標。
ADVFCACHE_NOHANDLER
值: 8
ADVFCACHE_FORCEBUILTIN同義字,更常使用。
ADVFCACHE_FORCEBUILTIN
值: 16
這個值是由 DLL 物件應用程式和執行物件繪製的物件處理常式 (Object Handler) 所使用。 ADVFCACHE_FORCEBUILTIN會指示 OLE 快取簡報資料,以確保快取中有簡報。 此值不是資料或檢視諮詢連線的有效旗標。 針對快取連線,此旗標會快取只需要隨附于 OLE (或基礎作業系統的程式碼的資料,) 才能使用 IDataObject::GetDataIViewObject::D raw產生它。 藉由指定此值,容器可確保即使物件或處理常式程式碼無法使用,也可以擷取資料。
ADVFCACHE_ONSAVE
值: 32
針對快取連接,這個旗標只會在儲存包含快取區的物件時更新快取表示。 當 OLE 物件從執行中狀態轉換回載入狀態 (時,也會更新快取,因為後續儲存作業需要重新執行物件) 。 此值不是資料或檢視諮詢連線的有效旗標。

備註

針對資料或檢視諮詢連線,容器會在設定IAdviseSink實例與IDataObjectIViewObject實例之間的連線時,使用ADVF常數。 這些連線是使用 IDataObject::D AdviseIDataAdviseHolder::AdviseIViewObject::SetAdvise 方法進行設定。

對於快取連線,常數是在 IOleCache::Cache 方法中指定,以指出容器對物件應該如何更新快取的要求。

這些常數也會用於STATDATA結構的advf成員中。 IEnumSTATDATA會使用此結構來描述列舉的連接,advf成員會指出建立諮詢或快取連線時所指定的旗標。 當 STATDATA 用於 IOleObject::EnumAdvise 列舉值時, advf 成員是不確定的。

需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 objidl.h

另請參閱

IDataAdviseHolder

IDataObject

IEnumSTATDATA

IOleCache

IViewObject