使用win32 api备份和恢复剪贴板数据

时间:2011-09-26 13:39:18

标签: winapi clipboard clipboarddata

我正在寻找win32 API,它可以让我备份剪贴板数据(在内存/文件系统中),之后我可以使用SetClipboardData重置它。

我已经看过win32 API集,并了解OpenClipboard,getClipboardData和SetClipboardData将为我完成任务。但我不明白在GetClipboardData函数中传递什么格式参数,因为我不知道格式,也不知道任何API获取剪贴板数据的格式。

我想支持最大可能的格式,我知道延迟渲染和某些私有数据类型可能无法保存。什么是最好的出路,请建议......


我可以备份和恢复文本内容。如何为Bitmap格式做同样的事情。如何基本上从其句柄(使用GetClipboardData获取)中将BITMAP保存在内存中

1 个答案:

答案 0 :(得分:1)

通过调用EnumClipboardFormats()在剪贴板上查找格式。调用GetClipboardData()以获取包含特定格式的剪贴板数据的HGLOBAL。您可以通过调用GlobalSize()来获取内存的大小。要阅读HGLOBAL使用GlobalLock()GlobalFree()包含的内存。