Sdílet prostřednictvím


Schránka: Použití mechanismu schránky OLE

OLE používá standardní formáty a některé formáty specifické pro OLE pro přenos dat prostřednictvím schránky.

Když vyjmete nebo zkopírujete data z aplikace, jsou data uložena do schránky pro pozdější operace vkládání.Tato data jsou v různých formátech.Když uživatel vybere, pokud chcete vložit data ze schránky, aplikace můžete zvolit, které z těchto formátů, které chcete použít.Aplikace by měly být zapsány do zvolit formát, který obsahuje většinu informací, pokud uživatel výslovně požádá o určitý formát pomocí Vložit jinak.Než budete pokračovat, můžete přečíst objekty Data a datové zdroje OLE () témata.Popisují základy jak data přenáší práci a způsob jejich implementace ve vašich aplikacích.

Windows definuje počet standardních formátů, které lze použít pro přenos dat prostřednictvím schránky.Patří sem metasoubory, textu, rastrových obrázků a další.OLE definuje počet OLE specifické formáty také.Pro aplikace, které potřebují více podrobností než poskytují tyto standardní formáty je vhodné zaregistrovat vlastní vlastní formáty schránky.Pomocí funkce rozhraní API systému Win32 RegisterClipboardFormat k tomu.

Například aplikace Microsoft Excel registruje vlastní formát tabulky.Tento formát obsahuje mnohem více informací než je například, nemá rastrový obrázek.Tato data po vložení do aplikace, která podporuje formát tabulky, vzorce a hodnoty z tabulky jsou zachovány a mohou být aktualizovány, pokud je to nutné.Aplikace Microsoft Excel tak, že jej lze vložit jako položky OLE také vloží data do schránky ve formátech.Každý kontejner OLE dokumentu můžete vložit tyto informace jako vložený předmět.Tato vložená položka lze měnit pomocí aplikace Microsoft Excel.Schránka obsahuje také jednoduchý rastrový obrázek z vybrané oblasti v tabulce.To může také být vloženy do kontejnerů OLE dokumentu nebo do bitmapové editory, jako je Malování.V případě rastr však neexistuje žádný způsob, jak manipulovat s daty jako tabulky.

Chcete-li získat maximální množství informací ze schránky, aplikace zkontrolujte tyto vlastní formáty před vkládání dat ze schránky.

Například chcete-li příkaz Vyjmout, můžete napsat obslužnou rutinu něco jako následující:

void CMyListView::OnEditCut()
{
   // Create an OLE data source on the heap
   COleDataSource* pData = new COleDataSource;
   // Get the currently selected data
   HGLOBAL hGlob = GlobalAlloc(GMEM_FIXED, 64);
   strcpy_s((char*)hGlob, 64, "Current selection\r\n");
   // For the appropriate data formats...
   pData->CacheGlobalData( CF_TEXT, hGlob );
   // The Clipboard now owns the allocated memory 
   // and will delete this data object 
   // when new data is put on the Clipboard
   pData->SetClipboard();
}

O čem chcete vědět více?

Viz také

Koncepty

Schránka