X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/535ffb932aa6cd4db430e1b3740cfa51ae2421aa..f01fbad837f6be9afed3e346b1b28dced163c9f5:/wxPython/contrib/activex/wxie/wxactivex.cpp diff --git a/wxPython/contrib/activex/wxie/wxactivex.cpp b/wxPython/contrib/activex/wxie/wxactivex.cpp index 1fb0755413..bef4563dc9 100644 --- a/wxPython/contrib/activex/wxie/wxactivex.cpp +++ b/wxPython/contrib/activex/wxie/wxactivex.cpp @@ -298,12 +298,13 @@ wxActiveX::~wxActiveX() m_oleObject->Close(OLECLOSE_NOSAVE); m_oleObject->SetClientSite(NULL); } + + // Unregister object as active + RevokeActiveObject(m_pdwRegister, NULL); } void wxActiveX::CreateActiveX(REFCLSID clsid) { - SetTransparent(); - HRESULT hret; //////////////////////////////////////////////////////// @@ -323,7 +324,7 @@ void wxActiveX::CreateActiveX(REFCLSID clsid) // Register object as active unsigned long pdwRegister; - hret = RegisterActiveObject(m_ActiveX, clsid, ACTIVEOBJECT_WEAK, &pdwRegister); + hret = RegisterActiveObject(m_ActiveX, clsid, ACTIVEOBJECT_WEAK, &m_pdwRegister); WXOLE_WARN(hret, "Unable to register object as active"); // Get Dispatch interface @@ -1774,6 +1775,16 @@ void wxActiveX::OnMouse(wxMouseEvent& event) wxLogTrace(wxT(""),wxT("msg sent")); } +bool wxActiveX::MSWTranslateMessage(WXMSG *msg){ + + if (msg->message == WM_KEYDOWN){ + HRESULT result = m_oleInPlaceActiveObject->TranslateAccelerator(msg); + return (result == S_OK); + } + + return wxWindow::MSWTranslateMessage(msg); +} + long wxActiveX::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) { if (m_oleObjectHWND == NULL)