Метод IDataObject::SetData (objidl.h)

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

Синтаксис

HRESULT SetData(
  [in] FORMATETC *pformatetc,
  [in] STGMEDIUM *pmedium,
  [in] BOOL      fRelease
);

Параметры

[in] pformatetc

Указатель на структуру FORMATETC, определяющую формат, используемый объектом данных при интерпретации данных, содержащихся в носителе хранилища.

[in] pmedium

Указатель на структуру STGMEDIUM, определяющую среду хранения, в которой передаются данные.

[in] fRelease

Если задано значение TRUE, объект данных с именем , который реализует SetData, является владельцем среды хранения после возврата вызова. Это означает, что после использования среда должна освободиться путем вызова функции ReleaseStgMedium . Если значение FALSE, вызывающий объект сохраняет право собственности на носитель хранилища, а объект данных, вызываемый, использует среду хранения только на протяжении всего вызова.

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

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

Код возврата Описание
DV_E_LINDEX
Недопустимое значение для lindex; В настоящее время поддерживается только -1.
DV_E_FORMATETC
Недопустимое значение для pformatetc .
DV_E_TYMED
Недопустимое значение tymed .
DV_E_DVASPECT
Недопустимое значение dwAspect .
OLE_E_NOTRUNNING
Приложение-объект не выполняется.
E_FAIL
Операция не удалась.
E_UNEXPECTED
Произошла непредвиденная ошибка.
E_INVALIDARG
Недопустимое значение dwDirection .
E_OUTOFMEMORY
Недостаточно доступной памяти для этой операции.

Комментарии

SetData позволяет другому объекту попытаться отправить данные в объект данных реализации. Объект данных реализует этот метод, если поддерживает получение данных из другого объекта. Если он не поддерживает эту функцию, ее следует реализовать для возврата E_NOTIMPL.

Вызывающий объект выделяет носитель, указанный параметром pmedium , в котором передаются данные. Объект данных, который называется, не берет на себя права владения данными, пока не получит их успешно и код ошибки не возвращается. Значение параметра fRelease указывает на владение средой после возврата вызова. ЗНАЧЕНИЕ FALSE указывает, что вызывающий объект по-прежнему владеет средой, а объект данных использует его только во время вызова; Значение TRUE указывает, что объект данных теперь владеет им и должен освободить его, когда он больше не нужен.

Тип среды, указанный в параметрах pformatetc и pmedium , должен быть одинаковым. Например, один не может быть глобальным дескриптором, а другой потоком.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objidl.h

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

Idataobject