下面演示一個控制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
本文配套源碼