Udostępnij za pośrednictwem


Klasa COleDataObject

Używany w transferach danych do pobierania danych w różnych formatach ze Schowka, przez przeciąganie i upuszczanie lub z osadzonego elementu OLE.

Składnia

class COleDataObject

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
COleDataObject::COleDataObject COleDataObject Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
COleDataObject::Attach Dołącza określony obiekt danych OLE do obiektu COleDataObject.
COleDataObject::AttachClipboard Dołącza obiekt danych znajdujący się w Schowku.
COleDataObject::BeginEnumFormats Przygotowuje się do co najmniej jednego kolejnego GetNextFormat wywołania.
COleDataObject::D etach Odłącza skojarzony IDataObject obiekt.
COleDataObject::GetData Kopiuje dane z dołączonego obiektu danych OLE w określonym formacie.
COleDataObject::GetFileData Kopiuje dane z dołączonego obiektu danych OLE do CFile wskaźnika w określonym formacie.
COleDataObject::GetGlobalData Kopiuje dane z dołączonego obiektu danych OLE do obiektu HGLOBAL w określonym formacie.
COleDataObject::GetNextFormat Zwraca dostępny następny format danych.
COleDataObject::IsDataAvailable Sprawdza, czy dane są dostępne w określonym formacie.
COleDataObject::Release Odłącza i zwalnia skojarzony IDataObject obiekt.

Uwagi

COleDataObject nie ma klasy bazowej.

Tego rodzaju transfery danych obejmują źródło i miejsce docelowe. Źródło danych jest implementowane jako obiekt klasy COleDataSource . Za każdym razem, gdy aplikacja docelowa zawiera dane porzucone lub zostanie poproszona o wykonanie operacji wklejania ze Schowka, należy utworzyć obiekt COleDataObject klasy.

Ta klasa umożliwia określenie, czy dane istnieją w określonym formacie. Można również wyliczyć dostępne formaty danych lub sprawdzić, czy dany format jest dostępny, a następnie pobrać dane w preferowanym formacie. Pobieranie obiektów można wykonać na kilka różnych sposobów, w tym użycie pliku CFile, HGLOBAL lub STGMEDIUM struktury.

Aby uzyskać więcej informacji, zobacz strukturę STGMEDIUM w zestawie Windows SDK.

Aby uzyskać więcej informacji na temat używania obiektów danych w aplikacji, zobacz artykuł Obiekty danych i źródła danych (OLE) .

Hierarchia dziedziczenia

COleDataObject

Wymagania

Nagłówek: afxole.h

COleDataObject::Attach

Wywołaj tę funkcję, aby skojarzyć COleDataObject obiekt z obiektem danych OLE.

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

Parametry

lpDataObject
Wskazuje obiekt danych OLE.

bAutoRelease
Wartość TRUE, jeśli obiekt danych OLE powinien zostać zwolniony, gdy COleDataObject obiekt zostanie zniszczony; w przeciwnym razie wartość FALSE.

Uwagi

Aby uzyskać więcej informacji, zobacz IDataObject w zestawie Windows SDK.

COleDataObject::AttachClipboard

Wywołaj tę funkcję, aby dołączyć obiekt danych, który znajduje się obecnie w Schowku do COleDataObject obiektu.

BOOL AttachClipboard();

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Uwaga

Wywołanie tej funkcji blokuje Schowek do momentu wydania tego obiektu danych. Obiekt danych jest zwalniany w destruktorze COleDataObjectobiektu . Aby uzyskać więcej informacji, zobacz OpenClipboard i CloseClipboard w dokumentacji win32.

COleDataObject::BeginEnumFormats

Wywołaj tę funkcję, aby przygotować się do kolejnych wywołań do GetNextFormat pobierania listy formatów danych z elementu.

void BeginEnumFormats();

Uwagi

