COleDataObject – třída
Používá se v přenosech dat pro načítání dat v různých formátech ze schránky, přetažením nebo z vložené položky OLE.
Syntaxe
class COleDataObject
Členové
Veřejné konstruktory
Název | Popis |
---|---|
COleDataObject::COleDataObject | COleDataObject Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
COleDataObject::Attach | Připojí zadaný datový objekt OLE k objektu COleDataObject . |
COleDataObject::AttachClipboard | Připojí datový objekt, který je ve schránce. |
COleDataObject::BeginEnumFormats | Připraví se na jedno nebo více následných GetNextFormat volání. |
COleDataObject::D etach | Odpojte přidružený IDataObject objekt. |
COleDataObject::GetData | Zkopíruje data z připojeného datového objektu OLE v zadaném formátu. |
COleDataObject::GetFileData | Zkopíruje data z připojeného datového objektu OLE do ukazatele v zadaném CFile formátu. |
COleDataObject::GetGlobalData | Zkopíruje data z připojeného datového objektu OLE do zadaného HGLOBAL formátu. |
COleDataObject::GetNextFormat | Vrátí další dostupný formát dat. |
COleDataObject::IsDataAvailable | Zkontroluje, jestli jsou data dostupná v zadaném formátu. |
COleDataObject::Release | Odpojte a uvolní přidružený IDataObject objekt. |
Poznámky
COleDataObject
nemá základní třídu.
Mezi tyto druhy přenosů dat patří zdroj a cíl. Zdroj dat je implementován jako objekt COleDataSource třídy. Pokaždé, když cílová aplikace obsahuje data, která jsou v ní vyřazena nebo je požádána o provedení operace vložení ze schránky, musí být vytvořen objekt COleDataObject
třídy.
Tato třída umožňuje určit, zda data existují v zadaném formátu. Můžete také vytvořit výčet dostupných formátů dat nebo zkontrolovat, jestli je daný formát dostupný, a pak načíst data v upřednostňovaném formátu. Načtení objektu lze provést několika různými způsoby, včetně použití CFile, HGLOBAL nebo STGMEDIUM
struktury.
Další informace naleznete ve struktuře STGMEDIUM v sadě Windows SDK.
Další informace o používání datových objektů v aplikaci naleznete v článku Datové objekty a zdroje dat (OLE).
Hierarchie dědičnosti
COleDataObject
Požadavky
Hlavička: afxole.h
COleDataObject::Attach
Voláním této funkce přidružíte objekt k datovému objektu COleDataObject
OLE.
void Attach(
LPDATAOBJECT lpDataObject,
BOOL bAutoRelease = TRUE);
Parametry
lpDataObject
Odkazuje na datový objekt OLE.
bAutoRelease
TRUE, pokud objekt OLE data má být uvolněn při zničení objektu COleDataObject
; jinak NEPRAVDA.
Poznámky
Další informace naleznete v objektu IDataObject v sadě Windows SDK.
COleDataObject::AttachClipboard
Voláním této funkce připojíte datový objekt, který je aktuálně ve schránce k objektu COleDataObject
.
BOOL AttachClipboard();
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Poznámka:
Volání této funkce uzamkne schránku, dokud tento datový objekt nebude uvolněn. Datový objekt je uvolněn v destruktoru pro COleDataObject
objekt . Další informace naleznete v tématu OpenClipboard a CloseClipboard v dokumentaci win32.
COleDataObject::BeginEnumFormats
Voláním této funkce se připravte na následná volání pro GetNextFormat
načtení seznamu formátů dat z položky.
void BeginEnumFormats();
Poznámky
Po volání BeginEnumFormats
se uloží pozice prvního formátu podporovaného tímto datovým objektem. Následná volání GetNextFormat
budou vyčíslit seznam dostupných formátů v datovém objektu.
Pokud chcete zkontrolovat dostupnost dat v daném formátu, použijte COleDataObject::IsDataAvailable.
Další informace naleznete v tématu IDataObject::EnumFormatEtc v sadě Windows SDK.
COleDataObject::COleDataObject
COleDataObject
Vytvoří objekt.
COleDataObject();
Poznámky
Před voláním jiných COleDataObject
funkcí musí být provedeno volání COleDataObject::Attach nebo COleDataObject::AttachClipboard.
Poznámka:
Vzhledem k tomu, že jeden z parametrů obslužných rutin přetažení je ukazatel na , COleDataObject
není nutné volat tento konstruktor pro podporu přetažení.
COleDataObject::D etach
Voláním této funkce odpojíte objekt od přidruženého datového COleDataObject
objektu OLE bez uvolnění datového objektu.
LPDATAOBJECT Detach();
Návratová hodnota
Ukazatel na datový objekt OLE, který byl odpojen.
Poznámky
COleDataObject::GetData
Voláním této funkce načtete data z položky v zadaném formátu.
BOOL GetData(
CLIPFORMAT cfFormat,
LPSTGMEDIUM lpStgMedium,
LPFORMATETC lpFormatEtc = NULL);
Parametry
cfFormat
Formát, ve kterém se mají vrátit data. Tento parametr může být jedním z předdefinovaných formátů schránky nebo hodnotou vrácenou nativní funkcí Windows RegisterClipboardFormat .
lpStgMedium
Odkazuje na strukturu STGMEDIUM , která bude přijímat data.
lpFormatEtc
Odkazuje na strukturu FORMATETC popisující formát, ve kterém mají být vrácena data. Zadejte hodnotu pro tento parametr, pokud chcete zadat další informace o formátu mimo formát schránky určený cfFormat. Pokud má hodnotu NULL, použijí se výchozí hodnoty pro ostatní pole ve struktuře FORMATETC
.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Další informace naleznete v tématu IDataObject::GetData, STGMEDIUM a FORMATETC v sadě Windows SDK.
Další informace naleznete v tématu RegisterClipboardFormat v sadě Windows SDK.
COleDataObject::GetFileData
Voláním této funkce vytvoříte nebo CFile
odvozený CFile
objekt a načtete data v zadaném CFile
formátu do ukazatele.
CFile* GetFileData(
CLIPFORMAT cfFormat,
LPFORMATETC lpFormatEtc = NULL);
Parametry
cfFormat
Formát, ve kterém se mají vrátit data. Tento parametr může být jedním z předdefinovaných formátů schránky nebo hodnotou vrácenou nativní funkcí Windows RegisterClipboardFormat .
lpFormatEtc
Odkazuje na strukturu FORMATETC popisující formát, ve kterém mají být vrácena data. Zadejte hodnotu pro tento parametr, pokud chcete zadat další informace o formátu mimo formát schránky určený cfFormat. Pokud má hodnotu NULL, použijí se výchozí hodnoty pro ostatní pole ve struktuře FORMATETC
.
Návratová hodnota
Ukazatel na nový CFile
nebo CFile
odvozený objekt obsahující data v případě úspěchu; jinak NULL.
Poznámky
V závislosti na médiu, ve které jsou data uložena, může být CFile
skutečný typ, na který odkazuje návratová hodnota , nebo CSharedFile
COleStreamFile
.
Poznámka:
Objekt CFile
, ke kterému přistupuje návratová hodnota této funkce, vlastní volající. Je zodpovědností volajícího k delete
objektu CFile
, čímž soubor zavřete.
Další informace naleznete v tématu FORMATETC v sadě Windows SDK.
Další informace naleznete v tématu RegisterClipboardFormat v sadě Windows SDK.
COleDataObject::GetGlobalData
Voláním této funkce přidělíte globální blok paměti a načtete data v zadaném formátu do HGLOBAL.
HGLOBAL GetGlobalData(
CLIPFORMAT cfFormat,
LPFORMATETC lpFormatEtc = NULL);
Parametry
cfFormat
Formát, ve kterém se mají vrátit data. Tento parametr může být jedním z předdefinovaných formátů schránky nebo hodnotou vrácenou nativní funkcí Windows RegisterClipboardFormat .
lpFormatEtc
Odkazuje na strukturu FORMATETC popisující formát, ve kterém mají být vrácena data. Zadejte hodnotu pro tento parametr, pokud chcete zadat další informace o formátu mimo formát schránky určený cfFormat. Pokud má hodnotu NULL, použijí se výchozí hodnoty pro ostatní pole ve struktuře FORMATETC
.
Návratová hodnota
Popisovač globálního bloku paměti obsahujícího data v případě úspěchu; jinak NULL.
Poznámky
Další informace naleznete v tématu FORMATETC v sadě Windows SDK.
Další informace naleznete v tématu RegisterClipboardFormat v sadě Windows SDK.
COleDataObject::GetNextFormat
Voláním této funkce získáte opakovaně všechny formáty, které jsou k dispozici pro načtení dat z položky.
BOOL GetNextFormat(LPFORMATETC lpFormatEtc);
Parametry
lpFormatEtc
Odkazuje na formatETC struktury, která přijímá informace o formátu, když volání funkce vrátí.
Návratová hodnota
Nenulové, pokud je k dispozici jiný formát; jinak 0.
Poznámky
Po volání COleDataObject::BeginEnumFormats se uloží pozice prvního formátu podporovaného tímto datovým objektem. Následná volání GetNextFormat
budou vyčíslit seznam dostupných formátů v datovém objektu. Pomocí těchto funkcí můžete zobrazit seznam dostupných formátů.
Pokud chcete zkontrolovat dostupnost daného formátu, zavolejte COleDataObject::IsDataAvailable.
Další informace naleznete v tématu IEnumXXXX::Next v sadě Windows SDK.
COleDataObject::IsDataAvailable
Voláním této funkce určíte, zda je k dispozici určitý formát pro načtení dat z položky OLE.
BOOL IsDataAvailable(
CLIPFORMAT cfFormat,
LPFORMATETC lpFormatEtc = NULL);
Parametry
cfFormat
Formát dat schránky, který se má použít ve struktuře odkazované na lpFormatEtc. Tento parametr může být jedním z předdefinovaných formátů schránky nebo hodnotou vrácenou nativní funkcí Windows RegisterClipboardFormat .
lpFormatEtc
Odkazuje na strukturu FORMATETC popisující požadovaný formát. Zadejte hodnotu pro tento parametr pouze v případě, že chcete zadat další informace o formátu mimo formát schránky určený cfFormat. Pokud má hodnotu NULL, použijí se výchozí hodnoty pro ostatní pole ve struktuře FORMATETC
.
Návratová hodnota
Nenulové, pokud jsou data k dispozici v zadaném formátu; jinak 0.
Poznámky
Tato funkce je užitečná před voláním GetData
, GetFileData
nebo GetGlobalData
.
Další informace naleznete v tématu IDataObject::QueryGetData a FORMATETC v sadě Windows SDK.
Další informace naleznete v tématu RegisterClipboardFormat v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CRichEditView::QueryAcceptData.
COleDataObject::Release
Voláním této funkce uvolníte vlastnictví objektu IDataObject , který byl dříve přidružen k objektu COleDataObject
.
void Release();
Poznámky
Byla IDataObject
přidružena COleDataObject
voláním Attach
nebo AttachClipboard
explicitním voláním nebo architekturou. Pokud je parametr Attach
bAutoRelease false, IDataObject
objekt nebude uvolněn. V tomto případě je volající zodpovědný za uvolnění IDataObject
volání IUnknown::Release.
Viz také
MFC – Ukázka HIERSVR
MFC – ukázka OCLIENT
Graf hierarchie
COleDataSource – třída
COleClientItem – třída
COleServerItem – třída