我的程序是一个 DLL,它连接到一个正在运行的 IE 实例。多年来一直运行良好。
最近我把它掸掉并运行它,但下面的最后一行失败了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。
赏金猎人注意事项:
我每天只能访问该系统几个小时(美国东部标准时间 0:00 左右),因此您可能无法快速回复您的建议,但我会调查他们。
如果您认为我应该检查一些事情(例如注册表值),请具体说明。
编辑添加:
我现在看到我第一次调用 CreateInstance 时,它返回 0x80070002,而不是 0x80040154。