Po wywołaniu metody BeginEnumFormatsdo parametru pozycja pierwszego formatu obsługiwanego przez ten obiekt danych jest przechowywana. Kolejne wywołania funkcji będą GetNextFormat wyliczać listę dostępnych formatów w obiekcie danych.

Aby sprawdzić dostępność danych w danym formacie, użyj obiektu COleDataObject::IsDataAvailable.

Aby uzyskać więcej informacji, zobacz IDataObject::EnumFormatEtc w zestawie Windows SDK.

COleDataObject::COleDataObject

COleDataObject Tworzy obiekt.

COleDataObject();

Uwagi

Przed wywołaniem innych COleDataObject funkcji należy wywołać obiekt COleDataObject::Attach Lub COleDataObject::AttachClipboard.

Uwaga

Ponieważ jednym z parametrów obsługi przeciągania i upuszczania jest wskaźnik do COleDataObjectelementu , nie ma potrzeby wywoływania tego konstruktora w celu obsługi przeciągania i upuszczania.

COleDataObject::D etach

Wywołaj tę funkcję, aby odłączyć COleDataObject obiekt od skojarzonego obiektu danych OLE bez zwalniania obiektu danych.

LPDATAOBJECT Detach();

Wartość zwracana

Wskaźnik do obiektu danych OLE, który został odłączony.

Uwagi

COleDataObject::GetData

Wywołaj tę funkcję, aby pobrać dane z elementu w określonym formacie.

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

Parametry

cfFormat
Format, w którym mają być zwracane dane. Ten parametr może być jednym ze wstępnie zdefiniowanych formatów Schowka lub wartością zwracaną przez natywną funkcję RegisterClipboardFormat systemu Windows.

lpStgMedium
Wskazuje strukturę STGMEDIUM, która będzie odbierać dane.

lpFormatEtc
Wskazuje strukturę FORMATETC opisującą format, w którym mają być zwracane dane. Podaj wartość tego parametru, jeśli chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. Jeśli ma wartość NULL, wartości domyślne są używane dla innych pól w FORMATETC strukturze.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Aby uzyskać więcej informacji, zobacz IDataObject::GetData, STGMEDIUM i FORMATETC w zestawie Windows SDK.

Aby uzyskać więcej informacji, zobacz RegisterClipboardFormat w zestawie Windows SDK.

COleDataObject::GetFileData

Wywołaj tę funkcję, aby utworzyć CFile obiekt pochodny lub CFilei pobrać dane w określonym formacie do CFile wskaźnika.

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

Parametry

cfFormat
Format, w którym mają być zwracane dane. Ten parametr może być jednym ze wstępnie zdefiniowanych formatów Schowka lub wartością zwracaną przez natywną funkcję RegisterClipboardFormat systemu Windows.

lpFormatEtc
Wskazuje strukturę FORMATETC opisującą format, w którym mają być zwracane dane. Podaj wartość tego parametru, jeśli chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. Jeśli ma wartość NULL, wartości domyślne są używane dla innych pól w FORMATETC strukturze.

Wartość zwracana

Wskaźnik do nowego CFile lub CFile-pochodnego obiektu zawierającego dane, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Uwagi

W zależności od nośnika, w których są przechowywane dane, rzeczywisty typ wskazywany przez wartość zwracaną może mieć CFilewartość , CSharedFilelub COleStreamFile.

Uwaga

Obiekt CFile , do którego uzyskuje dostęp zwracana wartość tej funkcji, jest własnością obiektu wywołującego. Jest to odpowiedzialność obiektu wywołującego delete CFile , zamykając w ten sposób plik.

Aby uzyskać więcej informacji, zobacz FORMATETC w zestawie Windows SDK.

Aby uzyskać więcej informacji, zobacz RegisterClipboardFormat w zestawie Windows SDK.

COleDataObject::GetGlobalData

Wywołaj tę funkcję, aby przydzielić globalny blok pamięci i pobrać dane w określonym formacie do HGLOBAL.

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

Parametry

