浏览器编程简介(IWebBrowser2)

MSDN中的位置:ms-help://MS.MSDNQTR.2003FEB.2052/progie/workshop/browser/webbrowser/reflist_cpp.htm

1.常用事件

NewWindow3:当链接需要在新窗口打开时发生

void CWebPageDlg::NewWindow3Explorer(
LPDISPATCH* ppDisp, BOOL* Cancel,
unsigned long dwFlags, LPCTSTR bstrUrlContext,
LPCTSTR bstrUrl)
{
 *ppDisp=m_InternetExplorer.get_Application();
 //((CMultipageIeDlg*)GetParent())->NewPage(bstrUrl);//新建窗口
 *Cancel=TRUE;
}

TitleChange:当页面的标题已被读出时发生
void CWebPageDlg::TitleChangeExplorer(LPCTSTR Text)
{

}

NavigateComplete2:当链接访问完成时发生,这个时候get_LocationURL()可以得到当前页的完整URL
void CWebPageDlg::NavigateComplete2Explorer(LPDISPATCH pDisp, VARIANT* URL)
{
 CString csUrl=m_InternetExplorer.get_LocationURL();
 if (csUrl.Find("about:blank")<0)//不是about:blank
 {
  m_csUrl=csUrl;
 }
}

CommandStateChange:当浏览器的状态发生变化时发生
void CWebPageDlg::CommandStateChangeExplorer(long Command, BOOL Enable)
{
 if (CSC_NAVIGATEBACK==Command)
 {
  m_bBack=Enable;//后退功能可用
 }
 if (CSC_NAVIGATEFORWARD==Command)
 {
  m_bForward=Enable;//前进功能可用
 }
}

2.常用属性

禁止弹出脚本错误提示:
HRESULT put_Silent(VARIANT_BOOL bSilent);

3.常用方法

访问指定Url:
HRESULT Navigate(
    BSTR url,
    VARIANT *Flags,
    VARIANT *TargetFrameName,
    VARIANT *PostData,
    VARIANT *Headers
);

例如:
m_InternetExplorer.Navigate("http://www.qingfengju.com/",0,0,0,0);

后退:
HRESULT GoBack(VOID);

前进:
HRESULT GoForward(VOID);

返回浏览器首页:
HRESULT GoHome(VOID);

刷新当前页:
HRESULT Refresh(VOID);

时间: 2024-11-03 12:35:15

浏览器编程简介(IWebBrowser2)的相关文章

Linux Framebuffer编程简介

linux下,framebuffer设备文件名通常是/ dev/fb0,1,2等.控制framebuffer设备的一般步骤如下:1) 打开设备,映射framebuffer2)依照硬件要求,准备好数据3)把数据复制到framebuffer例子程序如下:1)打开设备,映射framebufferstatic void *fbbuf;int openfb(char *devname){    int fd;    fd = open(devname, O_RDWR);    if (ioctl(fd,

Python基础-第七天-面向对象编程进阶和Socket编程简介

本篇内容: 1.面向对象编程进阶-静态方法 2.面向对象编程进阶-类方法 3.面向对象编程进阶-属性方法 4.面向对象编程进阶-特殊成员(内置方法) 5.面向对象编程进阶-反射 6.异常处理.断言 7.Socket编程简介 一.面向对象编程进阶-静态方法 1.静态方法的实现 通过@staticmethod装饰器可以把其装饰的方法变为一个静态方法: 变成静态方法后,形参中可以不用写self了.如果写了self,默认是不会把对象本身传递给self,需要手动传递: class Dog(object):

OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld

OpenCL安装 安装我不打算花篇幅写,原因是OpenCL实在是可以太多的平台+环境下实现了,包括GPU和FPGA,以及不同的器件支持,在这里我主要把网上可以找到比较不错的经验贴列一下,方便大家,我主要关注了FPGA的,其他GPU的大家网上搜搜吧: altera opencl sdk下载: https://www.altera.com.cn/products/design-software/embedded-software-developers/opencl/overview.html alt

OC基础-面向对象编程简介

OC语言特点: C语言的超集,可与C,C+混编,具有良好的兼容性. 具备完善的面向对象特征. 包含一个运行时系统. 类库丰富. 面向对象编程(OOP:Object Oriented Programming)简介: 常用语言:java,C#,C++ 特征:对象,类,封装,继承,多态 面向过程与面向对象区别: 前者以过程为中心实现函数,依次调用,以过程为中心. 分解问题组成的对象,协调对象间相互通信.以对象为中心. OC中类的定义: 使用对象完成程序. 先定义类,在创建对象,然后使用对象. 接口部分

《网络编程》套接字编程简介

本节介绍的套接字是可以实现不同计算机之间的远程进程间通信.套接口是网络进程的 ID,在网络中每一个节点都有一个网络地址,也就是 IP 地址,两个进程间通信时,首先要确定各自所在网络节点的网络地址.但是,网络地址只要确定进程所在的计算机,由于一台计算机上同时可能有多个网络进程,所以仅凭网络地址还不能确定是网络中的哪一个进程,因此套接口中还需要其他信息,也就是端口.在一台计算机中,一个端口号只能分配给一个进程,所以,进程和端口之间是一一对应的关系.因此,使用端口号和网络地址的组合就能唯一地确定整个网

(原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义01--对象的含义01--属性和字段

第八章 面向对象编程简介 本章内容: ●  什么是面向对象编程 ●  OOP技术 ●  Windows Forms应用程序对OOP的依赖关系 8.1  面向对象编程的含义 前面介绍的编程方法称为函数(或过程)化编程,常常会导致所谓的单一应用程序,即所有的功能都包含在几个代码模块中(常常是一个代码模块). 而使用OOP技术,常常要使用许多代码模块,每个模块都提供特定的功能,每个模块都是孤立的,甚至与其他模块完全独立.这种模块化编程方法提供了非常大的多样性,大大增加了重用代码的机会. OOP技术以结

C# UDP编程简介

一.UDP介绍 UDP和TCP都是构建在IP层之上传输层的协议,但UDP是一种简单.面向数据报(Sock_Dgram)的无连接协议,提供的是不一定可靠的传输服务. 然而TCP是一种面向连接.可靠的,面向字节流(Sock_Stream)的传输协议,对于“无连接”是指在正式通信前不必与对方先建立连接,不管对方状态如何都可以直接发送过去(就如QQ中通过QQ号查看好友后发送添加好友请求,此间不需要考虑对方的状态如何,都照样发送请求).从UDP和TCP的定义中就可以看出它们两者的区别了,(1)UDP的可靠

CUDA 并行编程简介

前言 并行就是让计算中相同或不同阶段的各个处理同时进行.目前有很多种实现并行的手段,如多核处理器,分布式系统等.本专题的文章将主要介绍使用 GPU 实现并行的方法.参考本专题文章前请务必搭建好 CUDA 开发平台,搭建方法可以参考上一篇文章. GPU 并行的优缺点 优点: 1. 显存具有更大的内存带宽 2. GPU 具有更大量的执行单元 3. 价格低廉 缺点: 1. 对于不能高度并行化的工作,能带来帮助不大. 2. 对于绝大多数显卡型号,CUDA 仅支持 float 类型而不支持 double

多线程编程简介

http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix 也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支持,包括 Windows/NT,当然,也包括Linux. 为什么有了进程的概念后,还要再引