Est qui en aurais qui serais comment ajouter une toolbar dans outlook express?
WH_GETMESSAGE et/ou WH_CBT hook (DLL)
MarcU$
"Christian ASTOR" wrote in message news:3fe89781$0$6970$
MarcU$ a écrit: > Est qui en aurais qui serais comment ajouter une toolbar dans outlook > express?
WH_GETMESSAGE et/ou WH_CBT hook (DLL)
pour l'interception des message c'est fait. Mais pour ajouter une band dans la rebar de outlook, comment puis-je faire ça? Je croyais pouvoir en ajouter une seulement en créant une toolbar par un autre app. et en l'ajoutant a la rebar de OE, mais sa l'air que c'est pas aussi simple qu'un getmenu, quelqu'un a une idée?
MarcU$
"Christian ASTOR" <castorix@club-internet.fr> wrote in message
news:3fe89781$0$6970$7a628cd7@news.club-internet.fr...
MarcU$ a écrit:
> Est qui en aurais qui serais comment ajouter une toolbar dans outlook
> express?
WH_GETMESSAGE et/ou WH_CBT hook (DLL)
pour l'interception des message c'est fait.
Mais pour ajouter une band dans la rebar de outlook, comment puis-je faire
ça?
Je croyais pouvoir en ajouter une seulement en créant une toolbar par un
autre app. et en l'ajoutant a la rebar de OE, mais sa l'air que c'est pas
aussi simple qu'un getmenu, quelqu'un a une idée?
"Christian ASTOR" wrote in message news:3fe89781$0$6970$
MarcU$ a écrit: > Est qui en aurais qui serais comment ajouter une toolbar dans outlook > express?
WH_GETMESSAGE et/ou WH_CBT hook (DLL)
pour l'interception des message c'est fait. Mais pour ajouter une band dans la rebar de outlook, comment puis-je faire ça? Je croyais pouvoir en ajouter une seulement en créant une toolbar par un autre app. et en l'ajoutant a la rebar de OE, mais sa l'air que c'est pas aussi simple qu'un getmenu, quelqu'un a une idée?
MarcU$
Christian ASTOR
MarcU$ a écrit:
Mais pour ajouter une band dans la rebar de outlook, comment puis-je faire ça?
Ben RB_INSERTBAND.
MarcU$ a écrit:
Mais pour ajouter une band dans la rebar de outlook, comment puis-je faire
ça?
"Christian ASTOR" wrote in message news:3fe96397$0$6972$
MarcU$ a écrit:
> Mais pour ajouter une band dans la rebar de outlook, comment puis-je
faire
> ça?
Ben RB_INSERTBAND.
Je les fait mais sa fonctionne pas a tout les coup et quand sa fonctionne j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
MarcU$
Christian ASTOR
MarcU$ a écrit:
Ben RB_INSERTBAND.
Je les fait mais sa fonctionne pas a tout les coup et quand sa fonctionne j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ? C'est pas "informatique" ça. Ou ça marche tout le temps, ou jamais. Chez moi, c'est tout le temps. Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp. d'adressage de OE, on fait tout ce qu'on veut...
MarcU$ a écrit:
Ben RB_INSERTBAND.
Je les fait mais sa fonctionne pas a tout les coup et quand sa fonctionne
j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ?
C'est pas "informatique" ça.
Ou ça marche tout le temps, ou jamais.
Chez moi, c'est tout le temps.
Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp.
d'adressage de OE, on fait tout ce qu'on veut...
Je les fait mais sa fonctionne pas a tout les coup et quand sa fonctionne j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ? C'est pas "informatique" ça. Ou ça marche tout le temps, ou jamais. Chez moi, c'est tout le temps. Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp. d'adressage de OE, on fait tout ce qu'on veut...
MarcU$
Je me suis jamais servi de PostThreadMessage(). Sa doit être sa le problème, moi je me servais de SendMessage pour envoyer le RB_INSERTBAND. Comment je fait pour aller chercher le thread de OE?
Marc
"Christian ASTOR" wrote in message news:3fe9a334$0$6974$
MarcU$ a écrit:
>>Ben RB_INSERTBAND.
> Je les fait mais sa fonctionne pas a tout les coup et quand sa
fonctionne
> j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ? C'est pas "informatique" ça. Ou ça marche tout le temps, ou jamais. Chez moi, c'est tout le temps. Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp. d'adressage de OE, on fait tout ce qu'on veut...
Je me suis jamais servi de PostThreadMessage().
Sa doit être sa le problème, moi je me servais de SendMessage pour envoyer
le RB_INSERTBAND.
Comment je fait pour aller chercher le thread de OE?
Marc
"Christian ASTOR" <castorix@club-internet.fr> wrote in message
news:3fe9a334$0$6974$7a628cd7@news.club-internet.fr...
MarcU$ a écrit:
>>Ben RB_INSERTBAND.
> Je les fait mais sa fonctionne pas a tout les coup et quand sa
fonctionne
> j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ?
C'est pas "informatique" ça.
Ou ça marche tout le temps, ou jamais.
Chez moi, c'est tout le temps.
Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp.
d'adressage de OE, on fait tout ce qu'on veut...
Je me suis jamais servi de PostThreadMessage(). Sa doit être sa le problème, moi je me servais de SendMessage pour envoyer le RB_INSERTBAND. Comment je fait pour aller chercher le thread de OE?
Marc
"Christian ASTOR" wrote in message news:3fe9a334$0$6974$
MarcU$ a écrit:
>>Ben RB_INSERTBAND.
> Je les fait mais sa fonctionne pas a tout les coup et quand sa
fonctionne
> j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ? C'est pas "informatique" ça. Ou ça marche tout le temps, ou jamais. Chez moi, c'est tout le temps. Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp. d'adressage de OE, on fait tout ce qu'on veut...
MarcU$
Et est ce que je doit mettre ma toolbar dans un thread?
Marc
"Christian ASTOR" wrote in message news:3fe9a334$0$6974$
MarcU$ a écrit:
>>Ben RB_INSERTBAND.
> Je les fait mais sa fonctionne pas a tout les coup et quand sa
fonctionne
> j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ? C'est pas "informatique" ça. Ou ça marche tout le temps, ou jamais. Chez moi, c'est tout le temps. Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp. d'adressage de OE, on fait tout ce qu'on veut...
Et est ce que je doit mettre ma toolbar dans un thread?
Marc
"Christian ASTOR" <castorix@club-internet.fr> wrote in message
news:3fe9a334$0$6974$7a628cd7@news.club-internet.fr...
MarcU$ a écrit:
>>Ben RB_INSERTBAND.
> Je les fait mais sa fonctionne pas a tout les coup et quand sa
fonctionne
> j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ?
C'est pas "informatique" ça.
Ou ça marche tout le temps, ou jamais.
Chez moi, c'est tout le temps.
Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp.
d'adressage de OE, on fait tout ce qu'on veut...
Et est ce que je doit mettre ma toolbar dans un thread?
Marc
"Christian ASTOR" wrote in message news:3fe9a334$0$6974$
MarcU$ a écrit:
>>Ben RB_INSERTBAND.
> Je les fait mais sa fonctionne pas a tout les coup et quand sa
fonctionne
> j'ai pas de bouton dans ma toolbar alors qui devrait en avoir 4.
"Pas à tout les coups" ? C'est pas "informatique" ça. Ou ça marche tout le temps, ou jamais. Chez moi, c'est tout le temps. Une fois qu'on a fait le PostThreadMessage() et qu'on est donc ds l'esp. d'adressage de OE, on fait tout ce qu'on veut...
Christian ASTOR
MarcU$ a écrit:
Je me suis jamais servi de PostThreadMessage(). Sa doit être sa le problème, moi je me servais de SendMessage pour envoyer le RB_INSERTBAND. Comment je fait pour aller chercher le thread de OE?
Mais tu disais utiliser un WH_GETMESSAGE hook. C'est une méthode classique pour bidouiller des fenêtres d'autres processes (les subclasser, en créer d'autres, etc..) Elle est notamment décrite ds le Richter. On récupère le Thread Id par FindWindow()-FindWindowEx(), ... (ici par ex "Outlook Express Browser Class", "SizableRebar", "ReBarWindow32") puis GetWindowThreadProcessId() et on envoie un message perso (WM_USER + x) par PostThreadMessage() juste après le SetWindowsHookEx(). Ds la GetMsgProc() de la DLL, on intercepte WM_USER + x et c'est là qu'on fait tout le traitement (ici création Toolbar + RB_INSERTBAND)
MarcU$ a écrit:
Je me suis jamais servi de PostThreadMessage().
Sa doit être sa le problème, moi je me servais de SendMessage pour envoyer
le RB_INSERTBAND.
Comment je fait pour aller chercher le thread de OE?
Mais tu disais utiliser un WH_GETMESSAGE hook.
C'est une méthode classique pour bidouiller des fenêtres d'autres
processes (les subclasser, en créer d'autres, etc..)
Elle est notamment décrite ds le Richter.
On récupère le Thread Id par FindWindow()-FindWindowEx(), ... (ici par
ex "Outlook Express Browser Class", "SizableRebar", "ReBarWindow32")
puis GetWindowThreadProcessId() et on envoie un message perso (WM_USER +
x) par PostThreadMessage() juste après le SetWindowsHookEx().
Ds la GetMsgProc() de la DLL, on intercepte WM_USER + x et c'est là
qu'on fait tout le traitement (ici création Toolbar + RB_INSERTBAND)
Je me suis jamais servi de PostThreadMessage(). Sa doit être sa le problème, moi je me servais de SendMessage pour envoyer le RB_INSERTBAND. Comment je fait pour aller chercher le thread de OE?
Mais tu disais utiliser un WH_GETMESSAGE hook. C'est une méthode classique pour bidouiller des fenêtres d'autres processes (les subclasser, en créer d'autres, etc..) Elle est notamment décrite ds le Richter. On récupère le Thread Id par FindWindow()-FindWindowEx(), ... (ici par ex "Outlook Express Browser Class", "SizableRebar", "ReBarWindow32") puis GetWindowThreadProcessId() et on envoie un message perso (WM_USER + x) par PostThreadMessage() juste après le SetWindowsHookEx(). Ds la GetMsgProc() de la DLL, on intercepte WM_USER + x et c'est là qu'on fait tout le traitement (ici création Toolbar + RB_INSERTBAND)
MarcU$
"Christian ASTOR" wrote in message news:3fe9e292$0$6966$
MarcU$ a écrit: > Je me suis jamais servi de PostThreadMessage(). > Sa doit être sa le problème, moi je me servais de SendMessage pour
envoyer
> le RB_INSERTBAND. > Comment je fait pour aller chercher le thread de OE?
Mais tu disais utiliser un WH_GETMESSAGE hook. C'est une méthode classique pour bidouiller des fenêtres d'autres processes (les subclasser, en créer d'autres, etc..) Elle est notamment décrite ds le Richter. On récupère le Thread Id par FindWindow()-FindWindowEx(), ... (ici par ex "Outlook Express Browser Class", "SizableRebar", "ReBarWindow32") puis GetWindowThreadProcessId() et on envoie un message perso (WM_USER + x) par PostThreadMessage() juste après le SetWindowsHookEx(). Ds la GetMsgProc() de la DLL, on intercepte WM_USER + x et c'est là qu'on fait tout le traitement (ici création Toolbar + RB_INSERTBAND)
Ça fait un bout que je cherche comment faire.
Voici ma petite histoire passionnate, faut dire qu'au début je connaisait rien de tout ça.
Au début j'ai découvert un code qui modifiait msn messenger avec un hook WH_CBT pour détecter quand la fenêtre étais créé. Le code modifiait le menu avec GetMenu() et le menu système avec GetSystemMenu().
J'ai donc cru qu'il étais possible de faire la même chose avec OE et la toolbar. Donc j'ai déduit que sa me prenait la class name de OE que j'ai obtenue avec WindowFromPoint() et à partir de la j'ai pu obtenir toute les child de OE par EnumChildWindows ce qui ma permi de connaitre les rebar ReBarWindow32 et les toolbar ToolbarWindow32.
Alors j'ai appris a construire une rebar avec CreateWindowEx(WS_EX_TOOLWINDOW, REBARCLASSNAME... et a créé des toolbar par CreateToolbarEx() et a inséré cette toolbar par SendMessage(hWndRB, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand); Ce qui ma pris du temp a cause de REBARBANDINFO que je configurait mal.
A partir du moment ou j'ai réusit dans une application a créé une rebar, des toolbar et a les ajouter dans ma rebar par RB_INSERTBAND, je croyait que je pouvait tout simplement ajouter dans OE une toolbar à partir de mon application qui n'est pas une dll mais un exe dans OE par SendMessage(hWndRBOE, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand), c'est la que sa fonctionnait seulement de temp a autre et quand sa fonctionnait ma toolbar était vide.
Alors aujourd'huit j'en suis a une nouvelle découverte et c'est: GetWindowThreadProcessId() et PostThreadMessage() Donc j'imagine qua partir du handle de OE je peut obtenir le Thread par GetWindowThreadProcessId et envoyer ma toolbar par PostThreadMessage(). Ce sont donc les dernière pièce du puzzle qui me manquait pour arriver a mon objectif.
Merci pour cette info, je sent que je vais avoir beaucoup de plaisir a tester cela.
Il me reste 3 questions: Est-il possible de faire ça avec un EXE ou dois-je absolument passer par une DLL? Qui est où qu'est ce que Richter? A quoi peu servir la SizableRebar dans l'ajout d'une toolbar?
MarcU$
"Christian ASTOR" <castorix@club-internet.fr> wrote in message
news:3fe9e292$0$6966$7a628cd7@news.club-internet.fr...
MarcU$ a écrit:
> Je me suis jamais servi de PostThreadMessage().
> Sa doit être sa le problème, moi je me servais de SendMessage pour
envoyer
> le RB_INSERTBAND.
> Comment je fait pour aller chercher le thread de OE?
Mais tu disais utiliser un WH_GETMESSAGE hook.
C'est une méthode classique pour bidouiller des fenêtres d'autres
processes (les subclasser, en créer d'autres, etc..)
Elle est notamment décrite ds le Richter.
On récupère le Thread Id par FindWindow()-FindWindowEx(), ... (ici par
ex "Outlook Express Browser Class", "SizableRebar", "ReBarWindow32")
puis GetWindowThreadProcessId() et on envoie un message perso (WM_USER +
x) par PostThreadMessage() juste après le SetWindowsHookEx().
Ds la GetMsgProc() de la DLL, on intercepte WM_USER + x et c'est là
qu'on fait tout le traitement (ici création Toolbar + RB_INSERTBAND)
Ça fait un bout que je cherche comment faire.
Voici ma petite histoire passionnate, faut dire qu'au début je connaisait
rien de tout ça.
Au début j'ai découvert un code qui modifiait msn messenger avec un hook
WH_CBT pour détecter quand la fenêtre étais créé. Le code modifiait le menu
avec GetMenu() et le menu système avec GetSystemMenu().
J'ai donc cru qu'il étais possible de faire la même chose avec OE et la
toolbar. Donc j'ai déduit que sa me prenait la class name de OE que j'ai
obtenue avec WindowFromPoint() et à partir de la j'ai pu obtenir toute les
child de OE par EnumChildWindows ce qui ma permi de connaitre les rebar
ReBarWindow32 et les toolbar ToolbarWindow32.
Alors j'ai appris a construire une rebar avec
CreateWindowEx(WS_EX_TOOLWINDOW, REBARCLASSNAME... et a créé des toolbar par
CreateToolbarEx() et a inséré cette toolbar par SendMessage(hWndRB,
RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand);
Ce qui ma pris du temp a cause de REBARBANDINFO que je configurait mal.
A partir du moment ou j'ai réusit dans une application a créé une rebar, des
toolbar et a les ajouter dans ma rebar par RB_INSERTBAND, je croyait que je
pouvait tout simplement ajouter dans OE une toolbar à partir de mon
application qui n'est pas une dll mais un exe dans OE par
SendMessage(hWndRBOE, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand), c'est la
que sa fonctionnait seulement de temp a autre et quand sa fonctionnait ma
toolbar était vide.
Alors aujourd'huit j'en suis a une nouvelle découverte et c'est:
GetWindowThreadProcessId() et PostThreadMessage()
Donc j'imagine qua partir du handle de OE je peut obtenir le Thread par
GetWindowThreadProcessId et envoyer ma toolbar par PostThreadMessage().
Ce sont donc les dernière pièce du puzzle qui me manquait pour arriver a mon
objectif.
Merci pour cette info, je sent que je vais avoir beaucoup de plaisir a
tester cela.
Il me reste 3 questions:
Est-il possible de faire ça avec un EXE ou dois-je absolument passer par une
DLL?
Qui est où qu'est ce que Richter?
A quoi peu servir la SizableRebar dans l'ajout d'une toolbar?
"Christian ASTOR" wrote in message news:3fe9e292$0$6966$
MarcU$ a écrit: > Je me suis jamais servi de PostThreadMessage(). > Sa doit être sa le problème, moi je me servais de SendMessage pour
envoyer
> le RB_INSERTBAND. > Comment je fait pour aller chercher le thread de OE?
Mais tu disais utiliser un WH_GETMESSAGE hook. C'est une méthode classique pour bidouiller des fenêtres d'autres processes (les subclasser, en créer d'autres, etc..) Elle est notamment décrite ds le Richter. On récupère le Thread Id par FindWindow()-FindWindowEx(), ... (ici par ex "Outlook Express Browser Class", "SizableRebar", "ReBarWindow32") puis GetWindowThreadProcessId() et on envoie un message perso (WM_USER + x) par PostThreadMessage() juste après le SetWindowsHookEx(). Ds la GetMsgProc() de la DLL, on intercepte WM_USER + x et c'est là qu'on fait tout le traitement (ici création Toolbar + RB_INSERTBAND)
Ça fait un bout que je cherche comment faire.
Voici ma petite histoire passionnate, faut dire qu'au début je connaisait rien de tout ça.
Au début j'ai découvert un code qui modifiait msn messenger avec un hook WH_CBT pour détecter quand la fenêtre étais créé. Le code modifiait le menu avec GetMenu() et le menu système avec GetSystemMenu().
J'ai donc cru qu'il étais possible de faire la même chose avec OE et la toolbar. Donc j'ai déduit que sa me prenait la class name de OE que j'ai obtenue avec WindowFromPoint() et à partir de la j'ai pu obtenir toute les child de OE par EnumChildWindows ce qui ma permi de connaitre les rebar ReBarWindow32 et les toolbar ToolbarWindow32.
Alors j'ai appris a construire une rebar avec CreateWindowEx(WS_EX_TOOLWINDOW, REBARCLASSNAME... et a créé des toolbar par CreateToolbarEx() et a inséré cette toolbar par SendMessage(hWndRB, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand); Ce qui ma pris du temp a cause de REBARBANDINFO que je configurait mal.
A partir du moment ou j'ai réusit dans une application a créé une rebar, des toolbar et a les ajouter dans ma rebar par RB_INSERTBAND, je croyait que je pouvait tout simplement ajouter dans OE une toolbar à partir de mon application qui n'est pas une dll mais un exe dans OE par SendMessage(hWndRBOE, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand), c'est la que sa fonctionnait seulement de temp a autre et quand sa fonctionnait ma toolbar était vide.
Alors aujourd'huit j'en suis a une nouvelle découverte et c'est: GetWindowThreadProcessId() et PostThreadMessage() Donc j'imagine qua partir du handle de OE je peut obtenir le Thread par GetWindowThreadProcessId et envoyer ma toolbar par PostThreadMessage(). Ce sont donc les dernière pièce du puzzle qui me manquait pour arriver a mon objectif.
Merci pour cette info, je sent que je vais avoir beaucoup de plaisir a tester cela.
Il me reste 3 questions: Est-il possible de faire ça avec un EXE ou dois-je absolument passer par une DLL? Qui est où qu'est ce que Richter? A quoi peu servir la SizableRebar dans l'ajout d'une toolbar?
MarcU$
Christian ASTOR
MarcU$ a écrit:
Est-il possible de faire ça avec un EXE ou dois-je absolument passer par une DLL?
Faut passer par une DLL (une adresse ds un process n'a pas de signification ds l'esp. d'adr. d'un autre process) Indispensable aussi pour subclasser & intercepter les messages générés par la Toolbar ajoutée.
Qui est où qu'est ce que Richter?
Google si on sait pas. "Programming Applications for Microsoft Windows, Fourth Edition", la réf. pour tout ce qui est processes, threads, objets de synchro & Cie.
A quoi peu servir la SizableRebar dans l'ajout d'une toolbar?
A rien, elle est juste ds la hiérarchie des fenêtres de OE (Spy++)
MarcU$ a écrit:
Est-il possible de faire ça avec un EXE ou dois-je absolument passer par une
DLL?
Faut passer par une DLL (une adresse ds un process n'a pas de
signification ds l'esp. d'adr. d'un autre process)
Indispensable aussi pour subclasser & intercepter les messages générés
par la Toolbar ajoutée.
Qui est où qu'est ce que Richter?
Google si on sait pas.
"Programming Applications for Microsoft Windows, Fourth Edition", la
réf. pour tout ce qui est processes, threads, objets de synchro & Cie.
A quoi peu servir la SizableRebar dans l'ajout d'une toolbar?
A rien, elle est juste ds la hiérarchie des fenêtres de OE (Spy++)
Est-il possible de faire ça avec un EXE ou dois-je absolument passer par une DLL?
Faut passer par une DLL (une adresse ds un process n'a pas de signification ds l'esp. d'adr. d'un autre process) Indispensable aussi pour subclasser & intercepter les messages générés par la Toolbar ajoutée.
Qui est où qu'est ce que Richter?
Google si on sait pas. "Programming Applications for Microsoft Windows, Fourth Edition", la réf. pour tout ce qui est processes, threads, objets de synchro & Cie.
A quoi peu servir la SizableRebar dans l'ajout d'une toolbar?
A rien, elle est juste ds la hiérarchie des fenêtres de OE (Spy++)