Extraction/Concaténation de nombre sur 8/16/32 bits
Concaténation de 2 valeurs 16 bits en une valeur 32 bits:
de type LPARAM (Utilisé pour les messages avec SendMessage)
LPARAM MAKELPARAM(
WORD wLow, // Partie basse sur 16 bits
WORD wHigh // Partie haute sur 16 bits
);
Idem, mais de type LRESULT
LRESULT MAKELRESULT(
WORD wLow,
WORD wHigh
);
et enfin de type LONG:
DWORD MAKELONG(
WORD wLow,
WORD wHigh
);
Extraction de la partie basse ou haute d'une valeur 32 bits en valeur 16 bits
En fait, vous récuperez soit la partie haute sur 16 bits, soit la partie basse sur 16 bits de votre nombre sur 32 bits:
Pour la partie haute:
WORD HIWORD(
DWORD dwValue
);
Pour la partie basse:
WORD LOWORD(
DWORD dwValue
);
Concaténation de 2 valeurs 8 bits en une valeur 16 bits
de type WPARAM
WPARAM MAKEWPARAM(
WORD wLow,
WORD wHigh
);
de type WORD
WORD MAKEWORD(
BYTE bLow,
BYTE bHigh
);
Extraction de la partie basse ou haute d'une valeur 16 bits en valeur 8 bits
En fait, vous récuperez soit la partie haute sur 8 bits, soit la partie basse sur 8 bits de notre nombre sur 16 bits:
Pour la partie haute:
BYTE HIBYTE(
WORD wValue
);
Pour la partie basse:
BYTE LOBYTE(
WORD wValue
);
Convertir un identifiant de ressource en entie
cf. MAKEINTRESOURCE
Récupérer les coordonnées (x, y) concaténées en une valeur 32 bits
int GET_X_LPARAM(
DWORD dwValue
);
int GET_Y_LPARAM(
DWORD dwValue
);
Récupérer l'état des touches codé dans la partie basse d'une valeur 16 bits
int GET_KEYSTATE_WPARAM (
WORD wValue
);
Cf. exemple molette de la souris
Récupérer le déplacement de la molette codé sur la partie haute d'une valeur 16 bits
int GET_WHEEL_DELTA_WPARAM(
WORD wValue
);
Cf. exemple molette de la souris
Convertir un nombre 32 bits en type POINT
POINTS MAKEPOINTS(
DWORD dwValue
);