Использование Wininet Api

shisik

Well-known member
26.08.2007
154
0
#1
Пишу свою качалку для интернета с возможностью докачки файлов. Использую WinInet API. Для организации докачки есть функция InternetSetFilePointer. Только после её использования файл не начинает качаться с указанной позиции, а качается "вхолостую" до указанной позиции, а потом продолжает качаться нормально. При этом функция InternetReadFile не возвращает управление, пока не дойдёт до позиции, указанной в InternetSetFilePointer.
В интернете я нашел объяснение: проблема в том, что если файла нет в кеше (Temporary Internet Files), то он его скачивает сначала в кеш (целиком), а потом уже дальше. И действительно, пока файл скачан не на 100% в интернет-кеше его нет. Потом, когда скачается полностью, он там появляется.
Возникает вопрос: можно ли это как-нибудь обойти? Можно ли заставить программу (или wininet) писать недокачанные файлы в интернет-кеш? Или ещё лучше создать свой локальный кеш (чтоб при очистке общего кеша не удалялись файлы), в который и будут скачиваться файлы. Или например чтоб кешем считался сам файл, независимо от его местонахождения. Это был бы самый оптимальный вариант :) В конце концов, другие "качалки" это ж умеют...

ЗЫ. Возникает вопрос к Microsoft: какой "умный" человек так реализовал InternetSetFilePointer/InternetReadFile?
 
A

angell

#2
Скажите, пожалуйста, как проверить на ошибки программу, написанную в Microsoft Visual C++ 2005 Express Edition
 

shisik

Well-known member
26.08.2007
154
0
#3
OMG! Зачем же так некропостить? :) Да и какое вопрос имеет отношение к топику?