Поделиться через


Буфер обмена. Добавление других форматов

В этом разделе объясняется, как развернуть список поддерживаемых форматов, особенно для поддержки OLE. Раздел Буфер обмена: копирование и вставка данных описывает минимальную реализацию, необходимую для поддержки копирования и вставки из буфера обмена. Если это все, что вы реализуете, единственными форматами, размещенными в буфере обмена, являются CF_METAFILEPICT, CF_EМБ EDSOURCE, CF_OBJECTDESCRIPTOR и, возможно, CF_LINKSOURCE. Большинству приложений потребуется больше форматов в буфере обмена, чем эти три.

Регистрация пользовательских форматов

Чтобы создать собственные настраиваемые форматы, выполните ту же процедуру, что и при регистрации любого пользовательского формата буфера обмена: передайте имя формата в функцию RegisterClipboardFormat и используйте его возвращаемое значение в качестве идентификатора формата.

Размещение форматов в буфере обмена

Чтобы добавить дополнительные форматы в буфер обмена, необходимо переопределить OnGetClipboardData функцию в классе, производном от одного COleClientItem или COleServerItem (в зависимости от того, копируются ли данные в собственном коде). В этой функции следует использовать следующую процедуру.

Размещение форматов в буфере обмена

  1. Создание объекта COleDataSource.

  2. Передайте этот источник данных в функцию, которая добавляет собственные форматы данных в список поддерживаемых форматов путем вызова COleDataSource::CacheGlobalData.

  3. Добавьте стандартные форматы, вызывая COleDataSource::CacheGlobalData каждый стандартный формат, который требуется поддерживать.

Этот метод используется в примере программы OLE MFC HIERSVR (изучите OnGetClipboardData функцию-член класса CServerItem ). Единственное различие в этом примере заключается в том, что шаг 3 не реализован, так как HIERSVR не поддерживает другие стандартные форматы.

Что вы хотите узнать больше о

См. также

Буфер обмена. Использование механизма буфера обмена OLE