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:
Dodá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í.
Dodá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:
Vytvoření COleDataObject objektu a FORMATETC struktury.
Datový objekt volání AttachClipboard členské funkce objektu data přidružit data ve schránce.
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.