баги InternetQueryDataAvailable

Тема в разделе "WASM.WIN32", создана пользователем planet, 15 фев 2009.

  1. planet

    planet New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    108
    Стопицотый раз думал, что с перехватом 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.

    Кто нибудь сталкивался с таким? Как решали проблему?
     
  2. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Еще аз проверь все функции которые в твоем алге требуют передачи указателей...
     
  3. barton

    barton New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2008
    Сообщения:
    164
    Адрес:
    Czechoslovakia
    После InternetQueryDataAvailable должно приходить INTERNET_STATUS_REQUEST_COMPLETE, ты это учитываешь? Не только после InternetReadFile. Если учитываешь, то косяк где-то у тебя 100%, показывай кодес свой.
     
  4. planet

    planet New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    108
    да, приходит он то один то несколько раз, так и осталось загадкой зачем microsoft так намутили, что нельзя точно знать когда весь контент скачан и готов к чтению. Во общем пофиксил, я так: заменил InternetQueryDataAvailable/InternetReadFile на InternetReadFileEx, теперь как бы работает.