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。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
提供的 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 值 | 说明 |
---|---|
ADVF_NODATA | 缓存不会因对正在运行的对象所做的更改而更新。 相反,容器将通过显式调用 IOleCache::SetData、 IDataObject::SetData 或 IOleCache2::UpdateCache 来更新缓存。 缓存对象的图标方面时,通常使用此标志。 |
ADVF_ONLYONCE | 仅更新缓存一次。 更新完成后,对象与缓存之间的咨询连接将断开连接。 咨询连接的源对象调用 Release 方法。 |
ADVF_PRIMEFIRST | 对象在更新缓存之前不会等待数据或视图发生更改。 与 ADVF_ONLYONCE 一起,此参数提供异步 IDataObject::GetData 调用。 |
ADVFCACHE_NOHANDLER | ADVFCACHE_FORCEBUILTIN的同义词。 |
ADVFCACHE_FORCEBUILTIN | 由绘制其对象来缓存演示文稿数据的 DLL 对象应用程序和对象处理程序使用,以确保缓存中有演示文稿。 这可确保即使对象或处理程序代码不可用,也可以检索数据。 |
ADVFCACHE_ONSAVE | 仅当保存包含缓存的对象时,汇报缓存的表示形式。 当 OLE 对象从运行状态更改回加载状态 (时,缓存也会更新,因为后续保存操作需要再次) 运行对象。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |