Code:
function DownloadFile(const fileURL, FileName : String) : Boolean;
const
BufferSize = 1024;
var
hSession, hURL : HInternet;
Buffer : Array[1..BufferSize] of Byte;
BufferLen : DWORD;
f : File;
sAppName : String;
begin
sAppName := ExtractFileName(ParamStr(0));
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
Try
hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0);
Try
AssignFile(f, FileName);
Rewrite(f, 1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
result := TRUE;
Finally
InternetCloseHandle(hURL)
End;
Finally
InternetCloseHandle(hSession)
End;
end;