Si, ho già visto quel link tempo fa ed è stato il punto di partenza per lo sviluppo del mio progretto. Peccato che sia un pò troppo limitato in fatto di nozioni... cercavo qualcosa in più.

Ho guardato molti link e scaricato numerosi esempi (anche in spagnolo , poi arrivando alle pagine in tedesco ho rinunciato ), ma avrei voluto l'opinione di qualcuno che ha già fatto qualcosa del genere.

Provando e riprovando, però, sono arrivato a questo risultato:

codice:
Private Sub UserControl_AsyncReadComplete (AsyncProp As AsyncProperty)
    If AsyncProp.StatusCode=vbStatusCodeError Then 'Controlla se si è verificato un errore
        Msgbox "Il download è fallito"
    Else
        hFile=FreeFile
        Open <nome file> For Binary As #hFile
        Get #hFile, ,AsyncProp.Value
        Close #hFile
    End If
End Sub
ma così non so quale tipo di errore si è verificato.

Per calcolare il tempo stimato del download invece faccio così (volevo sapere se il ragionamento è corretto ed avere suggerimenti su come migliorare):

codice:
Private Sub UserControl_AsyncReadProgress (AsyncProp As AsyncProperty)
    Static LastBytesRead As Long

    If AsyncProp.BytesRead > 0 Then
        dwTime = (AsyncProp.BytesMax - LastBytesRead) / (AsyncProp.BytesRead - LastBytesRead)
        LastBytesRead = AsyncProp.BytesRead
    End If
End Sub
e così dwTime diminuisce man mano che il download procede ma sarà un risultato attendibile??

L'ultima cosa è la velocità del download che proprio non riesco a calcolare.

Sei la mia ultima speranza perchè non so proprio che fare