1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/ole/dataobj.h
3 // Purpose: declaration of the wxDataObject class
4 // Author: Vadim Zeitlin
7 // Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
11 #ifndef _WX_MSW_OLE_DATAOBJ_H
12 #define _WX_MSW_OLE_DATAOBJ_H
14 // ----------------------------------------------------------------------------
15 // forward declarations
16 // ----------------------------------------------------------------------------
20 // ----------------------------------------------------------------------------
21 // wxDataObject is a "smart" and polymorphic piece of data.
22 // ----------------------------------------------------------------------------
24 class WXDLLIMPEXP_CORE wxDataObject
: public wxDataObjectBase
29 virtual ~wxDataObject();
31 // retrieve IDataObject interface (for other OLE related classes)
32 IDataObject
*GetInterface() const { return m_pIDataObject
; }
34 // tell the object that it should be now owned by IDataObject - i.e. when
35 // it is deleted, it should delete us as well
38 // return true if we support this format in "Get" direction
39 bool IsSupportedFormat(const wxDataFormat
& format
) const
40 { return wxDataObjectBase::IsSupported(format
, Get
); }
42 // if this method returns false, this wxDataObject will be copied to
43 // the clipboard with its size prepended to it, which is compatible with
46 // if returns true, then this wxDataObject will be copied to the clipboard
47 // without any additional information and ::HeapSize() function will be used
48 // to get the size of that data
49 virtual bool NeedsVerbatimData(const wxDataFormat
& WXUNUSED(format
)) const
51 // return false from here only for compatibility with earlier wx versions
55 // function to return symbolic name of clipboard format (for debug messages)
57 static const wxChar
*GetFormatName(wxDataFormat format
);
59 #define wxGetFormatName(format) wxDataObject::GetFormatName(format)
61 #define wxGetFormatName(format) wxT("")
62 #endif // Debug/!Debug
63 // they need to be accessed from wxIDataObject, so made them public,
64 // or wxIDataObject friend
66 virtual const void* GetSizeFromBuffer( const void* buffer
, size_t* size
,
67 const wxDataFormat
& format
);
68 virtual void* SetSizeInBuffer( void* buffer
, size_t size
,
69 const wxDataFormat
& format
);
70 virtual size_t GetBufferOffset( const wxDataFormat
& format
);
73 IDataObject
*m_pIDataObject
; // pointer to the COM interface
75 wxDECLARE_NO_COPY_CLASS(wxDataObject
);
78 #endif //_WX_MSW_OLE_DATAOBJ_H