Newsgroup: it.comp.lang.visual-basic
Titolo: Problema Api Wininet

Qualcuno mi sà indicare perchè questo programmino non funziona?
(InternetReadFile)
grazie
(è un tentativo di fare un dnload da vb6 con FTP)
----------------------------------------------------------------------------
-----------------------------------------------------
Dim bret As Boolean, hConnection&, hOpen&
Dim nFlag As Long
        'If chkPassive.Value Then
        '    nFlag = INTERNET_FLAG_PASSIVE
        'Else
            nFlag = 0
        'End If
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString,
vbNullString, 0)
If hOpen = 0 Then errore "InternetOpen": End
hConnection = InternetConnect(hOpen, "127.0.0.1",
INTERNET_INVALID_PORT_NUMBER, "carlo", "giova2", INTERNET_SERVICE_FTP,
nFlag, 0)
If hConnection = 0 Then errore "InternetConnect": GoTo fine
bret = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString,
vbNullString, 0)
If bret = False Then errore "Internetopen"
bret = FtpSetCurrentDirectory(hConnection, "/")
bret = FtpOpenFile(hConnection, "/pippo.dat", GENERIC_READ,
FTP_TRANSFER_TYPE_BINARY, 0)
If bret = False Then errore "FtpOpenFile": GoTo fine
        If bret = 0 Then
        Else
            Close 99
            Open "C:\pippo.dat" For Binary As 99
            Dim BytedaLeggere&
            BytedaLeggere& = 1024
            Dim buffer As String * 1024, byteletti&, erore&, erro$, buffle&,
i&
            Do
'***************************************************************************
****************************************************
                     bret = InternetReadFile(hConnection, buffer,
BytedaLeggere&, byteletti&)  ' MI DA SEMPRE 0
'***************************************************************************
*****************************************************
                     doEvents
                If bret = 0 Then
                    MsgBox "ERRORE"
                    Exit Do
                Else
                    If byteletti = 0 Then
                        Close
                        MsgBox "Concluso"
                        Exit Do
                    Else
                        Put 1, , buffer
                        konta = Val(konta) + byteletti
                    End If
                End If
            Loop
        End If
fine:
        If hConnection Then bret = InternetCloseHandle(hConnection)
        If hOpen Then bret = InternetCloseHandle(hOpen)
End Sub

 BytedaLeggere&, byteletti&)  ' MI DA SEMPRE 0
Il risultato di FtpOpenFile non e' un codice di errore booleano ma e' un
Long che restituisce l'handle del file indicato (oppure 0 in caso di
errore); e' questo il valore da usare come primo parametro nella chiamata a
InternetReadFile e non hConnection... quindi:
Dim hFile As Long
[...]
hFile = FtpOpenFile(hConnection, "/pippo.dat", _
        GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0)
If hFile = 0 Then errore "FtpOpenFile": GoTo fine
[...]
bret = InternetReadFile(hFile, buffer, BytedaLeggere&, byteletti&)
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett Brown

"Luca Dormio" <lucaFAV...@tinFAVA.it> ha scritto nel messaggio
news:9ocfqq$m9i$1...@fe2.cs.interbusiness.it...

Sono un minchione. Scusami e tante grazie