cfFormat
Format, w którym mają być zwracane dane. Ten parametr może być jednym ze wstępnie zdefiniowanych formatów Schowka lub wartością zwracaną przez natywną funkcję RegisterClipboardFormat systemu Windows.

lpFormatEtc
Wskazuje strukturę FORMATETC opisującą format, w którym mają być zwracane dane. Podaj wartość tego parametru, jeśli chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. Jeśli ma wartość NULL, wartości domyślne są używane dla innych pól w FORMATETC strukturze.

Wartość zwracana

Dojście do globalnego bloku pamięci zawierającego dane w przypadku powodzenia; w przeciwnym razie wartość NULL.

Uwagi

Aby uzyskać więcej informacji, zobacz FORMATETC w zestawie Windows SDK.

Aby uzyskać więcej informacji, zobacz RegisterClipboardFormat w zestawie Windows SDK.

COleDataObject::GetNextFormat

Wywołaj tę funkcję wielokrotnie, aby uzyskać wszystkie formaty dostępne do pobierania danych z elementu.

BOOL GetNextFormat(LPFORMATETC lpFormatEtc);

Parametry

lpFormatEtc
Wskazuje strukturę FORMATETC, która odbiera informacje o formacie po powrocie wywołania funkcji.

Wartość zwracana

Inne niżzero, jeśli jest dostępny inny format; w przeciwnym razie 0.

Uwagi

Po wywołaniu obiektu COleDataObject::BeginEnumFormats pozycja pierwszego formatu obsługiwanego przez ten obiekt danych jest przechowywana. Kolejne wywołania funkcji będą GetNextFormat wyliczać listę dostępnych formatów w obiekcie danych. Użyj tych funkcji, aby wyświetlić listę dostępnych formatów.

Aby sprawdzić dostępność danego formatu, wywołaj metodę COleDataObject::IsDataAvailable.

Aby uzyskać więcej informacji, zobacz IEnumXXXX::Next w zestawie Windows SDK.

COleDataObject::IsDataAvailable

Wywołaj tę funkcję, aby określić, czy określony format jest dostępny do pobierania danych z elementu OLE.

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

Parametry

cfFormat
Format danych Schowka do użycia w strukturze wskazywany przez lpFormatEtc. Ten parametr może być jednym ze wstępnie zdefiniowanych formatów Schowka lub wartością zwracaną przez natywną funkcję RegisterClipboardFormat systemu Windows.

lpFormatEtc
Wskazuje strukturę FORMATETC opisującą żądany format. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. Jeśli ma wartość NULL, wartości domyślne są używane dla innych pól w FORMATETC strukturze.

Wartość zwracana

Niezerowe, jeśli dane są dostępne w określonym formacie; w przeciwnym razie 0.

Uwagi

Ta funkcja jest przydatna przed wywołaniem metody GetData, GetFileDatalub GetGlobalData.

Aby uzyskać więcej informacji, zobacz IDataObject::QueryGetData i FORMATETC w zestawie WINDOWS SDK.

Aby uzyskać więcej informacji, zobacz RegisterClipboardFormat w zestawie Windows SDK.

Przykład

Zobacz przykład CRichEditView ::QueryAcceptData.

COleDataObject::Release

Wywołaj tę funkcję, aby zwolnić własność obiektu IDataObject , który był wcześniej skojarzony z obiektem COleDataObject .

void Release();

Uwagi

Element IDataObject został skojarzony z elementem COleDataObject przez wywołanie Attach lub AttachClipboard jawnie lub przez platformę. Jeśli parametr bAutoRelease ma Attach wartość FALSE, IDataObject obiekt nie zostanie zwolniony. W takim przypadku obiekt wywołujący jest odpowiedzialny za zwolnienie obiektu IDataObject przez wywołanie metody IUnknown::Release.

Zobacz też

Przykład MFC HIERSVR
Przykład MFC OCLIENT
Wykres hierarchii
Klasa COleDataSource
Klasa COleClientItem
Klasa COleServerItem