Здравствуйте, 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 срабатывает четко и без всяких косяков.