Друзья!
Потратил уйму времени

на следующую проблему: необходимо программно вставлять текст в поле ввода в HTML документе, загруженном в IE. Приведенная ниже процедура _отлично_ выполняет эту задачу, пока в IE через гл.меню или нажатием на ссылку не открывается новое окно. После этого процедура "сбоит", выдавая exception при попытке "вставить" новое значение в поле ввода.
Если кто встречался с таким неприятным моментом, подскажите, пожалуйста, как преодолеть...
Заранее благодарен.
Спасибо
bool CMyClass::PutHtmlText(BSTR const* pbsTextToPut)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // Needed for any MFC usage in DLL
try
{
CComPtr<IDispatch> spDisp;
HRESULT hr = ((CSearchToolBand*)m_pBand)->m_spIE->get_Document(&spDisp);
if(!FAILED(hr))
{
CComQIPtr<IHTMLDocument2> spHtmlDoc2(spDisp);
if(spHtmlDoc2)
{
CComPtr<IHTMLElement> spElement;
spHtmlDoc2->get_activeElement(&spElement);
CComQIPtr<IHTMLInputTextElement> spInputTextElement(spElement);
if(spInputTextElement)
{
//до сих пор все ОК
CComBSTR bsInValue(*pbsTextToPut);
hr = spInputTextElement->put_value(bsInValue);
//строчка выше вызывает исключение если было открыто новое окно IE браузера
if(SUCCEEDED(hr))
{
return true;
} // if(SUCCEEDED(hr))
} // if(spInputTextElement)
} // if(spHtmlDoc2)
} // if(!FAILED(hr))
} // try
catch(...)
{
DBGPRINT_FMT("PutHtmlText <%p>: raised exception", (void*)this);
} // catch
return false;
}