Иногда я получаю сообщение «Ошибка HRESULT E_FAIL была возвращена при вызове COM-компонента». ошибка при переборе класса ShellWindows. Кажется, это происходит в основном после того, как компьютер выходит из спящего режима. Мне нужно перезагрузить компьютер, чтобы сбросить эту ошибку, что нехорошо.
Ошибка возникает в строке цикла foreach в следующем коде:
log.Debug(String.Format("new ShellWindowsClass"));
ShellWindows m_IEFoundBrowsers = new ShellWindowsClass();
log.Debug(String.Format("Loop begin"));
foreach (InternetExplorer Browser in m_IEFoundBrowsers)
{
log.Debug(String.Format("Browser {0} ?= {1}", Browser.HWND, pid));
if (Browser.HWND == pid)
{
found = Browser;
break;
}
}
log.Debug(String.Format("Loop end"));
Я компилирую для Dot Net Framework 3.0.
Любые предложения по устранению этой ошибки, кроме перезагрузки компьютера?