]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ole/dataobj.cpp
fixed bug #976725: "RETURN closes dialog instead of combobox dropdown" (applied fix...
[wxWidgets.git] / src / msw / ole / dataobj.cpp
index 68d5aa77fa65dc51f18759c9ca712d04bc27155a..48377785a47076133793e3b75a4004e440dabb16 100644 (file)
@@ -723,7 +723,6 @@ const wxChar *wxDataObject::GetFormatName(wxDataFormat format)
     switch ( format ) {
         case CF_TEXT:         return wxT("CF_TEXT");
         case CF_BITMAP:       return wxT("CF_BITMAP");
-        case CF_METAFILEPICT: return wxT("CF_METAFILEPICT");
         case CF_SYLK:         return wxT("CF_SYLK");
         case CF_DIF:          return wxT("CF_DIF");
         case CF_TIFF:         return wxT("CF_TIFF");
@@ -734,9 +733,12 @@ const wxChar *wxDataObject::GetFormatName(wxDataFormat format)
         case CF_RIFF:         return wxT("CF_RIFF");
         case CF_WAVE:         return wxT("CF_WAVE");
         case CF_UNICODETEXT:  return wxT("CF_UNICODETEXT");
+#ifndef __WXWINCE__
+        case CF_METAFILEPICT: return wxT("CF_METAFILEPICT");
         case CF_ENHMETAFILE:  return wxT("CF_ENHMETAFILE");
-        case CF_HDROP:        return wxT("CF_HDROP");
         case CF_LOCALE:       return wxT("CF_LOCALE");
+        case CF_HDROP:        return wxT("CF_HDROP");
+#endif
 
         default:
             if ( !::GetClipboardFormatName(format, s_szBuf, WXSIZEOF(s_szBuf)) )
@@ -759,9 +761,11 @@ const wxChar *wxDataObject::GetFormatName(wxDataFormat format)
 // wxBitmapDataObject supports CF_DIB format
 // ----------------------------------------------------------------------------
 
+// TODO: support CF_DIB under Windows CE as well
+
 size_t wxBitmapDataObject::GetDataSize() const
 {
-#if wxUSE_WXDIB
+#if wxUSE_WXDIB && !defined(__WXWINCE__)
     return wxDIB::ConvertFromBitmap(NULL, GetHbitmapOf(GetBitmap()));
 #else
     return 0;
@@ -770,7 +774,7 @@ size_t wxBitmapDataObject::GetDataSize() const
 
 bool wxBitmapDataObject::GetDataHere(void *buf) const
 {
-#if wxUSE_WXDIB
+#if wxUSE_WXDIB && !defined(__WXWINCE__)
     BITMAPINFO * const pbi = (BITMAPINFO *)buf;
 
     return wxDIB::ConvertFromBitmap(pbi, GetHbitmapOf(GetBitmap())) != 0;
@@ -781,7 +785,7 @@ bool wxBitmapDataObject::GetDataHere(void *buf) const
 
 bool wxBitmapDataObject::SetData(size_t WXUNUSED(len), const void *buf)
 {
-#if wxUSE_WXDIB
+#if wxUSE_WXDIB && !defined(__WXWINCE__)
     const BITMAPINFO * const pbmi = (const BITMAPINFO *)buf;
 
     HBITMAP hbmp = wxDIB::ConvertToBitmap(pbmi);
@@ -1033,13 +1037,13 @@ size_t wxFileDataObject::GetDataSize() const
         return 0;
 
     // inital size of DROPFILES struct + null byte
-    size_t sz = sizeof(DROPFILES) + 1;
+    size_t sz = sizeof(DROPFILES) + (1 * sizeof(wxChar));
 
     size_t count = m_filenames.GetCount();
     for ( size_t i = 0; i < count; i++ )
     {
         // add filename length plus null byte
-        sz += m_filenames[i].Len() + 1;
+        sz += (m_filenames[i].Len() + 1) * sizeof(wxChar);
     }
 
     return sz;
@@ -1078,7 +1082,7 @@ bool wxFileDataObject::GetDataHere(void *pData) const
     {
         // copy filename to pbuf and add null terminator
         size_t len = m_filenames[i].Len();
-        memcpy(pbuf, m_filenames[i], len);
+        memcpy(pbuf, m_filenames[i], len*sizeof(wxChar));
         pbuf += len;
         *pbuf++ = wxT('\0');
     }