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 |
---|---|
|
提供的 pformatetc 或 advf 自變數無效。 |
|
已發生未預期的錯誤。 |
|
作業可用的記憶體不足。 |
|
快取已建立,但物件應用程式不支援指定的格式。 即使不支援格式,快取建立仍會成功,允許呼叫端填滿快取。 不過,如果呼叫端不需要保留快取,請呼叫 IOleCache::Uncache。 |
|
傳遞給 IOleCache::Uncache 的 FORMATETC 已經有快取存在。 在此情況下,新的建議旗標會指派給快取,並傳回先前指派的連接標識符。 |
|
pformatetc-lindex> 的值無效;目前僅支援 -1。 |
|
pformatetc-tymed> 的值無效。 |
|
pformatetc-dwAspect> 的值無效。 |
|
pformatetc-cfFormat> 的值無效。 |
|
快取的記憶體未初始化。 |
|
pformatetc-->ptd 的值無效。 |
|
快取適用於靜態物件,而且已經有快取節點。 |
備註
IOleCache::Cache 可以指定數據快取或檢視 (簡報) 快取。 若要指定數據快取,必須在 pformatetc 中傳遞有效的數據格式。 針對檢視快取,快取物件本身會決定要快取的格式,因此呼叫端會在 pformatetc 中傳遞零數據格式,如下所示:
pFormatetc->cfFormat == 0
自訂物件處理程式可以選擇不以指定格式儲存數據。 相反地,它可以在要求時視需要合成它。
advf 值會指定ADVF列舉的成員。 當在此內容中使用其中一個值 (或一個以上的 OR 值組合) 時,這些值代表下列值。
ADVF 值 | Description |
---|---|
ADVF_NODATA | 快取不會由對執行中對象的變更更新。 相反地,容器會藉由明確呼叫 IOleCache::SetData、 IDataObject::SetData 或 IOleCache2::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 |