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


Стандартные форматы буфера обмена

Форматы буфера обмена, определенные системой, называются стандартными форматами буфера обмена. Эти форматы буфера обмена описаны в следующей таблице.

Пример

  case CF_BITMAP:
        hdcMem = CreateCompatibleDC(hdc);
        if (hdcMem != NULL)
        {
            if (OpenClipboard(hwnd))
            {
                hbm = (HBITMAP) 
                     GetClipboardData(uFormat);
                SelectObject(hdcMem, hbm);
                GetClientRect(hwnd, &rc);
 
                BitBlt(hdc, 0, 0, rc.right, rc.bottom,
                    hdcMem, 0, 0, SRCCOPY);
                CloseClipboard();
             }
             DeleteDC(hdcMem);
        }
    break;

Полный пример приведен в статье Использование буферов обмена.

Константы

Констант/значение Описание
CF_BITMAP
2
Дескриптор растрового изображения (HBITMAP).
CF_DIB
8
Объект памяти, содержащий структуру BITMAPINFO , за которой следует битовое изображение.
CF_DIBV5
17
Объект памяти, содержащий структуру BITMAPV5HEADER , за которой следуют сведения о цветовом пространстве растрового изображения и битовые биты.
CF_DIF
5
Формат обмена данными Software Arts.
CF_DSPBITMAP
0x0082
Формат отображения растрового рисунка, связанный с закрытым форматом. Параметр hMem должен быть дескриптором для данных, которые могут отображаться в растровом формате вместо данных в частном формате.
CF_DSPENHMETAFILE
0x008E
Расширенный формат отображения метафайлов, связанный с закрытым форматом. Параметр hMem должен быть дескриптором для данных, которые могут отображаться в расширенном формате метафайла вместо данных в частном формате.
CF_DSPMETAFILEPICT
0x0083
Формат отображения метафайла, связанный с закрытым форматом. Параметр hMem должен быть дескриптором для данных, которые могут отображаться в формате метафайла вместо данных в частном формате.
CF_DSPTEXT
0x0081
Формат отображения текста, связанный с закрытым форматом. Параметр hMem должен быть дескриптором для данных, которые могут отображаться в текстовом формате вместо данных в частном формате.
CF_ENHMETAFILE
14
Дескриптор расширенного метафайла (HENHMETAFILE).
CF_GDIOBJFIRST
0x0300
Начало диапазона целочисленных значений для определяемых приложением форматов буфера обмена объектов GDI. Конец диапазона — CF_GDIOBJLAST.
Дескрипторы, связанные с форматами буфера обмена в этом диапазоне, не удаляются автоматически с помощью функции GlobalFree при очистке буфера обмена. Кроме того, при использовании значений в этом диапазоне параметр hMem не является дескриптором объекта GDI, а дескриптором, выделенным функцией GlobalAlloc с флагом GMEM_MOVEABLE .
CF_GDIOBJLAST
0x03FF
См . CF_GDIOBJFIRST.
CF_HDROP
15
Дескриптор типа HDROP , определяющий список файлов. Приложение может получить сведения о файлах, передав дескриптор функции DragQueryFile .
CF_LOCALE
16
Данные представляют собой дескриптор (HGLOBAL) идентификатора языкового стандарта (LCID), связанного с текстом в буфере обмена. При закрытии буфера обмена, если он содержит CF_TEXT данные, но не содержит CF_LOCALE данных, система автоматически устанавливает для формата CF_LOCALE текущий язык ввода. Вы можете использовать формат CF_LOCALE , чтобы связать другой языковой стандарт с текстом буфера обмена.
Приложение, которое вставляет текст из буфера обмена, может получить этот формат, чтобы определить, какой набор символов использовался для создания текста.
Обратите внимание, что буфер обмена не поддерживает обычный текст в нескольких кодировках. Для этого используйте форматированный текстовый тип данных, например RTF.
Система использует кодовую страницу, связанную с CF_LOCALE , для неявного преобразования CF_TEXT в CF_UNICODETEXT. Поэтому для преобразования используется правильная таблица кодовой страницы.
CF_METAFILEPICT
3
Обработка в формате изображения метафайла в соответствии со структурой METAFILEPICT . При передаче дескриптора CF_METAFILEPICT с помощью DDE приложение, ответственное за удаление hMem , должно также освободить метафайл, на который ссылается дескриптор CF_METAFILEPICT .
CF_OEMTEXT
7
Текстовый формат, содержащий символы в наборе символов OEM. Каждая строка заканчивается комбинацией возврата каретки и перевода линий (CR-LF). Символ NULL сигнализирует о конце данных.
CF_OWNERDISPLAY
0x0080
Формат отображения владельца. Владелец буфера обмена должен отобразить и обновить окно просмотра буфера обмена, а также получать сообщения WM_ASKCBFORMATNAME, WM_HSCROLLCLIPBOARD, WM_PAINTCLIPBOARD, WM_SIZECLIPBOARD и WM_VSCROLLCLIPBOARD . Параметр hMem должен иметь значение NULL.
CF_PALETTE
9
Дескриптор цветовой палитры. Всякий раз, когда приложение помещает данные в буфер обмена, который зависит от цветовой палитры или предполагает ее, оно также должно поместить палитру в буфер обмена.
Если буфер обмена содержит данные в формате CF_PALETTE (логическая цветовая палитра), приложение должно использовать функции SelectPalette и RealizePalette , чтобы реализовать (сравнить) любые другие данные в буфере обмена с этой логической палитрой.
При отображении данных буфера обмена буфер обмена всегда использует в качестве текущей палитры любой объект в буфере обмена в формате CF_PALETTE .
CF_PENDATA
10
Данные для расширений пера в Microsoft Windows для вычислений пера.
CF_PRIVATEFIRST
0x0200
Начало диапазона целочисленных значений для закрытых форматов буфера обмена. Диапазон заканчивается CF_PRIVATELAST. Дескриптора, связанные с закрытыми форматами буфера обмена, не освобождаются автоматически; Владелец буфера обмена должен освободить такие дескрипторы, как правило, в ответ на сообщение WM_DESTROYCLIPBOARD .
CF_PRIVATELAST
0x02FF
См . CF_PRIVATEFIRST.
CF_RIFF
11
Представляет аудиоданные более сложные, чем можно представить в CF_WAVE стандартном формате волны.
CF_SYLK
4
Формат символьной ссылки (Майкрософт) (SYLK).
CF_TEXT
1
Формат текста. Каждая строка заканчивается комбинацией возврата каретки и перевода линий (CR-LF). Символ NULL сигнализирует о конце данных. Используйте этот формат для текста ANSI.
CF_TIFF
6
Формат файла с тегами.
CF_UNICODETEXT
13
Текстовый формат Юникода. Каждая строка заканчивается комбинацией возврата каретки и перевода линий (CR-LF). Символ NULL сигнализирует о конце данных.
CF_WAVE
12
Представляет звуковые данные в одном из стандартных форматов волн, например 11 кГц или 22 кГц PCM.

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Winuser.h (включая Windows.h)