Creates a static object (containing only a representation, with no native data) from a data transfer object.
WINOLEAPI OleCreateStaticFromData(
LPDATAOBJECT pSrcDataObj, //Pointer to the data transfer object
REFIID riid, //Reference to the identifier of the
// interface to be used to communicate
// with the new object
DWORD renderopt, //Value from OLERENDER
LPFORMATETC pFormatEtc, //Depending on renderopt, pointer to
// value from FORMATETC
LPOLECLIENTSITE pClientSite, //Pointer to the interface
LPSTORAGE pStg, //Pointer to store object
LPVOID FAR* ppvObj //Address of output variable that
// receives the interface pointer
// requested in riid
);
The OleCreateStaticFromData function can convert any object, as long as it provides an IDataObject interface, to a static object. It is useful in implementing the Convert To Picture option for OLE linking or embedding.
Static objects can be created only if the source supports one of the OLE-rendered clipboard formats: CF_METAFILEPICT, CF_DIB, or CF_ BITMAP, and CF_ENHMF.
You can also call OleCreateStaticFromData to paste a static object from the clipboard. To determine whether an object is static, call the OleQueryCreateFromData function, which returns OLE_S_STATIC if one of CF_METAFILEPICT, CF_DIB, or CF_BITMAP is present and an OLE format is not present. This indicates that you should call OleCreateStaticFromData rather than the OleCreateFromData function to create the object.
The new static object is of class CLSID_StaticMetafile (in the case of CF_METAFILEPICT) and CLSID_StaticDib (in the case of CF_DIB or CF_BITMAP). The static object sets the OLEMISC_STATIC and OLE_CANTLINKINSIDE bits returned from IOleObject::GetMiscStatus. The static object will have the aspect DVASPECT_CONTENT and a LINDEX of -1.
The pDataObject is still valid after OleCreateStaticFromData returns. It is the caller's responsibility to free pDataObject — OLE does not release it.
There cannot be more than one presentation stream in a static object.
Note The OLESTREAM<->IStorage conversion functions also convert static objects.
Windows NT: Use version 3.1 or later.
Windows: Use Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in ole2.h.
Import Library: Included as a resource in ole32.dll.