Sdílet prostřednictvím


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();

Vrácená 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 COleDataObjectobjekt . 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í BeginEnumFormatsse 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 , COleDataObjectnení 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();

Vrácená 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 .

Vrácená 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 CFileodvozený 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 .

Vrácená hodnota

Ukazatel na nový CFile nebo CFileodvozený 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 CFileskutečný typ, na který odkazuje návratová hodnota , nebo CSharedFileCOleStreamFile.

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 .

Vrácená 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í.

Vrácená 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 .

Vrácená 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, GetFileDatanebo 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