CF_BITMAP 剪贴板数据格式详解:无需 GlobalSize 函数获取内存大小
CF_BITMAP 是一个用于剪贴板的数据格式,用于存储位图图像数据。在使用 CF_BITMAP 格式时,通常使用的函数是 GetClipboardData 和 SetClipboardData。
GetClipboardData 函数用于从剪贴板中获取数据,返回的是 HGLOBAL 类型的句柄。可以使用 GlobalSize 函数来获取 HGLOBAL 句柄所分配的内存大小。
SetClipboardData 函数用于将数据设置到剪贴板中,参数中需要传递一个 HGLOBAL 类型的句柄。可以使用 GlobalAlloc 函数来分配内存,并使用 GlobalLock 函数来获取 HGLOBAL 句柄的指针。
但是,CF_BITMAP 格式的数据获取和设置并不需要使用 GlobalSize 函数。因为 CF_BITMAP 格式的数据是用于存储位图图像数据的,而不是动态分配的内存。所以在使用 CF_BITMAP 格式时,可以直接使用 GetClipboardData 函数来获取 HBITMAP 类型的句柄,而不需要使用 GlobalSize 函数来获取内存大小。
简而言之,CF_BITMAP 不能使用 GlobalSize 函数,因为 CF_BITMAP 格式的数据并不是使用 GlobalAlloc 分配的动态内存。使用 CF_BITMAP 格式时,可以直接使用 GetClipboardData 函数来获取 HBITMAP 类型的数据。
原文地址: https://www.cveoy.top/t/topic/qgYH 著作权归作者所有。请勿转载和采集!