> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gestion de l'activation de protocole avec Multiplayer Manager

> Utilisez Multiplayer Manager de XBOX pour gérer l'activation de protocole lorsqu'un joueur accepte une invitation de jeu ou rejoint une partie depuis une carte de joueur, y compris la gestion de l'accès au salon.

Cette rubrique décrit l'utilisation de Multiplayer Manager pour gérer l'activation de protocole.

L'*activation* désigne le démarrage automatique d'un jeu par le système en réponse à une autre action. Elle se produit généralement lorsqu'un joueur accepte une invitation de jeu d'un autre joueur.

Votre titre peut faire l'objet d'une activation de protocole des manières suivantes.

* Un utilisateur accepte une invitation de jeu
* Un utilisateur sélectionne « Join Game » sur la carte de joueur d'un joueur

Ce scénario explique comment gérer l'activation de protocole lorsque votre titre est lancé, qu'un joueur rejoint le salon et qu'une partie est en cours (le cas échéant).

Pour un organigramme du processus d'activation de protocole, consultez [Gestion de l'activation de protocole (organigramme)](/fr-CA/services/xbox-services/multiplayer/mpm/concepts/flowcharts/live-mpm-on-protocol-activation).

Lorsqu'un joueur accepte une invitation de jeu ou rejoint la partie d'un ami au moyen de la carte de joueur de celui-ci, le jeu est lancé sur son appareil au moyen de l'activation de protocole.
Une fois le jeu démarré, obtenez le handle d'invitation à l'aide de [XGameActivationRegisterForEvent](/fr-CA/reference/system/xgameactivation/functions/xgameactivationregisterforevent). Avec ce handle d'invitation, appelez [XblMultiplayerManagerJoinLobby](/fr-CA/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoinlobby).

Si l'utilisateur invité n'est pas ajouté au moyen de [XblMultiplayerManagerLobbySessionAddLocalUser](/fr-CA/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser), [XblMultiplayerManagerJoinLobby](/fr-CA/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoinlobby) échoue et fournit le xuid auquel l'invitation a été envoyée lorsque vous appelez [XblMultiplayerEventArgsXuid](/fr-CA/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsxuid) avec l'événement `JoinLobbyCompleted`.

Après avoir rejoint le salon, nous vous recommandons de définir l'adresse de connexion du membre local ainsi que les propriétés personnalisées du membre.
Vous pouvez également définir l'hôte au moyen de [XblMultiplayerManagerLobbySessionSetSynchronizedHost](/fr-CA/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetsynchronizedhost) s'il n'en existe pas.

Enfin, Multiplayer Manager intègre automatiquement l'utilisateur à la session de jeu si une partie est déjà en cours et qu'il reste de la place pour l'invité.
Le titre en est informé par l'événement `JoinGameCompleted`, qui fournit un code d'erreur et un message appropriés.

#### API C plat

```cpp theme={null}
#include <XTaskQueue.h>
#include <XGameActivation.h>  
  
XTaskQueueHandle g_taskQueue;  
XTaskQueueRegistrationToken g_activationToken;  
  
void CALLBACK OnActivation(void* context, const XGameActivationInfo* activationInfo)  
{  
    if (activationInfo->type == XGameActivationType::AcceptedGameInvite)
    {
        if (activationInfo->inviteUri != nullptr)
        {
            std::string inviteString(activationInfo->inviteUri);
            auto pos = inviteString.find("handle=");
            auto inviteHandeId = inviteString.substr(pos + 7, 36);
            // Now, call XblMultiplayerManagerJoinLobby.
        }
    }
}  
  
void InitializeGame()  
{  
    XGameActivationRegisterForEvent(g_taskQueue, nullptr, OnActivation, &g_activationToken);  
}  
  
void ShutdownGame()  
{  
    XGameActivationUnregisterForEvent(g_activationToken, true);  
}  
```

```cpp theme={null}
HRESULT hr = XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress(
    xblUserHandle, connectionAddress, context);
```

Pour plus d'informations, consultez [XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress](/fr-CA/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberconnectionaddress).

Multiplayer Manager effectue les opérations suivantes.

* Inscription aux abonnements Real-Time Activity et multijoueurs.
* Accès à la session de salon.
* Nettoyage de l'état du salon existant.
* Intégration de tous les joueurs locaux en tant que joueurs actifs.
* Chargement de l'adresse d'appareil sécurisée (SDA).
* Définition des propriétés des membres.
* Inscription aux événements de modification de session.
* Définition de la session de salon comme session active.
* Accès à la session de jeu (si elle existe).
* Utilisation d'un handle de transfert.


## Related topics

- [Gestion de l'activation de protocole (organigramme)](/fr-CA/services/xbox-services/multiplayer/mpm/concepts/flowcharts/live-mpm-on-protocol-activation.md)
- [Jouer en multijoueur avec des amis à l'aide de Multiplayer Manager](/fr-CA/services/xbox-services/multiplayer/mpm/how-to/live-play-multiplayer-with-friends.md)
- [Envoi d'invitations à un autre joueur (organigramme)](/fr-CA/services/xbox-services/multiplayer/mpm/concepts/flowcharts/live-mpm-send-invites.md)
- [Exemples de code Multiplayer Manager](/fr-CA/services/xbox-services/multiplayer/mpm/how-to/live-mm-howto-nav.md)
- [Procédures](/fr-CA/services/xbox-services/multiplayer/mpm/how-to/index.md)
