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.
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 |