Merci de ton aide . J'ai effectué quelques modifications en passant désormais une structure de type sockaddr_in6 à la fonction. En regardant de plus près sa signature j'ai aussi vu qu'elle voulait un LPDWORD qui semble être en réalité un pointeur vers un DWORD. J'ai donc modifié aussi le type.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct in_addr                 MulticastAddr;
struct sockaddr_in6          MulticastAddr_6;
char				  lAdresseMulticastV6[46];
DWORD				dw = sizeof(lAdresseMulticastV6) ;
DWORD				MulticastAddr_6_Size = sizeof(MulticastAddr_6);

if (addressType == IPV4)
{
     MulticastAddr = connection->mediaAddress;
     sprintf(URL, "udp://%s -rtp -audio", inet_ntoa(MulticastAddr));
}
else if(addressType == IPV6)
{
     MulticastAddr_6.sin6_addr = connection->mediaAddressIPV6;
     if( 0 == (WSAAddressToString((struct sockaddr *)&MulticastAddr_6,MulticastAddr_6_Size,NULL,lAdresseMulticastV6,&dw)))
     {
        	sprintf(URL, "udp://%s -rtp -audio", lAdresseMulticastV6);		     }
     else
     {
        	printf("Erreur WSAAddressToString : %d \n", WSAGetLastError());    
     }
}
Néanmoins, ça ne fonctionne toujours pas mais l'erreur n'est plus la même...c'est la 10022 : "WSAEINVAL : The specified address is not a valid socket address, or no transport provider supports the indicated address family."