我正在寻找win32 API,它可以让我备份剪贴板数据(在内存/文件系统中),之后我可以使用SetClipboardData重置它。
我已经看过win32 API集,并了解OpenClipboard,getClipboardData和SetClipboardData将为我完成任务。但我不明白在GetClipboardData函数中传递什么格式参数,因为我不知道格式,也不知道任何API获取剪贴板数据的格式。
我想支持最大可能的格式,我知道延迟渲染和某些私有数据类型可能无法保存。什么是最好的出路,请建议......
我可以备份和恢复文本内容。如何为Bitmap格式做同样的事情。如何基本上从其句柄(使用GetClipboardData获取)中将BITMAP保存在内存中
答案 0 :(得分:1)
通过调用EnumClipboardFormats()
在剪贴板上查找格式。调用GetClipboardData()
以获取包含特定格式的剪贴板数据的HGLOBAL
。您可以通过调用GlobalSize()
来获取内存的大小。要阅读HGLOBAL
使用GlobalLock()
和GlobalFree()
包含的内存。