Метод IOleObject::InitFromData (oleidl.h)

Инициализирует созданный объект данными из указанного объекта данных, который может находиться либо в том же контейнере, либо в буфере обмена.

Синтаксис

HRESULT InitFromData(
  [in] IDataObject *pDataObject,
  [in] BOOL        fCreation,
  [in] DWORD       dwReserved
);

Параметры

[in] pDataObject

Указатель на интерфейс IDataObject для объекта данных, из которого должны быть получены данные инициализации. Этот параметр может иметь значение NULL, указывающее, что вызывающий объект хочет узнать, стоит ли пытаться отправить данные; т. е. способен ли контейнер инициализировать объект из переданных ему данных. Передаваемый объект данных может основываться на текущем выборе в документе контейнера или на данных, передаваемых в контейнер из внешнего источника.

[in] fCreation

ЗНАЧЕНИЕ TRUE указывает, что контейнер вставляет новый объект внутрь себя и инициализирует этот объект данными из текущего выделенного фрагмента; FALSE указывает на более общую программную передачу данных, скорее всего, из источника, отличного от текущего выделенного.

[in] dwReserved

Этот параметр зарезервирован и должен иметь нулевое значение.

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

Этот метод возвращает S_OK если pDataObject не равно NULL, объект успешно пытался инициализировать себя из предоставленных данных; Если pDataObject имеет значение NULL, объект может выполнить успешную инициализацию. Другие возможные возвращаемые значения включают следующее.

Код возврата Описание
S_FALSE
Если pDataObject не имеет значение NULL, объект не предпринял никаких попыток инициализации. Если pDataObject имеет значение NULL, объект не может попытаться инициализировать себя из предоставленных данных.
E_NOTIMPL
Объект не поддерживает InitFromData.
OLE_E_NOTRUNNING
Объект не выполняется и поэтому не может выполнить операцию.

Комментарии

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

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

Примечания к вызывающим абонентам

После инициализации контейнер должен вызвать IOleObject::GetMiscStatus, чтобы проверка значение бита OLEMISC_INSERTNOTREPLACE. Если бит включен, новый объект вставляется после выбранных данных. Если бит отключен, новый объект заменяет выбранные данные.

Примечания для разработчиков

Контейнер указывает, следует ли создать новый объект на основе текущего выделенного фрагмента, передав значение TRUE или FALSE в параметр fCreation .

Если параметр fCreation имеет значение TRUE, контейнер пытается создать новый экземпляр объекта, инициализируя его выбранными данными, указанными объектом данных.

Если fCreation имеет значение FALSE, вызывающий объект пытается заменить текущее содержимое объекта тем, на которое указывает pDataObject. Здесь должны применяться обычные ограничения, применяемые к объекту во время операции вставки. Например, если тип предоставленных данных неприемлем, объект не должен инициализировать и возвращать S_FALSE.

Если объект возвращает S_FALSE, он не может инициализировать себя из предоставленных данных.

Требования

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

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

IDataObject::SetData

IOleObject

IOleObject::GetMiscStatus