Share via


Klasse COleDataObject

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Wordt gebruikt in gegevensoverdrachten voor het ophalen van gegevens in verschillende indelingen vanaf het Klembord, via slepen en neerzetten of vanuit een ingesloten OLE-item.

Syntaxis

class COleDataObject

Leden

Openbare constructors

Naam Description
COleDataObject::COleDataObject Maakt een COleDataObject object.

Openbare methoden

Naam Description
COleDataObject::Attach Hiermee wordt het opgegeven OLE-gegevensobject gekoppeld aan het COleDataObject.
COleDataObject::AttachClipboard Hiermee wordt het gegevensobject gekoppeld dat zich op het Klembord bevindt.
COleDataObject::BeginEnumFormats Bereidt zich voor op een of meer volgende GetNextFormat aanroepen.
COleDataObject::D etach Hiermee wordt het bijbehorende object losgekoppeld IDataObject .
COleDataObject::GetData Kopieert gegevens uit het bijgevoegde OLE-gegevensobject in een opgegeven indeling.
COleDataObject::GetFileData Kopieert gegevens van het gekoppelde OLE-gegevensobject naar een CFile aanwijzer in de opgegeven indeling.
COleDataObject::GetGlobalData Kopieert gegevens van het gekoppelde OLE-gegevensobject naar een HGLOBAL in de opgegeven indeling.
COleDataObject::GetNextFormat Retourneert de volgende gegevensindeling die beschikbaar is.
COleDataObject::IsDataAvailable Hiermee wordt gecontroleerd of gegevens beschikbaar zijn in een opgegeven indeling.
COleDataObject::Release Het gekoppelde IDataObject object loskoppelen en loskoppelen.

Opmerkingen

COleDataObject heeft geen basisklasse.

Dit soort gegevensoverdrachten omvatten een bron en een bestemming. De gegevensbron wordt geïmplementeerd als een object van de klasse COleDataSource . Wanneer een doeltoepassing gegevens bevat die erin zijn verwijderd of wordt gevraagd om een plakbewerking uit te voeren vanaf het Klembord, moet er een object van de COleDataObject klasse worden gemaakt.

Met deze klasse kunt u bepalen of de gegevens bestaan in een opgegeven indeling. U kunt ook de beschikbare gegevensindelingen inventariseren of controleren of een bepaalde indeling beschikbaar is en vervolgens de gegevens in de gewenste indeling ophalen. Het ophalen van objecten kan op verschillende manieren worden uitgevoerd, waaronder het gebruik van een CFile, een HGLOBAL of een STGMEDIUM structuur.

Zie de structuur STGMEDIUM in de Windows SDK voor meer informatie.

Zie het artikel Gegevensobjecten en gegevensbronnen (OLE) voor meer informatie over het gebruik van gegevensobjecten in uw toepassing.

Overnamehiërarchie

COleDataObject

Requirements

Koptekst: afxole.h

COleDataObject::Attach

Roep deze functie aan om het COleDataObject object te koppelen aan een OLE-gegevensobject.

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

Parameterwaarden

lpDataObject
Verwijst naar een OLE-gegevensobject.

bAutoRelease
WAAR als het OLE-gegevensobject moet worden vrijgegeven wanneer het COleDataObject object wordt vernietigd; anders ONWAAR.

Opmerkingen

Zie IDataObject in de Windows SDK voor meer informatie.

COleDataObject::AttachClipboard

Roep deze functie aan om het gegevensobject dat zich momenteel op het Klembord bevindt, aan het COleDataObject object te koppelen.

BOOL AttachClipboard();

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Opmerking

Als u deze functie aanroept, wordt het Klembord vergrendeld totdat dit gegevensobject wordt vrijgegeven. Het gegevensobject wordt vrijgegeven in de destructor voor de COleDataObject. Zie OpenClipboard en CloseClipboard in de Win32-documentatie voor meer informatie.

COleDataObject::BeginEnumFormats

Roep deze functie aan om de volgende aanroepen voor te GetNextFormat bereiden voor het ophalen van een lijst met gegevensindelingen van het item.

void BeginEnumFormats();

Opmerkingen

