C++,VS2008,怎样使用获取Webbrowser控件上网页的iWebbrowser2接口或IHTMLDocument接口?
使用ShellWindows只能获得电脑上当前打开的IE浏览器的网页接口,怎样才能取到mfc程序中Webbrowser控件上网页的iWebbrowser2接口或IHTML...
使用ShellWindows只能获得电脑上当前打开的IE浏览器的网页接口,怎样才能取到mfc程序中Webbrowser控件上网页的iWebbrowser2接口或IHTMLDocument接口。
下面是用ShellWindows获取IE浏览器接口的程序,能进行改动实现我要的功能么?或者另外别的方法?
int CWebSaveDlg::get_ihDoc()
{
::CoInitialize(NULL);
SHDocVw::IShellWindowsPtr m_spSHWinds; //定义接口变量
if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK)
CoUninitialize();
if (!m_spSHWinds)
return 2;
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) continue;
else
SetDlgItemText(IDC_EDIT1,_T("获取iwebrowser2成功"));
_bstr_t bName = spBrowser->GetLocationName();
char *title = bName;
// 获取ihtmldocument2接口
IHTMLDocument2Ptr spDoc = (IHTMLDocument2Ptr)spBrowser->GetDocument();
}
::CoUninitialize();
return 0;
} 展开
下面是用ShellWindows获取IE浏览器接口的程序,能进行改动实现我要的功能么?或者另外别的方法?
int CWebSaveDlg::get_ihDoc()
{
::CoInitialize(NULL);
SHDocVw::IShellWindowsPtr m_spSHWinds; //定义接口变量
if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK)
CoUninitialize();
if (!m_spSHWinds)
return 2;
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) continue;
else
SetDlgItemText(IDC_EDIT1,_T("获取iwebrowser2成功"));
_bstr_t bName = spBrowser->GetLocationName();
char *title = bName;
// 获取ihtmldocument2接口
IHTMLDocument2Ptr spDoc = (IHTMLDocument2Ptr)spBrowser->GetDocument();
}
::CoUninitialize();
return 0;
} 展开
1个回答
展开全部
IHTMLDocument2 *pDoc2;
IDispatch *WebDocument=static_cast<IDispatch*>(CppWebBrowser1->Document);
pDoc2=static_cast<IHTMLDocument2*>(WebDocument);
或者直接用QueryInterface。
IDispatch *WebDocument=static_cast<IDispatch*>(CppWebBrowser1->Document);
pDoc2=static_cast<IHTMLDocument2*>(WebDocument);
或者直接用QueryInterface。
更多追问追答
追问
这个CppWebBrowser1指的是什么,应该对应我程序中的Webbrowser控件么?
追答
恩
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询