日期:2014-05-16  浏览次数:20329 次

求助:ACtiveX控件如何获取JScript对象
有问题请教:
ACtiveX控件如何获取JScript对象

模型如下:
a.html页面中同时加载了 A.dll 和 A.js B.js 文件
想要在 A.ocx 中访问 B.js的方法 func()
首先 A.ocx 的主类中重写 COleControl::OnSetClientSite() 并获得IWebBrowser2* pBrowser
使用 pBrowser->get_Document()方法获得 IHTMLDocument* pDoc
再使用 pBrowser->get_Document()方法获得 IDispatch* m_pScript,此处 m_pScript 即是js脚本对象(不知道是A.js和B.js其中之一;还是两个的?)

最后在需要查询接口的地方使用如下代码来获取 接口指定 funcid
CComBSTR funcname("testFunc");
DISPID funcid;
HRESULT hr = m_pScript->GetIDsOfNames(IID_NULL, &funcname, 1, LOCALE_SYSTEM_DEFAULT, &funcid); //上面代码都没有报异常,但是此处 funcid = -1

不知道是哪里出现的问题,有点迷茫