Sdílet prostřednictvím


Objekty data a zdrojů dat: manipulace

Po vytvoření datového objektu nebo zdroje dat, můžete provést několik běžných operací na data, jako například vložení a odstranění dat výčet formáty dat je a další.Tento článek popisuje postupy nezbytné pro dokončení většinu běžných operací.Témata zahrnují:

  • Vkládání dat do zdroje dat

  • Určení formátů dat objektu

  • Načítání dat z datového objektu

Vkládání dat do zdroje dat

Jak vkládat data do zdroje dat závisí na zda okamžitě dodaných dat nebo na požádání a v médiu, které je zadáno.Možnosti jsou:

9s5z33c4.collapse_all(cs-cz,VS.110).gifDodávání dat okamžitě (okamžité vykreslování)

  • Volání COleDataSource::CacheGlobalData pro každý formát schránky, ve kterém jsou dodávání dat opakovaně.Předat formát schránky bude použit popisovač paměti obsahující data a volitelně FORMATETC data popisující strukturu.

    -nebo-

  • Chcete-li pracovat přímo s STGMEDIUM struktury, volání COleDataSource::CacheData namísto COleDataSource::CacheGlobalData ve výše uvedených možností.

9s5z33c4.collapse_all(cs-cz,VS.110).gifDodávání dat na požádání (zpoždění vykreslování)

Toto je rozšířená.

  • Volání COleDataSource::DelayRenderData pro každý formát schránky, ve kterém jsou dodávání dat opakovaně.Formát schránky pro předání a případně FORMATETC data popisující strukturu.Po vyžádání dat bude volat rozhraní COleDataSource::OnRenderData, které musí přepsat.

    -nebo-

  • Používáte-li CFile objektu k poskytnutí údajů, volání COleDataSource::DelayRenderFileData namísto COleDataSource::DelayRenderData v předchozí možnosti.Po vyžádání dat bude volat rozhraní COleDataSource::OnRenderFileData, které musí přepsat.

Určení formátů dat objektu

Aplikace umožňuje uživateli vložení dat, potřebuje vědět, pokud formáty schránky, kterou lze zpracovat.Chcete-li to provést, proveďte následující aplikace:

  1. Vytvoření COleDataObject objektu a FORMATETC struktury.

  2. Datový objekt volání AttachClipboard členské funkce objektu data přidružit data ve schránce.

  3. Proveďte jednu z těchto akcí:

    • Datový objekt volání IsDataAvailable členské funkce, pokud existuje pouze jeden nebo dva formáty můžete potřebovat.Tato ušetří čas v případech, kdy data ve schránce podporuje formáty podstatně více, než aplikace.

      -nebo-

    • Datový objekt volání BeginEnumFormats spuštění výčtu formáty schránky členské funkce.Potom voláním GetNextFormat dokud vrátí do schránky ve formátu aplikace podporuje nebo neexistují žádné další formáty.

Pokud používáte ON_UPDATE_COMMAND_UI, nyní lze povolit, vložit a vložit speciální položky v nabídce Úpravy.To provedete buď volání CMenu::EnableMenuItem nebo CCmdUI::Enable.Další informace o jaké kontejneru aplikace by se položky nabídky a, viz nabídky a prostředky: kontejner dodatky.

Načítání dat z datového objektu

Jakmile rozhodnuto o formátu data všeho, zůstane je k načtení dat z datového objektu.Chcete-li to provést, uživatel rozhodne umístění dat a aplikace volá příslušnou funkci.Data budou k dispozici v jednom z následujících média:

Střední

Volání funkce

Globální paměti (HGLOBAL)

COleDataObject::GetGlobalData

File (CFile)

COleDataObject::GetFileData

STGMEDIUM struktury (IStorage)

COleDataObject::GetData

Médium bude běžně zadat spolu s jeho formát schránky.Například CF_EMBEDDEDSTRUCT objektu je vždy v IStorage média, která vyžaduje STGMEDIUM struktury.Proto by použít GetData protože je pouze jeden z těchto funkcí, které lze přijmout STGMEDIUM struktury.

Pro případy, kdy je formát schránky v IStream nebo HGLOBAL střední rámci může poskytnout CFile ukazatel, který odkazuje na data.Aplikace pak můžete použít k získání dat víceméně stejně jako může být import dat ze souboru přečíst soubor.To je v podstatě rozhraní klienta OnRenderData a OnRenderFileData ve zdroji dat rutiny.

Uživatele lze nyní vložit data do dokumentu, stejně jako pro ostatní data ve stejném formátu.

9s5z33c4.collapse_all(cs-cz,VS.110).gifCo chcete vědět více?

Viz také

Referenční dokumentace

Třída COleDataObject

Třída COleDataSource

Koncepty

Objekty data a zdrojů dat (OLE)