Gdiplus :: Bitmap :: FromHICON是否正确处理“黑白图标”?

如MSDN ICONINFO中所述 ,根据结构是否定义黑白图标, hbmMaskhbmColor的格式不同。

hbmMask

types:HBITMAP

图标位掩码位图。 如果此结构定义了黑白图标,则此位掩码将被格式化,以使上半部分为图标AND位掩码,下半部分为图标XOR位掩码。 在这种情况下, 高度应该是两倍的偶数 。 如果这个结构定义了一个颜色图标,这个掩码只定义了图标的AND位掩码。

这意味着我们需要检测hbmColor的存在来正确计算图标的高度。

但是,后来我注意到Gdiplus::Bitmap::FromHICON() ,它接受HICON并将其转换为Gdiplus::Bitmap

由于我没有看到有关GDI +中“黑白”图标的任何材料,这种方法是否在内部处理这种情况?

(不幸的是,我没有一个方便的testing图标,我也不知道如何创build一个正确的testing用例。)