共用方式為


IOleCache::Cache 方法 (oleidl.h)

指定要在內嵌物件內快取的格式和其他數據。

語法

HRESULT Cache(
  [in]  FORMATETC *pformatetc,
  [in]  DWORD     advf,
  [out] DWORD     *pdwConnection
);

參數

[in] pformatetc

FORMATETC 結構的指標,指定要快取的格式和其他數據。 檢視快取是以 pformatetc 傳遞零個剪貼簿格式來指定。

[in] advf

控制快取的旗標群組。 可能的值來自 ADVF 列舉。 在此內容中使用時,針對快取,這些值具有特定意義,如中所述。 如需更詳細的描述,請參閱 ADVF 列舉。

[out] pdwConnection

接收此連線標識碼之變數的指標,稍後可藉由將它傳遞至 IOleCache::Uncache) ,用來關閉快取 (。 如果此值為 0,則不會建立連線。 OLE 提供的實作會針對連線標識碼使用非零的數位。

傳回值

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

傳回碼 Description
E_INVALIDARG
提供的 pformatetcadvf 自變數無效。
E_UNEXPECTED
已發生未預期的錯誤。
E_OUTOFMEMORY
作業可用的記憶體不足。
CACHE_S_FORMATETC_NOTSUPPORTED
快取已建立,但物件應用程式不支援指定的格式。 即使不支援格式,快取建立仍會成功,允許呼叫端填滿快取。 不過,如果呼叫端不需要保留快取,請呼叫 IOleCache::Uncache
CACHE_S_SAMECACHE
傳遞給 IOleCache::UncacheFORMATETC 已經有快取存在。 在此情況下,新的建議旗標會指派給快取,並傳回先前指派的連接標識符。
DV_E_LINDEX
pformatetc-lindex> 的值無效;目前僅支援 -1。
DV_E_TYMED
pformatetc-tymed> 的值無效。
DV_E_DVASPECT
pformatetc-dwAspect> 的值無效。
DV_E_CLIPFORMAT
pformatetc-cfFormat> 的值無效。
CO_E_NOTINITIALIZED
快取的記憶體未初始化。
DV_E_DVTARGETDEVICE
pformatetc-->ptd 的值無效。
OLE_E_STATIC
快取適用於靜態物件,而且已經有快取節點。

備註

IOleCache::Cache 可以指定數據快取或檢視 (簡報) 快取。 若要指定數據快取,必須在 pformatetc 中傳遞有效的數據格式。 針對檢視快取,快取物件本身會決定要快取的格式,因此呼叫端會在 pformatetc 中傳遞零數據格式,如下所示:

pFormatetc->cfFormat == 0

自訂物件處理程式可以選擇不以指定格式儲存數據。 相反地,它可以在要求時視需要合成它。

advf 值會指定ADVF列舉的成員。 當在此內容中使用其中一個值 (或一個以上的 OR 值組合) 時,這些值代表下列值。

ADVF 值 Description
ADVF_NODATA 快取不會由對執行中對象的變更更新。 相反地,容器會藉由明確呼叫 IOleCache::SetDataIDataObject::SetDataIOleCache2::UpdateCache 來更新快取。 快取物件的圖示層面時,通常會使用這個旗標。
ADVF_ONLYONCE 僅更新快取一次。 更新完成之後,物件與快取之間的諮詢聯機會中斷連線。 諮詢連接的來源物件會呼叫 Release 方法。
ADVF_PRIMEFIRST 物件不會在更新快取之前等待數據或檢視變更。 OR'd with ADVF_ONLYONCE,此參數會提供異步 IDataObject::GetData 呼叫。
ADVFCACHE_NOHANDLER ADVFCACHE_FORCEBUILTIN的同義字。
ADVFCACHE_FORCEBUILTIN DLL 物件應用程式和物件處理程式用來繪製其物件來快取簡報數據,以確保快取中有簡報。 這可確保即使對象或處理程式程式代碼無法使用,也能擷取數據。
ADVFCACHE_ONSAVE 只有在儲存包含快取的物件時,才會 匯報 快取表示法。 當 OLE 物件從執行狀態變更回載入狀態 (時,也會更新快取,因為後續的儲存作業需要再次執行物件) 。

規格需求

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

另請參閱

IOleCache

IOleCache::Uncache