AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi WinInet - InternetSetStatusCallback reagiert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

WinInet - InternetSetStatusCallback reagiert nicht

Ein Thema von hsbc · begonnen am 19. Okt 2006 · letzter Beitrag vom 19. Okt 2006
Antwort Antwort
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#1

WinInet - InternetSetStatusCallback reagiert nicht

  Alt 19. Okt 2006, 15:09
Hallo allerseits,

ich lade mit FtpGetFile eine Datei vom Server und möchte erreichen, dass während des Downloads die procedure StatusCallback mehrmals aufgerufen wird, um den Fortschritt des Downloads zu bearbeiten. Der Download selbst funktioniert einwandfrei, nur wird die procedure leider nie aufgerufen. Weiss jemand, was ich da falsch mache? Leider geht aus der Dokumentation der Routinen von Microsoft auch nicht hervor, wann bzw. wo InternetSetStatusCallback im Quellcode eingefügt werden muss. Hier die relevanten Teile des Codes:

Delphi-Quellcode:
hSession := InternetOpen(PChar(Application.Title),
            INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

hConnect := InternetConnect(hSession, PChar(Server.Text), INTERNET_DEFAULT_FTP_PORT,
            PChar(User.Text), PChar(Passwort.Text),
            INTERNET_SERVICE_FTP or WININET_API_FLAG_ASYNC, 0, 0);

InternetSetStatusCallback(hSession, @StatusCallback);

result := FtpGetFile(hConnect, PChar(aUrl), PChar(aLokalFile), false, 64, FTP_TRANSFER_TYPE_BINARY, dwBytes);


procedure StatusCallback(hInet: HINTERNET; Context, Status: DWORD;
                         pInformation: Pointer; InfoLength: DWORD);
begin
  ShowMessage('Callback');
end;
mfg
Herbert
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: WinInet - InternetSetStatusCallback reagiert nicht

  Alt 19. Okt 2006, 19:30
Hallo Herbert,

ein paar Hinweise:
  • den Callback würde ich direkt nach einem erfolgreichen InternetOpen() setzen
  • niemals nicht würde ich ShowMessage() in der callback procedure aufrufen
  • die callback procedure muss stdcall als linkage convention verwenden
  • last but not least würde ich den Rückgabewert von InternetSetStatusCallback() prüfen
Schönen Abend noch

marabu
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#3

Re: WinInet - InternetSetStatusCallback reagiert nicht

  Alt 19. Okt 2006, 19:39
Hallo marabu,

das Fehlen von stdcall war es. Jetzt funktioniert das mal. Das ShowMessage war nur versuchsweise, jetzt gebe ich die Ergebnisse in einer Liste aus.

Wie ich den Rückgabewert der Funktion InternetSetStatusCallback noch auswerten kann, ist mir noch unklar, aber damit werde ich noch herumexperimentieren.

Nochmals allerherzlichen Dank für deine Hilfe.

mfg
Herbert
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz