Bonjour,
Je veux hooker un composant du type richeditbox (avec handle que j'appelerai hWnd_comp) ceci afin de récupérer les changements, tel que l'ajout de lignes de texte. Ce composant appartient donc a une fenetre parent (avec handle que j'appelerai hWnd_par) qui elle même correspond au processus a hooker et dont le PID est threadPID.
J'ai vérifié (le PID de mon processus, handles ....) avec spy++ de microsoft pour savoir si je pointais bien avec les bonnes valeurs.
J'ai donc une dll qui initialise le hook par
msgHook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC) getmsgHookProc,hDLL,threadPID);
Au début et pour me simplifier, j'ai mis en dur (vu avec spy++) la valeur de threadPID. Les handles de la fenetres parents et du composant sont déterminés par FindWindow et EnumChildWindows .... (Cela est OK aussi et Valeurs confirmées avec spy++)
Dans ma fonction de hook (getmsgHoocProc) je recupere les messages. Pour savoir si je rentrai bien dedans lorsque le composant richeditbox était modifié, j'ai mis un Beep(1000,2000); (Pour cela ca passe)
Pour savoir quel message intercepter (ajout d'une ligne dans ma richeditbox), j'ai donc utilisé spy++. Apparement il faut que je récupére le message EM_REPLACESEL.
Quand je fais un traitement des messages dans getmsgHoocProc, il ne semble pas le voir.
J'ai mis aussi (pour voir) SendMessage (hWnd_comp, WM_GETTEXT, 128, (LPARAM)ch); avec ch tableau de char de taille 128
mais mon tableau reste vide pensant qu'il allait me donner le contenu du richeditbox
Quelqu'un pourrait il m'aider, je suis un peu perdu ????
Merci d'avance
Partager