CF_BITMAP 是一个句柄类型,代表了一个位图对象。由于位图对象的大小是可变的,因此无法直接使用 GlobalSize 来获取位图对象的大小。

如果要保存 CF_BITMAP 数据,可以使用以下步骤:

  1. 使用 GetClipboardData 函数获取 CF_BITMAP 数据的句柄。
  2. 使用 GetObject 函数获取位图对象的信息,包括位图的宽度、高度和每行的字节数等。
  3. 使用 CreateCompatibleBitmap 函数创建一个新的位图对象,并设置其宽度、高度和位深等信息。
  4. 使用 CreateCompatibleDC 函数创建一个与目标设备兼容的内存设备上下文。
  5. 使用 SelectObject 函数将新创建的位图对象选入设备上下文中。
  6. 使用 BitBlt 函数将原始位图对象中的数据复制到新创建的位图对象中。
  7. 使用 DeleteDC 函数删除设备上下文。
  8. 使用 OpenClipboard 函数打开剪贴板。
  9. 使用 EmptyClipboard 函数清空剪贴板。
  10. 使用 SetClipboardData 函数将新创建的位图对象句柄设置为 CF_BITMAP 数据类型。
  11. 使用 CloseClipboard 函数关闭剪贴板。

通过以上步骤,可以将 CF_BITMAP 数据保存到剪贴板中。

如何保存 CF_BITMAP 数据:绕过 GlobalSize 的方法

原文地址: https://www.cveoy.top/t/topic/qgYN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录