是这样的,我通过ihtmldocument2的fames得到一个IHtmlFramesCollection2接口,然后用IHtmlFramesCollection2接口的item(i)得到其中一个框架IHtmlWindow2接口,再通过IHtmlWindow2的document得到该框架的IHtmlDocument2接口。这个时候就遇到了一个问题,如果框架网页的地址的域与父网页的地址的域不同,就会出现异常“Access is denied”。如http://www.a.com/a.htm和http://www.b.com/b.htm,b是a的框架网页。 但如果两个网页的域相同,比如都在www.a.com下,那就工作正常。
各位大哥哥点拨一下小弟啊,都急死了。谢谢了!
各位大哥哥点拨一下小弟啊,都急死了。谢谢了!
解决方案 »
- 想改变一个ocx对鼠标左右键的响应,不知道怎么改消息,了解鼠标消息的进来看看
- 求购语音聊系统VC源代码
- 好像有一个对话框可以直接设置串口的各种属性,有吗?
- 求助,大虾请帮忙(这个问题折磨我很久了)qq:273590963 email [email protected]
- 何在不弹出打印对话框的前提下,在程序里改变打印方向
- 怎么样在list控件中加入复选框控件???
- StartDoc返回-2是什么原因?
- 我要做一个比较完整的文字工具。怎么样才是最省时而且效果还不错的 ?
- 关于数据库开发的问题
- 模态对话框显示慢
- 新手求助!有三问!分数倾囊相赠!关于坐标的问题(坐标转换)
- 为什么我的VC6.0打开工程时,有的在单步调试下鼠标放在变量上有值显示,但有的工程却没有显示,用quickwatch看时,说变量没找到。
IHTMLWindow2 *pHTMLWnd = NULL;
IHTMLDocument2 * pFrameDoc=NULL;
IHTMLFramesCollection2 *pFramesCollection=NULL;
LPDISPATCH lpDispatch; long p;
VARIANT varindex,varresult;
varresult.vt=VT_DISPATCH;
varindex.vt = VT_I4;
if(pDoc!=NULL)
{
HRESULT hr=pDoc->get_frames(&pFramesCollection);
if(SUCCEEDED(hr)&&pFramesCollection!=NULL)
{
hr=pFramesCollection->get_length(&p);
if(SUCCEEDED(hr))
for(int i=0; i<p; i++)
{
varindex.lVal = i;
if(pFramesCollection->item(&varindex, &varresult) ==S_OK)
{
lpDispatch=(LPDISPATCH)varresult.ppdispVal;
if (SUCCEEDED(lpDispatch->QueryInterface(IID_IHTMLWindow2, (LPVOID *)&pHTMLWnd)))
{
if(SUCCEEDED(pHTMLWnd->get_document( &pFrameDoc)))
{
//work with the pFrameDoc...
}
pHTMLWnd->Release();
pHTMLWnd=NULL;
}
}
}
pFramesCollection->Release();
}
pDoc->Release();
}