分类: C/C++
2008-03-31 14:39:16
下面演示一个控制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 |