OleCreateStaticFromData-Funktion (ole2.h)

Erstellt ein statisches Objekt, das nur eine Darstellung ohne native Daten aus einem Datenübertragungsobjekt enthält.

Hinweis Die Konvertierungsfunktionen OLESTREAM zu IStorage konvertieren auch statische Objekte.
 

Syntax

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

Parameter

[in] pSrcDataObj

Zeiger auf die IDataObject-Schnittstelle des Datenübertragungsobjekts, das die Daten enthält, aus denen das Objekt erstellt wird.

[in] iid

Verweis auf den Bezeichner der Schnittstelle, mit der der Aufrufer mit dem neuen Objekt kommunizieren soll (in der Regel IID_IOleObject, in den OLE-Headern als Schnittstellenbezeichner für IOleObject definiert).

[in] renderopt

Wert aus der OLERENDER-Enumeration , der die lokal zwischengespeicherten Zeichnungs- oder Datenabruffunktionen angibt, die der Container in der neu erstellten Komponente verwenden möchte. Es ist ein Fehler, die Renderoptionen OLERENDER_NONE oder OLERENDER_ASIS an diese Funktion zu übergeben.

[in] pFormatEtc

Je nachdem, welches der OLERENDER-Flags als Wert von renderopt verwendet wird, kann ein Zeiger auf einen der FORMATETC-Enumerationswerte sein. Einschränkungen finden Sie in der OLERENDER-Enumeration .

[in] pClientSite

Zeiger auf eine instance von IOleClientSite, der primären Schnittstelle, über die das Objekt Dienste von seinem Container anfordere. Dieser Parameter kann NULL sein.

[in] pStg

Zeiger auf die IStorage-Schnittstelle für den Speicher für das Objekt. Dieser Parameter darf nicht NULL sein.

[out] ppvObj

Adresse der Zeigervariablen, die den in riid angeforderten Schnittstellenzeiger empfängt. Nach erfolgreicher Rückgabe enthält *ppvObj den angeforderten Schnittstellenzeiger für das neu erstellte Objekt.

Rückgabewert

Diese Funktion gibt S_OK nach Erfolg zurück.

Hinweise

Die OleCreateStaticFromData-Funktion kann jedes Objekt, sofern es eine IDataObject-Schnittstelle bereitstellt, in ein statisches Objekt konvertieren. Es ist nützlich, die Option In Bild konvertieren für OLE-Verknüpfungen oder Einbetten zu implementieren.

Statische Objekte können nur erstellt werden, wenn die Quelle eines der von OLE gerenderten Zwischenablageformate unterstützt: CF_METAFILEPICT, CF_DIB oder CF_ BITMAP und CF_ENHMETAFILE.

Sie können auch OleCreateStaticFromData aufrufen, um ein statisches Objekt aus der Zwischenablage einzufügen. Um festzustellen, ob ein Objekt statisch ist, rufen Sie die OleQueryCreateFromData-Funktion auf, die OLE_S_STATIC zurückgibt, wenn eines der CF_METAFILEPICT, CF_DIB, CF_BITMAP oder CF_ENHMETAFILE vorhanden ist und kein OLE-Format vorhanden ist. Dies gibt an, dass Sie OleCreateStaticFromData anstelle der OleCreateFromData-Funktion aufrufen sollten, um das Objekt zu erstellen.

Das neue statische Objekt ist bei CF_METAFILEPICT CLSID_StaticMetafile, bei CF_DIB oder CF_BITMAP CLSID_StaticDib oder bei CF_ENHMETAFILE CLSID_Picture_EnhMetafile. Das statische Objekt legt die OLEMISC_STATIC und OLE_CANTLINKINSIDE Bits fest, die von IOleObject::GetMiscStatus zurückgegeben werden. Das statische Objekt weist den Aspekt DVASPECT_CONTENT und einen LINDEX von -1 auf.

Das pSrcDataObject ist nach der Rückgabe von OleCreateStaticFromData weiterhin gültig. Es liegt in der Verantwortung des Aufrufers, pSrcDataObject freizugeben– OLE gibt es nicht frei.

Ein statisches Objekt darf nicht mehr als einen Präsentationsstream enthalten.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ole2.h
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

OleCreateFromData