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 Advise 或 IDataAdviseHolder::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::GetData 或 IViewObject::D raw產生它。 藉由指定此值,容器可確保即使物件或處理常式程式碼無法使用,也可以擷取資料。 |
ADVFCACHE_ONSAVE 值: 32 針對快取連接,這個旗標只會在儲存包含快取區的物件時更新快取表示。 當 OLE 物件從執行中狀態轉換回載入狀態 (時,也會更新快取,因為後續儲存作業需要重新執行物件) 。 此值不是資料或檢視諮詢連線的有效旗標。 |
備註
針對資料或檢視諮詢連線,容器會在設定IAdviseSink實例與IDataObject或IViewObject實例之間的連線時,使用ADVF常數。 這些連線是使用 IDataObject::D Advise、 IDataAdviseHolder::Advise或 IViewObject::SetAdvise 方法進行設定。
對於快取連線,常數是在 IOleCache::Cache 方法中指定,以指出容器對物件應該如何更新快取的要求。
這些常數也會用於STATDATA結構的advf成員中。 IEnumSTATDATA會使用此結構來描述列舉的連接,advf成員會指出建立諮詢或快取連線時所指定的旗標。 當 STATDATA 用於 IOleObject::EnumAdvise 列舉值時, advf 成員是不確定的。
需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | objidl.h |