Функция 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
Header objbase.h
Библиотека Ole32.lib
DLL Ole32.dll
Набор API ext-ms-win-com-ole32-l1-1-0 (представлено в Windows 8)

См. также раздел

IMoniker

IMoniker::ComposeWith

IOleContainer

IOleItemContainer