From 81a1c6869efef04a40b688dc79002d206e09c640 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Wed, 21 Jan 2009 17:44:55 +0000 Subject: [PATCH 1/1] Call SetDataSource() from OnEnter() so that querying/accessing the data is possible from then on, rename to MSWxxx git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/ole/droptgt.h | 6 +++--- src/msw/ole/droptgt.cpp | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/include/wx/msw/ole/droptgt.h b/include/wx/msw/ole/droptgt.h index 909a90dc41..6fc30359c8 100644 --- a/include/wx/msw/ole/droptgt.h +++ b/include/wx/msw/ole/droptgt.h @@ -54,15 +54,15 @@ public: // ------------------------------- // do we accept this kind of data? - bool IsAcceptedData(IDataObject *pIDataSource) const; + bool MSWIsAcceptedData(IDataObject *pIDataSource) const; // give us the data source from IDropTarget::Drop() - this is later used by // GetData() when it's called from inside OnData() - void SetDataSource(IDataObject *pIDataSource); + void MSWSetDataSource(IDataObject *pIDataSource); private: // helper used by IsAcceptedData() and GetData() - wxDataFormat GetSupportedFormat(IDataObject *pIDataSource) const; + wxDataFormat MSWGetSupportedFormat(IDataObject *pIDataSource) const; wxIDropTarget *m_pIDropTarget; // the pointer to our COM interface IDataObject *m_pIDataSource; // the pointer to the source data object diff --git a/src/msw/ole/droptgt.cpp b/src/msw/ole/droptgt.cpp index ba1fccc45f..385dd52660 100644 --- a/src/msw/ole/droptgt.cpp +++ b/src/msw/ole/droptgt.cpp @@ -192,13 +192,16 @@ STDMETHODIMP wxIDropTarget::DragEnter(IDataObject *pIDataSource, } #endif // 0 - if ( !m_pTarget->IsAcceptedData(pIDataSource) ) { + if ( !m_pTarget->MSWIsAcceptedData(pIDataSource) ) { // we don't accept this kind of data *pdwEffect = DROPEFFECT_NONE; return S_OK; } + // for use in OnEnter and OnDrag calls + m_pTarget->MSWSetDataSource(pIDataSource); + // get hold of the data object m_pIDataObject = pIDataSource; m_pIDataObject->AddRef(); @@ -308,7 +311,7 @@ STDMETHODIMP wxIDropTarget::Drop(IDataObject *pIDataSource, // first ask the drop target if it wants data if ( m_pTarget->OnDrop(pt.x, pt.y) ) { // it does, so give it the data source - m_pTarget->SetDataSource(pIDataSource); + m_pTarget->MSWSetDataSource(pIDataSource); // and now it has the data wxDragResult rc = ConvertDragEffectToResult( @@ -432,7 +435,7 @@ bool wxDropTarget::OnDrop(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y)) // copy the data from the data source to the target data object bool wxDropTarget::GetData() { - wxDataFormat format = GetSupportedFormat(m_pIDataSource); + wxDataFormat format = MSWGetSupportedFormat(m_pIDataSource); if ( format == wxDF_INVALID ) { // this is strange because IsAcceptedData() succeeded previously! wxFAIL_MSG(wxT("strange - did supported formats list change?")); @@ -474,15 +477,15 @@ bool wxDropTarget::GetData() // ---------------------------------------------------------------------------- // we need a data source, so wxIDropTarget gives it to us using this function -void wxDropTarget::SetDataSource(IDataObject *pIDataSource) +void wxDropTarget::MSWSetDataSource(IDataObject *pIDataSource) { m_pIDataSource = pIDataSource; } // determine if we accept data of this type -bool wxDropTarget::IsAcceptedData(IDataObject *pIDataSource) const +bool wxDropTarget::MSWIsAcceptedData(IDataObject *pIDataSource) const { - return GetSupportedFormat(pIDataSource) != wxDF_INVALID; + return MSWGetSupportedFormat(pIDataSource) != wxDF_INVALID; } // ---------------------------------------------------------------------------- @@ -491,10 +494,10 @@ bool wxDropTarget::IsAcceptedData(IDataObject *pIDataSource) const wxDataFormat wxDropTarget::GetMatchingPair() { - return GetSupportedFormat( m_pIDataSource ); + return MSWGetSupportedFormat( m_pIDataSource ); } -wxDataFormat wxDropTarget::GetSupportedFormat(IDataObject *pIDataSource) const +wxDataFormat wxDropTarget::MSWGetSupportedFormat(IDataObject *pIDataSource) const { // this strucutre describes a data of any type (first field will be // changing) being passed through global memory block. -- 2.45.2