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;
////////////////////////////////////////////////////////
// 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
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)