私のプログラムは、IE の実行中のインスタンスにフックする dll です。何年もうまく機能しています。
最近、ほこりを払って実行しましたが、以下の最後の行は次のように失敗しますhr = 0x80040154
:
#import <mshtml.tlb> rename("value", "theValue") rename("event", "theEvent")
#import <shdocvw.dll>
// ....
SHDocVw::IShellWindowsPtr spSHWinds;
HRESULT hr = m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows));
IE7 が IE8 に置き換えられたことは問題でしょうか? 他にどこを見ればいいですか?
それが重要な場合、私はVS2008を使用しています。
編集して追加
32/64 ビットの問題であるとは思えません。昨年、同じマシンで問題なく動作しました。変更された唯一の点は (私が気付いた限り) IE のバージョンが 7 から 8 になったことです。
賞金稼ぎへの注意:
私がこのシステムにアクセスできるのは 1 日に数時間 (EST の 0:00 頃) だけなので、あなたの提案に迅速な回答が得られないかもしれませんが、調査します。
確認すべき事項 (レジストリ値など) があると思われる場合は、具体的に記入してください。
追加するために編集:
CreateInstance を初めて呼び出すと、0x80040154 ではなく 0x80070002 が返されることがわかりました。