Na een aanroep naar BeginEnumFormats, wordt de positie van de eerste indeling die door dit gegevensobject wordt ondersteund, opgeslagen. Opeenvolgende aanroepen om de lijst met beschikbare indelingen in het gegevensobject op te GetNextFormat sommen.

Gebruik COleDataObject::IsDataAvailable om de beschikbaarheid van gegevens in een bepaalde indeling te controleren.

Zie IDataObject::EnumFormatEtc in de Windows SDK voor meer informatie.

COleDataObject::COleDataObject

Maakt een COleDataObject object.

COleDataObject();

Opmerkingen

Een aanroep naar COleDataObject::Attach of COleDataObject::AttachClipboard moet worden uitgevoerd voordat u andere COleDataObject functies aanroept.

Opmerking

Aangezien een van de parameters voor de handlers voor slepen en neerzetten een aanwijzer naar een COleDataObjectis, hoeft u deze constructor niet aan te roepen om slepen en neerzetten te ondersteunen.

COleDataObject::D etach

Roep deze functie aan om het object los te koppelen van het COleDataObject bijbehorende OLE-gegevensobject zonder het gegevensobject vrij te geven.

LPDATAOBJECT Detach();

Retourwaarde

Een aanwijzer naar het OLE-gegevensobject dat is losgekoppeld.

Opmerkingen

COleDataObject::GetData

Roep deze functie aan om gegevens op te halen uit het item in de opgegeven indeling.

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

Parameterwaarden

cfFormat
De indeling waarin gegevens moeten worden geretourneerd. Deze parameter kan een van de vooraf gedefinieerde Klembord-indelingen zijn of de waarde die wordt geretourneerd door de systeemeigen windows RegisterClipboardFormat-functie .

lpStgMedium
Verwijst naar een STGMEDIUM-structuur die gegevens ontvangt.

lpFormatEtc
Verwijst naar een FORMATETC-structuur die de indeling beschrijft waarin gegevens moeten worden geretourneerd. Geef een waarde op voor deze parameter als u aanvullende opmaakinformatie wilt opgeven buiten de Indeling van het Klembord die is opgegeven door cfFormat. Als het NULL is, worden de standaardwaarden gebruikt voor de andere velden in de FORMATETC structuur.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Zie IDataObject::GetData, STGMEDIUM en FORMATETC in de Windows SDK voor meer informatie.

Zie RegisterClipboardFormat in de Windows SDK voor meer informatie.

COleDataObject::GetFileData

Roep deze functie aan om een CFile of CFile-afgeleide object te maken en gegevens in de opgegeven indeling op te halen in een CFile aanwijzer.

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

Parameterwaarden

cfFormat
De indeling waarin gegevens moeten worden geretourneerd. Deze parameter kan een van de vooraf gedefinieerde Klembord-indelingen zijn of de waarde die wordt geretourneerd door de systeemeigen windows RegisterClipboardFormat-functie .

lpFormatEtc
Verwijst naar een FORMATETC-structuur die de indeling beschrijft waarin gegevens moeten worden geretourneerd. Geef een waarde op voor deze parameter als u aanvullende opmaakinformatie wilt opgeven buiten de Indeling van het Klembord die is opgegeven door cfFormat. Als het NULL is, worden de standaardwaarden gebruikt voor de andere velden in de FORMATETC structuur.

Retourwaarde

Wijs het nieuwe CFile of CFileafgeleide object aan met de gegevens als dit lukt; anders NULL.

Opmerkingen

Afhankelijk van het medium waarin de gegevens worden opgeslagen, kan CFilehet werkelijke type dat door de retourwaarde wordt verwezen, zijn , CSharedFileof COleStreamFile.

Opmerking

Het CFile object dat wordt geopend door de retourwaarde van deze functie, is eigendom van de aanroeper. Het is de verantwoordelijkheid van de aanroeper voor delete het CFile object, waardoor het bestand wordt gesloten.

Zie FORMATETC in de Windows SDK voor meer informatie.

Zie RegisterClipboardFormat in de Windows SDK voor meer informatie.

COleDataObject::GetGlobalData

Roep deze functie aan om een globaal geheugenblok toe te wijzen en om gegevens in de opgegeven indeling op te halen in een HGLOBAL.

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

Parameterwaarden

