vendredi 21 mai 2010

InterProcess communication - les messages windows

Parce qu'un petit rappel ne fait jamais de mal.
 
Parmi les procédés d'intercommunication, il y a l'envoi (et la capture) de message Windows.
Les messages Windows étant destiné à une fenêtre particulière (identifié par un handle) et composé d'une structure relativement simple (un WParam et un LParam qui sont des valeurs numériques).
Windows dispose déjà d'un grand nombre de messages, mais pour des besoins logiciels il peut être nécessaire de définir ses propres messages applicatifs.

Envoi de message personnalisés
Un message est identifier à l'aide d'une valeur numérique unique dans l'OS.
Autrement dit, les messages de manipulation des fenêtre est identique (même numéro) quel que soit l'application.

Il est également possible de définir ses propre messages utilisateurs.
Soit en désignant une valeur numérique arbitraire (WM_MON_MESSAGE_A_MOI : integer = WM_USER + 1;),
Soit en demandant au système d'exploitation de générer un numéro de message unique ( RegisterWindowMessage('WM_MESSAGE_ENVOYEUR'); )

Cet article présente un exemple d'implémentation de message personnalisé en Delphi.

WM_CopyData
Parmi tous les messages existant, il y WM_CopyData.
Ce message particulier (accompagné d'une structure  COPYDATASTRUCT) permet de transmettre des blocs de données entre applications (par l'intermédaire d'envoi de pointer/référence vers un buffer).

Plus d'information

Aucun commentaire: