关于com组件的容器的问题,我都晕了

DataBind 2007-08-15 06:12:28
在html中,使用javascript脚本创建的对象的容器是什么?
有没有可能在对象中得到IHtmlDocument2接口?
还是说有什么其他高级方法我不知道?

例如:var obj = new ActiveXObject("Msxml2.XMLHTTP.4.0");
obj.open(.....)
我看到微软的这个xmlhttprequest可以打开相对路径?怎么实现的?

以下部分为xmlhttprequest的open方法
oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
Parameters
bstrMethod
The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. For IXMLHTTPRequest, this parameter is not case-sensitive.
bstrUrl
The requested URL. This can be either an absolute URL, such as "http://Myserver/Mypath/Myfile.asp", or a relative URL, such as "../MyPath/MyFile.asp".
...全文
238 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DataBind 2007-08-23
  • 打赏
  • 举报
回复
解决了,谢谢各位
蒋晟 2007-08-16
  • 打赏
  • 举报
回复
什么叫重新实现?劫持CLSID?
DataBind 2007-08-16
  • 打赏
  • 举报
回复
如果我重新实现Msxml2.XMLHTTP.4.0 ,有什么办法能得到当前文档的baseurl吗?
jucee 2007-08-16
  • 打赏
  • 举报
回复
对于简单COM对象,可以通过实现IObjectWithSite接口来得到ClientSite的接口指针,对ClientSite的接口指针QueryInterface 就可以得到IHTMLDocument2的接口指针了。
蒋晟 2007-08-15
  • 打赏
  • 举报
回复
容器应该是javascript或者vbscript的脚本引擎,不过明显这个引擎不支持OLE
jucee 2007-08-15
  • 打赏
  • 举报
回复
问题描述不清楚,不好回答,帮你顶。
不知道你说的对象的容器是什么?是ActiveX控件容器吗? Msxml2.XMLHTTP.4.0只是一个简单COM 对象,不是ActiveX控件(有UI的COM组件称为ActiveX控件),所有不存在什么容器。在ActiveX控件里是可以通过得到IHtmlDocument2接口,但在简单COM对象里是不行的,因为简单COM对象里不会保存有IOleClientSite接口指针成员m_spClientSite。
CComPtr<IOleContainer> spContainer;
m_spClientSite->GetContainer(&spContainer);
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> spDoc(spContainer);

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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