Функция SetClipboardData


Функция SetClipboardData помещает данные в буфер обмена в заданном формате. Окно должно быть текущим владелецем буфера обмена, а приложение  должно вызывать функцию OpenClipboard. (При ответе на сообщения WM_RENDERFORMAT и WM_RENDERALLFORMATS, владелец буфера обмена не должен вызвать функцию OpenClipboard перед вызовом SetClipboardData.)

Синтаксис

HANDLE SetClipboardData(
    UINT uFormat,
    HANDLE hMem
);

Параметры

uFormat

[in] Задает формат буфера обмена. Этим параметром может быть зарегистрированный  или любой стандартный формат буфера обмена. Подробную информацию см. в статье Зарегистрированные форматы буфера обмена и Стандартные форматы буфера обмена.

hMem

[in] Дескриптор данных в заданном формате. Этим параметром может быть значение ПУСТО (NULL), обозначая, что окно после запроса обеспечивает данные в заданном формате буфера обмена (предоставляет формат) . Если окно задерживает предоставление формата, оно должно обрабатывать сообщения WM_RENDERFORMAT и WM_RENDERALLFORMATS.

После вызова функции SetClipboardData, система владеет объектом, идентифицированным параметром hMem. Приложение может читать данные, но не должно освобождать дескриптор или оставлять его блокированным до тех пор, пока не будет вызвана функция CloseClipboard. (Приложение может обратиться к данным после вызова функции CloseClipboard). Если параметр hMem  идентифицирует объект памяти, объект должен быть назначен, используя эту  функцию с флажком GMEM_MOVEABLE.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - дескриптор данных.

Если функция завершается ошибкой, возвращаемое значение - ПУСТО (NULL). Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.

Замечания

Параметр uFormat может идентифицировать или зарегистрированный формат буфера обмена, или он может быть одним из стандартных форматов этого буфера. Дополнительную информацию смотри в статьях Зарегистрированные форматы буфера обмена и Стандартные форматы буфера обмена.

Если приложение в ответ на WM_RENDERFORMAT или WM_RENDERALLFORMATS вызывает функцию SetClipboardData, оно не должно использовать этот дескриптор после того, как была вызвана функция SetClipboardData.

Система выполняет неявные преобразования формата данных между некоторыми форматами буфера обмена, когда приложение вызывает функцию GetClipboardData. Например, если в буфере обмена формат CF_OEMTEXT, окно может извлечь данные в формате CF_TEXT. Формат в буфер обмена преобразуется  в затребованный формат по первому требованию. Подробную информацию см. в статье Синтезируемый формат буфера обмена.

Пример

Пример смотри в статье Копирование информации в буфер обмена.

Смотри также 

Обзор Буфер обмена, CloseClipboardGetClipboardDataOpenClipboardRegisterClipboardFormatWM_RENDERFORMATWM_RENDERALLFORMATS

Размещение и совместимость SetClipboardData

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz