IOleObject::InitFromData 方法 (oleidl.h)
使用指定数据对象中的数据初始化新创建的对象,该对象可以驻留在同一容器中,也可以驻留在剪贴板上。
语法
HRESULT InitFromData(
[in] IDataObject *pDataObject,
[in] BOOL fCreation,
[in] DWORD dwReserved
);
parameters
[in] pDataObject
指向要从中获取初始化数据的数据对象上的 IDataObject 接口的指针。 此参数可以为 NULL,表示调用方想知道是否值得尝试发送数据;也就是说,容器是否能够从传递给它的数据初始化对象。 要传递的数据对象可以基于容器文档中的当前选择,也可以基于从外部源传输到容器的数据。
[in] fCreation
TRUE 表示容器在自身内部插入新对象,并使用当前所选内容中的数据初始化该对象; FALSE 表示更常规的编程数据传输,最有可能来自当前所选内容以外的源。
[in] dwReserved
此参数是保留的,必须为零。
返回值
如果 pDataObject 不为 NULL,则此方法返回S_OK,该对象已成功尝试从提供的数据初始化自身;如果 pDataObject 为 NULL,则表示对象能够尝试成功初始化。。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
如果 pDataObject 不为 NULL,则对象不会尝试初始化自身;如果 pDataObject 为 NULL,则对象无法尝试从提供的数据初始化自身。 |
|
对象不支持 InitFromData。 |
|
对象未运行,因此无法执行该操作。 |
注解
此方法使容器文档能够在自身中插入一个新对象,该对象的内容基于容器中的当前数据选择。 例如,电子表格文档可能希望基于所选单元格区域中的数据创建图形对象。
使用此方法,容器还可以将嵌入对象的内容替换为从另一个源传输的数据。 这提供了更新嵌入对象的便捷方法。
调用方备注
初始化后,容器应调用 IOleObject::GetMiscStatus 以检查OLEMISC_INSERTNOTREPLACE位的值。 如果位处于打开状态,则新对象在所选数据之后插入自身。 如果位处于关闭状态,则新对象将替换所选数据。实施者说明
容器通过将 TRUE 或 FALSE 传递给 fCreation 参数来指定是否基于当前选定内容的新对象。如果 fCreation 为 TRUE,则容器将尝试创建对象的新实例,并使用数据对象指定的选定数据对其进行初始化。
如果 fCreation 为 FALSE,则调用方尝试将对象的当前内容替换为 pDataObject 指向的内容。 粘贴操作期间应用于对象的常用约束应在此处应用。 例如,如果提供的数据类型不可接受,则 对象应无法初始化并返回S_FALSE。
如果对象返回S_FALSE,则无法从提供的数据中初始化自身。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |