Ma dll à l'aide plz

snpier wolf Messages postés 216 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 30 mai 2011 - 7 juin 2008 à 12:56
snpier wolf Messages postés 216 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 30 mai 2011 - 7 juin 2008 à 23:32
Bonjour,
j'ais chercher un moyen de récupérer le message wm_close de la fenêtre active.
Après avoir parlez avec BruNews, j'ai compris qu'il me falait faire une dll.
Comme je ne savais pas fair de dll, j'ais apris enfin presque. ^^
Mais voila elle ne fonctionne pas pouvez - vous m'aidez svp.

La source Cpp :





<hr />
#include "Custom.h"
#include <windows.h>


#define NEXTZERO (WM_USER+20)


#pragma data_seg("Shared")


HWND hWnd = 0;
HHOOK hhk;


#pragma data_seg()
#pragma comment(linker, "/section:Shared,rws")


HINSTANCE hInst;


BOOL WINAPI DllMain(HINSTANCE hDll, DWORD dwReason, LPVOID Reserved)
{  if(dwReason DLL_PROCESS_ATTACH) hInst hDll;
  return 1;
}


LRESULT CALLBACK VerifIE(int nCode, WPARAM wParam, LPARAM lParam) {
  if(nCode == HSHELL_WINDOWDESTROYED) {
    MessageBox(NULL,"","",MB_OK);
  }


  return CallNextHookEx(hhk, nCode, wParam, lParam);
}


DLLIMPORT int Intercepte()
{


  if(!hhk) hhk  = SetWindowsHookEx(WH_SHELL, VerifIE, hInst, 0);
  return (int) hhk;
}


DLLIMPORT void Relache()
{
  if(hhk) {UnhookWindowsHookEx(hhk); hhk = 0;}
}





<hr />


La source h :





<hr />
#ifndef _CUSTOM_H_
#define _CUSTOM_H_


#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */




DLLIMPORT int Intercepte();
DLLIMPORT void Relache();


#endif /* _DLL_H_ */


<hr />

 Dev-Cpp compile.
Quand je crée un prog qui utilise Intercepte(), le prog fonctionne, mais le messageBox n'est jamais envoyé et ça même à la fermeture du prog.
Pour quoi ?

4 réponses

jeffy131 Messages postés 123 Date d'inscription samedi 14 juillet 2007 Statut Membre Dernière intervention 29 mars 2009 1
7 juin 2008 à 13:08
> j'ai compris qu'il me falait faire une dll.

Si c'est pour une simple notification de destroying, non, pas besoin de DLL.
0
snpier wolf Messages postés 216 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 30 mai 2011
7 juin 2008 à 13:26
ha bon parce le programme doit intrespter le message de la fenêtre active et fair ces intructions aven qu'elle ce ferme.
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
7 juin 2008 à 17:39
Bonjour,

"hhk" n'est pas initialisé.

Jean-François
0
snpier wolf Messages postés 216 Date d'inscription samedi 11 août 2007 Statut Membre Dernière intervention 30 mai 2011
7 juin 2008 à 23:32
merci ^^
mais sais bisard, ça ne fonction pas sous vista et male sous 2000
0
Rejoignez-nous