我添加了newwindow3事件的代码,但是在编译的时候提示这部分代码中的
BEGIN_EVENTSINK_MAP(CAdHtmlView,CHtmlView) 
ON_EVENT(CAdHtmlView,AFX_IDW_PANE_FIRST,DISPID_NEWWINDOW3,NewWindow3,VTS_PDISPATCH  VTS_PBOOL  VTS_I4  VTS_BSTR  VTS_BSTR) 
END_EVENTSINK_MAP()“DISPID_NEWWINDOW3” : 未声明的标识符,头文件我也加了
#include   <exdispid.h> 
#include   <Mshtml.h> 
#include   <Mshtmdid.h> 
#include   <shobjidl.h> 
#include   <exdisp.h>请做过的朋友指点,我用的是 vc 7.0

解决方案 »

  1.   

    #improt ".......\\mshtml.tlb"  //mshtml.tlb的完整路径
      

  2.   

    #define DISPID_NEWWINDOW3 273
      

  3.   

    CHtmlView 本身不支持NewWindow3。
      

  4.   

    这个需要Windows XP Sp2以上版本的Windows SDK
    而且应该需要定义目标平台为Windows XP Sp2以上版本
    你也可以自己加定义,不过一个常量而已。
    这个事件在Windows XP Sp2版本的IE6以及IE7或更新版本里面才会触发。
      

  5.   

    好用了,继续请教一个问题,为什么newwindow3事件里,我的到的BSTR  bstrUrlContext,BSTR  bstrUrl,这两个参数都是乱码呢?
      

  6.   

    VS2005, VS2008编译肯定不会有问题.
      

  7.   

    安装MS SDK,且onnewwindow3跟IE的版本有关,好像是6以后的版本才支持。
    我测试了一下添加以下两个头文件即可。
    在你的程序中可以直接将NewWindow3改为 273.
    #include <MsHTML.h>
    #include <comdef.h>ON_EVENT(CIESharedDialog, IDC_EXPLORER1, 273 /* NewWindow3 */, OnNewWindow3Explorer, VTS_PDISPATCH VTS_PBOOL VTS_I4 VTS_BSTR VTS_BSTR )