Función OleCreateStaticFromData (ole2.h)

Crea un objeto estático, que contiene solo una representación, sin datos nativos, a partir de un objeto de transferencia de datos.

Nota Las funciones de conversión OLESTREAM a IStorage también convierten objetos estáticos.
 

Sintaxis

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

Parámetros

[in] pSrcDataObj

Puntero a la interfaz IDataObject en el objeto de transferencia de datos que contiene los datos desde los que se creará el objeto.

[in] iid

Referencia al identificador de la interfaz con la que el autor de la llamada se comunica con el nuevo objeto (normalmente IID_IOleObject, definido en los encabezados OLE como identificador de interfaz para IOleObject).

[in] renderopt

Valor de la enumeración OLERENDER que indica las capacidades de dibujo o recuperación de datos almacenadas localmente en caché que el contenedor quiere en el componente recién creado. Es un error pasar las opciones de representación OLERENDER_NONE o OLERENDER_ASIS a esta función.

[in] pFormatEtc

Dependiendo de cuál de las marcas OLERENDER se use como valor de renderopt, puede ser un puntero a uno de los valores de enumeración FORMATETC . Consulte la enumeración OLERENDER para ver las restricciones.

[in] pClientSite

Puntero a una instancia de IOleClientSite, la interfaz principal a través de la cual el objeto solicitará servicios de su contenedor. Este parámetro puede ser NULL.

[in] pStg

Puntero a la interfaz IStorage para el almacenamiento del objeto. Este parámetro no puede ser NULL.

[out] ppvObj

Dirección de la variable de puntero que recibe el puntero de interfaz solicitado en riid. Tras la devolución correcta, *ppvObj contiene el puntero de interfaz solicitado en el objeto recién creado.

Valor devuelto

Esta función devuelve S_OK si se ejecuta correctamente.

Comentarios

La función OleCreateStaticFromData puede convertir cualquier objeto, siempre y cuando proporcione una interfaz IDataObject , a un objeto estático. Resulta útil para implementar la opción Convertir en imagen para vincular o insertar OLE.

Los objetos estáticos solo se pueden crear si el origen admite uno de los formatos del Portapapeles representados por OLE: CF_METAFILEPICT, CF_DIB o CF_ BITMAP y CF_ENHMETAFILE.

También puede llamar a OleCreateStaticFromData para pegar un objeto estático desde el Portapapeles. Para determinar si un objeto es estático, llame a la función OleQueryCreateFromData , que devuelve OLE_S_STATIC si uno de CF_METAFILEPICT, CF_DIB, CF_BITMAP o CF_ENHMETAFILE está presente y no hay un formato OLE. Esto indica que debe llamar a OleCreateStaticFromData en lugar de a la función OleCreateFromData para crear el objeto.

El nuevo objeto estático es de clase CLSID_StaticMetafile en el caso de CF_METAFILEPICT, CLSID_StaticDib en el caso de CF_DIB o CF_BITMAP, o CLSID_Picture_EnhMetafile en el caso de CF_ENHMETAFILE. El objeto estático establece el OLEMISC_STATIC y OLE_CANTLINKINSIDE bits devueltos de IOleObject::GetMiscStatus. El objeto estático tendrá el aspecto DVASPECT_CONTENT y un LINDEX de -1.

PSrcDataObject sigue siendo válido después de que OleCreateStaticFromData devuelva. Es responsabilidad del autor de la llamada liberar pSrcDataObject - OLE no lo libera.

No puede haber más de una secuencia de presentación en un objeto estático.

Requisitos

Requisito Value
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 ole2.h
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

OleCreateFromData