X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bf354396f61a2e1bd5544b67ecde341b6ff9bf35..5e06d749ed2e8fe82bf058e66695cd4a96e450da:/src/msw/ole/activex.cpp diff --git a/src/msw/ole/activex.cpp b/src/msw/ole/activex.cpp index 8dea8ef980..bddc57e3a9 100644 --- a/src/msw/ole/activex.cpp +++ b/src/msw/ole/activex.cpp @@ -1,26 +1,31 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/ole/activex.cpp +// Name: src/msw/ole/activex.cpp // Purpose: wxActiveXContainer implementation // Author: Ryan Norton , Lindsay Mathieson -// Modified by: +// Modified by: // Created: 11/07/04 // RCS-ID: $Id$ // Copyright: (c) 2003 Lindsay Mathieson, (c) 2005 Ryan Norton // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -//=========================================================================== -// DECLARATIONS -//=========================================================================== +// ============================================================================ +// declarations +// ============================================================================ -//--------------------------------------------------------------------------- -// WX include -//--------------------------------------------------------------------------- -#include "wx/wxprec.h" +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- -#include "wx/msw/ole/activex.h" +#include "wx/wxprec.h" +#ifdef __BORLANDC__ + #pragma hdrstop +#endif +#include "wx/dcclient.h" +#include "wx/math.h" +#include "wx/msw/ole/activex.h" //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -54,21 +59,21 @@ if (! ppvObject)\ {\ return E_FAIL;\ - };\ + }\ const char *desc = NULL;\ cls::_GetInterface(this, iid, ppvObject, desc);\ if (! *ppvObject)\ {\ return E_NOINTERFACE;\ - };\ + }\ ((IUnknown * )(*ppvObject))->AddRef();\ return S_OK;\ - };\ + }\ ULONG STDMETHODCALLTYPE cls::AddRef()\ {\ InterlockedIncrement(&refCount.l);\ return refCount.l;\ - };\ + }\ ULONG STDMETHODCALLTYPE cls::Release()\ {\ if (refCount.l > 0)\ @@ -78,7 +83,7 @@ {\ delete this;\ return 0;\ - };\ + }\ return refCount.l;\ }\ else\ @@ -88,7 +93,7 @@ {\ InterlockedIncrement(&lockCount.l);\ return lockCount.l;\ - };\ + }\ ULONG STDMETHODCALLTYPE cls::ReleaseLock()\ {\ if (lockCount.l > 0)\ @@ -202,7 +207,7 @@ public: case DISPID_AMBIENT_SILENT: V_BOOL(pVarResult)= TRUE; return S_OK; - +#ifndef __WINE__ case DISPID_AMBIENT_APPEARANCE: pVarResult->vt = VT_BOOL; pVarResult->boolVal = m_bAmbientAppearance; @@ -237,7 +242,7 @@ public: pVarResult->vt = VT_BOOL; pVarResult->boolVal = m_bAmbientShowHatching; break; - +#endif default: return DISP_E_MEMBERNOTFOUND; } @@ -321,7 +326,7 @@ public: if (! SUCCEEDED(hr)) { return E_UNEXPECTED; - }; + } hr = QueryInterface(IID_IOleInPlaceUIWindow, (void **) ppDoc); if (! SUCCEEDED(hr)) @@ -329,7 +334,7 @@ public: (*ppFrame)->Release(); *ppFrame = NULL; return E_UNEXPECTED; - }; + } RECT rect; ::GetClientRect(m_hWndParent, &rect); @@ -338,13 +343,13 @@ public: lprcPosRect->left = lprcPosRect->top = 0; lprcPosRect->right = rect.right; lprcPosRect->bottom = rect.bottom; - }; + } if (lprcClipRect) { lprcClipRect->left = lprcClipRect->top = 0; lprcClipRect->right = rect.right; lprcClipRect->bottom = rect.bottom; - }; + } memset(lpFrameInfo, 0, sizeof(OLEINPLACEFRAMEINFO)); lpFrameInfo->cb = sizeof(OLEINPLACEFRAMEINFO); @@ -394,8 +399,8 @@ public: case OLEGETMONIKER_UNASSIGN : return "OLEGETMONIKER_UNASSIGN"; case OLEGETMONIKER_TEMPFORUSER : return "OLEGETMONIKER_TEMPFORUSER"; default : return "Bad Enum"; - }; - }; + } + } const char *OleGetWhicMonikerStr(DWORD dwWhichMoniker) { @@ -405,8 +410,8 @@ public: case OLEWHICHMK_OBJREL : return "OLEWHICHMK_OBJREL"; case OLEWHICHMK_OBJFULL : return "OLEWHICHMK_OBJFULL"; default : return "Bad Enum"; - }; - }; + } + } STDMETHOD(GetMoniker)(DWORD, DWORD, IMoniker **){return E_FAIL;} HRESULT STDMETHODCALLTYPE GetContainer(LPOLECONTAINER * ppContainer) { @@ -433,7 +438,9 @@ public: HRESULT STDMETHODCALLTYPE LockContainer(BOOL){return S_OK;} //********************IOleItemContainer*************************** HRESULT STDMETHODCALLTYPE - #ifdef _UNICODE + #if defined(__WXWINCE__) + GetObject + #elif defined(_UNICODE) GetObjectW #else GetObjectA @@ -531,11 +538,11 @@ public: return E_FAIL; m_window->m_docView->SetInPlaceSite(inPlaceSite); - }; + } m_window->m_docView->UIActivate(TRUE); return S_OK; - }; + } protected: @@ -574,7 +581,7 @@ DEFINE_OLE_TABLE(FrameSite) OLE_IINTERFACE(IOleDocumentSite) OLE_IINTERFACE(IAdviseSink) OLE_IINTERFACE(IOleControlSite) -END_OLE_TABLE; +END_OLE_TABLE wxActiveXContainer::wxActiveXContainer(wxWindow * parent, REFIID iid, IUnknown* pUnk) @@ -737,7 +744,7 @@ static void PixelsToHimetric(SIZEL &sz) }; #define HIMETRIC_INCH 2540 -#define CONVERT(x, logpixels) MulDiv(HIMETRIC_INCH, (x), (logpixels)) +#define CONVERT(x, logpixels) wxMulDivInt32(HIMETRIC_INCH, (x), (logpixels)) sz.cx = CONVERT(sz.cx, logX); sz.cy = CONVERT(sz.cy, logY); @@ -795,7 +802,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);