]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dib.cpp
compilation fixes for non default wxUSE_XXX values (patch 662781)
[wxWidgets.git] / src / msw / dib.cpp
index 7340494bae3a8a9badcef60bb6be5de62476e367..2eac920130317a93f1074620ee6282613f11e25f 100644 (file)
@@ -159,9 +159,9 @@ WORD wxPaletteSize(VOID FAR * pv)
         NumColors = DibNumColors(lpbi);
 
         if (lpbi->biSize == sizeof(BITMAPCOREHEADER))
-                return NumColors * sizeof(RGBTRIPLE);
+                return (WORD)(NumColors * sizeof(RGBTRIPLE));
         else
-                return NumColors * sizeof(RGBQUAD);
+                return (WORD)(NumColors * sizeof(RGBQUAD));
 }
 
 /****************************************************************************
@@ -353,7 +353,7 @@ static HANDLE DibFromBitmap(HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hp
 static DWORD PASCAL lread(int fh, void far *pv, DWORD ul)
 {
         DWORD     ulT = ul;
-#if defined(WINNT) || defined(__WIN32__) || defined(__WIN32__) || defined(__WXWINE__)
+#if defined(WINNT) || defined(__WIN32__) || defined(__WIN32__)
         BYTE *hp = (BYTE *) pv;
 #else
         BYTE huge *hp = (BYTE huge *) pv;
@@ -364,7 +364,7 @@ static DWORD PASCAL lread(int fh, void far *pv, DWORD ul)
                 ul -= MAXREAD;
                 hp += MAXREAD;
                 }
-        if (_lread(fh, (LPSTR) hp, (WORD) ul) != (WORD) ul)
+        if (_lread(fh, (LPSTR) hp, (WXUINT) ul) != (WXUINT) ul)
                 return 0;
         return ulT;
 }
@@ -383,7 +383,7 @@ static DWORD PASCAL lread(int fh, void far *pv, DWORD ul)
 static DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul)
 {
         DWORD     ulT = ul;
-#if defined(WINNT) || defined(__WIN32__) || defined(__WIN32__) || defined(__WXWINE__)
+#if defined(WINNT) || defined(__WIN32__) || defined(__WIN32__)
         BYTE *hp = (BYTE *) pv;
 #else
         BYTE huge *hp = (BYTE huge *) pv;
@@ -394,7 +394,7 @@ static DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul)
                 ul -= MAXREAD;
                 hp += MAXREAD;
                 }
-        if (_lwrite(fh, (LPSTR) hp, (WORD) ul) != (WORD) ul)
+        if (_lwrite(fh, (LPSTR) hp, (WXUINT) ul) != (WXUINT) ul)
                 return 0;
         return ulT;
 }
@@ -528,7 +528,7 @@ BOOL wxReadDIB(LPTSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette)
     }
 
     /* offset to the bits from start of DIB header */
-    offBits = (WORD)lpbi->biSize + nNumColors * sizeof(RGBQUAD);
+    offBits = (WORD)(lpbi->biSize + nNumColors * sizeof(RGBQUAD));
 
     if (bf.bfOffBits != 0L)
     {
@@ -619,6 +619,9 @@ static BOOL PASCAL MakeBitmapAndPalette(HDC hDC, HANDLE hDIB,
             result = TRUE;
         }
     }
+
+       GlobalUnlock (hDIB);  // glt
+
     return(result);
 }
 
@@ -636,9 +639,6 @@ static BOOL PASCAL MakeBitmapAndPalette(HDC hDC, HANDLE hDIB,
  ****************************************************************************/
 HPALETTE wxMakeDIBPalette(LPBITMAPINFOHEADER lpInfo)
 {
-#ifdef __WXWINE__
-        return (FALSE);
-#else
     LPLOGPALETTE npPal;
     RGBQUAD far *lpRGB;
     HPALETTE hLogPal;
@@ -656,7 +656,7 @@ HPALETTE wxMakeDIBPalette(LPBITMAPINFOHEADER lpInfo)
         npPal = (LPLOGPALETTE)malloc(sizeof(LOGPALETTE) +
                                 (WORD)lpInfo->biClrUsed * sizeof(PALETTEENTRY));
         if (!npPal)
-            return(FALSE);
+            return NULL;
 
         npPal->palVersion = 0x300;
         npPal->palNumEntries = (WORD)lpInfo->biClrUsed;
@@ -665,7 +665,7 @@ HPALETTE wxMakeDIBPalette(LPBITMAPINFOHEADER lpInfo)
         lpRGB = (RGBQUAD FAR *)((LPSTR)lpInfo + lpInfo->biSize);
 
         /* copy colors from the color table to the LogPalette structure */
-        for (i = 0; i < lpInfo->biClrUsed; i++, lpRGB++)
+        for (i = 0; (DWORD)i < lpInfo->biClrUsed; i++, lpRGB++)
         {
             npPal->palPalEntry[i].peRed = lpRGB->rgbRed;
             npPal->palPalEntry[i].peGreen = lpRGB->rgbGreen;
@@ -686,31 +686,32 @@ HPALETTE wxMakeDIBPalette(LPBITMAPINFOHEADER lpInfo)
     */
     else
         return((HPALETTE) GetStockObject(DEFAULT_PALETTE));
-#endif
-
 }
 
 bool wxLoadIntoBitmap(wxChar *filename, wxBitmap *bitmap, wxPalette **pal)
 {
-  HBITMAP hBitmap;
-  HPALETTE hPalette;
+  HBITMAP hBitmap = NULL;
+  HPALETTE hPalette = NULL;
 
   bool success = (wxReadDIB(filename, &hBitmap, &hPalette) != 0);
 
   if (!success)
   {
-    DeleteObject(hPalette);
+    if (hPalette)
+        DeleteObject(hPalette);
     return FALSE;
   }
 
   if (hPalette)
   {
+#if wxUSE_PALETTE
     if (pal)
     {
       *pal = new wxPalette;
       (*pal)->SetHPALETTE((WXHPALETTE) hPalette);
     }
     else
+#endif // wxUSE_PALETTE
       DeleteObject(hPalette);
   }
   else if (pal)
@@ -925,8 +926,10 @@ HANDLE wxBitmapToDIB (HBITMAP hBitmap, HPALETTE hPal)
 bool wxSaveBitmap(wxChar *filename, wxBitmap *bitmap, wxPalette *colourmap)
 {
   HPALETTE hPalette = 0;
+#if wxUSE_PALETTE
   if (colourmap)
     hPalette = (HPALETTE) colourmap->GetHPALETTE();
+#endif // wxUSE_PALETTE
 
   HANDLE dibHandle = wxBitmapToDIB((HBITMAP) bitmap->GetHBITMAP(), hPalette);
   if (dibHandle)
@@ -938,4 +941,3 @@ bool wxSaveBitmap(wxChar *filename, wxBitmap *bitmap, wxPalette *colourmap)
   else return FALSE;
 }
 
-