过河的卒子

我们都是过了河的卒子,不能回头!!!
如何控制IE的行为
作者:ac952_z_cn


下载源代码
 
下面演示一个控制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

posted on 2008-11-12 20:07  过河的卒子  阅读(552)  评论(0编辑  收藏  举报