
29.06.2007, 20:44
|
|
Новичок
Регистрация: 25.06.2007
Сообщений: 5
Провел на форуме: 20234
Репутация:
11
|
|
Why this isn't working?
Код:
hT := CreateThread(nil, 0, @GetInetPageSRCasThread, @msg, 0, ThID);
while( true )do
begin
if GetExitCodeThread(hT,exC) then exit;
if exC <> STILL_ACTIVE then exit;
application.ProcessMessages;
WaitForSingleObject(hT, 100);
end;
//TerminateThread(hT, 0);
ShowMessage(GetInetPageSRCasThread_ret);
Код:
function GetInetPageSRCasThread(const fileURL: String):dword;
const
BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of char;
BufferLen: DWORD;
sAppName: string;
begin
Result := 0;
GetInetPageSRCasThread_ret := '';
sAppName := ExtractFileName(Application.ExeName) ;
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0) ;
try
hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0) ;
try
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
GetInetPageSRCasThread_ret := GetInetPageSRCasThread_ret + Copy(string(Buffer),1,BufferLen);
until (BufferLen = 0) OR (length(string(Buffer)) = 0);
finally
InternetCloseHandle(hURL);
end;
finally
InternetCloseHandle(hSession);
end;
ExitThread(0);
end;
|
|
|