COleDataObject-Klasse

Wird in Datenübertragungen zum Abrufen von Daten in unterschiedlichen Formaten aus der Zwischenablage, per Drag & Drop oder von einem eingebetteten OLE-Element verwendet.

Syntax

class COleDataObject

Member

Öffentliche Konstruktoren

Name Beschreibung
COleDataObject::COleDataObject Erstellt ein COleDataObject-Objekt.

Öffentliche Methoden

Name Beschreibung
COleDataObject::Attach Fügt das angegebene OLE-Datenobjekt an die COleDataObject.
COleDataObject::AttachClipboard Fügt das Datenobjekt an, das sich in der Zwischenablage befindet.
COleDataObject::BeginEnumFormats Bereitet sich auf einen oder mehrere nachfolgende GetNextFormat Aufrufe vor.
COleDataObject::D etach Trennt das zugeordnete IDataObject Objekt.
COleDataObject::GetData Kopiert Daten aus dem angefügten OLE-Datenobjekt in einem angegebenen Format.
COleDataObject::GetFileData Kopiert Daten aus dem angefügten OLE-Datenobjekt in einen CFile Zeiger im angegebenen Format.
COleDataObject::GetGlobalData Kopiert Daten aus dem angefügten OLE-Datenobjekt in ein HGLOBAL im angegebenen Format angegebenes Format.
COleDataObject::GetNextFormat Gibt das nächste verfügbare Datenformat zurück.
COleDataObject::IsDataAvailable Überprüft, ob Daten in einem angegebenen Format verfügbar sind.
COleDataObject::Release Trennt das zugeordnete IDataObject Objekt und gibt es frei.

Hinweise

COleDataObject besitzt keine Basisklasse.

Diese Arten von Datenübertragungen umfassen eine Quelle und ein Ziel. Die Datenquelle wird als Objekt der COleDataSource-Klasse implementiert. Wenn eine Zielanwendung Daten darin abgelegt hat oder zum Ausführen eines Einfügevorgangs aus der Zwischenablage aufgefordert wird, muss ein Objekt der COleDataObject Klasse erstellt werden.

Mit dieser Klasse können Sie ermitteln, ob die Daten in einem angegebenen Format vorhanden sind. Sie können auch die verfügbaren Datenformate aufzählen oder überprüfen, ob ein bestimmtes Format verfügbar ist, und dann die Daten im bevorzugten Format abrufen. Das Abrufen von Objekten kann auf verschiedene Arten durchgeführt werden, einschließlich der Verwendung einer CFile, eines HGLOBAL oder einer STGMEDIUM Struktur.

Weitere Informationen finden Sie in der STGMEDIUM-Struktur im Windows SDK.

Weitere Informationen zur Verwendung von Datenobjekten in Ihrer Anwendung finden Sie im Artikel "Data Objects and Data Sources (OLE)".

Vererbungshierarchie

COleDataObject

Anforderungen

Kopfzeile: afxole.h

COleDataObject::Attach

Rufen Sie diese Funktion auf, um das COleDataObject Objekt einem OLE-Datenobjekt zuzuordnen.

void Attach(
    LPDATAOBJECT lpDataObject,
    BOOL bAutoRelease = TRUE);

Parameter

lpDataObject
Verweist auf ein OLE-Datenobjekt.

bAutoRelease
TRUE, wenn das OLE-Datenobjekt freigegeben werden soll, wenn das COleDataObject Objekt zerstört wird; andernfalls FALSE.

Hinweise

Weitere Informationen finden Sie unter IDataObject im Windows SDK.

COleDataObject::AttachClipboard

Rufen Sie diese Funktion auf, um das Datenobjekt anzufügen, das sich derzeit in der Zwischenablage befindet, an das COleDataObject Objekt.

BOOL AttachClipboard();

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Hinweis

Durch Aufrufen dieser Funktion wird die Zwischenablage gesperrt, bis dieses Datenobjekt freigegeben wird. Das Datenobjekt wird im Destruktor für das COleDataObject. Weitere Informationen finden Sie in der Win32-Dokumentation unter OpenClipboard und CloseClipboard .

COleDataObject::BeginEnumFormats

Rufen Sie diese Funktion auf, um nachfolgende Aufrufe GetNextFormat zum Abrufen einer Liste von Datenformaten aus dem Element vorzubereiten.

void BeginEnumFormats();

Hinweise

Nach einem Aufruf BeginEnumFormatswird die Position des ersten Formats gespeichert, das von diesem Datenobjekt unterstützt wird. Aufeinanderfolgende Aufrufe GetNextFormat werden die Liste der verfügbaren Formate im Datenobjekt aufgezählt.

