Extrait de Laurent Longre
Déclaration
La déclaration d'une fonction API se fait toujours en dehors de toute procédure, en principe au début du module.
Une fonction API, comme toute fonction de DLL, se déclare à l'aide des mots-clés Private Function (si elle renvoie une valeur) ou Private Sub (si elle ne renvoie rien).
[Public|Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
[Public|Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
name est le nom de la fonction (soit le nom réel, soit un nom choisi librement si l'on utilise un alias)
libname est le nom de la DLL contenant la fonction (sans chemin d'accès pour les DLL système)
aliasname est le nom réel de la fonction telle qu'elle est exportée par la DLL
Les types des arguments doivent être scrupuleusement respectés, sous peine de plantages possibles. Il faut en particulier bien respecter le type de passage de chaque argument, par référence (ByRef) ou par valeur (ByVal).
Une fois que la fonction est ainsi définie, elle peut s'utiliser comme n'importe quelle fonction VBA.
Declare Sub RtlMoveMemory Lib "kernel32.dll" _
(ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Partager