]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ole/dataobj.cpp
Applied patch [ 1340814 ] fix for wxTextCtrl::GetStyle
[wxWidgets.git] / src / msw / ole / dataobj.cpp
index 085fd66a8aea07fcd2f6fb8c81efe3e026ccaac6..b6da92aa47a655da5d1060c6f72a3d64779f6678 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "dataobj.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -106,9 +102,9 @@ public:
     virtual ~wxIDataObject();
 
     // normally, wxDataObject controls our lifetime (i.e. we're deleted when it
-    // is), but in some cases, the situation is inversed, that is we delete it
+    // is), but in some cases, the situation is reversed, that is we delete it
     // when this object is deleted - setting this flag enables such logic
-    void SetDeleteFlag() { m_mustDelete = TRUE; }
+    void SetDeleteFlag() { m_mustDelete = true; }
 
     DECLARE_IUNKNOWN_METHODS;
 
@@ -267,7 +263,7 @@ IMPLEMENT_IUNKNOWN_METHODS(wxIDataObject)
 wxIDataObject::wxIDataObject(wxDataObject *pDataObject)
 {
     m_pDataObject = pDataObject;
-    m_mustDelete = FALSE;
+    m_mustDelete = false;
 }
 
 wxIDataObject::~wxIDataObject()
@@ -465,7 +461,7 @@ STDMETHODIMP wxIDataObject::SetData(FORMATETC *pformatetc,
                     case CF_OEMTEXT:
                         size = strlen((const char *)pBuf);
                         break;
-#if !defined(__WATCOMC__) && ! (defined(__BORLANDC__) && (__BORLANDC__ < 0x500))
+#if !(defined(__BORLANDC__) && (__BORLANDC__ < 0x500))
                     case CF_UNICODETEXT:
 #if ( defined(__BORLANDC__) && (__BORLANDC__ > 0x530) ) \
     || ( defined(__MWERKS__) && defined(__WXMSW__) )
@@ -500,7 +496,7 @@ STDMETHODIMP wxIDataObject::SetData(FORMATETC *pformatetc,
                             // we suppose that the size precedes the data
                             pBuf = m_pDataObject->GetSizeFromBuffer( pBuf, &size, format );
                             if (! format.IsStandard() ) {
-                                // see GetData for coresponding increment
+                                // see GetData for corresponding increment
                                 size -= m_pDataObject->GetBufferOffset( format  );
                             }
                         }
@@ -624,7 +620,7 @@ STDMETHODIMP wxIDataObject::EnumFormatEtc(DWORD dwDir,
     wxDataObject::Direction dir = dwDir == DATADIR_GET ? wxDataObject::Get
                                                        : wxDataObject::Set;
 
-    size_t nFormatCount = m_pDataObject->GetFormatCount(dir);
+    ULONG nFormatCount = wx_truncate_cast(ULONG, m_pDataObject->GetFormatCount(dir));
     wxDataFormat format;
     wxDataFormat *formats;
     formats = nFormatCount == 1 ? &format : new wxDataFormat[nFormatCount];
@@ -723,7 +719,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 +729,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 +757,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,18 +770,19 @@ 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;
 #else
-    return FALSE;
+    wxUnusedVar(buf);
+    return false;
 #endif
 }
 
 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);
@@ -796,9 +797,10 @@ bool wxBitmapDataObject::SetData(size_t WXUNUSED(len), const void *buf)
 
     SetBitmap(bitmap);
 
-    return TRUE;
+    return true;
 #else
-    return FALSE;
+    wxUnusedVar(buf);
+    return false;
 #endif
 }
 
@@ -821,7 +823,7 @@ bool wxBitmapDataObject2::GetDataHere(void *pBuf) const
     // we put a bitmap handle into pBuf
     *(WXHBITMAP *)pBuf = GetBitmap().GetHBITMAP();
 
-    return TRUE;
+    return true;
 }
 
 bool wxBitmapDataObject2::SetData(size_t WXUNUSED(len), const void *pBuf)
@@ -840,12 +842,12 @@ bool wxBitmapDataObject2::SetData(size_t WXUNUSED(len), const void *pBuf)
     if ( !bitmap.Ok() ) {
         wxFAIL_MSG(wxT("pasting/dropping invalid bitmap"));
 
-        return FALSE;
+        return false;
     }
 
     SetBitmap(bitmap);
 
