> ## 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.

# Mise à jour de la présence d'un utilisateur au moyen de XSAPI C

> Exemple en C plat utilisant XblPresenceSetPresenceAsync pour mettre à jour l'état de présence en ligne d'un utilisateur XBOX Live et indiquer son activité en cours dans le jeu.

Cette rubrique fournit un exemple de code pour définir l'état de présence en ligne d'un utilisateur. La présence enrichie des services XBOX fournit des fonctionnalités permettant d'indiquer l'activité en cours d'un joueur aux autres joueurs.

Pour plus d'informations, consultez [Vue d'ensemble de la présence enrichie](/fr-CA/services/xbox-services/community/presence/live-presence-overview).

## Mise à jour de l'état de présence en ligne d'un utilisateur

Cet exemple de code définit l'état de présence en ligne d'un utilisateur.

#### API C plate

```cpp theme={null}
auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = queue;
asyncBlock->context = nullptr;
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
    std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock }; // Take over ownership of XAsyncBlock*.
    HRESULT hr = XAsyncGetStatus(asyncBlock, false);
};

HRESULT hr = XblPresenceSetPresenceAsync(xboxLiveContext, true, nullptr, asyncBlock.get());
if (SUCCEEDED(hr))
{
    // The call succeeded, so release the std::unique_ptr ownership of XAsyncBlock* because the callback will take over ownership.
    // If the call fails, std::unique_ptr will keep ownership and delete XAsyncBlock*.
    asyncBlock.release();
}
```

Pour plus d'informations, consultez les rubriques suivantes :

* [XAsyncBlock](/fr-CA/reference/system/xasync/structs/xasyncblock)
* [XAsyncGetStatus](/fr-CA/reference/system/xasync/functions/xasyncgetstatus)
* [XblPresenceSetPresenceAsync](/fr-CA/reference/live/xsapi-c/presence_c/functions/xblpresencesetpresenceasync)

## Mise à jour de l'état de présence enrichie

#### API C plate

```cpp theme={null}
XblPresenceRichPresenceIds ids{};
pal::strcpy(ids.scid, sizeof(ids.scid), scid);
ids.presenceId = "playingMap";
std::vector<const char*> tokenIds{ "CurrentMap" };
ids.presenceTokenIds = tokenIds.data();
ids.presenceTokenIdsCount = tokenIds.size();

HRESULT hr = XblPresenceSetPresenceAsync(xboxLiveContext, true, &ids, asyncBlock.get());
```

Pour plus d'informations, consultez les rubriques suivantes :

* [XblPresenceRichPresenceIds](/fr-CA/reference/live/xsapi-c/presence_c/structs/xblpresencerichpresenceids)
* [XblPresenceSetPresenceAsync](/fr-CA/reference/live/xsapi-c/presence_c/functions/xblpresencesetpresenceasync)


## Related topics

- [Exemple de code de présence enrichie](/fr-CA/services/xbox-services/community/presence/how-to/live-presence-howto-nav.md)
- [Procédures](/fr-CA/services/xbox-services/community/presence/how-to/index.md)
- [Mise à jour de la présence d'un utilisateur au moyen de REST](/fr-CA/services/xbox-services/community/presence/how-to/live-updating-presence-rest.md)
- [Obtention de la présence d'un utilisateur](/fr-CA/services/xbox-services/community/presence/how-to/live-getting-a-users-presence.md)
- [GetMemberConnectionStatus](/fr-CA/services/playfab/multiplayer/lobby/unity-multiplayer-api-reference/PlayFab.Multiplayer/Lobby/GetMemberConnectionStatus.md)
