1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| void GestBoutonsFHebergerPartie(HWND fenetre,UINT message, WPARAM wParam, LPARAM lParam)
{
static InfosPartie MaPartie; // On met les variables du thread en memoire car on va sortir de cette fonction et donc les perdre
static HANDLE hdlThreadServeur; // Le thread va donc recevoir n'importe quoi puisque c'était un pointeur!
static DWORD CodeRetourThread;
switch(LOWORD(wParam)) // Quand btn enfoncé, une partie de wParam vaut Id du bouton => recup avec LOWORD()
{
case ID_LANCER_SERVEUR:
strcpy(MaPartie.NomPartie, NomPartie); // On remplie la structure qu'on enverra sur le reseau en reponse aux broadcasts
strcpy(MaPartie.IPServeur, IPChoisie);
hdlThreadServeur = CreateThread(NULL, 0, HebergementPartie, &MaPartie, 0, NULL); // On lance le thread pour une ecoute UDP en attente de demande d'infos, ou de connexion
// faire une animation d'attente
GetExitCodeThread(hdlThreadServeur, &CodeRetourThread); // Puis on recupere le code de retour du thread
if(CodeRetourThread == -1) // ne fonctionne pas
{
MessageBox(NULL,"Erreur dans le thread","Erreur !",MB_OK | MB_ICONWARNING);
}
}
break;
}
} |
Partager