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

# XUserLocalId

> XUserLocalId

# XUserLocalId

Spécifie un ID de session de jeu pour un utilisateur.

## Syntaxe

```cpp theme={null}
typedef struct XUserLocalId {  
    uint64_t value;  
} XUserLocalId  
```

### Membres

*value*\
Type : uint64\_t

L'ID de session de jeu d'un utilisateur.

## Remarques

XUserLocalId identifie de manière unique un utilisateur au sein d'une session de jeu. Si **XUserHandle** est dupliqué, les deux handles conservent le même XUserLocalId. Une fois la session de jeu terminée, le même utilisateur peut avoir un XUserLocalId différent lors de la session suivante. Vous ne pouvez pas utiliser ces ID pour suivre des utilisateurs d'une session de jeu à l'autre. Les ID sont valides pour une session de jeu donnée.

Un XUserLocalId « null » sera égal à la valeur de **XUserNullUserLocalId**.

Les fonctions de rappel et fonctions suivantes prennent comme argument une structure XUserLocalId ou un pointeur vers celle-ci :

* [XUserChangeEventCallback](/fr/reference/system/xuser/functions/xuserchangeeventcallback) : fonction de rappel pour un événement de modification d'utilisateur.
* [XUserDefaultAudioEndpointUtf16ChangedCallback](/fr/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback) : rappel invoqué lorsque le point de terminaison audio par défaut d'un utilisateur change.
* [XUserFindUserByLocalId](/fr/reference/system/xuser/functions/xuserfinduserbylocalid) : fonction qui utilise un ID local spécifique pour récupérer un handle vers un utilisateur.
* [XUserGetDefaultAudioEndpointUtf16](/fr/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16) : fonction qui récupère le point de terminaison audio par défaut d'un utilisateur spécifique.
* [XUserGetLocalId](/fr/reference/system/xuser/functions/xusergetlocalid) : fonction qui récupère l'ID unique de session de jeu d'un utilisateur.

L'exemple suivant montre comment utiliser la structure XUserLocalId pour récupérer le point de terminaison audio par défaut d'un utilisateur.

```cpp theme={null}
HRESULT GetAudioDeviceAssociation(
    IMMDeviceEnumerator* audioDeviceEnumerator,
    XUserLocalId user,
    XUserDefaultAudioEndpointKind defaultAudioEndpointKind,
    _Outptr_result_maybenull_ IMMDevice** endpoint)
{
    wchar_t audioDeviceId[XUserAudioEndpointMaxUtf16Count];
    RETURN_IF_FAILED_WITH_EXPECTED(XUserGetDefaultAudioEndpointUtf16(user, defaultAudioEndpointKind, std::size(audioDeviceId), audioDeviceId, nullptr), E_NOTFOUND);

    return audioDeviceEnumerator->GetDevice(audioDeviceId, endpoint);
}

HRESULT GetAudioAssociations()
{
    Mwrl::ComPtr<IMMDeviceEnumerator> audioDeviceEnumerator;

    RETURN_IF_FAILED(CoCreateInstance(
        __uuidof(MMDeviceEnumerator),
        nullptr,
        CLSCTX_ALL,
        __uuidof(IMMDeviceEnumerator),
        (void**)&audioDeviceEnumerator));

    XUserLocalId userLocalId;
    RETURN_IF_FAILED(XUserGetLocalId(_handle.get(), &userLocalId));

    {
        wil::unique_cotaskmem_string id;
        Mwrl::ComPtr<IMMDevice> device;
        if (SUCCEEDED(GetAudioDeviceAssociation(audioDeviceEnumerator.Get(), userLocalId, XUserDefaultAudioEndpointKind::CommunicationRender, &device)))
        {
            RETURN_IF_FAILED(device->GetId(&id));
        }
        appLog.AddLog("Preferred render communication device id: %S\n", id.get());
    }

    {
        wil::unique_cotaskmem_string id;
        Mwrl::ComPtr<IMMDevice> device;
        if (SUCCEEDED(GetAudioDeviceAssociation(audioDeviceEnumerator.Get(), userLocalId, XUserDefaultAudioEndpointKind::CommunicationCapture, &device)))
        {
            RETURN_IF_FAILED(device->GetId(&id));
        }
        appLog.AddLog("Preferred capture communication device id: %S\n", id.get());
    }

    return S_OK;
}
```

## Configuration requise

**En-tête :** XUser.h

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[XUser](/fr/reference/system/xuser/xuser_members)

[XUserChangeEventCallback](/fr/reference/system/xuser/functions/xuserchangeeventcallback)

[XUserDefaultAudioEndpointUtf16ChangedCallback](/fr/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback)

[XUserFindUserByLocalId](/fr/reference/system/xuser/functions/xuserfinduserbylocalid)

[XUserGetDefaultAudioEndpointUtf16](/fr/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16)

[XUserGetLocalId](/fr/reference/system/xuser/functions/xusergetlocalid)


## Related topics

- [XUserLocalId](/reference/system/xuser/structs/xuserlocalid.md)
- [XUserGetLocalId](/reference/system/xuser/functions/xusergetlocalid.md)
- [XUserFindUserByLocalId](/reference/system/xuser/functions/xuserfinduserbylocalid.md)
- [APP_LOCAL_DEVICE_ID](/zh-CN/reference/system/xuser/structs/app_local_device_id.md)
- [XUserDeviceAssociationChange](/reference/system/xuser/structs/xuserdeviceassociationchange.md)
