CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  HTML/XML

IE编程:如何得到IE当前显示的HTML文件?

楼主limz(lmz)2000-11-11 15:00:00 在 VC/MFC / HTML/XML 提问

如何得到IE当前显示的HTML文件?  
  我在微软站点上看到,要写一个com程序,须实现IObjectWithSite。  
  原文:  
  (If   your   COM   object   needs   to   access   the   DHTML   Object   Model   of   the   page   that   Internet   Explorer   is   currently   displaying,   you   must   implement   IObjectWithSite.  
  ...  
  When   IObjectWithSite   is   implemented,   Internet   Explorer   will   call   IObjectWithSite::SetSite   and   pass   it   a   pointer   to   IShellBrowser.  
  )  
  但是从IShellBrowser又该怎样写才能得到当前显示的HTML文件?  
  IObjectWithSite::SetSite(IUnknown   *pUnkSite)  
  {  
     
  }  
  先谢谢各位!(也请edyang兄再来看看这个问题!多谢!)  
  问题点数:50、回复次数:4Top

1 楼edyang(化石)回复于 2000-11-11 16:01:00 得分 30

(edyang   的脸先是红了一下,但很快就恢复了正常,一本正经的说)  
  嘿嘿,看来老兄世行内高手,献丑献丑。我想你能不能从   pUnkSite   的到   IHTMLDocument   的接口呢?如果能得到的话,一切问题就解决。由于本人时间有限,没有做实验:  
   
  HRESULT               hr;  
  IHTMLDocument   *pIHTMLDoc;  
   
  hr   =   pUnkSite->QueryInterface(IID_IHTMLDocument,   (void   **)&pIHTMLDoc);  
  if(SUCCEEDED(hr))  
  {  
  _com_ptr_t(pIHTMLDoc) ptrDoc;  
   
  hr   =   ptrDoc.QueryInterface(IID_IPersistStreamInit,   &pPersistStream);  
  if(pPersistStream   ==   NULL)  
  return;  
  if(FAILED(pPersistStream->GetSizeMax(&uli)))  
  {  
  pPersistStream->Release();  
  return;  
  }  
  //if(uli.LowPart   ==   0)  
  //{  
  //pPersistStream->Release();  
  //return;  
  //}  
   
  uli.LowPart   =   65536;  
  hMem   =   ::GlobalAlloc(GPTR,   uli.LowPart);  
  if(hMem   ==   NULL)  
  {  
  pPersistStream->Release();  
  return;  
  }  
   
  hr   =   ::CreateStreamOnHGlobal(hMem,   TRUE,   &pStream);  
  if(FAILED(hr))  
  {  
  pPersistStream->Release();  
  ::GlobalFree(hMem);  
  return;  
  }  
  hr   =   pPersistStream->Save(pStream,   TRUE);  
   
  AfxMessageBox((LPCTSTR)hMem);  
   
  hr   =   pPersistStream->Release();  
  pStream->Release();  
  }Top

2 楼limz(lmz)回复于 2000-11-11 16:52:00 得分 0

to   edyang兄:  
  我试过了不能从   pUnkSite   的到   IHTMLDocument   的接口。还有没有其他的接口?Top

3 楼edyang(化石)回复于 2000-11-11 17:12:00 得分 20

哦,试一试   IHTMLDocument2   怎样?  
   
  MSDN   对   IShellBrowser   的解释是:  
  The   IShellBrowser   interface   is   exposed   by   Windows   Explorer   and   the   Open   File   common   dialog   box   to   provide   services   for   namespace   extensions.    
   
  我想你可能在做一个对   Windows   Explorer   的扩展?或者是镶嵌在   IE   里面的   COM(ActiveX)控件?Top

4 楼silver(Bai)回复于 2000-11-16 23:16:00 得分 0

我也很感兴趣,有没有更多的信息?Top

相关问题

  • IE编程:如何从接口IShellBrowser得到当前HTML文件名?
  • 如何通过VB编程获得某个IE浏览器载入页面的HTML源文件?
  • 怎样编程生成html文件或asp文件?
  • 急!如何编程实现pdf文件转html文件?
  • 怎样用DELPHI 编程禁止IE下载文件??
  • 怎样编程考出 IE Cache 中的一个指定文件?
  • 关于多文件编程
  • 编程控制PDF文件
  • 你熟悉IE HTML编程吗,是就进来吧!
  • 有关IE编程

关键词

  • html
  • 文件
  • hr
  • ie
  • 接口
  • release
  • ppersiststream
  • ishellbrowser
  • iobjectwithsite
  • uli

得分解答快速导航

  • 帖主:limz
  • edyang
  • edyang

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo