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

# Obtention d'un classement géré par le titre

> Exemple de code XSAPI pour lire un classement XBOX Live géré par le titre, y compris les résultats complets, les vues autour d'un rang et les requêtes autour d'un joueur.

**Contenu**

* [Obtention d'un classement complet](#gael)
* [Obtention d'un classement autour d'un rang spécifié](#galaasr)
* [Obtention d'un classement autour d'un joueur spécifié](#galaasp)

Cette rubrique décrit comment obtenir les valeurs d'un classement géré par le titre.

<a id="gael" />

## Obtention d'un classement complet

Utilisez [XblLeaderboardGetLeaderboardAsync](/fr/reference/live/xsapi-c/leaderboard_c/functions/xblleaderboardgetleaderboardasync) pour renvoyer les valeurs d'un classement donné. Les résultats sont renvoyés par ordre de rang décroissant, en commençant par le haut du classement. Lorsque vous interrogez un classement reposant sur une statistique gérée par le titre, veillez à définir le champ `queryType` sur `XblLeaderboardQueryType::TitleManagedStatBackedGlobal` ou `XblLeaderboardQueryType::TitleManagedStatBackedSocial`.

**C API**

```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 the XAsyncBlock*
    size_t resultSize;
    HRESULT hr = XblLeaderboardGetLeaderboardResultSize(asyncBlock, &resultSize);

    if (SUCCEEDED(hr))
    {
        leaderboardBuffer.resize(resultSize);
        XblLeaderboardResult* leaderboard{};

        hr = XblLeaderboardGetLeaderboardResult(asyncBlock, resultSize, leaderboardBuffer.data(), &leaderboard, nullptr);

        if (SUCCEEDED(hr))
        {
            // Use XblLeaderboardResult in result
            for (auto row = 0u; row < leaderboard->rowsCount; ++row)
            {
                std::stringstream rowText;
                rowText << leaderboard->rows[row].xboxUserId << "\t";

                for (auto column = 0u; column < leaderboard->rows[row].columnValuesCount; ++column)
                {
                    rowText << leaderboard->rows[row].columnValues[column] << "\t";
                }
            }
        }
    }
};

// XblLeaderboardQuery is set up to query for all leaderboard items here
// see example code in sections below showing how to run other queries
XblLeaderboardQuery leaderboardQuery = {}; 
pal::strcpy(leaderboardQuery.scid, sizeof(leaderboardQuery.scid), scid.c_str()) 
leaderboardQuery.statName = statName.c_str(); 
leaderboardQuery.queryType = XblLeaderboardQueryType::TitleManagedStatBackedGlobal;


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

**Référence**

* [XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock)
* [XblLeaderboardGetLeaderboardAsync](/fr/reference/live/xsapi-c/leaderboard_c/functions/xblleaderboardgetleaderboardasync)
* [XblLeaderboardGetLeaderboardResult](/fr/reference/live/xsapi-c/leaderboard_c/functions/xblleaderboardgetleaderboardresult)
* [XblLeaderboardGetLeaderboardResultSize](/fr/reference/live/xsapi-c/leaderboard_c/functions/xblleaderboardgetleaderboardresultsize)
* [XblLeaderboardQuery](/fr/reference/live/xsapi-c/leaderboard_c/structs/xblleaderboardquery)
* [XblLeaderboardResult](/fr/reference/live/xsapi-c/leaderboard_c/structs/xblleaderboardresult)
* [XblLeaderboardQueryType](/fr/reference/live/xsapi-c/leaderboard_c/enums/xblleaderboardquerytype)

<a id="galaasr" />

## Obtention d'un classement autour d'un rang spécifié

Vous pouvez obtenir des résultats filtrés d'une requête de classement en spécifiant des critères de requête lors de la création de [XblLeaderboardQuery](/fr/reference/live/xsapi-c/leaderboard_c/structs/xblleaderboardquery).
Pour obtenir les valeurs d'un classement autour d'un rang spécifié, utilisez le code de l'exemple ci-dessus, mais remplacez les lignes qui créent XblLeaderboardQuery par le code suivant :

**C API**

```cpp theme={null}
XblLeaderboardQuery leaderboardQuery = {};
pal::strcpy(leaderboardQuery.scid, sizeof(leaderboardQuery.scid), scid.c_str());
leaderboardQuery.statName = statName.c_str();
leaderboardQuery.skipResultToRank = 100;
leaderboardQuery.maxItems = 100;
leaderboardQuery.queryType = XblLeaderboardQueryType::TitleManagedStatBackedGlobal;
```

**Référence**

* [XblLeaderboardQuery](/fr/reference/live/xsapi-c/leaderboard_c/structs/xblleaderboardquery)

<a id="galaasp" />

## Obtention d'un classement autour d'un joueur spécifié

Pour obtenir les valeurs d'un classement autour d'un joueur spécifié, utilisez le code de l'exemple ci-dessus, mais remplacez les lignes qui créent [XblLeaderboardQuery](/fr/reference/live/xsapi-c/leaderboard_c/structs/xblleaderboardquery) par le code suivant :

**C API**

```cpp theme={null}
XblLeaderboardQuery leaderboardQuery = {};
pal::strcpy(leaderboardQuery.scid, sizeof(leaderboardQuery.scid), scid.c_str());
leaderboardQuery.statName = statName.c_str();
leaderboardQuery.skipToXboxUserId = xboxUserId;
leaderboardQuery.maxItems = 100;
leaderboardQuery.queryType = XblLeaderboardQueryType::TitleManagedStatBackedGlobal;
```

**Référence**

* [XblLeaderboardQuery](/fr/reference/live/xsapi-c/leaderboard_c/structs/xblleaderboardquery)


## Related topics

- [Exemple de code pour les statistiques et classements gérés par le titre](/fr/services/xbox-services/player-data/stats-leaderboards/title-managed/how-to/live-statslb-tm-howto-nav.md)
- [Statistiques et classements gérés par le titre](/fr/services/xbox-services/player-data/stats-leaderboards/title-managed/live-statslb-tm-nav.md)
- [Configuration dans le portail des statistiques et classements gérés par le titre](/fr/services/xbox-services/player-data/stats-leaderboards/title-managed/config/live-statslb-tm-config-nav.md)
- [Configurer les statistiques et classements gérés par le titre](/fr/services/xbox-services/player-data/stats-leaderboards/title-managed/config/live-tm-leaderboards-portal.md)
- [Succès basés sur les événements et succès gérés par le titre](/fr/services/xbox-services/player-data/achievements/live-achievements-eb-vs-tm.md)
