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 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 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 COleDataObject
ist, 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 CFile
abgeleitete 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
, CSharedFile
oder 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
, GetFileData
oder 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