2

コンテキスト: コードをいくつか変更した後、BHO が IE7 で動作しなくなりました。

問題: IHTMLElement5 の IHTMLElement で QueryInterface を使用すると、結果は 0x80004002 になります (そのようなインターフェイスはサポートされていません)。

以前、 Scripting Object Interfaces (MSHTML)に関する MSDN ドキュメントには、各インターフェイスをサポートする IE のバージョンが示されていたことを思い出してください。これはもはや当てはまりません。IHTMLElement5 のドキュメントには「Windows XP with SP2」と書かれています...それは間違っていると思いますが、とにかく、私の質問に:

IE7 をサポートし、IHTMLElement5 を使用する場合、Visual Studio 2010 C++ ビルドを失敗させるにはどうすればよいですか?

Google と SO で件名を検索したところ、最小の特定の IE バージョンをターゲットにするために使用できる #define, _WIN32_IE があることがわかりました。私の問題は、マクロを _WIN32_IE_IE70 に設定すると、何も変更されず、すべて正常にコンパイルされることです。

(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\mshtml.h) で文字列 '_WIN32_IE' を検索しましたが、一致するものが見つかりませんでした。マクロを _WIN32_IE_IE70 に設定し、コードで IHTMLElement5 を使用すると、ビルドを失敗させることができないということですか?

4

1 に答える 1