IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject)
 IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject)
 
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject)
 
 // ============================================================================
 // implementation
 
 wxGDIRefData* wxBitmap::CloneGDIRefData(const wxGDIRefData* data) const
 {
-    return new wxBitmapRefData(*wx_static_cast(const wxBitmapRefData *, data));
+    return new wxBitmapRefData(*static_cast<const wxBitmapRefData *>(data));
 }
 
 // this function should be called from all wxBitmap ctors
     SetHBITMAP((WXHBITMAP)hBmp);
 } // end of wxBitmap::wxBitmap
 
-wxBitmap::wxBitmap(
-  int                               nW
-, int                               nH
-, int                               nD
-)
-{
-    Init();
-    (void)Create( nW
-                 ,nH
-                 ,nD
-                );
-} // end of wxBitmap::wxBitmap
-
 wxBitmap::wxBitmap(
   const void*                       pData
-, long                              lType
+, wxBitmapType                      lType
 , int                               nWidth
 , int                               nHeight
 , int                               nDepth
 
 wxBitmap::wxBitmap(
   int                               nId
-, long                              lType
+, wxBitmapType                      lType
 )
 {
     Init();
     LoadFile( nId
-             ,(int)lType
+             ,lType
             );
     SetId(nId);
 } // end of wxBitmap::wxBitmap
     return Ok();
 } // end of wxBitmap::Create
 
-bool wxBitmap::LoadFile(const wxString& filename, long type)
+bool wxBitmap::LoadFile(const wxString& filename, wxBitmapType type)
 {
     UnRef();
 
 
 bool wxBitmap::LoadFile(
   int                               nId
-, long                              lType
+, wxBitmapType                      lType
 )
 {
     UnRef();
 
 bool wxBitmap::Create(
   const void*                       pData
-, long                              lType
+, wxBitmapType                      lType
 , int                               nWidth
 , int                               nHeight
 , int                               nDepth
 
 bool wxBitmap::SaveFile(
   const wxString&                   rFilename
-, int                               lType
+, wxBitmapType                      lType
 , const wxPalette*                  pPalette
 )
 {
     // May already be selected into a PS
     //
     pDC = GetSelectedInto();
-    const wxPMDCImpl *impl; 
+    const wxPMDCImpl *impl;
     if (pDC != NULL &&
         (impl = wxDynamicCast( pDC->GetImpl(), wxPMDCImpl )) != NULL)
     {
 
 bool wxBitmapHandler::Create( wxGDIImage* pImage,
                               const void* pData,
-                              wxBitmapType WXUNUSED(lFlags),
+                              wxBitmapType lType,
                               int         nWidth,
                               int         nHeight,
                               int         nDepth)
 
     return(pBitmap ? Create( pBitmap
                             ,pData
+                            ,lType
                             ,nWidth
                             ,nHeight
                             ,nDepth
 }
 
 bool wxBitmapHandler::Save(
-  wxGDIImage*                       pImage
+  const wxGDIImage*                 pImage
 , const wxString&                   rName
-, int                               lType
+, wxBitmapType                      lType
 ) const
 {
     wxBitmap*                       pBitmap = wxDynamicCast( pImage
 {
     HBITMAP                         hBmpInvMask = 0;
 
-    wxCHECK_MSG( hBmpMask, 0, _T("invalid bitmap in wxInvertMask") );
+    wxCHECK_MSG( hBmpMask, 0, wxT("invalid bitmap in wxInvertMask") );
 
     //
     // Get width/height from the bitmap if not given
 
 HBITMAP wxCopyBmp( HBITMAP hBmp, bool flip, int nWidth, int nHeight )
 {
-    wxCHECK_MSG( hBmp, 0, _T("invalid bitmap in wxCopyBmp") );
+    wxCHECK_MSG( hBmp, 0, wxT("invalid bitmap in wxCopyBmp") );
 
     //
     // Get width/height from the bitmap if not given