IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

API Win64 FtpFindFirstFile et InternetFindNextFile [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut API Win64 FtpFindFirstFile et InternetFindNextFile
    Bonjour,

    Je cherche désespérément comment déclarer les fonctions FtpFindFirstFile et InternetFindNextFile dans Excel 2010 X64.
    Cette déclaration renvoie l'erreur "Type défini par l'utilisateur non défini"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Declare PtrSafe Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" ( _
        ByVal hFtpSession As Long, _
        ByVal lpszSearchFile As String, _
        lpFindFileData As WIN32_FIND_DATA, _
        ByVal dwFlags As Long, _
        ByVal dwContent As Long) As Long
     
    Private Declare PtrSafe Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" ( _
        ByVal hFind As Long, _
        lpvFindData As WIN32_FIND_DATA) As Long
    Merci à tous

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bonjour,

    Il doit manquer la déclaration de WIN32_FIND_DATA.

    De plus les pointeurs doivent être déclarés en LongPtr pour 64 bits.

    Développer avec Office 64 bits

    Voici ce que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Private Declare PtrSafe Function FtpFindFirstFile _
        Lib "wininet.dll" Alias "FtpFindFirstFileA" _
        (ByVal hFtpSession As LongPtr, ByVal lpszSearchFile As String, _
        lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, _
        ByVal dwContext As LongPtr) As LongPtr
    Private Declare PtrSafe Function InternetFindNextFile _
        Lib "wininet.dll" Alias "InternetFindNextFileA" _
        (ByVal hFind As LongPtr, lpvFindData As WIN32_FIND_DATA) As LongPtr
     
    Private Const MAX_PATH = 260
    Private Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
    End Type
    Private Type WIN32_FIND_DATA
        dwFileAttributes As Long
        ftCreationTime As FILETIME
        ftLastAccessTime As FILETIME
        ftLastWriteTime As FILETIME
        nFileSizeHigh As Long
        nFileSizeLow As Long
        dwReserved0 As Long
        dwReserved1 As Long
        cFileName As String * MAX_PATH
        cAlternate As String * 14
    End Type

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    En déclarant les type suivants, tout va beaucoup mieux (je crois...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Private Type FILETIME
      dwLowDateTime As Long
      dwHighDateTime As Long
    End Type
     
    Private Type WIN32_FIND_DATA
      dwFileAttributes As Long
      ftCreationTime  As FILETIME
      ftLastAccessTime As FILETIME
      ftLastWriteTime As FILETIME
      nFileSizeHigh  As Long
      nFileSizeLow   As Long
      dwReserved0   As Long
      dwReserved1   As Long
      cFileName    As String 
      cAlternate    As String * 14
    End Type
    Merci Arkham46. Effectivement, tout va mieux avec les bonnes déclarations.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] API WIN64 - WIN32
    Par smotty dans le forum VBA Access
    Réponses: 0
    Dernier message: 23/11/2010, 09h28
  2. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  3. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07
  4. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo