+class WXDLLEXPORT wxMetafile: public wxGDIObject
+{
+public:
+ wxMetafile(const wxString& file = wxEmptyString);
+ wxMetafile(const wxMetafile& metafile) { Ref(metafile); }
+ virtual ~wxMetafile();
+
+ // After this is called, the metafile cannot be used for anything
+ // since it is now owned by the clipboard.
+ virtual bool SetClipboard(int width = 0, int height = 0);
+
+ virtual bool Play(wxDC *dc);
+ bool Ok() const { return (M_METAFILEDATA && (M_METAFILEDATA->m_metafile != 0)); };
+
+ // set/get the size of metafile for clipboard operations
+ wxSize GetSize() const { return wxSize(GetWidth(), GetHeight()); }
+ int GetWidth() const { return M_METAFILEDATA->m_width; }
+ int GetHeight() const { return M_METAFILEDATA->m_height; }
+
+ void SetWidth(int width) { M_METAFILEDATA->m_width = width; }
+ void SetHeight(int height) { M_METAFILEDATA->m_height = height; }
+
+ // Implementation
+ WXHANDLE GetHMETAFILE() const { return M_METAFILEDATA->m_metafile; }
+ void SetHMETAFILE(WXHANDLE mf) ;
+ int GetWindowsMappingMode() const { return M_METAFILEDATA->m_windowsMappingMode; }
+ void SetWindowsMappingMode(int mm);
+
+ // Operators
+ wxMetafile& operator=(const wxMetafile& metafile)
+ { if (*this != metafile) Ref(metafile); return *this; }
+ bool operator==(const wxMetafile& metafile) const
+ { return m_refData == metafile.m_refData; }
+ bool operator!=(const wxMetafile& metafile) const
+ { return m_refData != metafile.m_refData; }
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxMetafile)