m_bAmbientUserMode = true;
m_docAdviseCookie = 0;
CreateActiveX(clsid);
- m_bestSize = GetSize();
}
wxActiveX::wxActiveX(wxWindow * parent, const wxString& progId, wxWindowID id,
m_bAmbientUserMode = true;
m_docAdviseCookie = 0;
CreateActiveX((LPOLESTR) (const wchar_t *) progId.wc_str(wxConvUTF8));
- m_bestSize = GetSize();
}
wxActiveX::~wxActiveX()
wxCHECK_RET(adviseSink.Ok(), _T("adviseSink not Ok"));
- // // Create Object, get IUnknown interface
+ // Create Object, get IUnknown interface
m_ActiveX.CreateInstance(clsid, IID_IUnknown);
wxCHECK_RET(m_ActiveX.Ok(), _T("m_ActiveX.CreateInstance failed"));
+ // Register object as active
+ unsigned long pdwRegister;
+ hret = RegisterActiveObject(m_ActiveX, clsid, ACTIVEOBJECT_WEAK, &pdwRegister);
+ WXOLE_WARN(hret, "Unable to register object as active");
+
// Get Dispatch interface
hret = m_Dispatch.QueryInterface(IID_IDispatch, m_ActiveX);
WXOLE_WARN(hret, "Unable to get dispatch interface");
// Update by GBR to resize older controls
wxSizeEvent szEvent;
szEvent.m_size = wxSize(w, h) ;
- AddPendingEvent(szEvent);
+ GetEventHandler()->AddPendingEvent(szEvent);
};
}
{
// cdecl call
// sometimes the pDispParams does not match the param info for a activex control
- int nArg = min(func.params.size(), pDispParams->cArgs);
+ int nArg = wxMin(func.params.size(), pDispParams->cArgs);
for (int i = nArg - 1; i >= 0; i--)
{
VARIANTARG& va = pDispParams->rgvarg[i];
if (func.hasOut)
{
- int nArg = min(func.params.size(), pDispParams->cArgs);
- m_activeX->GetParent()->ProcessEvent(event);
+ int nArg = wxMin(func.params.size(), pDispParams->cArgs);
+ m_activeX->GetEventHandler()->ProcessEvent(event);
for (int i = 0; i < nArg; i++)
{
VARIANTARG& va = pDispParams->rgvarg[i];
};
}
else
- m_activeX->GetParent()->AddPendingEvent(event);
+ m_activeX->GetEventHandler()->AddPendingEvent(event);
};