]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dib.cpp
Another RTL fix.
[wxWidgets.git] / src / msw / dib.cpp
index 5d2ef8e62125bce4a02d0603c2f3127d3ac8e904..ee17d5d2b1a48b4a8d8bf469d151b8834c1fb192 100644 (file)
     #pragma hdrstop
 #endif
 
     #pragma hdrstop
 #endif
 
+#if wxUSE_WXDIB
+
 #ifndef WX_PRECOMP
     #include "wx/string.h"
     #include "wx/log.h"
 #ifndef WX_PRECOMP
     #include "wx/string.h"
     #include "wx/log.h"
+    #include "wx/intl.h"
+    #include "wx/bitmap.h"
+    #include "wx/image.h"
 #endif //WX_PRECOMP
 
 #endif //WX_PRECOMP
 
-#if wxUSE_WXDIB
-
-#include "wx/bitmap.h"
-#include "wx/intl.h"
 #include "wx/file.h"
 
 #include <stdio.h>
 #include "wx/file.h"
 
 #include <stdio.h>
@@ -48,7 +49,6 @@
     #include <memory.h>
 #endif
 
     #include <memory.h>
 #endif
 
-#include "wx/image.h"
 #include "wx/msw/dib.h"
 
 #ifdef __WXWINCE__
 #include "wx/msw/dib.h"
 
 #ifdef __WXWINCE__
@@ -566,7 +566,7 @@ HGLOBAL wxDIB::ConvertFromBitmap(HBITMAP hbmp)
         return NULL;
     }
 
         return NULL;
     }
 
-    if ( !ConvertFromBitmap((BITMAPINFO *)(void *)GlobalPtr(hDIB), hbmp) )
+    if ( !ConvertFromBitmap((BITMAPINFO *)(void *)GlobalPtrLock(hDIB), hbmp) )
     {
         // this really shouldn't happen... it worked the first time, why not
         // now?
     {
         // this really shouldn't happen... it worked the first time, why not
         // now?
@@ -588,6 +588,10 @@ HGLOBAL wxDIB::ConvertFromBitmap(HBITMAP hbmp)
 
 wxPalette *wxDIB::CreatePalette() const
 {
 
 wxPalette *wxDIB::CreatePalette() const
 {
+    // GetDIBColorTable not available in eVC3
+#if defined(_WIN32_WCE) && _WIN32_WCE < 400
+    return NULL;
+#else
     wxCHECK_MSG( m_handle, NULL, _T("wxDIB::CreatePalette(): invalid object") );
 
     DIBSECTION ds;
     wxCHECK_MSG( m_handle, NULL, _T("wxDIB::CreatePalette(): invalid object") );
 
     DIBSECTION ds;
@@ -630,7 +634,7 @@ wxPalette *wxDIB::CreatePalette() const
     // and the colour table
     wxCharBuffer rgb(sizeof(RGBQUAD) * biClrUsed);
     RGBQUAD *pRGB = (RGBQUAD*)rgb.data();
     // and the colour table
     wxCharBuffer rgb(sizeof(RGBQUAD) * biClrUsed);
     RGBQUAD *pRGB = (RGBQUAD*)rgb.data();
-    SelectInHDC(hDC, m_handle);
+    SelectInHDC selectHandle(hDC, m_handle);
     ::GetDIBColorTable(hDC, 0, biClrUsed, pRGB);
     for ( DWORD i = 0; i < biClrUsed; i++, pRGB++ )
     {
     ::GetDIBColorTable(hDC, 0, biClrUsed, pRGB);
     for ( DWORD i = 0; i < biClrUsed; i++, pRGB++ )
     {
@@ -655,6 +659,7 @@ wxPalette *wxDIB::CreatePalette() const
     palette->SetHPALETTE((WXHPALETTE)hPalette);
 
     return palette;
     palette->SetHPALETTE((WXHPALETTE)hPalette);
 
     return palette;
+#endif
 }
 
 #endif // wxUSE_PALETTE
 }
 
 #endif // wxUSE_PALETTE
@@ -795,4 +800,3 @@ wxImage wxDIB::ConvertToImage() const
 #endif // wxUSE_IMAGE
 
 #endif // wxUSE_WXDIB
 #endif // wxUSE_IMAGE
 
 #endif // wxUSE_WXDIB
-