// wxDataObject is a "smart" and polymorphic piece of data.
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxDataObject : public wxDataObjectBase
+class WXDLLIMPEXP_CORE wxDataObject : public wxDataObjectBase
{
public:
// ctor & dtor
// it is deleted, it should delete us as well
void SetAutoDelete();
- // return TRUE if we support this format in "Get" direction
+ // return true if we support this format in "Get" direction
bool IsSupportedFormat(const wxDataFormat& format) const
{ return wxDataObjectBase::IsSupported(format, Get); }
+ // if this method returns false, this wxDataObject will be copied to
+ // the clipboard with its size prepended to it, which is compatible with
+ // older wx versions
+ //
+ // if returns true, then this wxDataObject will be copied to the clipboard
+ // without any additional information and ::HeapSize() function will be used
+ // to get the size of that data
+ virtual bool NeedsVerbatimData(const wxDataFormat& WXUNUSED(format)) const
+ {
+ // return false from here only for compatibility with earlier wx versions
+ return true;
+ }
+
// function to return symbolic name of clipboard format (for debug messages)
#ifdef __WXDEBUG__
static const wxChar *GetFormatName(wxDataFormat format);
#else // !Debug
#define wxGetFormatName(format) _T("")
#endif // Debug/!Debug
+ // they need to be accessed from wxIDataObject, so made them public,
+ // or wxIDataObject friend
+public:
+ virtual const void* GetSizeFromBuffer( const void* buffer, size_t* size,
+ const wxDataFormat& format );
+ virtual void* SetSizeInBuffer( void* buffer, size_t size,
+ const wxDataFormat& format );
+ virtual size_t GetBufferOffset( const wxDataFormat& format );
private:
IDataObject *m_pIDataObject; // pointer to the COM interface
+
+ DECLARE_NO_COPY_CLASS(wxDataObject)
};
#endif //_WX_MSW_OLE_DATAOBJ_H