1回顶部 前言 很多网友问到,在HTML的页面中放置一个COM对象,这个对象该如何调用页面中的脚本函数的问题,本人近日也因为工作需要实现这样的功能,在网上搜索后,获得了很多帮助,但并没有发现完整的实现。本文描述了实现过程中的几个要点,同时提供一个示例工程的下载。 1—— 2—— 2回顶部 hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **> (&isp)); if (FAILED(hr)) throw(""); hr = isp->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, reinterpret_cast<void **>(&isp2)); if (FAILED(hr)) throw(""); hr = isp2->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, reinterpret_cast<void **>(&m_spBrowser)); if (FAILED(hr)) throw(""); hr=this->m_spBrowser->get_Document((IDispatch**)&m_spDoc); if(FAILED(hr)) throw(""); } catch(LPCTSTR lpszErr) { if(CString(lpszErr)!="") MessageBox(lpszErr); hr=S_OK; } catch(...) { MessageBox("未知错误"); hr=S_OK; } COMRELEASE(isp); COMRELEASE(isp2); } return hr; } 3回顶部 通过这步的操作,我们就获得了控件所在Web页面的BROWSER对象指针和相应的DOCUMENT对象指针。通过这些BROWSER和DOCUMENT对象指针,我们可以设置窗口的很多属性,比如菜单、全屏、工具栏等的显示和DOCUMENT的背景颜色等等。 这个方法参见MSDN:http://support.microsoft.com/support/kb/articles/Q257/7/17.ASP 3—— 4—— 5—— 4回顶部 dispparams.cNamedArgs = 0; EXCEPINFO excepInfo; memset(&excepInfo, 0, sizeof excepInfo); CComVariant vaResult; UINT nArgErr = (UINT)-1; // initialize to invalid arg hr = pScript->Invoke (dispid,IID_NULL,0,DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr); 这里的执行中我随意的写了几个参数,可以根据自己需要修改。 注:一个问题: 本工程是用.NET2003弄的,可能你们系统不支持,不过没有关系,重要建立自己的COM工程后,把IrDav的相关文件包含添加到工程就可以了。 对不起,由于本人没有非常稳定空间,不能提供下载,如果有需要,请给本人QQ(68558710)或MSN(Triout@msn.com)或EMail(Triout@163.com)联系。如果您有空间,请告知,以便上传后提供连接。 |
闁衡偓閹増顥戦柟瀛樺姇婵拷闁哄被鍎冲﹢鍛村绩閹増顥�>>
正在阅读:如何调用ActiveX网页中的JavaScript函数如何调用ActiveX网页中的JavaScript函数
2004-02-14 09:34
出处:PConline
责任编辑:linjixiong