-    return TRUE;
+    return true;
 }
 
 #if 0
@@ -910,7 +912,7 @@ bool wxBitmapDataObject::GetDataHere(const wxDataFormat& format,
         {
             wxLogLastError(wxT("GetDIBits"));
 
-            return FALSE;
+            return false;
         }
     }
     else // CF_BITMAP
@@ -919,7 +921,7 @@ bool wxBitmapDataObject::GetDataHere(const wxDataFormat& format,
         *(HBITMAP *)pBuf = hbmp;
     }
 
-    return TRUE;
+    return true;
 }
 
 bool wxBitmapDataObject::SetData(const wxDataFormat& format,
@@ -964,7 +966,7 @@ bool wxBitmapDataObject::SetData(const wxDataFormat& format,
 
     wxASSERT_MSG( m_bitmap.Ok(), wxT("pasting invalid bitmap") );
 
-    return TRUE;
+    return true;
 }
 
 #endif // 0
@@ -973,7 +975,8 @@ bool wxBitmapDataObject::SetData(const wxDataFormat& format,
 // wxFileDataObject
 // ----------------------------------------------------------------------------
 
-bool wxFileDataObject::SetData(size_t WXUNUSED(size), const void *pData)
+bool wxFileDataObject::SetData(size_t WXUNUSED(size),
+                               const void *WXUNUSED_IN_WINCE(pData))
 {
 #ifndef __WXWINCE__
     m_filenames.Empty();
@@ -1007,9 +1010,9 @@ bool wxFileDataObject::SetData(size_t WXUNUSED(size), const void *pData)
         }
     }
 
-    return TRUE;
+    return true;
 #else
-    return FALSE;
+    return false;
 #endif
 }
 
@@ -1033,13 +1036,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;
@@ -1048,7 +1051,7 @@ size_t wxFileDataObject::GetDataSize() const
 #endif
 }
 
-bool wxFileDataObject::GetDataHere(void *pData) const
+bool wxFileDataObject::GetDataHere(void *WXUNUSED_IN_WINCE(pData)) const
 {
 #ifndef __WXWINCE__
     // pData points to an externally allocated memory block
@@ -1056,7 +1059,7 @@ bool wxFileDataObject::GetDataHere(void *pData) const
 
     // if pData is NULL, or there are no files, return
     if ( !pData || m_filenames.GetCount() == 0 )
-        return FALSE;
+        return false;
 
     // convert data pointer to a DROPFILES struct pointer
     LPDROPFILES pDrop = (LPDROPFILES) pData;
@@ -1078,7 +1081,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');
     }
@@ -1086,9 +1089,9 @@ bool wxFileDataObject::GetDataHere(void *pData) const
     // add final null terminator
     *pbuf = wxT('\0');
 
-    return TRUE;
+    return true;
 #else
-    return FALSE;
+    return false;
 #endif
 }
 
@@ -1131,8 +1134,11 @@ protected:
         memcpy( buffer, unicode_buffer.c_str(),
                 ( unicode_buffer.length() + 1 ) * sizeof(wxChar) );
 
-        return TRUE;
+        return true;
     }
+    virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format),
+                             void *buf) const
+        { return GetDataHere(buf); }
 #endif
 
     DECLARE_NO_COPY_CLASS(CFSTR_SHELLURLDataObject)
@@ -1213,10 +1219,13 @@ static const wxChar *GetTymedName(DWORD tymed)
 #endif // Debug
 
 #else // not using OLE at all
+
 // ----------------------------------------------------------------------------
 // wxDataObject
 // ----------------------------------------------------------------------------
 
+#if wxUSE_DATAOBJ
+
 wxDataObject::wxDataObject()
 {
 }
@@ -1230,11 +1239,14 @@ void wxDataObject::SetAutoDelete()
 }
 
 #ifdef __WXDEBUG__
-const wxChar *wxDataObject::GetFormatName(wxDataFormat format)
+const wxChar *wxDataObject::GetFormatName(wxDataFormat WXUNUSED(format))
 {
     return NULL;
 }
-#endif
+#endif // __WXDEBUG__
+
+#endif // wxUSE_DATAOBJ
+
+#endif // wxUSE_OLE/!wxUSE_OLE
 
-#endif