Variable/action depuis une dll

Résolu
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 27 oct. 2004 à 19:35
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 28 oct. 2004 à 00:42
Salut,

J'ai une dll qui intercepte l'activation de fenetre :

if(nCode == HCBT_ACTIVATE)
{
if (hDlg = FindWindow("Outlook Express Browser Class",NULL))
{
fenetre=1;
}
}

Comment faire pour que lorsque fenetre=1 cela entraine dans mon programme qui utilise cette dll, une création de boite de dialogue ???

Sachant qu'à ce moment là dans mon programme je suis ici :

case WM_COMMAND:
Select=LOWORD(wParam);
switch(Select)
{
case IDOK:
if(!actif)
actif = TRUE;
Intercepte();
return TRUE;

case IDCANCEL:
if(actif)
actif = FALSE;
FinIntercepte();
EndDialog(Dlg, 0);
return TRUE;
}
default:
return FALSE;

Pouvez vous m'aider SVP ???

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 oct. 2004 à 21:10
la dialog, c'est ton prog qui la creera et non pas l'instance de la DLL, alors poste un message perso si tu as trouve la fenetre cible.
Ton prog fera ce qu'il voudra a reception de ce message.
Y a pourtant tout cela dans mes exemples, envoi de messages perso (WM_USER+xxx) etc.... puis traitement a reception de ce message.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 oct. 2004 à 19:49
T'as pris mes exemples alors tu devrais voir comment je communique, PostMessage().
Que fais encore ce FindWindow() ici ? tu as direct le hwnd de fourni, sers toi de GetWindowText() etc...

ciao...
BruNews, MVP VC++
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
27 oct. 2004 à 21:00
Avec PostMessage(), ok.

Je mets quoi dans PostMessage() pour qu'il me crée une nouvelle boite de dialogue ?

Ca ? :

PostMessage(Dlg, (DialogBox(
hInstance,
MAKEINTRESOURCE( IDD_DIALOG1 ),
NULL,
(DLGPROC)MainProc)),
0, 0);
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
28 oct. 2004 à 00:42
Ok c'est bon j'ai enfin réussi !!!

C'est cool les WM_USER, je connaissais pas du tout mais c'est super pratique !

Encore merci à toi Brunews et @++++
0
Rejoignez-nous