Voilas 3 petites fonctions qui permete de récuperer les valeur "LoWord" et "HiWord" pour LParam et WParam (lors de l'utilisation de SendMessage_() par exemple) et une derniere pour qui fait l'inverse :
Un mot de 32 bits peut servir à renvoyer plusieurs valeurs, par exemple deux valeurs de 16 bits. Donc pour cela on va décomposer le mot de 32 bits avec les 16 bits de valeurs hautes (hi-word) et les 16 bits de valeurs basses (lo-word), on a au final 2 mots de 16 bits qui donne 2 words.
Pour récupérer les 16 bits de poids fort (hi-word) on va effectuer une rotation des bits, en fait un décalage sur 16 bits. au final les 16 bits de poids fort se retrouvent être les 16 bits de poids faible maintenant et des zéros ont remplacés les bits de poids fort.
Pour récupérer les 16 bits de poids faible (lo-word) on va effectuer un ET logique avec un masque car ici on veut supprimer la lecture des 16 premier bits. Le masque sera de cette valeur (en binaire):
00000000000000001111111111111111
ce qui donne en hexa:
$ffff
Les 16 premiers bits additionnés auront la valeur 0 tandis que les valeurs suivantes conserveront leurs données.
En claire, une valeur 32 Bit peut contenir 2 valeur 16 bit (la premiere sur les 16 premiers bits et la 2eme sur les 16 derniers). Mes 3 procédures permettent de recuperer la "premiere" et "deuxieme" valeur et de faire l'inverse (mettre une premiere valeur sur les 16 premier bits et une deuxieme sur les 16 derniers). En gros, c'est comme si la valeur 32 bit etait une boite avec 2 compartiments...