]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ole/dataobj.cpp
new makefile
[wxWidgets.git] / src / msw / ole / dataobj.cpp
index e816a3d629cc51f368333dd2250e2c71372e68a7..309a9990596079461ff513f137341057cfd0e7cb 100644 (file)
@@ -293,7 +293,7 @@ STDMETHODIMP wxIDataObject::GetData(FORMATETC *pformatetcIn, STGMEDIUM *pmedium)
 
     // for the bitmaps and metafiles we use the handles instead of global memory
     // to pass the data
 
     // 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 )
     {
 
     switch ( format )
     {
@@ -1065,7 +1065,8 @@ bool wxFileDataObject::GetDataHere(void *pData) const
 // wxURLDataObject
 // ----------------------------------------------------------------------------
 
 // wxURLDataObject
 // ----------------------------------------------------------------------------
 
-class CFSTR_SHELLURLDataObject:public wxCustomDataObject
+
+class CFSTR_SHELLURLDataObject : public wxCustomDataObject
 {
 public:
     CFSTR_SHELLURLDataObject() : wxCustomDataObject(CFSTR_SHELLURL) {}
 {
 public:
     CFSTR_SHELLURLDataObject() : wxCustomDataObject(CFSTR_SHELLURL) {}
@@ -1089,6 +1090,7 @@ protected:
     {
         return buffer;
     }
     {
         return buffer;
     }
+
 #if wxUSE_UNICODE
     virtual bool GetDataHere( void* buffer ) const
     {
 #if wxUSE_UNICODE
     virtual bool GetDataHere( void* buffer ) const
     {
@@ -1104,6 +1106,8 @@ protected:
 #endif
 };
 
 #endif
 };
 
+
+
 wxURLDataObject::wxURLDataObject()
 {
     // we support CF_TEXT and CFSTR_SHELLURL formats which are basicly the same
 wxURLDataObject::wxURLDataObject()
 {
     // we support CF_TEXT and CFSTR_SHELLURL formats which are basicly the same
@@ -1143,8 +1147,13 @@ wxString wxURLDataObject::GetURL() const
 
 void wxURLDataObject::SetURL(const wxString& 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());
+    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);
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------