C++ 编码针对IE7的BHO

C++ 编码针对IE7的BHO,c++,internet-explorer,visual-c++,com,bho,C++,Internet Explorer,Visual C++,Com,Bho,上下文:经过一些代码修改后,我的BHO不再与IE7一起工作 问题是:我在IHTMLElement5的IHTMLEment5上使用了QueryInterface,结果是0x80004002(不支持这样的接口) 我记得不久前,上的MSDN文档会指出哪个版本的IE支持每个接口。情况不再如此。IHTMLElement5说“带SP2的Windows XP”。。。我认为这是错误的,但不管怎样,现在我的问题是: 强>如何让我的VisualStudio 2010 C++构建失败,如果我想支持IE7,使用IHTM

上下文:经过一些代码修改后,我的BHO不再与IE7一起工作

问题是:我在IHTMLElement5的IHTMLEment5上使用了QueryInterface,结果是0x80004002(不支持这样的接口)

我记得不久前,上的MSDN文档会指出哪个版本的IE支持每个接口。情况不再如此。IHTMLElement5说“带SP2的Windows XP”。。。我认为这是错误的,但不管怎样,现在我的问题是:

<>强>如何让我的VisualStudio 2010 C++构建失败,如果我想支持IE7,使用IHTMLELMET5?< /Stime>< /P> 我用谷歌等搜索了这个主题,发现有一个#define#WIN32(IE#define##WIN32)可以用来定位一个最小的特定IE版本。我的问题是它不会改变任何东西,当我将宏设置为_WIN32 _IE _IE70时,一切都可以正常编译

我在(C:\Program Files(x86)\Microsoft SDK\Windows\v7.0A\Include\mshtml.h)中搜索了字符串“\u WIN32\u IE”,没有找到匹配项。这是否意味着在将宏设置为_WIN32_IE_IE70并在代码中使用IHTMLElement5时,不能使生成失败?

。它仅在IE8上受支持。IE 8在XP上受支持,因此文档是正确的


不幸的是,WIN32 IE不再非常有用;当Windows和IE更紧密地结合在一起时,它有点有用,但实际上任何东西>\u WIN32\u IE\u 60都将公开所有将公开的API。

当文档仅仅提到操作系统版本时,它确实会产生误导。我有一个客户(无论出于何种原因)在VISTA上使用IE7。。。不久前,医生们会说“自从IE8,布拉布拉”