CreateAntiMoniker 函数 (objbase.h)

创建并返回新的反名字对象。

语法

HRESULT CreateAntiMoniker(
  [out] LPMONIKER *ppmk
);

参数

[out] ppmk

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

返回值

此函数可以返回E_OUTOFMEMORY和S_OK的标准返回值。

注解

只有在编写自己的名字对象类 (实现 IMoniker 接口) 时才调用此函数。 如果要编写没有内部结构的新名字对象类,则可以在 IMoniker::Inverse 方法的实现中使用 CreateAntiMoniker,然后在 IMoniker::ComposeWith 的实现中检查反名字对象。

与“...”目录一样,该目录充当路径中任何目录名称的反数,反名字对象充当复合名字对象中其前面的简单名字对象的反面。 反名字对象用作没有内部结构的简单名字对象的反对象。 例如,系统提供的文件名字对象、项名字对象和指针名字对象的实现都使用反名字对象作为反名字对象;因此,在其中一个名字对象的权利上创作的反名字对象一无所有。

名字对象客户端 (使用名字对象绑定到另一个对象) 通常不知道给定名字对象的类,因此客户端无法确定反名字对象是反名字对象。 因此,若要获取名字对象的反数,应调用 IMoniker::Inverse 而不是 CreateAntiMoniker

若要删除复合名字对象的最后一部分,需要执行以下操作:

  1. 在复合上调用 IMoniker::Enum ,将 FALSE 指定为第一个参数。 这会创建一个枚举器,该枚举器按相反顺序返回组件名字对象。
  2. 使用 枚举器检索复合的最后一部分。
  3. 在该名字对象上调用 IMoniker::InverseInverse 返回的名称对象将删除复合的最后一部分。

要求

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

另请参阅

IMoniker