IDataObject::SetData 方法 (objidl.h)
由包含数据源的 对象调用,以将数据传输到实现此方法的对象。
语法
HRESULT SetData(
[in] FORMATETC *pformatetc,
[in] STGMEDIUM *pmedium,
[in] BOOL fRelease
);
parameters
[in] pformatetc
指向 FORMATETC 结构的指针,用于定义解释存储介质中包含的数据时数据对象使用的格式。
[in] pmedium
指向 STGMEDIUM 结构的指针,该结构定义在其中传递数据的存储介质。
[in] fRelease
如果 为 TRUE,则调用的数据对象(实现 SetData)在调用返回后拥有存储介质。 这意味着它必须通过调用 ReleaseStgMedium 函数来释放媒体。 如果 为 FALSE,则调用方保留存储介质的所有权,并且调用的数据对象仅在调用期间使用该存储介质。
返回值
此方法在成功时返回S_OK。 其他可能的值包括以下内容。
返回代码 | 说明 |
---|---|
|
lindex 的值无效;目前仅支持 -1。 |
|
pformatetc 的值无效。 |
|
tymed 值无效。 |
|
dwAspect 值无效。 |
|
对象应用程序未运行。 |
|
此操作失败。 |
|
发生意外错误。 |
|
dwDirection 值无效。 |
|
此操作的可用内存不足。 |
注解
SetData 允许另一个对象尝试将数据发送到实现的数据对象。 如果数据对象支持从另一个对象接收数据,则它实现此方法。 如果不支持此操作,则应实现它以返回E_NOTIMPL。
调用方分配 由 pmedium 参数指示的存储介质,其中传递数据。 在成功接收数据且未返回错误代码之前,名为 的数据对象不会获得数据的所有权。 fRelease 参数的值指示调用返回后媒体的所有权。 FALSE 表示调用方仍拥有媒体,并且数据对象在调用期间仅使用它; TRUE 表示数据对象现在拥有它,并且必须在不再需要它时释放它。
pformatetc 和 pmedium 参数中指定的媒体类型必须相同。 例如,一个不能是全局句柄,另一个不能是流。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | objidl.h |