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 COleDataObject
obiektu . 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 BeginEnumFormats
do 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 COleDataObject
elementu , 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 CFile
i 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ć CFile
wartość , CSharedFile
lub 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
, GetFileData
lub 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