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

# XGameStreamingRegisterClientPropertiesChanged

> XGameStreamingRegisterClientPropertiesChanged

# XGameStreamingRegisterClientPropertiesChanged

Inscrit un rappel à appeler lorsque les propriétés d'un appareil client de streaming changent.

<Note>Lors de l'inscription, le rappel est appelé pour les propriétés actuelles de l'appareil client.</Note>

## Syntaxe

```cpp theme={null}
HRESULT XGameStreamingRegisterClientPropertiesChanged(  
         XGameStreamingClientId client,  
         XTaskQueueHandle queue,  
         void* context,  
         XGameStreamingClientPropertiesChangedCallback* callback,  
         XTaskQueueRegistrationToken* token  
)  
```

### Paramètres

*client*   \_In\_\
Type : XGameStreamingClientId

ID du client de streaming de jeux pour lequel vous vous inscrivez afin de recevoir des rappels.

*queue*   \_In\_opt\_\
Type : XTaskQueueHandle

Handle de la file d'attente asynchrone dans laquelle placer le rappel de modification.

*context*   \_In\_opt\_\
Type : void\*

Pointeur facultatif vers un contexte qui sera passé à la fonction de rappel.

*callback*   \_In\_\
Type : [XGameStreamingClientPropertiesChangedCallback\*](/fr/reference/system/xgamestreaming/functions/xgamestreamingclientpropertieschangedcallback)

Fonction de rappel qui sera appelée lorsque les propriétés du client changent.

*token*   \_Out\_\
Type : XTaskQueueRegistrationToken\*

Pointeur vers le jeton d'inscription qui peut être utilisé pour annuler l'inscription à l'événement.

### Valeur de retour

Type : HRESULT

Retourne **S\_OK** en cas de réussite ; sinon, retourne un code d'erreur.

#### Erreurs potentielles

| Code d'erreur | Valeur d'erreur | Cause de l'erreur |
| - | - | - |
| E\_GAMESTREAMING\_NOT\_INITIALIZED | 0x89245400 | Le runtime XGameStreaming n'a pas été initialisé. Appelez [XGameStreamingInitialize](/fr/reference/system/xgamestreaming/functions/xgamestreaminginitialize) avant d'appeler d'autres API. |
| E\_GAMESTREAMING\_CLIENT\_NOT\_CONNECTED | 0x89245401 | Le client spécifié n'est pas connecté. |

Pour obtenir la liste des codes d'erreur, consultez [Codes d'erreur](/fr/reference/errorcodes).

## Remarques

<Note>Il n'est pas sûr d'appeler cette fonction sur un thread à contrainte de temps. Pour plus d'informations, consultez [Threads à contrainte de temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Cette API permet au jeu de recevoir un `XGameStreamingClientPropertiesChangedCallback` chaque fois qu'une [XGameStreamingClientProperty](/fr/reference/system/xgamestreaming/enums/xgamestreamingclientproperty), comme les dimensions physiques du flux, change.

L'inscription **ENTRAÎNE** l'appel du rappel avec toutes les `XGameStreamingClientProperty` applicables, afin de pouvoir interroger les détails actuels des propriétés.

Lorsque l'appareil client de streaming se déconnecte, utilisez [XGameStreamingUnregisterClientPropertiesChanged](/fr/reference/system/xgamestreaming/functions/xgamestreamingunregisterclientpropertieschanged) pour annuler l'inscription du rappel.

## Exemple

```cpp theme={null}
    // On client connection maintain a list of clients and do per client initialization
    void GameStreamingClientManager::OnClientConnected(XGameStreamingClientId client)
    {
        StreamingClient connectedClient;
        connectedClient.clientId = client;
        connectedClient.propertiesChangedToken = token;

        // Do per-client initialization
        XGameStreamingClientPropertiesChangedRegistrationToken token = {0};
        XGameStreamingRegisterClientPropertiesChanged(
            client, m_taskQueue, this, &OnClientPropertiesChanged, &token);        

        connectedClient.propertiesChangedToken = token;
        m_streamingClients.push_back(connectedClient);
    }

    // Some of the properties of our streaming client have changed, react to any of the changes which apply to our game
    void GameStreamingClientManager::OnClientPropertiesChanged(
        void* context,
        XGameStreamingClientId client,
        uint32_t updatedPropertiesCount,
        XGameStreamingClientProperty* updatedProperties)
    {
        GameStreamingClientManager* gsClientManager = reinterpret_cast<GameStreamingClientManager*>(context);

        for (uint32_t i = 0; i < updatedPropertiesCount; ++i)
        {
            switch (updatedProperties[i])
            {
                // The client now has a new physical size of the game stream - update our list of stream
                // sizes to reflect this.
            case XGameStreamingClientProperty::StreamPhysicalDimensions:
                gsClientManager->UpdateClientPhysicalDimensions(client); 
                break;

            case XGameStreamingClientProperty::TouchInputEnabled: 
                gsClientManager->UpdateClientTouchEnabled(client); 
                break;

            default:
                // A characteristic we are not tracking - do nothing
                break;
            }
        }
    }

```

## Configuration requise

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

**Bibliothèque :** xgameruntime.lib

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

## Documentation conceptuelle

* [Threads à contrainte de temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[XGameStreamingClientProperty](/fr/reference/system/xgamestreaming/enums/xgamestreamingclientproperty)\
[XGameStreamingClientPropertiesChangedCallback](/fr/reference/system/xgamestreaming/functions/xgamestreamingclientpropertieschangedcallback)\
[XGameStreamingUnregisterClientPropertiesChanged](/fr/reference/system/xgamestreaming/functions/xgamestreamingunregisterclientpropertieschanged)\
[XGameStreaming](/fr/reference/system/xgamestreaming/xgamestreaming_members)


## Related topics

- [XGameStreamingRegisterClientPropertiesChanged](/reference/system/xgamestreaming/functions/xgamestreamingregisterclientpropertieschanged.md)
- [XGameStreamingUnregisterClientPropertiesChanged](/reference/system/xgamestreaming/functions/xgamestreamingunregisterclientpropertieschanged.md)
- [XGameStreamingClientPropertiesChangedCallback](/reference/system/xgamestreaming/functions/xgamestreamingclientpropertieschangedcallback.md)
- [XGameStreamingClientProperty](/reference/system/xgamestreaming/enums/xgamestreamingclientproperty.md)
