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 以使用项名字对象来标识其对象。该提供程序会调用 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 集 在 Windows 8) 中引入的 ext-ms-win-com-ole32-l1-1-0 (

另请参阅

IMoniker

IMoniker::ComposeWith

IOleContainer

IOleItemContainer