3.2.4 - Синтезируемые форматы буфера обмена

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

Формат Буфера обмена	Формат преобразования	Платформа поддержки
CF_BITMAP			CF_DIB			Windows NT, Windows 95
CF_DIB			CF_BITMAP			Windows NT, Windows 95
CF_DIB			CF_PALETTE		Windows NT, Windows 95
CF_ENHMETAFILE		CF_METAFILEPICT		Windows NT, Windows 95
CF_METAFILEPICT		CF_ENHMETAFILE		Windows NT, Windows 95
CF_OEMTEXT		CF_TEXT			Windows NT, Windows 95
CF_OEMTEXT		CF_UNICODETEXT		Windows NT
CF_TEXT			CF_OEMTEXT		Windows NT, Windows 95
CF_TEXT			CF_UNICODETEXT		Windows NT
CF_UNICODETEXT		CF_OEMTEXT		Windows NT
CF_UNICODETEXT		CF_TEXT			Windows NT

Если система обеспечивает преобразование между параллельными форматами, нет никакой выгоды от размещения параллельных форматов в буфере обмена. При копировании точечных рисунков, самое лучшее, в буфер обмена поместить только формат CF_DIB. Это потому, что цвета в аппаратно-зависимом точечном рисунке (CF_BITMAP) взаимосвязаны с палитрой системы, которая может измениться до того, как точечный рисунок будет вставлен. Если только формат CF_DIB находится в буфере обмена, а окно запрашивает формат CF_BITMAP, система представляет аппаратно-зависимый точечный рисунок (DIB), используя текущую палитру этого момента.

Если Вы помещаете формат CF_BITMAP в буфер обмена (а не CF_DIB), система выполняет формат буфера обмена CF_DIB, как только буфер обмена будет закрыт. Это гарантирует то, что используется правильная палитра для создания DIB. Преобразования между другими форматами буфера обмена происходят после запроса.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 14.02.2002