- m_pngSize = count.GetSize() + 100; // sometimes the size seems to vary ???
- m_pngData = malloc(m_pngSize);
+ if ((pBuf == NULL) || (nSize == 0))
+ return false;
+
+ PicHandle picHandle = (PicHandle)NewHandle( nSize );
+ memcpy( *picHandle, pBuf, nSize );
+ m_pictHandle = picHandle;
+
+ // ownership is transferred to the bitmap
+ m_pictCreated = false;
+#ifndef __LP64__
+ Rect frame;
+ wxMacGetPictureBounds( picHandle, &frame );
+#if wxUSE_METAFILE
+ wxMetafile mf;
+ mf.SetHMETAFILE( (WXHMETAFILE)m_pictHandle );
+#endif
+ wxMemoryDC mdc;
+ m_bitmap.Create( frame.right - frame.left, frame.bottom - frame.top );
+ mdc.SelectObject( m_bitmap );
+#if wxUSE_METAFILE
+ mf.Play( &mdc );
+#endif
+ mdc.SelectObject( wxNullBitmap );
+#endif