Функция OleCreateLinkFromData (ole2.h)

Создает связанный объект из объекта передачи данных, полученного из буфера обмена или в рамках операции перетаскивания OLE.

Синтаксис

HRESULT OleCreateLinkFromData(
  [in]  LPDATAOBJECT    pSrcDataObj,
  [in]  REFIID          riid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     pFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

Параметры

[in] pSrcDataObj

Указатель на интерфейс IDataObject для объекта передачи данных, из которого создается связанный объект.

[in] riid

Ссылка на идентификатор интерфейса, который позднее использует вызывающий объект для взаимодействия с новым объектом (обычно IID_IOleObject, определенный в заголовках OLE в качестве идентификатора интерфейса для IOleObject).

[in] renderopt

Значение из перечисления OLERENDER , указывающее возможности локально кэшированного рисования или извлечения данных, которые должен иметь только что созданный объект. Дополнительные рекомендации описаны в следующем разделе Примечания.

[in] pFormatEtc

Указатель на значение из перечисления OLERENDER , указывающее возможности локально кэшированного рисования или извлечения данных, которые должен иметь только что созданный объект. Выбранное значение OLERENDER влияет на возможные значения для параметра pFormatEtc .

[in] pClientSite

Указатель на экземпляр IOleClientSite, основной интерфейс, через который объект запрашивает службы из своего контейнера. Этот параметр может принимать значение NULL.

[in] pStg

Указатель на интерфейс IStorage в объекте хранилища. Этот параметр не может иметь значение NULL.

[out] ppvObj

Адрес переменной указателя, получающей указатель интерфейса, запрошенный в riid. После успешного возврата ppvObj содержит запрошенный указатель интерфейса на вновь созданный объект.

Возвращаемое значение

Эта функция возвращает S_OK при успешном выполнении. Ниже перечислены другие возможные значения.

Код возврата Описание
CLIPBRD_E_CANT_OPEN
Не удается открыть буфер обмена.
OLE_E_CANT_GETMONIKER
Не удается извлечь моникер объекта.
OLE_E_CANT_BINDTOSOURCE
Не удается выполнить привязку к источнику. Привязка необходима для получения данных инициализации кэша.

Комментарии

Функция OleCreateLinkFromData используется для реализации операции вставки или перетаскивания. Его операция аналогична операции функции OleCreateFromData , за исключением того, что она создает ссылку и ищет различные форматы данных. Если формат CF_LINKSOURCE отсутствует, а в объекте передачи данных присутствует формат FileName или FileNameW, OleCreateLinkFromData создает пакет, содержащий ссылку на указанный файл.

Параметры renderopt и pFormatetc используются для управления возможностью кэширования вновь созданного объекта. Общие сведения о том, как определить, что нужно кэшировать, см. в перечислении OLERENDER для описания взаимодействия между renderopt и pFormatetc. Однако эти параметры влияют на то, как OleCreateLinkFromData инициализирует кэш, как показано ниже.

Значение Описание
OLERENDER_DRAW, OLERENDER_FORMAT Если сведения о презентации представлены в других форматах в исходном объекте данных, эти сведения используются. Если сведения отсутствуют, кэш изначально пуст, но будет заполнен при первом запуске объекта. Другие форматы не кэшируются во вновь созданном объекте.
OLERENDER_NONE, OLERENDER_ASIS Кэшировать во вновь созданном объекте не требуется.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ole2.h
Библиотека Ole32.lib
DLL Ole32.dll

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

OleCreateLink