Здравствуйте, Mansell, Вы писали:
[]
1. Не оверквотьте.
2. Есть теги для оформления кода
3. Вы неправильно работаете с BSTR.
4. Вместо оператора сравнения == поюзан оператор присваивания =
5. Есть утечки интерфейсов — делаете QueryInterface, затем не видно вызова Release.
6. Исправления в коде ниже (не все исправления

).
M>Огромное спасибо за внимание — но вот беда :
IDispatch *iDisp = NULL;
IHTMLElement *pTarget=NULL;
IHTMLButtonElement *pInputButton = NULL;
WideString tt;
HRESULT hResult;
hResult=pAll->item(index,index,&iDisp);
if ( SUCCEEDED( iDisp -> QueryInterface ( IID_IHTMLButtonElement,(LPVOID* )&pInputButton ))
&& pInputButton )
{
BSTR bStr;
hResult = pInputButton->get_value(&bStr);
if(SUCCEEDED(hResult))
{
tt = bStr;
SysFreeString(bStr);
}
if (tt=="Login") // у вас был оператор присваивания
if ( SUCCEEDED ( iDisp->QueryInterface ( IID_IHTMLElement, ( LPVOID* )&pInputButton )) && pTarget )
pTarget->click();
}
Примерно так, в общем.