Les appels de l'API Que se cache-t-il derrière API? API signifie : Application Programming Interface. C’est en fait un habillage de toutes les fonctions disponibles au sein des DLL. L'idée générale de l'API, c'est que toute DLL peut être utilisée par un langage comme VB sous forme de fonction, qui utilise donc les paramètres (arguments) qu'on lui fournit et qui renvoie donc un résultat vers le langage. Donc, en théorie, pour utiliser une DLL, il suffit de savoir laquelle effectue le traitement que l'on souhaite, quels arguments il faut lui envoyer, et quel type de valeur elle retourne. Ensuite, il ne reste plus qu'à créer cette fonction dans le programme. Mais... il y a un mais. Et pas qu'un seul ! Premièrement : à part d’épais et indigestes bouquins (en plus, ils sont chers), il n’existe nulle part une liste un peu complète des fonctions d’appel de l’API, vous disant quelle fonction fait quoi, et la syntaxe de l’appel. Donc, en gros, ça existe, mais Microsoft ne vous dit pas ni où ni comment.
En ce qui concerne la syntaxe, un appel API ne se distingue pas fondamentalement d’un appel à une fonction ordinaire, avec des paramètres.
Pour pouvoir utiliser de l’API (autrement dit une DLL), il faut tout d’abord déclarer la fonction en question, en indiquant les éléments suivants :
- Le nom de la procédure ou fonction.
- Le fichier DLL dans lequel elle se trouve.
- Les paramètres qu’elle doit recevoir.
- Le type de valeur renvoyée, s’il s’agit d’une fonction.
Au total, la déclaration donnera … du genre :
Private Declare Function Duchemol Lib "Coucou32" Alias "Zigopaf" (Byval x As Long, Byval y As Long) As Long
- Declare indique qu'il s'agit d'une déclaration API
- Duchemol est le nom que vous choisissez pour votre fonction
- Lib indique qu'il va falloir aller piocher dans une DLL…
- …DLL dont le nom est Coucou32
- Alias "Zigopaf" est un paramètre éventuel, souvent omis par VB car le nom d'alias est le même que le nom de la DLL
- X et Y sont les paramètres envoyés à la fonction, avec leur type
- le "As Long" final indique le type de valeur retournée par la fonction.
Une fois cette fonction d’appel API déclarée, vous pourrez vous en servir comme de n’importe quelle fonction, avec par exemple en cours de programme :
Toto = Duchemol(45, 156) |