Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: MSDN InternetOpen(URL) Quelltext

  Alt 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.
fork me on Github
  Mit Zitat antworten Zitat