createFileMoniker 函数 (objbase.h)

基于指定路径创建文件名字对象。

语法

HRESULT CreateFileMoniker(
  [in]  LPCOLESTR lpszPathName,
  [out] LPMONIKER *ppmk
);

参数

[in] lpszPathName

此名字对象所基于的路径。

此参数可以指定相对路径、UNC 路径或基于驱动器号的路径。 如果基于相对路径,则必须将生成的名字对象组合到另一个文件名字对象上,然后才能绑定它。

[out] ppmk

接收指向新文件名字对象的接口指针的 IMoniker* 指针变量的地址。 成功后,函数在文件名字对象上调用 了 AddRef ,调用方负责调用 Release。 发生错误时,接口指针的值为 NULL

返回值

此函数可以返回E_OUTOFMEMORY的标准返回值,以及以下值。

返回代码 说明
S_OK
已成功创建名字对象。
MK_E_SYNTAX
路径的语法出错。

注解

CreateFileMoniker 为存储在文件中的对象创建名字对象。 名字对象提供程序 (一个对象,该对象为其他对象提供名字对象) 可以调用此函数来创建名字对象来标识它所控制的基于文件的对象,然后可以将指向此名字对象的指针提供给其他对象。 由文件名字对象标识的对象还必须实现 IPersistFile 接口,以便在绑定文件名字对象时加载它。

当每个对象驻留在其自己的文件中时,如在 OLE 服务器应用程序中一样,仅支持链接到基于文件的文档,文件名字对象是唯一必需的名字对象类型。 若要识别小于文件的对象,名字对象提供程序必须使用另一种类型的名字对象 (例如项名字对象) ,以及文件名字对象,从而创建复合名字对象。 OLE 服务器应用程序中需要复合名字对象,该应用程序支持链接到小于文档 (的对象,例如文档的节或嵌入对象) 。

当第一个名字对象基于绝对路径,另一个是相对路径时,文件名字对象只能在另一个文件名字对象右侧组合,从而生成基于两个路径组合的单个文件名字对象。 在另一个名字对象右侧组成的名字对象必须是该名字对象的细化,并且文件名字对象表示最大的存储单位。 若要标识存储在文件中的对象,需要撰写其他类型的名字对象 (通常) 文件名字对象右侧的项目名字对象。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 objbase.h
Library Ole32.lib
DLL Ole32.dll
API 集 Windows 10版本 10.0.14393 中引入的 ext-ms-win-com-ole32-l1-1-4 ()

另请参阅

IMoniker