Avant de répondre à une de vos questions, je voudrais vous faire une remarque globale :
Votre approche pour comprendre comment utiliser une API n'est pas bonne du moins c'est ce qu'il ressort de ce post, pour faire une analogie, si je résume ce post, c'est comme si vous étiez en Chine, devant un chinois avec un dico chinois et vous ouvrez une page au hasard et vous me dites, c'est ce mot que je veux lui dire !
Sans comprendre ce que veut dire le mot en question, mais avec certitude, c'est ce mot ! Un linguiste vous dira qu'il faudra certainement d'autres mots pour constituer une phrase ou du moins une forme minimal de grammaire pour que le mot prenne son sens. Et encore en espérant que le mot en question ne soit pas une insulte !
Donc de manière général, on veut utiliser une API pour une raison précise pour combler une carrence du WLangage, du coup comme la recherche est orientée, on passe une longue liste d'API à une API avec plusieurs méthode grâce à google ou autres support...
C'est pour cela que pour vous aider, le problème n'était pas comment on se sert d'une API, mais comment récupérer la vitesse de déplacement de la souris. Afin d'orienté les recherches et simpifié la compréhension pour ensuite la généraliser.
Vous avez choisi au hasard cette API. Ok, regardons de plus près l'analogie avec Windev vue que vous êtes concentré uniquement sur le WLangage :
PROCEDURE SystemParametersInfo(LOCAL uiAction est un entier systeme, LOCAL uiParam est un entier systeme, pvParam est un entier systeme, LOCAL fWinIni est un entier systeme)
Pourquoi j'ai déclaré uiAction comme entier systeme ? (ou sans signe...) parce que j'ai demandé à google à quoi correspondait le type UINT ? :
http://msdn.microsoft.com/fr-fr/library/x0sksh43.aspx
Donc si vous avez pris le temps de lire on peut "traduire"
Donc maintenant si vous avez compris le concept, votre fonction SystemParametersInfo() attend combien de paramètre ? --> réponse : 4
Que dit l'aide PCSOFT sur la fonction API() :
http://doc.pcsoft.fr/fr-FR/?3014005&name=api_fonction
1 2 3 4 5 6
| Exécuter une fonction d'une DLL externe ou de l'API Windows identifiée par son nom Masquer les détails
<Résultat> = API(<Nom de la DLL> , <Nom de la fonction> [, <Paramètre 1> [, <Paramètre 2> [, ...]]])
Donc il faudra 4 paramètres à l'appel de cette fonction.
RetourFonction=API("USER32","SystemParametersInfoA",.....) |
Enfin là où vous n'avez pas vu la subtilité avec les pointeurs, c'est la valeur de la variable nVitesse qui sera modifié. La valeur de pvparam contient l'adresse de nVitesse. Donc elle est inchangé pour une instance donnée. Donc si vous affichiez plutôt la valeur de nVitesse, vous verrez qu'elle sera comprise entre 1 et 20.
Partager