Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction InternetConnect

Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" ( _
                 
ByVal hInternetSession As Long, _
                 ByVal sServerName As String, _
                 ByVal nServerPort As Integer, _
                 ByVal sUsername As String, _
                 ByVal sPassword As String, _
                 ByVal lService As Long, _
                 ByVal lFlags As Long, _
                 ByVal lContext As Long) As Long
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 4.0
. Windows 2000/XP : Oui

Description :
Cette fonction ouvre une session FTP, Gopher, ou HTTP sur site donné.
hInternetSession est un pointeur vers une session internet valide (ouvert avec InternetOpen).
sServerName contient le nom du serveur vers lequel s'effectue la connexion (cela peut être une adresse IP).
nServerPort représente le numéro de port utilisé pour la connexion (tableau de constante ci-dessous).
sUsername est le nom d'utilisateur/login.
sPassword est le mot de passe associé à l'utilisateur.
lService indique le type de service auquel on cherche à se connecter, parmis les constantes du second tableau.
lFlags peut contenir INTERNET_FLAG_PASSIVE dans le cas d'une connexion FTP.
lContext est un pointeur permettant d'identifier le contexte de l'application (pour les fonctions de callback).

Si elle réussit, la fonction retourne un pointeur vers la session ouverte, sinon elle renvoie une valeur nulle. On peut s'assurer qu'il ne s'agit pas d'un problème de droit d'accès avec la fonction InternetGetLastResponseInfo.

ConstanteValeur Définition
INTERNET_DEFAULT_FTP_PORT21 Port FTP par défaut.
INTERNET_DEFAULT_GOPHER_PORT70 Port Gopher par défaut.
INTERNET_DEFAULT_HTTP_PORT80 Port HTTP par défaut.
INTERNET_DEFAULT_HTTPS_PORT443 Port HTTPS par défaut.
INTERNET_DEFAULT_SOCKS_PORT1080 Port Socks (firewall) par défaut.
INTERNET_SERVICE_FTP1 Service FTP.
INTERNET_SERVICE_GOPHER2 Service Gopher.
INTERNET_SERVICE_HTTP3 Service HTTP.

Exemple d'utilisation :

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" ( _
                   
ByVal sAgent As String, ByVal lAccessType As Long, _
                   
ByVal sProxyName As String, _
                   
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Public Declare Function
InternetConnect Lib "wininet.dll" _
                   
Alias "InternetConnectA" ( _
                   
ByVal hInternetSession As Long, ByVal sServerName As String, _
                   
ByVal nServerPort As Integer, ByVal sUsername As String, _
                   
ByVal sPassword As String, ByVal lService As Long, _
                   
ByVal lFlags As Long, ByVal lContext As Long) As Long

Public Declare Function
FtpSetCurrentDirectory Lib "wininet.dll" Alias _
                    "FtpSetCurrentDirectoryA" (
ByVal hFtpSession As Long, _
                   
ByVal lpszDirectory As String) As Boolean

Public Declare Function
FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" ( _
                   
ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _
                   
ByVal lpszRemoteFile As String, _
                   
ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean

Public Declare Function
InternetCloseHandle Lib "wininet.dll" ( _
                   
ByVal hInet As Long) As Integer

Public Const
INTERNET_DEFAULT_FTP_PORT = 21
Public Const INTERNET_SERVICE_FTP = 1

Public Enum eTRANSFERT_TYPE
    FTP_TRANSFER_TYPE_ASCII = &H1
    FTP_TRANSFER_TYPE_BINARY = &H2
End Enum

Private Function
PutFtpFile(stServ As String, stLogin As String, stPass As String, _
                            stRepFtp
As String, stFicFtp As String, _
                            stFicLocal
As String, lgType As eTRANSFERT_TYPE) As Boolean
' Cette fonction charge un fichier local sur un serveur FTP.
' stServ contient le nom ou l'adresse IP du serveur FTP
' stLogin est le login à utiliser
' stPass est le mot de passe associé au login
' stRepFtp est le répertoire FTP ou sera placé le fichier ("/" pour la racine)
' stFicFtp est le nom qui sera donné au fichier sur le serveur
' stFicLocal est le chemin complet (+nom) du fichier local
' lgType est le type de transfert à utiliser (texte ou binaire)
' La fonction retourne Vrai si le transfert à réussi, sinon Faux.
Dim lgFtp As Long, lgSession As Long, lgDir As Long
Dim
inRes As Integer
Dim
blOk As Boolean
blOk = False
' Récupère un pointeur vers la connexion internet courante
lgSession = InternetOpen("PutFtpFile", 1, vbNullString, vbNullString, 0)
If lgSession Then
   
' Récupère un pointeur vers pour session FTP
   
lgFtp = InternetConnect(lgSession, stServ, INTERNET_DEFAULT_FTP_PORT, _
                            stLogin, stPass, INTERNET_SERVICE_FTP, 0, 0)
   
If lgFtp Then
       
' Positionne le répertoire distant
       
If FtpSetCurrentDirectory(lgFtp, stRepFtp) Then
           
' Envoie le fichier
           
blOk = FtpPutFile(lgFtp, stFicLocal, stFicFtp, _
                                     FTP_TRANSFER_TYPE_ASCII, 0)
       
End If
    End If
   
' Libération du pointeur
   
inRes = InternetCloseHandle(lgFtp)
End If
' Retourne le résultat
PutFtpFile = blOk
End Function

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr