Re: IWebBrowser2 & get_ReadyState
От: zelop  
Дата: 18.08.11 05:57
Оценка:
Здравствуйте, zelop, Вы писали:

Z>Всем привет,


Z>столкнулся с такой проблемой, после выполнения клика


Z> pElementDisp->lpVtbl->QueryInterface(pElementDisp, &IID_IHTMLElement, (void**)&pElement);

Z> pElement->lpVtbl->click(pElement);

Z>не могу поймать событие по обновлению страницы, кусок кода не срабатывает, так как видимо IWebBrowser2 находится по прежнему в состоянии READYSTATE_COMPLETE.


Z>Не срабатывает кусок кода при выполнении:


Z> while (SUCCEEDED(hr) && rs != READYSTATE_COMPLETE)

Z> {
Z> if (GetTickCount() — dwCnt > timeout)
Z> return FALSE;

Z> Sleep(100);


Z> while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))

Z> DispatchMessage(&msg);

Z> hr = pWb->lpVtbl->get_ReadyState(pWb, &rs);

Z> }

Z>Паузы с обработкой сообщений не помогают, пытался найти решение на msdn/google, но что-то ничего не нашел.


Z>Причем при отладке все норм (если выполнять пошагово).


Z>Предполагаю что есть какой то обработчик или как то можно принудительно сбросить READYSTATE_COMPLETE.


Z>Помогите! =)


Спасение утопающего — дело рук самого утопающего. Вообщем отказался я от использования get_ReadyState и написал свой обработчик DISPID_DOCUMENTCOMPLETE.
Кому поможет сразу отказывайтесь от кривого get_ReadyState, событие DISPID_DOCUMENTCOMPLETE срабатывает четко и без всяких косяков.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.