Schránka: Přidání dalších formátů
Toto téma vysvětluje, jak rozbalit seznam podporovaných formátů, zejména pro podporu OLE. Téma Schránka: Kopírování a vkládání dat popisuje minimální implementaci potřebnou pro podporu kopírování a vkládání ze schránky. Pokud je to vše, co implementujete, jediné formáty umístěné ve schránce jsou CF_METAFILEPICT, CF_EMBEDSOURCE, CF_OBJECTDESCRIPTOR a případně CF_LINKSOURCE. Většina aplikací bude potřebovat více formátů ve schránce než tyto tři.
Registrace vlastních formátů
Pokud chcete vytvořit vlastní formáty, použijte stejný postup, který byste použili při registraci libovolného vlastního formátu schránky: předejte název formátu funkci RegisterClipboardFormat a jako ID formátu použijte její návratovou hodnotu.
Umístění formátů do schránky
Chcete-li přidat další formáty do těch, které jsou umístěné ve schránce, je nutné přepsat OnGetClipboardData
funkci ve třídě, kterou jste odvozeni z nebo COleClientItem
COleServerItem
(v závislosti na tom, zda jsou data, která se mají zkopírovat, nativní). V této funkci byste měli použít následující postup.
Umístění formátů do schránky
Vytvoření objektu
COleDataSource
Předejte tento zdroj dat funkci, která přidá nativní formáty dat do seznamu podporovaných formátů voláním
COleDataSource::CacheGlobalData
.Přidejte standardní formáty voláním
COleDataSource::CacheGlobalData
pro každý standardní formát, který chcete podporovat.
Tato technika se používá v ukázkovém programu MFC OLE HIERSVR (prozkoumejte OnGetClipboardData
členovou funkci CServerItem třídy). Jediným rozdílem v této ukázce je, že krok tři není implementován, protože HIERSVR nepodporuje žádné jiné standardní formáty.