OleCreateFromFile 函数 (ole2.h)

从命名文件的内容创建嵌入对象。

语法

HRESULT OleCreateFromFile(
  [in]  REFCLSID        rclsid,
  [in]  LPCOLESTR       lpszFileName,
  [in]  REFIID          riid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     lpFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

参数

[in] rclsid

此参数是保留的,必须CLSID_NULL。

[in] lpszFileName

指向一个字符串的指针,该字符串指定应从中初始化对象的文件的完整路径。

[in] riid

调用方稍后用来与新对象通信的接口标识符的引用 (通常IID_IOleObject,在 OLE 标头中定义为 IOleObject) 的接口 ID。

[in] renderopt

枚举 OLERENDER 中的值,指示新创建的对象要具有的本地缓存绘图或数据检索功能。 所选 的 OLERENDER 值会影响 lpFormatEtc 参数的可能值。

[in] lpFormatEtc

根据哪个 OLERENDER 标志用作 renderopt 的值,指向 FORMATETC 枚举值之一的指针。 有关限制,另请参阅 OLERENDER 枚举。

[in] pClientSite

指向 IOleClientSite 实例的指针,IOleClientSite 是对象通过该接口从其容器请求服务的主接口。 此参数可以为 NULL。

[in] pStg

指向存储对象上的 IStorage 接口的指针。 此参数不能为 NULL

[out] ppvObj

接收 riid 中请求的接口指针的指针变量的地址。 成功返回后,*ppvObj 在新创建的对象上包含请求的接口指针。

返回值

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

返回代码 说明
STG_E_FILENOTFOUND
文件未绑定。
OLE_E_CANT_BINDTOSOURCE
无法绑定到源。
STG_E_MEDIUMFULL
媒体已满。
DV_E_TYMED
TYMED 无效。
DV_E_LINDEX
无效的 LINDEX。
DV_E_FORMATETC
FORMATETC 结构无效。

注解

OleCreateFromFile 函数根据命名文件的内容创建新的嵌入对象。 如果注册数据库中的 ProgID 包含 PackageOnFileDrop 密钥,则会创建一个包。 否则,函数调用 GetClassFile 函数以获取与 lpszFileName 参数关联的 CLSID,然后创建与该 CLSID 关联的 OLE 2 嵌入对象。 OleCreateFromFilerclsid 参数将始终被忽略,应设置为 CLSID_NULL。

对于其他 OleCreateXxx 函数,新创建的对象不会显示给用户进行编辑,这需要 DoVerb 操作。 它用于实现插入文件操作。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ole2.h (包括 Ole2.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

GetClassFile