vc下使用COM创建浏览器,调用IDispatch::Invoke提示脚本错误

dmjh113 2014-10-17 06:09:54
有没有使用COM做过浏览器的,现在有这么个情况,不知何解
新建一个CWebBrowserEx类,包含IWebBrowser2对象创建浏览器,在一个对话框上使用CWebBrowserEx创建浏览器,由于按键时需要判断,如果是在网页的输入框,按照网页执行,如果不是,按键的消息需要返回给应用程序,但在调用JavaScript时,总是提示当前脚本错误,找不到对象,调用JavaScript函数大致如下:
CComPtr<IHTMLDocument2> pDocument;
CComPtr<IDispatch> spScript;

if (GetHtmlDocument() == NULL) // 获取Html
return FALSE;

hr = GetHtmlDocument()->QueryInterface(IID_IHTMLDocument, (void**) &pDocument);
if (!SUCCEEDED(hr))
{
pDocument= NULL;
return FALSE;
}

if (SUCCEEDED(pDocument->get_Script(&spScript)))
{
if (SUCCEEDED(spScript->GetIDsOfNames(IID_NULL,&bstrMember,1,
LOCALE_SYSTEM_DEFAULT,&dispid)))
{
bFind = true;
}
else
{
spScript.Release();
}
}

if(!bFind)
{
pDocument.Release();
return FALSE;
}

hr = spScript->Invoke(dispid,IID_NULL,0,
DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr);
调用这一句之后就提示脚本错误,可以确定的是,Invoke函数中的参数都是正确的
代码是从另外一个项目中剥离出来,那个项目中就没有问题,我现在就有问题,这是什么原因呢?有没有遇到过这种情况的,求解
...全文
515 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
dmjh113 2014-10-18
  • 打赏
  • 举报
回复
现在都没有人关注csdn了么?

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