X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7dab17dd7aa966d558733ada7edecb96a4f40a7a..a7d5151df02bf70a9f6ff1c5c7fd33ab07bf409c:/src/msw/ole/activex.cpp?ds=sidebyside diff --git a/src/msw/ole/activex.cpp b/src/msw/ole/activex.cpp index d1722eeb64..e6a9fc2902 100644 --- a/src/msw/ole/activex.cpp +++ b/src/msw/ole/activex.cpp @@ -376,7 +376,17 @@ public: //*************************IOleInPlaceSiteEx*********************** HRESULT STDMETHODCALLTYPE OnInPlaceActivateEx(BOOL * pfNoRedraw, DWORD) { +#ifdef __WXWINCE__ + IRunnableObject* runnable = NULL; + HRESULT hr = QueryInterface( + IID_IRunnableObject, (void**)(& runnable)); + if (SUCCEEDED(hr)) + { + runnable->LockRunning(TRUE, FALSE); + } +#else OleLockRunning(m_window->m_ActiveX, TRUE, FALSE); +#endif if (pfNoRedraw) (*pfNoRedraw) = FALSE; return S_OK; @@ -384,7 +394,17 @@ public: HRESULT STDMETHODCALLTYPE OnInPlaceDeactivateEx(BOOL) { +#ifdef __WXWINCE__ + IRunnableObject* runnable = NULL; + HRESULT hr = QueryInterface( + IID_IRunnableObject, (void**)(& runnable)); + if (SUCCEEDED(hr)) + { + runnable->LockRunning(FALSE, FALSE); + } +#else OleLockRunning(m_window->m_ActiveX, FALSE, FALSE); +#endif return S_OK; } STDMETHOD(RequestUIActivate)(){ return S_OK;} @@ -802,7 +822,11 @@ void wxActiveXContainer::OnPaint(wxPaintEvent& WXUNUSED(event)) posRect.right = w; posRect.bottom = h; +#if defined(_WIN32_WCE) && _WIN32_WCE < 400 + ::InvalidateRect(m_oleObjectHWND, NULL, false); +#else ::RedrawWindow(m_oleObjectHWND, NULL, NULL, RDW_INTERNALPAINT); +#endif RECTL *prcBounds = (RECTL *) &posRect; m_viewObject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, (HDC)dc.GetHDC(), prcBounds, NULL, NULL, 0);