è proprio quello che ho fatto.
solo che io devo per forza leggere un byte alla volta ( è uno stream ), e quando chiudo la connessione mi rimane appesa

hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)

hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)

chiudicon = True
If hFile <> 0 Then

Dim curbyte
Dim lastbyte
Dim imgstart
Dim imgend
lastbyte = 0

Do While (InternetReadFile(hFile, sbuffer, 1, Ret) And chiudicon)
....
Loop

InternetCloseHandle hFile
InternetCloseHandle hOpen
sbuffer = 0
data = 0
hFile = 0
hOpen = 0