Mihamina Rakotomandimby, le 17/10/2007 a écrit :
Bonjour, (suivi sur fr.comp.developpement)
Dans Emacs et certains exemples de code dans divers langage que j'ai rencontré, je vois des "hook".
Qu'est-ce que c'est que les "hook"?
Voici comment je le comprends, à mon niveau d'anglais et d'informatique. Déjà, je ne fais pas trop la différence entre "fonction de hook" et "fonction de callback".
En gros, c'est du code - une fonction - fourni à un processus afin que ce dernier y fasse passer le flux du code. Bref, le processus appellera la fonction avec les arguments qui vont bien. C'est un détour, un crochet (hook) au sens randonneur ou routier du terme.
Sous Windows, vous avez tout un système de drivers, souvent en ring0, de toute façon on ne peut pas y toucher. Mais les hooks offrent des solutions. Par exemple vous allez écrire une fontion qui génère des mjuscules accentuée à la réception de certaines combinaisons de touches. Vous compilez cette fonction dans une Dll selon une interface précise, puis vous dites à l'OS d'y faire passer le code avec chaque caractère reçu du clavier. Vous le dites par la fonction:
SetWindowsHookEx( WH_KEYBOARD,...)
Tout ça simplifié, bien entendu.
Sinon, je considère comme un hook (peut-être à tort) le paramètre fonction cmp fourni à sort() en Python, ou compar (pointeur vers fonction) fourni à qsort() en C.
--
Pierre Maurette