如何对webbrowser和IE编程(二)

调用 Navigate 方法比GoBack 以及 GoForward  要困难,但如果你正仅仅导航到URL 且并不传递任何附加参数, 它的调用很容易。 举例来说, VB中导航到 Microsoft 主页, 可如下:

WebBrowser1.Navigate "http://www.microsoft.com"

VB代码调用Navigate 如此容易因为所有参数出第一个参数外都可以是可选. 如此相对照,VC++不可以省略任何参数. 如果你想使用VC++不是勇任何特别的参数导航到 Microsoft的 home page, 你必须传递空的VARIANT 结构。 MFC 应用程序,你必须如下调用 Navigate

COleVariant vtEmpty;

m_webBrowser.Navigate(_T("http://www.microsoft.com"), &vtEmpty, &vtEmpty, &vtEmpty, &vtEmpty);

该例子展示了在MFC应用程序中控制WebBrowser控件. 我传递一个普通的字符串而替代 BSTR 因为 MFC 提供了一个 WebBrowser 控件的包装类,第一个载包装类中是LPCTSTR, 一个普通的字符串. 其他参数为指向 VARIANT 结构的指针。 如果你不想指定任何特别的参数, 别仅仅传递 NULL —那样做, 你的应用程序会招来崩溃。你必须传递一个空的VARIANT 结构的指针. 前面的代码使用了 COleVariant 类, 那是一个与 CComVariant 类相似的类。 COleVariant 简单包装了 VARIANT 使得VARIANT 结构易于使用.

属性 现在你看到了所有的 IwebBrowser 的方法,你大概向了解其属性。(我是不是太苛求了?)  IWebBrowser 接口有30个属性,描述于表6-2. 我一已按照IWebBrowser  的Vtable中的字母序列出。

Table 6-2. IWebBrowser 属性按照vtable排序


属性



 


描述



 


Application

 


返回宿主 WebBrowser 控件的自动化对象 (IDispatch) 实现,如果对象不可用,则返回的 WebbOrwser 控件的自动化对象

 


Parent

 


返回 WebBrowser 控件的父控件的自动化实现 (IDispatch) ,通常是容器 — 举例来讲 , ,您的宿主或者 Internet Explorer 窗口。

 


Container

 


返回 WebBrowser 控件容器的自动化对象 (IDispatch) 。通常,该值返回同 Parent 属性一样的值。 .

 


Document

 


返回活动文档的自动化实现 (IDispatch) 。如果 HTML 当前显示在 WebBrowser , Document 属性给出你存取 DHTML 对象模型的途径 .

 


TopLevelContainer

 


返回一个布尔值指示 IE 是否是 WebBRowser 控件的顶级容器。在 words 中,如果 IE 是宿主应用承需则返回 true

 


Type

 


返回已经在 WebBrowser 中装载的对象的类型。举例,如果 HTML document 被装载 , Type 将返回 Microsoft HTML Document 5.0 . 如果文档是 Word 文档 , Type 返回 Microsoft Word Document .

 


Left

 


. 返回或设置控件在容器窗口左边距

 


Top

 


. 返回或设置控件在容器窗口顶部边距

 


Width

 


返回或设置 webbrowser 控件在窗口中的水平方向的向苏为单位宽度

 


Height

 


返回或设置 webbrowser 控件在窗口中的处置方向的向像素为单位高度

 


LocationName

 


返回一个 WebBrowser 当前显示的资源名称的字符串 ( 换句话讲 , HTML 页 , Word 文档 , , folder, 诸如此类 ) 。 如果资源是HTML 页,字符串是标题。如果资源是文件或者文件夹,字符串为文件名或者文件夹名。 — 举例 , foo.doc ( Word 文档)或者   Temp ( temp directory. )

 


LocationURL

 


返回 WebBrowser 正在显示的资源的 URL

 


Busy

 


返回一个布尔值指示 WebBrowser 当前是否正在装入 URL. 。如果当前属性返回 true , 你可以使用 Stop 方法取消代掉导航。

 

看完表 6-2, 清晰展示了你可使用的属性. 当中的一些可能需要更多的解释. IWebBrowser 使用的相当多的一个属性是 LocationURL, 给出了当前你装入WebBrowser窗口的 URL。 获取 LocationURL 值在VB中相当容易:

Dim strLocation

strLocation = WebBrowser1.LocationURL

Visual C++的MFC应用,  MFC 包装类使的访问LocationURL 很容易. 你简单调用 GetLocationURL 方法,该方法返回一个 CString 对象. 当你想在自动化IE中或者webBrowser的MFC应用中访问 LocationURL when automating Internet Explorer or when hosting the WebBrowser control in a C++ application that's not built by using MFC, 你必须调用携带一指向BSTR的指针BSTR 将包含返回值. 此处展示如何在 C++中使用:

BSTR bstrURL;

m_pInternetExplorer->get_LocationURL(&bstrURL);

 

存取 Document 属性在VB中相当容易,当定义一个变量后(举例, HtmlDoc), 值需要 set 为 Document 属性:

Set HtmlDoc = WebBrowser1.Document

MFC 中也很容易,使用 MFC 包装类的GetDocument方法:

IDispatch* pDisp;

pDisp = m_webBrowser.GetDocument();
GetDocument 返回指向代表文档 IDispatch 接口的指针. 如果 GetDocument 失败, 该对象将为NULL.

非MFC C++ 应用或者任何自动化IE的C++ 应用访问Document 属性就只能够采用调用COM的方法—通过属性的get_方法. (注艺属性实只读,所以这里无put_ 方法.) 当调用 Document  get_ 方法,你传递一个接受 IDispatch 的指针.此处展示了如何调用:

IDispatch* pDisp;
HRESULT hr = m_pInternetExplorer->get_Document(&pDisp);                    

当使用这些代码,你可以使用 SUCCEEDED 宏( Win32 API的一部分), 以监测调用是否成功。在尝试使用Idispatch接口前你应当确信调用成功。

时间: 2024-09-16 15:52:59

如何对webbrowser和IE编程(二)的相关文章

gpu c语言-cuda gpu 编程 二维线程块

问题描述 cuda gpu 编程 二维线程块 这个程序语言用到二维线程块么 什么时候需要? 解决方案 GPU-cuda编程葵花宝典CUDA下的GPU编程--线程和变量CUDA下的GPU编程--线程和变量

如何对webbrowser和IE编程(一)

一. 因为工作缘故,需要研究对 IE 编程,所以翻译了 MS 的有关资料,供参考.   IE 的体系   WebBrowser Host 首先,必须有 COM 的基础知识,因为 IE 本身就是 COM 技术的典型应用.我们看到最上层是 WebBrowser 的宿主( Host ),也就是任何你想重用(ReUse)webbrowser control 的应用程序,可以是 vb 程序,也可以是 vc 或者任何其他语言的应用程序.应用程序必须是可容纳 activex 控件的容器. Webbrowser

JAVA的网络功能与编程 二

编程|网络     五.显示网络上其他HTML文档     利用Java提供的getAppletContext().showDocument(URL)可以 显示其他结点的HTML文档,同前面的显示网络上其他结点的图象, 有两种格式,下面各举一例:                       ●程序8   格式一 import java.applet.*; import java.awt.*; import java.net.*; public class showdoc extends Appl

Windows Socket网络编程(二) 套接字编程原理

一.客户机/服务器模式 在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model).该模式的建立基于以下两点:1.非对等作用:2.通信完全是异步的.客户机/服务器模式在操作过程中采取的是主动请示方式: 首先服务器方要先启动,并根据请示提供相应服务:(过程如下) 1.打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求. 2.等待客户请求到达该端口. 3.接收到重复服务请求,处理该请求并发送应答信号. 4.返回第二步,等待另一客户

如何对webbrowser和IE编程(七)

加入高级功能 本节将展示如何加入高级功能到你的应用程序或者ActiveX控件.将展示如何从一个ActiveX控件中访问Internet Explorer的 IWebBrowser2,以及如何从一个Web页面的frame中获得WebBrowser 对象.将会展示实现一些并非容易实现的功能.本节有一定难度.所有代码采用C++ 和COM实现,你应当有一定坚实的基础才可以完成本节的理解 从ActiveX 控件中访问Internet Explorer 的IWebBrowser2 在Activx控件中访问I

如何对webbrowser和IE编程(四)

寄宿WebBrowser 控件 我们现在开始在VB和VC中创建一些程序来寄宿(Host)WebBrowser控件.在你完成本部分的样本,你将对如何创建寄宿一个WebBrowser控件的应用程序又一个基本的了解.当你看到如此容易的加入Web浏览功能加入到你的应用程序,我相信你会立即开始实践的. 使用VB 在VB中,你可以在5分钟内开发一个全功能的自己的web浏览 .以下步骤为建立一个web浏览器程序: 1.     启动VB. 2.        选择" Standard EXE " ,

转贴:MSDN访谈录之C#编程二

编程 ROBERT HESS:C#被认为是微软的私有语言吗? ANDERS HEJLSBERG:其实并非如此.我们与产业伙伴特别是HP和Intel合作,今年年初,我们向一个叫做ECMA(欧洲计算机制造商协会)的欧洲标准化组织提交了建议,以便标准化C#和CLI. CLI代表通用语言基层体系(Common Language Infrastructure). ROBERT HESS:而这是不是有点类似于C Runtime 和VB Runtime? ANDERS HEJLSBERG:嗯,实际上CLI是.

GDI+编程(二)使用画笔

画笔常用于绘制图形的轮廓.GDI+的画笔除了具有常见的色彩和宽度属性外,还具有对齐方式,线帽,变换方式等属性.GDI+中通过Pen类来定义画笔对象. (一).构造与使用画笔 Pen(brush, width); //用颜色与线宽构造一个画笔 Pen(color, width); //用画刷与宽度构造一个画笔 例子: Pen pen(Color(255, 0, 0, 0),1);//用第一个构造函数.构造宽度为1的黑色画刷 graphics.DrawLine(&pen, 20, 10, 300,

Socket编程二

客户端 using System.Windows.Forms;using System.Net.Sockets;using System.Threading;using System.IO;using System.Net;//使用IPAredd类,IPHostEntry类namespace QQ{ public partial class Tcpclient : Form { private StreamWriter write; private NetworkStream stream; p