編集:詳細については、投稿の最後を参照してください。
Firebreath フレームワーク (1.7.0) を介して作成されたプラグインをロードしようとしています。Internet Explorer 10 を使用してデスクトップ モードで Windows 8 を使用しています。Firebreath に付属の組み込みテスト FBTtestPlugin でこれを再現しました。オブジェクト要素が作成されるという点で失敗はサイレントですが、プラグインによって指定されたプロパティがありません。これをデバッグするにはどうすればよいですか?Microsoft Internet Explorer 互換性ツールは、プラグインの読み込みに失敗していると報告しています。
(FBTtestPlugin は 3 つのプラグインをロードするため、3 つのエラーが発生します。)
同じ設定で動作する他の (FB 以外の) プラグインがあります (例: http://msdn.microsoft.com/en-us/library/dd565667(v=vs.85).aspxは正常に動作します)このサイトのすべての例と同様にhttp://ie.microsoft.com/testdrive/browser/activexfiltering/Default.html )。
セキュリティ設定の膨大な組み合わせを試しましたが、これまでで最もリラックスした設定は次のとおりです。
- ツール / 安全性 / ActiveX フィルタリング: チェックされていません
- インターネット オプション / セキュリティ / インターネット: 「保護モードを有効にする」のチェックが外されている
- インターネット オプション / セキュリティ / インターネット: カスタム レベルです。ActiveX では、「ActiveX フィルタリングを許可する」などの制限的なプロパティを除いて、すべてが「有効」になっています。
- これらの設定に基づいて、あらゆる種類のセキュリティ警告が表示されます。
注: これらの設定を保持するつもりはありません。プラグインを機能させてから、逆方向に作業してセキュリティ設定を再度有効にしたいだけです。
更新 私はこれを部分的に理解し、FB テスト FBTestPlugin を実行できるようになりました。IE のデバッグを容易にするために、レジストリ キー HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth を 0 として定義し、ブラウザーが使用するプロセスを 1 つに制限しました。残念ながら、IE10 では、Program Files と Program Files (x86) の iexplore.exe の両方が 64 ビット バージョンの IE に直接送信されます。これにより、32 ビット プラグインの実行が妨げられ ( http://support.microsoft.com/kb/2716529を参照)、症状はサイレント エラーです。
ただし、私のプラグインは IE での読み込みに失敗し、上記のタイトルを変更した質問は未解決のままです。問題は、サイレント ロードの失敗です。ただし、プラグインの設定に関係があるのではないかと思います。互換性テスト ツールに表示される CLSID (上記の例のように) は、有効な GUID ではなく、すべて 0 として表示されます。さらに、レジストリは奇妙に見えます: キー HKCR\Company.Name は HKCR\Company.Name.1 と同じように存在しますが、どちらも空です (正常に動作するプラグインのように CLSID の子を持つ代わりに)。予想される GUID は存在しますが、偽の名前 "applications.'" の下にあります。現在、regsvr32 の実行時に呼び出されるコードを掘り下げています。
皆さんありがとう!