]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ole/dataobj.cpp
Pruned some of txrc.tex; removed redundant helpxlp files.
[wxWidgets.git] / src / msw / ole / dataobj.cpp
index 29c0d6f8e52a58371b1260f1042b963cc75bed7f..65151fbf5e73e43dd6906bb44c53f14f98335f2b 100644 (file)
@@ -1260,8 +1260,15 @@ wxBitmap wxConvertDIBToBitmap(const LPBITMAPINFO pbmi)
     // BITMAPINFO starts with BITMAPINFOHEADER followed by colour info
     const BITMAPINFOHEADER *pbmih = &pbmi->bmiHeader;
 
+    // biClrUsed has the number of colors, unless it's 0
+    int numColors = pbmih->biClrUsed;
+    if (numColors==0)
+    {
+        numColors = wxGetNumOfBitmapColors(pbmih->biBitCount);
+    }
+
     // offset of image from the beginning of the header
-    DWORD ofs = wxGetNumOfBitmapColors(pbmih->biBitCount) * sizeof(RGBQUAD);
+    DWORD ofs = numColors * sizeof(RGBQUAD);
     void *image = (char *)pbmih + sizeof(BITMAPINFOHEADER) + ofs;
 
     ScreenHDC hdc;