Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5381893
  • 博文数量: 671
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 7310
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-14 09:56
文章分类

全部博文(671)

文章存档

2011年(1)

2010年(2)

2009年(24)

2008年(271)

2007年(319)

2006年(54)

我的朋友

分类: C/C++

2008-02-15 10:10:41

作者:


下载源代码
 
下面演示一个控制IE进行刷新的方法:
第一步、创建
 SHDocVw::IShellWindowsPtr m_spSHWinds;

       if (m_spSHWinds == NULL){
              if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK){
                     MessageBox("Failed");
                     CoUninitialize();
                     EndDialog(1);
              }
       }
第二步、获取当前所有打开的IE窗口
    if (m_spSHWinds){
              int n = m_spSHWinds->GetCount();
              for (int i = 0; i < n; i++){
                     _variant_t v = (long)i;
                     IDispatchPtr spDisp = m_spSHWinds->Item(v);

                     SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);            //生成一个IE窗口的智能指针
                     if (spBrowser){
                            _bstr_t bsName = spBrowser->GetLocationName();   //窗口名称
                            int nPos = m_ctrlIE.InsertItem(0, bsName);
                            spBrowser->AddRef();
                            void * pData = spBrowser;
                            m_ctrlIE.SetItemData(nPos, (DWORD)(pData));
                     }
              }
       }
 
第三步、刷新IE窗口
pBrowser->Refresh(); //pBrowser指向SHDocVw::IWebBrowser2Ptr
当然我们获取了IE窗口的IWebBrowser2后,我们就可以控制该IE,如读取设置元素的内容,以及其他一些更过的控制,参考IWebBrowser2,IHTMLDocument2等!

编译环境 win2000 professional + VC6.0(en) + sp5.0 + Platform SDK 2001.8
在win2000 professional下测试通过,如编译不过,请下载最新Platform SDK
阅读(548) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~