OleCreateLinkFromData-Funktion (ole2.h)

Erstellt ein verknüpftes Objekt aus einem Datenübertragungsobjekt, das entweder aus der Zwischenablage oder als Teil eines OLE-Drag-and-Drop-Vorgangs abgerufen wird.

Syntax

HRESULT OleCreateLinkFromData(
  [in]  LPDATAOBJECT    pSrcDataObj,
  [in]  REFIID          riid,
  [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, aus dem das verknüpfte Objekt erstellt werden soll.

[in] riid

Verweis auf den Bezeichner der Schnittstelle, die der Aufrufer später verwendet, um mit dem neuen Objekt zu kommunizieren (in der Regel IID_IOleObject, definiert in den OLE-Headern als Schnittstellenbezeichner für IOleObject).

[in] renderopt

Wert aus der OLERENDER-Enumeration , der die lokal zwischengespeicherten Zeichnungs- oder Datenabruffunktionen angibt, über die das neu erstellte Objekt verfügen soll. Weitere Überlegungen werden im folgenden Abschnitt "Hinweise" beschrieben.

[in] pFormatEtc

Zeiger auf einen Wert aus der OLERENDER-Enumeration , der die lokal zwischengespeicherten Zeichnungs- oder Datenabruffunktionen angibt, über die das neu erstellte Objekt verfügen soll. Der ausgewählte OLERENDER-Wert wirkt sich auf die möglichen Werte für den pFormatEtc-Parameter aus.

[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 das Speicherobjekt. 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. Weitere mögliche Werte sind:

Rückgabecode Beschreibung
CLIPBRD_E_CANT_OPEN
Die Zwischenablage kann nicht geöffnet werden.
OLE_E_CANT_GETMONIKER
Der Moniker des Objekts kann nicht extrahiert werden.
OLE_E_CANT_BINDTOSOURCE
Die Bindung an die Quelle ist nicht möglich. Eine Bindung ist erforderlich, um die Initialisierungsdaten des Caches abzurufen.

Hinweise

Die OleCreateLinkFromData-Funktion wird verwendet, um entweder einen Paste-Link- oder einen Drag-Link-Vorgang zu implementieren. Seine Operation ähnelt der der OleCreateFromData-Funktion , mit der Ausnahme, dass sie einen Link erstellt und nach verschiedenen Datenformaten sucht. Wenn das CF_LINKSOURCE Format nicht vorhanden ist und entweder das Format FileName oder FileNameW im Datenübertragungsobjekt vorhanden ist, erstellt OleCreateLinkFromData ein Paket, das den Link zur angegebenen Datei enthält.

Sie verwenden die Parameter renderopt und pFormatetc , um die Zwischenspeicherungsfunktion des neu erstellten Objekts zu steuern. Allgemeine Informationen zum Bestimmen, was zwischengespeichert werden soll, finden Sie in der OLERENDER-Enumeration eine Beschreibung der Interaktion zwischen renderopt und pFormatetc. Es gibt jedoch einige zusätzliche spezifische Auswirkungen dieser Parameter auf die Art und Weise, wie OleCreateLinkFromData den Cache initialisiert, wie folgt.

Wert BESCHREIBUNG
OLERENDER_DRAW, OLERENDER_FORMAT Wenn die Präsentationsinformationen im Quelldatenobjekt in den anderen Formaten vorliegen, werden diese Informationen verwendet. Wenn die Informationen nicht vorhanden sind, ist der Cache zunächst leer, wird aber bei der ersten Ausführung des Objekts gefüllt. Im neu erstellten Objekt werden keine anderen Formate zwischengespeichert.
OLERENDER_NONE, OLERENDER_ASIS Im neu erstellten Objekt soll nichts zwischengespeichert werden.

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

OleCreateLink