createItemMoniker 函数 (objbase.h)

创建一个项名字对象,用于标识包含对象 (通常为复合文档) 的对象。

语法

HRESULT CreateItemMoniker(
  [in]  LPCOLESTR lpszDelim,
  [in]  LPCOLESTR lpszItem,
  [out] LPMONIKER *ppmk
);

参数

[in] lpszDelim

指向宽字符串的指针 (每个字符的两个字节,) 包含分隔符 (通常为“!”) 用于将此项的显示名称与其包含对象的显示名称分开。

[in] lpszItem

指向零终止字符串的指针,指示要标识的对象的名称。 稍后可以使用此名称检索对 IOleItemContainer::GetObject 的调用中指向对象的指针。

[out] ppmk

接收指向项名字对象的接口指针的 IMoniker* 指针变量的地址。 成功后,函数在项名字对象上调用 AddRef ,调用方负责调用 Release。 如果发生错误,则提供的接口指针具有 NULL 值。

返回值

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

注解

一个名字对象提供程序,它伸出名字对象来标识其对象,以便可供其他方访问,将调用 CreateItemMoniker 来标识其对象与项名字对象。 项名字对象基于字符串,并标识包含在另一个对象中的对象,并且可以使用字符串单独标识。 包含对象还必须实现 IOleContainer 接口。

大多数名字对象提供程序都是支持链接的 OLE 应用程序。 支持链接到小于基于文件的文档的对象的应用程序(例如允许链接到文档中所选内容的服务器应用程序)应使用项名字对象来标识对象。 允许链接到嵌入对象的容器应用程序使用项名字对象来标识嵌入的对象。

lpszItem 参数是文档用来唯一标识对象的名称。 例如,如果所标识的对象是电子表格中的单元格区域,则适当的名称可能类似于“A1:E7”。当被标识的对象是嵌入对象时,适当的名称可能类似于“embedobj1”。包含对象必须提供 IOleItemContainer 接口的实现,该接口可以解释此名称并找到相应的对象。 这允许项名字对象绑定到它标识的对象。

项名字对象不隔离使用。 它们还必须由标识包含对象的名字对象组成。 例如,如果所标识的对象是基于文件的文档中包含的单元格区域,则标识该对象的项名字对象必须与标识该文档的文件名字对象组合在一起,从而生成等效于“C:\work\sales.xls!A1:E7。”

还允许嵌套容器,就像在另一个文档内嵌入的对象中包含对象的情况一样。 此类对象的完整名字对象相当于“C:\work\report.doc!embedobj1!A1:E7。”在这种情况下,每个包含对象都必须调用 CreateItemMoniker ,并提供其自己的 IOleItemContainer 接口实现。

要求

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

另请参阅

IMoniker

IMoniker::ComposeWith

IOleContainer

IOleItemContainer