]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ole/dataobj.cpp
optimized default GUI font loading
[wxWidgets.git] / src / msw / ole / dataobj.cpp
index b8993a12c4f19b367c2a39d6c65d46c20aea76cf..29c0d6f8e52a58371b1260f1042b963cc75bed7f 100644 (file)
@@ -468,7 +468,8 @@ STDMETHODIMP wxIDataObject::SetData(FORMATETC *pformatetc,
                         break;
 #if !defined(__WATCOMC__) && ! (defined(__BORLANDC__) && (__BORLANDC__ < 0x500))
                     case CF_UNICODETEXT:
-#if (defined(__BORLANDC__) && (__BORLANDC__ > 0x530))
+#if ( defined(__BORLANDC__) && (__BORLANDC__ > 0x530) ) \
+    || ( defined(__MWERKS__) && defined(__WXMSW__) )
                         size = std::wcslen((const wchar_t *)pBuf) * sizeof(wchar_t);
 #else
                         size = ::wcslen((const wchar_t *)pBuf) * sizeof(wchar_t);
@@ -1108,8 +1109,8 @@ wxURLDataObject::wxURLDataObject()
     // we support CF_TEXT and CFSTR_SHELLURL formats which are basicly the same
     // but it seems that some browsers only provide one of them so we have to
     // support both
-    Add(new CFSTR_SHELLURLDataObject());
     Add(new wxTextDataObject);
+    Add(new CFSTR_SHELLURLDataObject());
 
     // we don't have any data yet
     m_dataObjectLast = NULL;
@@ -1134,12 +1135,18 @@ wxString wxURLDataObject::GetURL() const
 
     size_t len = m_dataObjectLast->GetDataSize();
 
-    m_dataObjectLast->GetDataHere(url.GetWriteBuf(len + 1));
+    m_dataObjectLast->GetDataHere(url.GetWriteBuf(len));
     url.UngetWriteBuf();
 
     return url;
 }
 
+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());
+}
+
 // ----------------------------------------------------------------------------
 // private functions
 // ----------------------------------------------------------------------------