+ return handler->LoadFile(this, filename, type, desiredWidth, desiredHeight);
+ else
+ return FALSE;
+}
+
+void wxIcon::SetHICON(WXHICON ico)
+{
+ if ( !M_ICONDATA )
+ m_refData = new wxIconRefData;
+
+ M_ICONDATA->m_hIcon = ico;
+}
+
+bool wxICOFileHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
+ int desiredWidth, int desiredHeight)
+{
+ return FALSE;
+}
+
+bool wxICOResourceHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
+ int desiredWidth, int desiredHeight)
+{
+// TODO
+/*
+ if ( bitmap->IsKindOf(CLASSINFO(wxIcon)) )
+ {
+ if (desiredWidth > -1 && desiredHeight > -1)
+ {
+ M_ICONHANDLERDATA->m_hIcon = (WXHICON) ::LoadImage(wxGetInstance(), name, IMAGE_ICON, desiredWidth, desiredHeight, LR_DEFAULTCOLOR);
+ }
+ else
+ {
+ M_ICONHANDLERDATA->m_hIcon = (WXHICON) ::LoadIcon(wxGetInstance(), name);
+ }
+
+ ICONINFO info ;
+ if (::GetIconInfo((HICON) M_ICONHANDLERDATA->m_hIcon, &info))
+ {
+ HBITMAP ms_bitmap = info.hbmMask ;
+ if (ms_bitmap)
+ {
+ BITMAP bm;
+ ::GetObject(ms_bitmap, sizeof(BITMAP), (LPSTR) &bm);
+ M_ICONHANDLERDATA->m_width = bm.bmWidth;
+ M_ICONHANDLERDATA->m_height = bm.bmHeight;
+ }
+ if (info.hbmMask)
+ ::DeleteObject(info.hbmMask) ;
+ if (info.hbmColor)
+ ::DeleteObject(info.hbmColor) ;
+ }
+ }
+ // Override the found values with desired values
+ if (desiredWidth > -1 && desiredHeight > -1)
+ {
+ M_ICONHANDLERDATA->m_width = desiredWidth;
+ M_ICONHANDLERDATA->m_height = desiredHeight;
+ }
+
+ M_ICONHANDLERDATA->m_ok = (M_ICONHANDLERDATA->m_hIcon != 0);
+ return M_ICONHANDLERDATA->m_ok;
+ }