cfFormat
De indeling waarin gegevens moeten worden geretourneerd. Deze parameter kan een van de vooraf gedefinieerde Klembord-indelingen zijn of de waarde die wordt geretourneerd door de systeemeigen windows RegisterClipboardFormat-functie .

lpFormatEtc
Verwijst naar een FORMATETC-structuur die de indeling beschrijft waarin gegevens moeten worden geretourneerd. Geef een waarde op voor deze parameter als u aanvullende opmaakinformatie wilt opgeven buiten de Indeling van het Klembord die is opgegeven door cfFormat. Als het NULL is, worden de standaardwaarden gebruikt voor de andere velden in de FORMATETC structuur.

Retourwaarde

De ingang van het globale geheugenblok met de gegevens als dit lukt; anders NULL.

Opmerkingen

Zie FORMATETC in de Windows SDK voor meer informatie.

Zie RegisterClipboardFormat in de Windows SDK voor meer informatie.

COleDataObject::GetNextFormat

Roep deze functie herhaaldelijk aan om alle indelingen te verkrijgen die beschikbaar zijn voor het ophalen van gegevens uit het item.

BOOL GetNextFormat(LPFORMATETC lpFormatEtc);

Parameterwaarden

lpFormatEtc
Verwijst naar de FORMATETC-structuur die de notatiegegevens ontvangt wanneer de functieaanroep terugkeert.

Retourwaarde

Niet-nul als er een andere indeling beschikbaar is; anders 0.

Opmerkingen

Na een aanroep naar COleDataObject::BeginEnumFormats wordt de positie van de eerste indeling die door dit gegevensobject wordt ondersteund, opgeslagen. Opeenvolgende aanroepen om de lijst met beschikbare indelingen in het gegevensobject op te GetNextFormat sommen. Gebruik deze functies om de beschikbare indelingen weer te geven.

Als u wilt controleren op de beschikbaarheid van een bepaalde indeling, roept u COleDataObject::IsDataAvailable aan.

Zie IEnumXXXXXX::Next in de Windows SDK voor meer informatie.

COleDataObject::IsDataAvailable

Roep deze functie aan om te bepalen of een bepaalde indeling beschikbaar is voor het ophalen van gegevens uit het OLE-item.

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

Parameterwaarden

cfFormat
De gegevensindeling Klembord die moet worden gebruikt in de structuur die wordt verwezen door lpFormatEtc. Deze parameter kan een van de vooraf gedefinieerde Klembord-indelingen zijn of de waarde die wordt geretourneerd door de systeemeigen windows RegisterClipboardFormat-functie .

lpFormatEtc
Verwijst naar een FORMATETC-structuur die de gewenste indeling beschrijft. Geef alleen een waarde op voor deze parameter als u aanvullende opmaakinformatie wilt opgeven buiten de indeling van het Klembord die is opgegeven door cfFormat. Als het NULL is, worden de standaardwaarden gebruikt voor de andere velden in de FORMATETC structuur.

Retourwaarde

Niet-nul als gegevens beschikbaar zijn in de opgegeven indeling; anders 0.

Opmerkingen

Deze functie is handig voordat u aanroept GetData, GetFileDataof GetGlobalData.

Zie IDataObject::QueryGetData en FORMATETC in de Windows SDK voor meer informatie.

Zie RegisterClipboardFormat in de Windows SDK voor meer informatie.

Example

Zie het voorbeeld voor CRichEditView::QueryAcceptData.

COleDataObject::Release

Roep deze functie aan om het eigendom van het IDataObject-object vrij te geven dat eerder aan het COleDataObject object was gekoppeld.

void Release();

Opmerkingen

De IDataObject is gekoppeld aan het COleDataObject aanroepen Attach of expliciet of AttachClipboard door het framework. Als de parameter AttachbAutoRelease FALSE is, wordt het IDataObject object niet vrijgegeven. In dit geval is de beller verantwoordelijk voor het vrijgeven van de IDataObject beller door IUnknown::Release aan te roepen.

Zie ook

MFC-voorbeeld HIERSVR
MFC-voorbeeld-OCLIENT
Hiërarchiegrafiek
COleDataSource-klasse
COleClientItem-klasse
COleServerItem-klasse