Verwenden Sie COleDataObject::IsDataAvailable, um die Verfügbarkeit von Daten in einem bestimmten Format zu überprüfen.

Weitere Informationen finden Sie unter "IDataObject::EnumFormatEtc " im Windows SDK.

COleDataObject::COleDataObject

Erstellt ein COleDataObject-Objekt.

COleDataObject();

Hinweise

Ein Aufruf von COleDataObject::Attach oder COleDataObject::AttachClipboard muss ausgeführt werden, bevor andere COleDataObject Funktionen aufgerufen werden.

Hinweis

Da einer der Parameter für die Drag-and-Drop-Handler ein Zeiger auf einen COleDataObjectist, muss dieser Konstruktor nicht aufgerufen werden, um Ziehen und Ablegen zu unterstützen.

COleDataObject::D etach

Rufen Sie diese Funktion auf, um das COleDataObject Objekt vom zugeordneten OLE-Datenobjekt zu trennen, ohne das Datenobjekt freizugeben.

LPDATAOBJECT Detach();

Rückgabewert

Ein Zeiger auf das OLE-Datenobjekt, das getrennt wurde.

Hinweise

COleDataObject::GetData

Rufen Sie diese Funktion auf, um Daten aus dem Element im angegebenen Format abzurufen.

BOOL GetData(
    CLIPFORMAT cfFormat,
    LPSTGMEDIUM lpStgMedium,
    LPFORMATETC lpFormatEtc = NULL);

Parameter

cfFormat
Das Format, in dem Daten zurückgegeben werden sollen. Dieser Parameter kann eines der vordefinierten Zwischenablageformate oder der von der systemeigenen Windows RegisterClipboardFormat-Funktion zurückgegebene Wert sein.

lpStgMedium
Verweist auf eine STGMEDIUM-Struktur , die Daten empfängt.

lpFormatEtc
Verweist auf eine FORMATTC-Struktur , die das Format beschreibt, in dem Daten zurückgegeben werden sollen. Geben Sie einen Wert für diesen Parameter an, wenn Sie zusätzliche Formatinformationen über das durch cfFormat angegebene Zwischenablageformat angeben möchten. Wenn es NULL ist, werden die Standardwerte für die anderen Felder in der FORMATETC Struktur verwendet.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Weitere Informationen finden Sie unter "IDataObject::GetData", "STGMEDIUM" und "FORMATETC " im Windows SDK.

Weitere Informationen finden Sie unter RegisterClipboardFormat im Windows SDK.

COleDataObject::GetFileData

Rufen Sie diese Funktion auf, um ein oder CFile-abgeleitetes CFile Objekt zu erstellen und Daten im angegebenen Format in einem CFile Zeiger abzurufen.

