j'avais un probl�me : mon programme se lan�ait plusieurs fois lorsque l'on s�lectionnait plusieurs fichiers dans l'explorateur et qu'on appuyait sur "Entr�e".

Ca c'est r�solu.

MAIS

j'aimerai que les autres instances du programme, avant de se fermer, envoient leurs param�tres au programme d�j� lanc�.

J'ai donc mis en place un petit message : WM_ADDFILE
en me disant que je pourrais mettre en wParam un pointeur sur la chaine de param�tres.

non.

�a ne fonctionne pas.

Pour voir j'ai essay� de passer juste un pointeur sur un entier, �a donne �a :

dans le WinMain :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
#define WM_ADDFILE  (WM_USER + 2005)
 
...
 
    int* pMsg;
    pMsg = new int;
 
    AnsiString s = (int)pMsg;    //on affiche l'adresse pointée
    MessageBox(NULL, s.c_str(), "toto", MB_OK);
 
    PostMessage(hPreviousInstance, WM_ADDFILE, (WPARAM)pMsg, NULL);
et dans la m�thode OnMessage d'un TApplicationEvents:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
    if (Msg.message == WM_ADDFILE)
    {
        if (*( (int*)Msg.wParam ) == 24)
            MessageBox(NULL, "message24", "titi", MB_OK);
        else
            MessageBox(NULL, "echec24", "titi", MB_OK);
 
        delete (int*)Msg.wParam;
        Handled = true;
    }
la valeur de wParam correspond bien � l'adresse point�e pas pMsg mais vaut "????"

euh... pourquoi ?
quelle autres solutions pour passer les param�tres du programme au programme d�j� pr�sent ?


[Mod�ration, Alacazam : Pri�re d'utiliser un langage correct, merci]