за документы :
WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE
Данные доступны для извлечения с
WinHttpReadData.
Параметр lpvStatusInformation указывает
к DWORD, который содержит количество
байты данных доступны.
параметр dwStatusInformationLength
само по себе равно 4 (размер DWORD).
и
WINHTTP_CALLBACK_STATUS_READ_COMPLETE
Данные были успешно прочитаны из
сервер. LpvStatusInformation
параметр содержит указатель на
буфер, указанный в вызове
WinHttpReadData.
параметр dwStatusInformationLength
содержит количество прочитанных байтов.
Могут быть и другие соответствующие уведомления, но эти два, кажется, являются ключевыми. Получение «процента» не обязательно тривиально, потому что вы можете не знать, сколько данных вы получаете (не во всех загрузках задана длина контента ...); Вы можете получить заголовки с помощью:
WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE
Заголовок ответа получен
и доступен с
WinHttpQueryHeaders.
Параметр lpvStatusInformation равен
NULL.
и если Content-Length IS доступен, то процент может быть вычислен путем отслеживания общего количества байтов в каждом уведомлении «доступные данные», в противном случае ваше предположение будет таким же, как у меня;