0

我正在用 C++ 构建一个要导入 VB 项目的 dll。dll 公开了一个函数,该函数将通过 Win Shell 提取指定文档的预览图像,然后将其写入缓冲区以供 VB 应用程序使用。

到目前为止,我能够毫无问题地获得 HBITMAP 句柄。我还能够使用 GetBitmapBits 函数提取位图数据。但是,这不起作用,因为需要位数据的对象需要它是与设备无关的格式。

我读过 GetDiBits 是用于此目的的函数,但我很难弄清楚如何成功调用该函数。

我应该使用什么设备上下文?另外,如何确保它以独立于设备的格式写出数据?

提前致谢。

4

1 回答 1

0

如果您的 HBITMAP 引用设备相关位图,并且您需要设备独立位,则必须转换它们。尝试创建一个 CImage 并调用 BitBlt 方法将设备独立位放入其中。

于 2011-11-17T07:27:44.493 回答