InternetSetFilePointer
、およびの組み合わせを使用してInternetReadFile
、再開可能なダウンロードをサポートしています。そのため、ファイルのダウンロードを開始するときは、既にその一部があるかどうかを確認し、持っているファイルInternetSetFilePointer
のサイズを使用して呼び出してから、読み取りを開始します。これは機能します...しかし、ここに私の観察があります:
ファイルの 90% をダウンロードし、ダウンロードに 2 分かかった場合、再開すると、最初の呼び出しにInternetReadFile
約 2 分かかります。舞台裏では、ファイルを最初からダウンロードし、 に与えた時点までのすべてを捨ててInternetSetFilePointer
、「次の」データを返すだけだと結論付けることができます。
質問は次のとおりです。
1) WinInet は「シミュレート」InternetSetFilePointer
しますか、それとも実際にその情報をサーバーに提供しますか?
2) HTTP サーバーがサポートしていると仮定して、WinInet を目的のシーク ポイントまでスキップさせる方法はありますか?
ダウンロード元のサーバーは Amazon S3 サーバーで、99.9% 確実にレジュームをサポートしています。