1,317
社区成员
发帖
与我相关
我的任务
分享
//一些接口指针变量的定义
IDispatch* pDisp=NULL;
IWebBrowser2 *iWebBrowser=NULL;
IHTMLDocument2* pDoc=NULL;
IHTMLElementCollection*pColl=NULL;
//获取IWebBrowser2接口。
CoCreateInstance(CLSID_CppInternetExplorer,NULL,CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2,
(void**)&iWebBrowser);
iWebBrowser->set_Visible(true);//使程序运行时IE窗口可见,因为这是在调用IE的接口
//这里打开你要的目标网页的url,Edit1->Text就是传递这个url的
iWebBrowser->Navigate2(TVariant(Edit1->Text),TNoParam(),
TNoParam(),TNoParam(),TNoParam());
//这个参数用来保存打开这个网页时IE的状态栏上的文字,一般页面完全加载后就是显示”完成“
BSTR wsStatus;
String s4BSTR="";
iWebBrowser->get_Document(&pDisp);//得到IHTMLDocument接口
pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc);
pDisp->Release();
BSTR wsTitle;
pDoc->get_title(&wsTitle);
s4BSTR=String(wsTitle);
if(s4BSTR=="找不到服务器")
{
Application->MessageBox("网页打开失败!","",MB_OK);
pDoc->Release();Application->Terminate();
}
//得到HtmlElementCollection,这个应该是包含网页上元素的集合接口
pDoc->get_all(&pColl);
long itemcount=0;
pColl->get_length(&itemcount);//得到元素集合的总数
for(int i=0;i<itemcount;i++) //循环遍历所有的元素
{
pColl->item(TVariant(i),TVariant(i),&pDisp); //先获得IDispatch接口
//对图片的操作
IHTMLImgElement *img=0; //这种接口就是针对图片元素的
pDisp->QueryInterface(IID_IHTMLImgElement,(void**)&img);
if(img!=0)
{
WideString strimg,strMIME,strSrc;
img->get_href(&strimg); //得到其href
img->get_mimeType(&strMIME); //得到其MIME文件类型
Memo2->Lines->Add(strimg+" [--"+strMIME+"--]"); //将信息添加至memo中
}
}
IDispatch* pDisp=NULL;
IWebBrowser2 *iWebBrowser=NULL;
IHTMLDocument2* pDoc=NULL;
IHTMLElementCollection*pColl=NULL;
CoCreateInstance(CLSID_CppInternetExplorer,NULL,CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2,
(void**)&iWebBrowser);
iWebBrowser->set_Visible(true);
iWebBrowser->Navigate2(TVariant(Edit1->Text),TNoParam(),
TNoParam(),TNoParam(),TNoParam());
BSTR wsStatus;
String s4BSTR="";
iWebBrowser->get_Document(&pDisp);
pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc);
pDisp->Release();
BSTR wsTitle;
pDoc->get_title(&wsTitle);
s4BSTR=String(wsTitle);
if(s4BSTR=="找不到服务器")
{
Application->MessageBox("网页打开失败!","",MB_OK);
pDoc->Release();Application->Terminate();
}
//得到HtmlElementCollection
pDoc->get_all(&pColl);
long itemcount=0;
pColl->get_length(&itemcount);
for(int i=0;i<itemcount;i++)
{
pColl->item(TVariant(i),TVariant(i),&pDisp);
//对图片的操作
IHTMLImgElement *img=0;
pDisp->QueryInterface(IID_IHTMLImgElement,(void**)&img);
if(img!=0)
{
WideString strimg,strMIME,strSrc;
img->get_href(&strimg);
img->get_mimeType(&strMIME);
Memo2->Lines->Add(strimg+" [--"+strMIME+"--]");
}
}