Kod: Tümünü seç
function TFrmGuncel.GetInetFileSize(const FileURL: string): Dword;
var
hInternetSession, hInternetConnect, hHttpOpenRequest: HINTERNET;
lpszAgent, lpszServerName, lpszObjectName, lpszReferrer, lplpszAcceptTypes: PChar;
lpdwBufferLength, lpdwReserved: DWORD;
lpvBuffer: array[0..1024] of Char;
begin
lpszAgent := PChar(ExtractFileName(Application.ExeName));
lpszServerName := PChar(GetParsedURL(FileURL, 0));
lpszObjectName := PChar(GetParsedURL(FileURL, 1));
lpszReferrer := PChar('');
lplpszAcceptTypes := PChar('Accept: */*');
lpdwBufferLength := 1024;
lpdwReserved := 0;
try
hInternetSession := InternetOpen(lpszAgent, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hInternetConnect := InternetConnect(hInternetSession, lpszServerName, INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
hHttpOpenRequest := HttpOpenRequest(hInternetConnect, 'HEAD', lpszObjectName, 'HTTP/1.1', lpszReferrer, @lplpszAcceptTypes, INTERNET_FLAG_RELOAD, 0);
HttpSendRequest(hHttpOpenRequest, nil, 0, nil, 0);
HttpQueryInfo(hHttpOpenRequest, HTTP_QUERY_CONTENT_LENGTH, @lpvBuffer, lpdwBufferLength, lpdwReserved);
if lpdwBufferLength > 0 then
begin
Result := StrToInt(Copy(lpvBuffer, 1, lpdwBufferLength));
end
else
begin
Result := 0;
end;
except
Result := 0;
end;
except
Result := 0;
end;
if hInternetSession <> nil then
begin
InternetCloseHandle(hInternetSession);
end;
end;