X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f3a69d1df159eec7f8fcaa9e92aa3f61f0785244..dd9f8b6bb6935360a8271dc3e8749fb026b601a8:/src/msw/ole/activex.cpp diff --git a/src/msw/ole/activex.cpp b/src/msw/ole/activex.cpp index 176fc6673f..e8e7647a48 100644 --- a/src/msw/ole/activex.cpp +++ b/src/msw/ole/activex.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/ole/activex.cpp +// Name: src/msw/ole/activex.cpp // Purpose: wxActiveXContainer implementation // Author: Ryan Norton , Lindsay Mathieson // Modified by: @@ -23,12 +23,14 @@ #pragma hdrstop #endif -#include "wx/dcclient.h" -#include "wx/math.h" +#if wxUSE_ACTIVEX -// I don't know why members of tagVARIANT aren't found when compiling -// with Wine -#ifndef __WINE__ +#ifndef WX_PRECOMP + #include "wx/dcclient.h" + #include "wx/math.h" +#endif + +#include "wx/msw/dc.h" #include "wx/msw/ole/activex.h" // autointerfaces that we only use here @@ -523,7 +525,7 @@ public: HRESULT STDMETHODCALLTYPE LockContainer(BOOL){return S_OK;} //********************IOleItemContainer*************************** HRESULT STDMETHODCALLTYPE - #ifdef __WXWINCE__ + #if 0 // defined(__WXWINCE__) && __VISUALC__ < 1400 GetObject #elif defined(_UNICODE) GetObjectW @@ -894,7 +896,6 @@ void wxActiveXContainer::CreateActiveX(REFIID iid, IUnknown* pUnk) continue; // check if default event sink - bool defInterface = false; bool defEventSink = false; int impTypeFlags = 0; typeInfo->GetImplTypeFlags(i, &impTypeFlags); @@ -912,11 +913,6 @@ void wxActiveXContainer::CreateActiveX(REFIID iid, IUnknown* pUnk) wxFAIL_MSG(wxT("Default event sink is in vtable!")); } } - else - { - // WXOLE_TRACEOUT("Default Interface"); - defInterface = true; - } } @@ -946,7 +942,7 @@ void wxActiveXContainer::CreateActiveX(REFIID iid, IUnknown* pUnk) hret = cp->Advise(new wxActiveXEvents(this, ta->guid), &adviseCookie); wxASSERT_MSG( SUCCEEDED(hret), - wxString::Format(wxT("Cannot connect!\nHRESULT:%X"), hret) + wxString::Format(wxT("Cannot connect!\nHRESULT:%X"), (unsigned int)hret) ); } } @@ -1123,10 +1119,15 @@ void wxActiveXContainer::OnPaint(wxPaintEvent& WXUNUSED(event)) posRect.right = w; posRect.bottom = h; +#if !(defined(_WIN32_WCE) && _WIN32_WCE < 400) ::RedrawWindow(m_oleObjectHWND, NULL, NULL, RDW_INTERNALPAINT); +#else + ::InvalidateRect(m_oleObjectHWND, NULL, false); +#endif RECTL *prcBounds = (RECTL *) &posRect; + wxMSWDCImpl *msw = wxDynamicCast( dc.GetImpl() , wxMSWDCImpl ); m_viewObject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, - (HDC)dc.GetHDC(), prcBounds, NULL, NULL, 0); + (HDC)msw->GetHDC(), prcBounds, NULL, NULL, 0); } } @@ -1157,5 +1158,4 @@ void wxActiveXContainer::OnKillFocus(wxFocusEvent& event) event.Skip(); } -#endif -// __WINE__ +#endif // wxUSE_ACTIVEX