Буфер обмена. Добавление других форматов
В этом разделе объясняется, как развернуть список поддерживаемых форматов, особенно для поддержки OLE. Раздел Буфер обмена. Копирование и вставящ данные описывает минимальную требуемую реализацию, что до скопировать и вставить из буфера обмена. Если это все, реализуемые единственными форматы, помещенные в буфер обмена CF_METAFILEPICT, CF_EMBEDSOURCE, CF_OBJECTDESCRIPTOR и по возможности CF_LINKSOURCE. Большинство приложений будут требуются дополнительные форматов в буфер обмена, чем эти 3.
Зарегистрировать пользовательские форматы
Чтобы создать собственные пользовательские форматы, выполните одну и ту же процедуру можно использовать при регистрации настраиваемый формат буфера обмена. передайте имя формата функции RegisterClipboardFormat и используйте его возвращаемое значение как идентификатор формата
Параметр форматы в буфер обмена
Для добавления дополнительных форматов для этих размещаться в буфер обмена необходимо переопределить функцию OnGetClipboardData в классе. вывели из COleClientItem или COleServerItem (в зависимости от того, скопировать данные собственен). В этой функции необходимо использовать следующую процедуру.
Установка форматы в буфер обмена
Создайте объект COleDataSource.
Передайте этот источник данных в функции, добавить собственные форматы данных в список поддерживаемых форматов путем вызова COleDataSource::CacheGlobalData.
Добавьте стандартные форматы путем вызова COleDataSource::CacheGlobalData для каждого стандартного формата для поддержки.
Этот метод используется в примере программы HIERSVR MFC OLE (просмотрите функции-члена OnGetClipboardData класса CServerItem ). Единственное отличие заключается в этом примере, раздел 3 не реализован, поскольку HIERSVR не поддерживает другие стандартные форматы.