OleCreateLinkFromData 函数 (ole2.h)
从从剪贴板检索或作为 OLE 拖放操作的一部分检索的数据传输对象创建链接对象。
语法
HRESULT OleCreateLinkFromData(
[in] LPDATAOBJECT pSrcDataObj,
[in] REFIID riid,
[in] DWORD renderopt,
[in] LPFORMATETC pFormatEtc,
[in] LPOLECLIENTSITE pClientSite,
[in] LPSTORAGE pStg,
[out] LPVOID *ppvObj
);
参数
[in] pSrcDataObj
指向要从中创建链接对象的数据传输对象上的 IDataObject 接口的指针。
[in] riid
对接口标识符的引用,调用方稍后用于与新对象通信 (通常IID_IOleObject,在 OLE 标头中定义为 IOleObject) 的接口标识符。
[in] renderopt
枚举 OLERENDER 中的值,指示新创建的对象要具有的本地缓存绘图或数据检索功能。 以下“备注”部分介绍了其他注意事项。
[in] pFormatEtc
指向枚举 OLERENDER 中的值的指针,该值指示新创建的对象要具有的本地缓存绘图或数据检索功能。 选择的 OLERENDER 值会影响 pFormatEtc 参数的可能值。
[in] pClientSite
指向 IOleClientSite 实例的指针,该实例是对象通过其从其容器请求服务的主接口。 此参数可以为 NULL。
[in] pStg
指向存储对象上的 IStorage 接口的指针。 此参数不能为 NULL。
[out] ppvObj
接收 riid 中请求的接口指针的指针变量的地址。 成功返回后, ppvObj 将包含新创建对象上请求的接口指针。
返回值
此函数在成功时返回S_OK。 其他可能的值包括以下内容。
返回代码 | 说明 |
---|---|
|
无法打开剪贴板。 |
|
无法提取对象的名字对象。 |
|
无法绑定到源。 必须绑定才能获取缓存的初始化数据。 |
注解
OleCreateLinkFromData 函数用于实现粘贴链接或拖动链接操作。 其操作类似于 OleCreateFromData 函数的操作,只不过它创建链接并查找不同的数据格式。 如果CF_LINKSOURCE格式不存在,并且数据传输对象中存在 FileName 或 FileNameW 剪贴板格式, 则 OleCreateLinkFromData 将创建一个包,其中包含指向所指示文件的链接。
使用 renderopt 和 pFormatetc 参数来控制新创建的 对象的缓存功能。 有关如何确定要缓存的内容的一般信息,请参阅 OLERENDER 枚举,了解 renderopt 和 pFormatetc 之间的交互说明。 但是,这些参数对 OleCreateLinkFromData 初始化缓存的方式有一些其他特定影响,如下所示。
值 | 说明 |
---|---|
OLERENDER_DRAW、OLERENDER_FORMAT | 如果演示文稿信息采用源数据对象中的其他格式,则使用此信息。 如果信息不存在,则缓存最初为空,但在首次运行对象时将填充缓存。 没有其他格式缓存在新创建的对象中。 |
OLERENDER_NONE、OLERENDER_ASIS | 不会在新创建的对象中缓存任何内容。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ole2.h |
Library | Ole32.lib |
DLL | Ole32.dll |