IOleCache::SetData 方法 (oleidl.h)

使用指定格式的数据和指定介质上的数据初始化缓存。

语法

HRESULT SetData(
  [in] FORMATETC *pformatetc,
  [in] STGMEDIUM *pmedium,
  [in] BOOL      fRelease
);

参数

[in] pformatetc

指向 FORMATETC 结构的指针,该结构指定要放置在缓存中的演示文稿数据的格式。

[in] pmedium

指向 STGMEDIUM 结构的指针,该结构指定包含演示文稿数据的存储介质。

[in] fRelease

指示方法完成后存储介质的所有权。 如果 fReleaseTRUE,则缓存将获取所有权,在媒体使用完成后释放媒体。 如果 fReleaseFALSE,则调用方保留所有权并负责释放媒体。 缓存只能在调用期间使用存储介质。

返回值

此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。

返回代码 说明
DV_E_LINDEX
该值对 pformatetc-lindex> 无效。 目前仅支持 -1。
DV_E_FORMATETC
FORMATETC 结构无效。
DV_E_TYMED
该值对 pformatetc-tymed> 无效。
DV_E_DVASPECT
该值对 pformatetc-dwAspect> 无效。
OLE_E_BLANK
存在未初始化的对象。
DV_E_TARGETDEVICE
对象是静态的,pformatetc-ptd> 为非 NULL
STG_E_MEDIUMFULL
存储介质已满。

注解

当从剪贴板或通过拖放操作创建对象时,通常调用 IOleCache::SetData,并使用嵌入源数据创建对象。

IOleCache::SetDataIOleCache::InitCache 非常相似。 有两个main差异。 第一个区别是,虽然 IOleCache::InitCache 使用数据对象提供的表示格式初始化缓存, 但 IOleCache::SetData 使用单个格式初始化缓存。 其次, IOleCache::SetData 方法忽略 ADVF_NODATA 标志,而 IOleCache::InitCache 遵循此标志。

容器可以使用此方法维护对象的单个方面,例如对象的图标方面。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 oleidl.h

另请参阅

IOleCache

IOleCache::Cache

IOleCache::SetData