Кодирование BHO для IE7

Контекст: после некоторых модификаций кода мой BHO больше не работает с IE7.

Проблема: я использую QueryInterface для IHTMLElement для IHTMLElement5, и результат 0x80004002 (такой интерфейс не поддерживается).

Я напомню, что некоторое время назад документация MSDN о Скриптовые объектные интерфейсы (MSHTML) указал бы, какая версия IE поддерживает каждый интерфейс. Это больше не так. IHTMLElement5 документация говорит «Windows XP с пакетом обновления 2» … Я думаю, что это неправильно, но в любом случае, теперь на мой вопрос:

Как заставить мою сборку Visual Studio 2010 C ++ терпеть неудачу, если я хочу поддерживать IE7 и использовать IHTMLElement5?

Я искал тему с помощью Google и SO и обнаружил, что существует #define, _WIN32_IE, который можно использовать для нацеливания на минимальную конкретную версию IE. Моя проблема в том, что это ничего не меняет, все прекрасно компилируется, когда я устанавливаю макрос в _WIN32_IE_IE70

Я искал строку ‘_WIN32_IE’ в (в C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Include \ mshtml.h) и не нашел соответствия. Означает ли это, что вы не можете сделать сборку неудачной при установке макроса на _WIN32_IE_IE70 и использовании IHTMLElement5 в коде?

2

Решение

IHTMLElement5 не поддерживается в IE 7. Он поддерживается только в IE 8. IE 8 поддерживается в XP, поэтому документация верна.

К сожалению, _WIN32_IE больше не очень полезен; когда Windows и IE были более тесно связаны, это было несколько полезно, но фактически все, что> _WIN32_IE_60 собирается раскрыть все API, которые будут выставлены.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector