Re[3]: Програмно нажать на IID_IHTMLButtonElement
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 04.01.05 15:20
Оценка: 3 (1)
Здравствуйте, 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();


}


Примерно так, в общем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.