CFile* GetFileData(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parameter

cfFormat
Das Format, in dem Daten zurückgegeben werden sollen. Dieser Parameter kann eines der vordefinierten Zwischenablageformate oder der von der systemeigenen Windows RegisterClipboardFormat-Funktion zurückgegebene Wert sein.

lpFormatEtc
Verweist auf eine FORMATTC-Struktur , die das Format beschreibt, in dem Daten zurückgegeben werden sollen. Geben Sie einen Wert für diesen Parameter an, wenn Sie zusätzliche Formatinformationen über das durch cfFormat angegebene Zwischenablageformat angeben möchten. Wenn es NULL ist, werden die Standardwerte für die anderen Felder in der FORMATETC Struktur verwendet.

Rückgabewert

Zeiger auf das neue CFile oder CFileabgeleitete Objekt, das die Daten enthält, falls erfolgreich; andernfalls NULL.

Hinweise

Abhängig vom Medium, in dem die Daten gespeichert werden, kann der tatsächliche Typ, auf den der Rückgabewert verweist, sein CFile, CSharedFileoder COleStreamFile.

Hinweis

Das CFile Objekt, auf das über den Rückgabewert dieser Funktion zugegriffen wird, gehört dem Aufrufer. Es liegt in der Verantwortung des Aufrufers für delete das CFile Objekt, wodurch die Datei geschlossen wird.

Weitere Informationen finden Sie unter FORMATETC im Windows SDK.

Weitere Informationen finden Sie unter RegisterClipboardFormat im Windows SDK.

COleDataObject::GetGlobalData

Rufen Sie diese Funktion auf, um einen globalen Speicherblock zuzuweisen und Daten im angegebenen Format in einem HGLOBAL abzurufen.

HGLOBAL GetGlobalData(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parameter

cfFormat
Das Format, in dem Daten zurückgegeben werden sollen. Dieser Parameter kann eines der vordefinierten Zwischenablageformate oder der von der systemeigenen Windows RegisterClipboardFormat-Funktion zurückgegebene Wert sein.

lpFormatEtc
Verweist auf eine FORMATTC-Struktur , die das Format beschreibt, in dem Daten zurückgegeben werden sollen. Geben Sie einen Wert für diesen Parameter an, wenn Sie zusätzliche Formatinformationen über das durch cfFormat angegebene Zwischenablageformat angeben möchten. Wenn es NULL ist, werden die Standardwerte für die anderen Felder in der FORMATETC Struktur verwendet.

Rückgabewert

Das Handle des globalen Speicherblocks, der die Daten enthält, wenn dies erfolgreich ist; andernfalls NULL.

Hinweise

Weitere Informationen finden Sie unter FORMATETC im Windows SDK.

Weitere Informationen finden Sie unter RegisterClipboardFormat im Windows SDK.

COleDataObject::GetNextFormat

Rufen Sie diese Funktion wiederholt auf, um alle formate abzurufen, die zum Abrufen von Daten aus dem Element verfügbar sind.

BOOL GetNextFormat(LPFORMATETC lpFormatEtc);

Parameter

lpFormatEtc
Verweist auf die FORMATTC-Struktur , die die Formatinformationen empfängt, wenn der Funktionsaufruf zurückgegeben wird.

Rückgabewert

Nonzero, wenn ein anderes Format verfügbar ist; andernfalls 0.

Hinweise

Nach einem Aufruf von COleDataObject::BeginEnumFormats wird die Position des ersten formats gespeichert, das von diesem Datenobjekt unterstützt wird. Aufeinanderfolgende Aufrufe GetNextFormat werden die Liste der verfügbaren Formate im Datenobjekt aufgezählt. Verwenden Sie diese Funktionen, um die verfügbaren Formate auflisten zu können.

Rufen Sie COleDataObject::IsDataAvailable auf, um die Verfügbarkeit eines bestimmten Formats zu überprüfen.

Weitere Informationen finden Sie unter "IEnumXXXX::Next " im Windows SDK.

COleDataObject::IsDataAvailable

Rufen Sie diese Funktion auf, um zu ermitteln, ob ein bestimmtes Format zum Abrufen von Daten aus dem OLE-Element verfügbar ist.

BOOL IsDataAvailable(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parameter

cfFormat
Das Datenformat der Zwischenablage, das in der Struktur verwendet werden soll, auf die lpFormatEtc verweist. Dieser Parameter kann eines der vordefinierten Zwischenablageformate oder der von der systemeigenen Windows RegisterClipboardFormat-Funktion zurückgegebene Wert sein.

lpFormatEtc
Verweist auf eine FORMATTC-Struktur , die das gewünschte Format beschreibt. Geben Sie einen Wert für diesen Parameter nur an, wenn Sie zusätzliche Formatinformationen über das durch cfFormat angegebene Zwischenablageformat angeben möchten. Wenn es NULL ist, werden die Standardwerte für die anderen Felder in der FORMATETC Struktur verwendet.

Rückgabewert

Nonzero, wenn Daten im angegebenen Format verfügbar sind; andernfalls 0.

Hinweise

Diese Funktion ist nützlich, bevor Sie die Funktion aufrufen GetData, GetFileDataoder GetGlobalData.

Weitere Informationen finden Sie unter "IDataObject::QueryGetData " und "FORMATETC " im Windows SDK.

Weitere Informationen finden Sie unter RegisterClipboardFormat im Windows SDK.

Beispiel

Siehe das Beispiel für CRichEditView::QueryAcceptData.

COleDataObject::Release

Rufen Sie diese Funktion auf, um den Besitz des IDataObject-Objekts freizugeben, das zuvor dem COleDataObject Objekt zugeordnet war.

void Release();

Hinweise

Dies IDataObject wurde durch COleDataObject Aufrufen Attach oder AttachClipboard explizit oder durch das Framework zugeordnet. Wenn der Parameter "bAutoRelease " Attach falsch ist, wird das IDataObject Objekt nicht freigegeben. In diesem Fall ist der Anrufer für die IDataObject Freigabe durch Aufrufen von IUnknown::Release verantwortlich.

Siehe auch

MFC-Beispiel HIERSVR
MFC-Beispiel-OCLIENT
Hierarchiediagramm
COleDataSource-Klasse
COleClientItem-Klasse
COleServerItem-Klasse