Функция 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. Формат в буфер обмена преобразуется в затребованный формат по первому требованию. Подробную информацию см. в статье Синтезируемый формат буфера обмена.
Пример
Пример смотри в статье Копирование информации в буфер обмена.
Смотри также
Обзор Буфер обмена, CloseClipboard, GetClipboardData, OpenClipboard, RegisterClipboardFormat, WM_RENDERFORMAT, WM_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 |
Нет |
Замечания по платформе | Не имеется |