Стопицотый раз думал, что с перехватом wininet разобралсо): Баг первый: InternetQueryDataAvailable стала периодически глючить, возвращает TRUE, GetLastError=0 а в dwNumberOfBytesAvailable - мусор. Ну это не так страшно как второй. Баг второй: В тесте на gmail.com, при скачивании страницы после логина, прочитал почти всю страницу, InternetQueryDataAvailable возвращает TRUE, GetLastError=0, dwNumberOfBytesAvailable=0 (то есть говорит что данных больше нет, выхожу из цикла и уведомляю IE) но реально остался кусок контента не прочитанным. Контент читаю, в обработчике internet_status_callback по событию INTERNET_STATUS_REQUEST_COMPLETE. Цикл с InternetQueryDataAvailable и InternetReadFile. На localhost все работает нормально. Версия IE - 7. Кто нибудь сталкивался с таким? Как решали проблему?
После InternetQueryDataAvailable должно приходить INTERNET_STATUS_REQUEST_COMPLETE, ты это учитываешь? Не только после InternetReadFile. Если учитываешь, то косяк где-то у тебя 100%, показывай кодес свой.
да, приходит он то один то несколько раз, так и осталось загадкой зачем microsoft так намутили, что нельзя точно знать когда весь контент скачан и готов к чтению. Во общем пофиксил, я так: заменил InternetQueryDataAvailable/InternetReadFile на InternetReadFileEx, теперь как бы работает.