Share via


Método IOleObject::InitFromData (oleidl.h)

Inicializa un objeto recién creado con datos de un objeto de datos especificado, que puede residir en el mismo contenedor o en el Portapapeles.

Sintaxis

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

Parámetros

[in] pDataObject

Puntero a la interfaz IDataObject en el objeto de datos desde el que se van a obtener los datos de inicialización. Este parámetro puede ser NULL, lo que indica que el autor de la llamada quiere saber si vale la pena intentar enviar datos; es decir, si el contenedor es capaz de inicializar un objeto de los datos pasados a él. El objeto de datos que se va a pasar puede basarse en la selección actual dentro del documento contenedor o en los datos transferidos al contenedor desde un origen externo.

[in] fCreation

TRUE indica que el contenedor está insertando un nuevo objeto dentro de sí mismo e inicializando ese objeto con datos de la selección actual; FALSE indica una transferencia de datos mediante programación más general, probablemente de un origen distinto de la selección actual.

[in] dwReserved

Este parámetro está reservado y debe ser cero.

Valor devuelto

Este método devuelve S_OK si pDataObject no es NULL, el objeto intentó inicializarse correctamente a partir de los datos proporcionados; Si pDataObject es NULL, el objeto puede intentar una inicialización correcta. Otros posibles valores devueltos son los siguientes.

Código devuelto Descripción
S_FALSE
Si pDataObject no es NULL, el objeto no intentó inicializarse a sí mismo; si pDataObject es NULL, el objeto no puede intentar inicializarse a partir de los datos proporcionados.
E_NOTIMPL
El objeto no admite InitFromData.
OLE_E_NOTRUNNING
El objeto no se está ejecutando y, por lo tanto, no puede realizar la operación.

Comentarios

Este método permite que un documento contenedor se inserte dentro de sí mismo un nuevo objeto cuyo contenido se basa en una selección de datos actual dentro del contenedor. Por ejemplo, un documento de hoja de cálculo puede querer crear un objeto de grafo basado en datos de un rango seleccionado de celdas.

Con este método, un contenedor también puede reemplazar el contenido de un objeto incrustado por datos transferidos desde otro origen. Esto proporciona una manera cómoda de actualizar un objeto incrustado.

Notas a los autores de llamadas

Después de la inicialización, el contenedor debe llamar a IOleObject::GetMiscStatus para comprobar el valor del bit de OLEMISC_INSERTNOTREPLACE. Si el bit está activado, el nuevo objeto se inserta después de los datos seleccionados. Si el bit está desactivado, el nuevo objeto reemplaza los datos seleccionados.

Notas para los implementadores

Un contenedor especifica si se debe basar un nuevo objeto en la selección actual pasando TRUE o FALSE al parámetro fCreation .

Si fCreation es TRUE, el contenedor intenta crear una nueva instancia de un objeto, inicializándola con los datos seleccionados especificados por el objeto de datos.

Si fCreation es FALSE, el autor de la llamada está intentando reemplazar el contenido actual del objeto por el que apunta pDataObject. Las restricciones habituales que se aplican a un objeto durante una operación de pegado deben aplicarse aquí. Por ejemplo, si el tipo de los datos proporcionados es inaceptable, el objeto no debe inicializar y devolver S_FALSE.

Si el objeto devuelve S_FALSE, no se puede inicializar a partir de los datos proporcionados.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleidl.h

Consulte también

IDataObject::SetData

IOleObject

IOleObject::GetMiscStatus