社区
ATL
帖子详情
IWebBrowser2 *m_spBrowser问题
wzw200
2009-06-20 10:50:38
我在MFC ActiveX里调用这个东西操作IE 怎么老是出错呢
IWebBrowser2 *m_spBrowser;
m_spBrowser->put_FullScreen(VARIANT_TRUE);
那位做过这方面的东西,能帮下忙吗
谢谢!!
...全文
75
9
打赏
收藏
IWebBrowser2 *m_spBrowser问题
我在MFC ActiveX里调用这个东西操作IE 怎么老是出错呢 IWebBrowser2 *m_spBrowser; m_spBrowser->put_FullScreen(VARIANT_TRUE); 那位做过这方面的东西,能帮下忙吗 谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
memese
2009-06-29
打赏
举报
回复
m_spBrowser 为NULL当然出错了..
z888c
2009-06-27
打赏
举报
回复
首先我们来看系统是如何知道当前有多少个IE的实例在运行。
我们知道在Windows体系结构下,一个应用程序可以通过操作系统的运行对象表来和这些应用的实例进行交互。但是IE当前的实现机制是不在运行对象表中进行注册,所以需要采用其他的方法。我们知道可以通过ShellWindows集合来代表属于shell的当前打开的窗口的集合,而IE就是属于shell的一个应用程序。
描述一下用VC实现对当前 IE实例的进行遍历的方法。
IShellWindows是关于系统shell的一个接口,我们可以定义一个如下的接口变量:
IShellWindowsPtr m_spSHWinds;
//然后创建变量的实例:
m_spSHWinds.CreateInstance(__uuidof(ShellWindows));
//通过IShellWindows接口的方法GetCount可以得到当前实例的数目:
long nCount = m_spSHWinds- >GetCount();
//通过IShellWindows接口的方法Item
//可以得到每一个实例对象
IDispatchPtr spDisp;
_variant_t va(i, VT_I4);
spDisp = m_spSHWinds->Item(va);
//然后我们可以判断实例对象是不是
//属于IE浏览器对象,通过下面的语句实现:
IWebBrowser2Ptr spBrowser(spDisp);
assert(spBrowser != NULL)
//在得到了IE浏览器对象以后,我们可以调用IWebBrowser2Ptr接口的方法来得到当前的文档对象的指针:
IHTMLDocument2Ptr spDoc(spBrowser->GetDocument());
然后我们就可以通过这个接口对这个文档对象进行操作,比如通过Gettitle得到文档的标题......
wzw200
2009-06-22
打赏
举报
回复
楼上高人 谢谢你的回复,!
我不能直接用 ,我还在找找资料
oyljerry
2009-06-20
打赏
举报
回复
HRESULT hr = S_OK;
IServiceProvider *isp, *isp2 = NULL;
if (!pClientSite)
{
COMRELEASE(browser);
}
else
{
hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **>(&isp));
if (FAILED(hr))
{
hr = S_OK;
goto cleanup;
}
hr = isp->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, reinterpret_cast<void **>(&isp2));
if (FAILED(hr))
{
hr = S_OK;
goto cleanup;
}
hr = isp2->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, reinterpret_cast<void **>(&browser));
if (FAILED(hr))
{
hr = S_OK;
goto cleanup;
}
cleanup:
// Free resources.
COMRELEASE(isp);
COMRELEASE(isp2);
return hr;
}
wzw200
2009-06-20
打赏
举报
回复
获取当前IE的
topic.csdn.net/t/20040816/15/3279214.html
好像没有答案啊
wzw200
2009-06-20
打赏
举报
回复
我只是想当IE全屏下,然后再回来。
wzw200
2009-06-20
打赏
举报
回复
我是想通过那个指针 操作IE ,可老是出错,你能说的明白点吗
你说了两种方法能具体说下怎么用吗 谢谢!
oyljerry
2009-06-20
打赏
举报
回复
或者获取当前IE的
topic.csdn.net/t/20040816/15/3279214.html
oyljerry
2009-06-20
打赏
举报
回复
你的IWebBrowser2 控件要Create创建
ActiveX控件与JS页面函数交互
这几天,正好要用的ActiveX和JS页面进行交互,起初也是一点眉目找不到,上网查了N多资料,并按照方法,总算以代码的方式... I
Web
Browser
App *m_
sp
Browser
; CComPtr< IDi
sp
atch >
sp
Di
sp
; CComDi
sp
atchDri
获取I
Web
Browser
2指针的方法(二)
获取I
Web
Browser
2指针的方法
获取I
Web
Browser
2指针的两种方法
在构造SHDocVw::I
Web
Browser
2Ptr
sp
Browser
对象的适合,构造不成功 就会返回NULL,这样的化调用QueryInterface来获取I
Web
Browser
2指针是获取不到的。所有有了if(
sp
Browser
!=NULL)这样一个判断。 下面看...
有关于微软的I
Web
Browser
2::Navigate2/Navigate方法收藏
有关于微软的I
Web
Browser
2::Navigate2/Navigate方法收藏 新一篇: 说说BES | 旧一篇: 有关于JAVA与后端C应用UTF8字符的通信 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection...
提取html中所有的链接,如何提取网页中所有链接
pElementCol;CComPtrpLoct;// TODO: Add your control notification handler code hereint n = m_LinksList.GetItemCount();//GetCount();for (int i = 0;... i ++){I
Web
Browser
2 *p
Browser
= (I
Web
Browser
2 ...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章