#include "wx/msw/dib.h"
+#ifdef __WXWINE__
+#define LPDROPFILES DROPFILES*
+#endif
+
#ifndef CFSTR_SHELLURL
#define CFSTR_SHELLURL _T("UniformResourceLocator")
#endif
wxIEnumFORMATETC::wxIEnumFORMATETC(const wxDataFormat *formats, ULONG nCount)
{
- m_cRef = 0;
m_nCurrent = 0;
m_nCount = nCount;
m_formats = new CLIPFORMAT[nCount];
wxIDataObject::wxIDataObject(wxDataObject *pDataObject)
{
- m_cRef = 0;
m_pDataObject = pDataObject;
m_mustDelete = FALSE;
}
// for the bitmaps and metafiles we use the handles instead of global memory
// to pass the data
- wxDataFormat format = (wxDataFormatId)pformatetcIn->cfFormat;
+ wxDataFormat format = (wxDataFormat::NativeFormat)pformatetcIn->cfFormat;
switch ( format )
{
// the only one allowed by current COM implementation
if ( pformatetc->lindex != -1 ) {
wxLogTrace(wxTRACE_OleCalls,
- wxT("wxIDataObject::QueryGetData: bad lindex %d"),
+ wxT("wxIDataObject::QueryGetData: bad lindex %ld"),
pformatetc->lindex);
return DV_E_LINDEX;
// we don't support anything other (THUMBNAIL, ICON, DOCPRINT...)
if ( pformatetc->dwAspect != DVASPECT_CONTENT ) {
wxLogTrace(wxTRACE_OleCalls,
- wxT("wxIDataObject::QueryGetData: bad dwAspect %d"),
+ wxT("wxIDataObject::QueryGetData: bad dwAspect %ld"),
pformatetc->dwAspect);
return DV_E_DVASPECT;
// wxURLDataObject
// ----------------------------------------------------------------------------
-class CFSTR_SHELLURLDataObject:public wxCustomDataObject
+class CFSTR_SHELLURLDataObject : public wxCustomDataObject
{
public:
CFSTR_SHELLURLDataObject() : wxCustomDataObject(CFSTR_SHELLURL) {}
{
return buffer;
}
+
#if wxUSE_UNICODE
virtual bool GetDataHere( void* buffer ) const
{
// CFSTR_SHELLURL is _always_ ANSI!
wxCharBuffer char_buffer( GetDataSize() );
wxCustomDataObject::GetDataHere( (void*)char_buffer.data() );
- wxString unicode_buffer( char_buffer );
+ wxString unicode_buffer( char_buffer, wxConvLibc );
memcpy( buffer, unicode_buffer.c_str(),
( unicode_buffer.length() + 1 ) * sizeof(wxChar) );
#endif
};
+
+
wxURLDataObject::wxURLDataObject()
{
// we support CF_TEXT and CFSTR_SHELLURL formats which are basicly the same
void wxURLDataObject::SetURL(const wxString& url)
{
- SetData(wxDataFormat(wxDF_TEXT), url.Length()+1, url.c_str());
- SetData(wxDataFormat(CFSTR_SHELLURL), url.Length()+1, url.c_str());
+ SetData(wxDataFormat(wxUSE_UNICODE ? wxDF_UNICODETEXT : wxDF_TEXT),
+ url.Length()+1, url.c_str());
+
+ // CFSTR_SHELLURL is always supposed to be ANSI...
+ wxWX2MBbuf urlA = (wxWX2MBbuf)url.mbc_str();
+ size_t len = strlen(urlA);
+ SetData(wxDataFormat(CFSTR_SHELLURL), len+1, (const char*)urlA);
}
// ----------------------------------------------------------------------------