Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
Delphi 2007 Professional
|
AW: MSDN InternetOpen(URL) Quelltext
17. Mai 2013, 13:03
Delphi-Quellcode:
Uses ..., UrlMon;
function DownloadInternetResource( const URL : WideString; const outStream : TStream ) : Boolean;
const
BUFFER_SIZE = 8192;
var Stream : IStream;
Buffer : array of byte;
numBytes : longint;
hr : HRESULT;
begin
SetLength( Buffer, BUFFER_SIZE );
// Achtung: D5 hat einen Bug bei der Deklaration von URLOpenBlockingStream
// deshalb der Cast beim 3. Parameter
{$IFDEF VER130}
if (URLOpenBlockingStreamW( NIL, PWideChar( URL), IStream(@Stream), 0, NIL) = S_OK) then
{$ELSE}
if (URLOpenBlockingStreamW( NIL, PWideChar( URL), Stream, 0, NIL) = S_OK) then
{$ENDIF}
begin
hr:= Stream. Read (@Buffer[0], SizeOf(Buffer), @numBytes );
while (hr = S_OK) do
begin
outStream. Write( Buffer[0], numBytes );
hr:= Stream. Read (@Buffer[0], BUFFER_SIZE, @numBytes );
end;
Result := TRUE;
end
else
Result := FALSE;
end;
Als Stream übergibst du einen Memory- oder StringStream, dann kannst du nach dem Aufruf auf die Daten zugreifen.
Nicht vergessen, den Rückgabewert der Funktion zu prüfen.
|
|
Zitat
|