]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ole/droptgt.cpp
fixed memory leak in Submit(cmd, false) (bug 1037115)
[wxWidgets.git] / src / msw / ole / droptgt.cpp
index 759dc6ba810658b67b5fe6c5792f882d16014b21..f24c08b0e5f19bb045e45321ab675a2d1eef32e8 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "droptgt.h"
 #endif
 
@@ -294,7 +294,7 @@ STDMETHODIMP wxIDropTarget::Drop(IDataObject *pIDataSource,
         }
         //else: *pdwEffect is already DROPEFFECT_NONE
     }
-    //else: OnDrop() returned FALSE, no need to copy data
+    //else: OnDrop() returned false, no need to copy data
 
     // release the held object
     RELEASE_AND_NULL(m_pIDataObject);
@@ -330,6 +330,13 @@ wxDropTarget::~wxDropTarget()
 
 bool wxDropTarget::Register(WXHWND hwnd)
 {
+    // FIXME
+    // RegisterDragDrop not available on Windows CE >= 400?
+    // Or maybe we can dynamically load them from ceshell.dll
+    // or similar.
+#if defined(__WXWINCE__) && _WIN32_WCE >= 400
+    return false;
+#else
     HRESULT hr;
 
     // May exist in later WinCE versions
@@ -337,7 +344,7 @@ bool wxDropTarget::Register(WXHWND hwnd)
     hr = ::CoLockObjectExternal(m_pIDropTarget, TRUE, FALSE);
     if ( FAILED(hr) ) {
         wxLogApiError(wxT("CoLockObjectExternal"), hr);
-        return FALSE;
+        return false;
     }
 #endif
 
@@ -348,17 +355,21 @@ bool wxDropTarget::Register(WXHWND hwnd)
         ::CoLockObjectExternal(m_pIDropTarget, FALSE, FALSE);
 #endif
         wxLogApiError(wxT("RegisterDragDrop"), hr);
-        return FALSE;
+        return false;
     }
 
     // we will need the window handle for coords transformation later
     m_pIDropTarget->SetHwnd((HWND)hwnd);
 
-    return TRUE;
+    return true;
+#endif
 }
 
 void wxDropTarget::Revoke(WXHWND hwnd)
 {
+#if defined(__WXWINCE__) && _WIN32_WCE >= 400
+    // Not available, see note above
+#else
     HRESULT hr = ::RevokeDragDrop((HWND) hwnd);
 
     if ( FAILED(hr) ) {
@@ -371,17 +382,18 @@ void wxDropTarget::Revoke(WXHWND hwnd)
 #endif
 
     m_pIDropTarget->SetHwnd(0);
+#endif
 }
 
 // ----------------------------------------------------------------------------
 // base class pure virtuals
 // ----------------------------------------------------------------------------
 
-// OnDrop() is called only if we previously returned TRUE from
+// OnDrop() is called only if we previously returned true from
 // IsAcceptedData(), so no need to check anything here
 bool wxDropTarget::OnDrop(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y))
 {
-    return TRUE;
+    return true;
 }
 
 // copy the data from the data source to the target data object
@@ -392,7 +404,7 @@ bool wxDropTarget::GetData()
         // this is strange because IsAcceptedData() succeeded previously!
         wxFAIL_MSG(wxT("strange - did supported formats list change?"));
 
-        return FALSE;
+        return false;
     }
 
     STGMEDIUM stm;
@@ -403,7 +415,7 @@ bool wxDropTarget::GetData()
     fmtMemory.lindex    = -1;
     fmtMemory.tymed     = TYMED_HGLOBAL;  // TODO to add other media
 
-    bool rc = FALSE;
+    bool rc = false;
 
     HRESULT hr = m_pIDataSource->GetData(&fmtMemory, &stm);
     if ( SUCCEEDED(hr) ) {
@@ -411,7 +423,7 @@ bool wxDropTarget::GetData()
 
         hr = dataObject->SetData(&fmtMemory, &stm, TRUE);
         if ( SUCCEEDED(hr) ) {
-            rc = TRUE;
+            rc = true;
         }
         else {
             wxLogApiError(wxT("IDataObject::SetData()"), hr);