`
javasogo
  • 浏览: 1825779 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

IHTMLDocument2接口的简单操作

 
阅读更多
这几天写的程序中要用到这方面的东西,写了个很简单的例子.
  1. //必须包含的头文件
  2. #include<atlbase.h>
  3. #include"atlconv.h"
  4. #include"Mshtml.h"
  5. /*********************************************************************
  6. *函数名称:intCErrKbaseDHtmlView::MM_FAULTKBASE&refKBaseInfo
  7. *说明:刷新HTMLVIEW页面内容
  8. *入口参数:
  9. *空
  10. *返回值:
  11. *int--
  12. *作者:socrates
  13. *时间:2008-08-0115:37:39
  14. *备注:
  15. *********************************************************************/
  16. intCErrKbaseDHtmlView::RefreshPage(MM_FAULTKBASE&refKBaseInfo)
  17. {
  18. USES_CONVERSION;
  19. CComPtr<IHTMLDocument2>pDoc;
  20. CComPtr<IDispatch>spDisp;
  21. spDisp=GetHtmlDocument();
  22. CStringstrHtml="<html><head><title>kcmm_errkbase</title>/
  23. <styletype='text/css'><!--/
  24. body,td,th{font-size:12px;color:#990000;}.style5{color:#000099}/
  25. --></style></head>/
  26. <body><tablewidth='732'height='490'border='1'bordercolor='#999999'bgcolor='#FFFFFF'>/
  27. <tr><tdwidth='73'height='28'><spanclass='style5'>故障名称:</td><tdwidth='643'>";
  28. strHtml+=refKBaseInfo.strFaultName;
  29. strHtml+="</td></tr><tr><tdheight='27'><spanclass='style5'>故障类型:</td><td>";
  30. strHtml+=refKBaseInfo.strFaultType;
  31. strHtml+="</td></tr><tr><tdheight='31'><spanclass='style5'>故障级别:</td><td>严重级</td></tr>/
  32. <tr><tdheight='31'><spanclass='style5'>影响范围:</td><td>";
  33. strHtml+=refKBaseInfo.strFaultIncidence;
  34. strHtml+="</td></tr><tr><tdheight='62'><spanclass='style5'>故障来源:</td><td>1.运行复杂业务查询;2.病毒</td></tr>/
  35. <tr><tdheight='68'><spanclass='style5'>产生原因:</td><td>";
  36. strHtml+=refKBaseInfo.strFaultReason;
  37. strHtml+="</td></tr><tr><tdheight='68'><spanclass='style5'>处理流程:</td><td>关机->重启</td></tr>/
  38. <tr><tdheight='80'><spanclass='style5'>处理方法:</td><td>";
  39. strHtml+=refKBaseInfo.strHandleMethod;
  40. strHtml+="</td></tr><tr><tdheight='73'><spanclass='style5'>备注信息:</td><td>略</td></tr>/
  41. </table><marqueedirection='up'align='middle'scrolldelay='120'>此知识库仅提供参考信息,并非是最全威信息<br>/
  42. 如有其他问题,请联系金证工程师<br>联系方式:dyx1024@gmail.com</marquee></body></html>";
  43. CRectrc;
  44. GetClientRect(&rc);
  45. CStringstrIn;
  46. strIn=strHtml;
  47. CComQIPtr<IPersistStreamInit>spPersistStream(spDisp);
  48. if(spPersistStream==NULL)
  49. return0;
  50. LPTSTRlpMem=(LPTSTR)::GlobalAlloc(GPTR,strIn.GetLength()+1);
  51. lstrcpy(lpMem,strIn.GetBuffer(strIn.GetLength()));
  52. CComPtr<IStream>spStream;
  53. CreateStreamOnHGlobal(lpMem,TRUE,&spStream);
  54. //初始化后,装载显示
  55. spPersistStream->InitNew();
  56. spPersistStream->Load(spStream);
  57. return0;
  58. }
  59. /*********************************************************************
  60. *函数名称:BOOLPreTranslateMessage(MSG*pMsg)
  61. *说明:屏蔽HTMLVIEW页面的右键功能
  62. *入口参数:
  63. *空
  64. *返回值:
  65. *int--
  66. *作者: socrates
  67. *时间:2008-08-0115:37:39
  68. *备注:
  69. *********************************************************************/
  70. BOOLCErrKbaseDHtmlView::PreTranslateMessage(MSG*pMsg)
  71. {
  72. if(!m_bDisplay)//屏蔽与否的开关
  73. {
  74. switch(pMsg->message)
  75. {
  76. caseWM_CONTEXTMENU:
  77. caseWM_RBUTTONUP:
  78. caseWM_RBUTTONDOWN:
  79. caseWM_RBUTTONDBLCLK:
  80. if(IsWindow(pMsg->hwnd))
  81. {
  82. if(pMsg->wParam==WM_RBUTTONUP)
  83. {
  84. GetParent()->SendMessage(WM_CONTEXTMENU,pMsg->wParam,pMsg->lParam);
  85. }
  86. returnTRUE;
  87. }
  88. }
  89. }
  90. returnCHtmlView::PreTranslateMessage(pMsg);
  91. }

分享到:
评论

相关推荐

    获取网页密码、代码程序.rar_IHTMLDocument2_webbrowser_密码 网页 _网页密码_超链接

    总的来说,通过`WebBrowser`控件和`IHTMLDocument2`接口,开发者可以实现对网页内容的深度操作,包括获取密码和处理超链接,这对于自动化测试、网页抓取等场景非常有用。但务必遵守相关的隐私政策和法律法规,避免...

    MFC对话框里利用CHtmlView加载界面(二)————MFC调用JaveScript - CSDN博客1

    接下来,我们需要获取`IID_IHTMLDocument2`对象接口,它代表HTML文档的接口,可以访问和操作HTML元素。这通常在文档加载完成后调用,例如在`OnDocumentComplete`事件中: ```cpp m_spDoc.Release(); spWebBrowser2-...

    delphi10.3开发的简易网页分析与整站下载程序(包含源代码和详细注释)downpage.rar

    在这个项目中,IHTMLDocument2接口是关键,它是Internet Explorer ActiveX控件的一部分,用于解析和操作HTML文档。通过这个接口,我们可以访问网页的DOM(Document Object Model),获取HTML元素,遍历页面结构,...

    CHtmlView自动填表(申请qq)

    通过学习和分析这个代码,可以更好地理解如何在.NET环境中利用CHtmlView和IHTMLDocument2接口进行自动填表的操作。 总的来说,利用CHtmlView和IHTMLDocument2进行自动填表是一种有效的编程技巧,它可以提高效率,...

    IWebBrowser2登陆网站(无验证码的)

    当页面加载完毕,该事件会被触发,此时我们可以获取到HTML文档的IHTMLDocument2接口,用于进一步操作。 4. **填写表单数据** 登录通常涉及填写用户名和密码。通过IHTMLDocument2,我们可以找到对应的输入元素...

    cocos-win32下实现WebView网页内嵌

    为了实现JavaScript与C++之间的交互,可以使用`DWebBrowserEvents2`的`DocumentComplete`事件,当网页加载完成后,可以获取到`IHTMLDocument2`接口,然后注册事件处理函数,通过`IHTMLDocument2::execScript`执行...

    c# winform 里调用javascrip的方法

    通过类型转换为`IHTMLDocument2`接口,可以更方便地访问和操作DOM元素。 4. **调用JavaScript函数:** 使用`execScript`方法执行JavaScript代码字符串,这里的代码字符串为`"testx('hello');"`,从而实现了从C#代码...

    C++ 使用MSHTML分析html

    2. **接口 (Interfaces)**:MSHTML 中的每个对象都支持多个接口,例如 `IHTMLDocument2`、`IHTMLDocument3` 等。这些接口定义了对象可以执行的操作。 3. **文档对象模型 (DOM)**:DOM 是 HTML 和 XML 文档的标准...

    Fire-IE-master.zip_fire

    创建一个简单的C++项目,引入必要的头文件(如“Shobjidl.h”),然后实例化并初始化IWebBrowser2接口: ```cpp #include #include CoInitialize(NULL); CComPtr&lt;IWebBrowser2&gt; pBrowser; pBrowser....

    简单浏览器实现代码

    3. **IHTMLDocument2**:当网页加载完成后,我们可以通过这个接口来访问和操作HTML文档,比如修改元素的属性,或者执行JavaScript代码。 在【压缩包子文件的文件名称列表】中,"MyBrowse"可能代表了我们的源代码...

    Delphi 2007实现高亮显示TWebBrowser中鼠标指向的HTML元素

    这可以通过调用TWebBrowser的`Document`属性获取到当前页面的IDispatch接口,进一步转换为IHTMLDocument2接口。然后,我们可以利用`IHTMLDocument2::elementFromPoint`方法,传入鼠标位置的坐标,来获取鼠标下的...

    Delphi通过MSHTML实现一个HTML解析类

    导入后,我们可以使用诸如`IHTMLDocument2`,`IHTMLElement`等接口。 2. **创建HTML解析类**:定义一个新类,例如`TDxHtmlParser`,并在此类中声明对MSHTML接口的引用。这些接口将用于加载HTML文档、遍历DOM树、...

    MFC浏览器接口

    3. **DOM访问**:`CHtmlView`提供了对HTML文档对象模型(DOM)的访问,允许程序通过`IHTMLDocument2`接口获取和修改网页元素。例如,可以使用`GetDocument()`函数获取DOM,然后通过DOM接口查找和操作元素。 4. **...

    Delphi 获取html 表格中的数据.zip

    要获取HTML表格中的数据,首先需要导航到目标网页,然后通过WebBrowser控件的Document属性获取到IHTMLDocument2接口,这个接口提供了对HTML文档的访问。接着,可以通过查找表格(table)元素,进一步找到行(tr)和...

    从正在运行的IE中取得HTMLVC源代码

    MSHTML提供了一个名为`IHTMLDocument2`的接口,通过这个接口,我们可以访问和操作HTML文档的各种元素,包括获取源代码。以下是一个简单的步骤概述: 1. **检测运行中的IE实例**: 使用`EnumWindows`函数枚举所有...

    Delphi自动提交网页表单和获取框架网页源码.doc

    2. **定位表单元素**:通过`WebBrowser`控件提供的接口来定位表单中的各个元素(如输入框、按钮等)。 3. **填充表单数据**:对定位到的表单元素进行数据填充。 4. **提交表单**:模拟用户点击提交按钮的动作,完成...

    webbrowser和CHtmlCtrl类

    - `CHtmlCtrl`:通过`IHTMLDocument2`接口直接操作HTML文档,可以实现更精细的控制,如动态修改内容、执行JavaScript。 2. 控制能力: - `webbrowser`控件:提供基本的导航和事件响应,如前进、后退、刷新等,但...

    mfc下支持HTML的CStatic控件

    6. **样式的支持**:通过使用IHTMLDocument2接口,我们可以获取HTML文档的DOM树,并对元素进行操作,如改变字体、颜色等。 7. **编译与调试**:根据项目使用的Visual Studio版本(例如vs6、vs2005),创建或更新...

    使用TWebBrowser将Html文件批量转换成纯文本文件的delphi源代码

    4. **提取纯文本**:编写一个函数,如`ExtractPlainTextFromWebBrowser`,用于从IHTMLDocument2接口提取文本。以下是一个简单的示例: ```delphi procedure ExtractPlainTextFromWebBrowser(const Doc: ...

    Microsoft mshtml

    3. **编程接口(IHTMLDocument2等)**:mshtml提供了一系列接口,如IHTMLDocument2、IHTMLElement等,这些接口允许开发者创建、修改和控制HTML文档。通过COM(Component Object Model)或.NET Framework的System....

Global site tag (gtag.js) - Google Analytics