SetClipboardData 函数 (winuser.h)
将数据以指定的剪贴板格式放置在剪贴板上。 窗口必须是当前剪贴板所有者,并且应用程序必须已调用 OpenClipboard 函数。 (响应WM_RENDERFORMAT消息时,剪贴板所有者不得在调用 SetClipboardData.)
语法
HANDLE SetClipboardData(
[in] UINT uFormat,
[in, optional] HANDLE hMem
);
参数
[in] uFormat
类型: UINT
剪贴板格式。 此参数可以是注册格式或任何标准剪贴板格式。 有关详细信息,请参阅 标准剪贴板格式 和 已注册的剪贴板格式。
[in, optional] hMem
类型: HANDLE
指定格式的数据的句柄。 此参数可以为 NULL,表示窗口以指定的剪贴板格式提供数据, (请求时呈现格式) ;这称为 延迟呈现。 如果窗口延迟呈现,则必须处理 WM_RENDERFORMAT 并 WM_RENDERALLFORMATS 消息。
如果 SetClipboardData 成功,则系统拥有 由 hMem 参数标识的对象。 将所有权转让给系统后,应用程序可能不会写入或释放数据,但在调用 CloseClipboard 函数之前,应用程序可以锁定数据并从中读取数据。 (必须在关闭剪贴板之前解锁内存。) 如果 hMem 参数标识内存对象,则必须使用带有 GMEM_MOVEABLE 标志的 函数分配对象。
返回值
类型: HANDLE
如果函数成功,则返回值是数据的句柄。
如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。
注解
Windows 8: 要与 Windows 应用商店应用共享的位图必须采用与设备相关的 位 图) (CF_BITMAP格式。
如果应用程序调用 SetClipboardData 以响应 WM_RENDERFORMAT 或 WM_RENDERALLFORMATS,则调用 SetClipboardData 后,应用程序不应使用句柄。
如果应用程序调用 OpenClipboard 且 hwnd 设置为 NULL, 则 EmptyClipboard 会将剪贴板所有者设置为 NULL;这会导致 SetClipboardData 失败。
当应用程序调用 GetClipboardData 函数时,系统会在某些剪贴板格式之间执行隐式数据格式转换。 例如,如果 CF_OEMTEXT 格式位于剪贴板上,则窗口可以检索 CF_TEXT 格式的数据。 剪贴板上的格式将按需转换为请求的格式。 有关详细信息,请参阅 合成剪贴板格式。
示例
有关示例,请参阅 将信息复制到剪贴板。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API 集 | 在 Windows 8.1) 中引入的 ext-ms-win-ntuser-misc-l1-2-0 ( |
另请参阅
概念性
引用