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