MonikerRelativePathTo 函数 (objbase.h)

提供一个名字对象,当组合到第一个指定名字对象 (或结构) 相似的名字对象的末尾时,生成第二个指定名字对象。

此函数仅供 IMoniker::RelativePathTo 实现使用。

语法

HRESULT MonikerRelativePathTo(
  [in]  LPMONIKER pmkSrc,
  [in]  LPMONIKER pmkDest,
  [out] LPMONIKER *ppmkRelPath,
  [in]  BOOL      dwReserved
);

参数

[in] pmkSrc

指向名字对象上 IMoniker 接口的指针,该名字对象与要创建的相对名字对象组合时,会生成 pmkDest。 此名字对象标识要创建的相对名字对象的“源”。

[in] pmkDest

指向要相对于 pmkSrc 表示的名字对象上的 IMoniker 接口的指针。 此名字对象标识要创建的相对名字对象的目标。

[out] ppmkRelPath

接收指向新相对名字对象的接口指针的 IMoniker* 指针变量的地址。 成功后,函数已对名字对象调用 AddRef ,调用方负责调用 Release。 如果发生错误,接口指针值为 NULL

[in] dwReserved

此参数是保留的,必须为非零。

返回值

此函数可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值。

返回代码 说明
S_OK
已返回有意义的相对路径。
MK_S_HIM
相对路径的唯一形式是另一个名字对象。
MK_E_NOTBINDABLE
pmkSrc 参数是相对名字对象,例如项名字对象,必须先使用其容器的名字对象组成,然后才能确定相对路径。

注解

IMoniker::RelativePathTo 的实现应首先检查另一个名字对象是否为以特殊方式识别和处理的类型。 否则,应调用 MonikerRelativePathTo,将自身作为 pmkThis 传递,将另一个名字对象作为 pmkOther 传递。 MonikerRelativePathTo 正确处理任一名字对象为泛型复合的情况。

仅当 pmkSrcpmkDest 都是绝对名字对象时,才应调用此函数,其中绝对名字对象是文件名字对象或泛型复合对象,其最左侧的组件是文件名字对象,其中文件名字对象表示绝对路径。 不要对相对名字对象调用此函数。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 objbase.h
Library Ole32.lib
DLL Ole32.dll

另请参阅

IMoniker::RelativePathTo