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

Registra um retorno de chamada a ser invocado quando as propriedades de qualquer dispositivo cliente de streaming forem alteradas.

<Note>Após o registro, o retorno de chamada será invocado para as propriedades atuais do dispositivo cliente.</Note>

## Sintaxe

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

### Parâmetros

*client*   \_In\_\
Tipo: XGameStreamingClientId

ID do cliente de streaming de jogos para o qual você está se registrando para receber retornos de chamada.

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

Identificador da fila assíncrona na qual colocar o retorno de chamada de alteração.

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

Um ponteiro opcional para um contexto que será passado para a função de retorno de chamada.

*callback*   \_In\_\
Tipo: [XGameStreamingClientPropertiesChangedCallback\*](/pt-BR/reference/system/xgamestreaming/functions/xgamestreamingclientpropertieschangedcallback)

A função de retorno de chamada que será invocada quando as propriedades do cliente forem alteradas.

*token*   \_Out\_\
Tipo: XTaskQueueRegistrationToken\*

Um ponteiro para o token de registro que pode ser usado para cancelar o registro do evento.

### Valor retornado

Tipo: HRESULT

Retornará **S\_OK** se for bem-sucedido; caso contrário, retornará um código de erro.

#### Erros potenciais

| Código de erro | Valor do erro | Motivo do erro |
| - | - | - |
| E\_GAMESTREAMING\_NOT\_INITIALIZED | 0x89245400 | O runtime do XGameStreaming não foi inicializado. Chame [XGameStreamingInitialize](/pt-BR/reference/system/xgamestreaming/functions/xgamestreaminginitialize) antes de chamar outras APIs. |
| E\_GAMESTREAMING\_CLIENT\_NOT\_CONNECTED | 0x89245401 | O cliente especificado não está conectado. |

Para obter uma lista de códigos de erro, consulte [Códigos de erro](/pt-BR/reference/errorcodes).

## Comentários

<Note>Não é seguro chamar esta função em um thread sensível ao tempo. Para obter mais informações, consulte [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Esta API permite que o jogo receba um `XGameStreamingClientPropertiesChangedCallback` sempre que uma [XGameStreamingClientProperty](/pt-BR/reference/system/xgamestreaming/enums/xgamestreamingclientproperty), como as dimensões físicas do fluxo, for alterada.

O registro **FARÁ** com que o retorno de chamada seja invocado com todas as `XGameStreamingClientProperty` aplicáveis, para que seja possível consultar os detalhes atuais das propriedades.

Quando o dispositivo cliente de streaming se desconectar, use [XGameStreamingUnregisterClientPropertiesChanged](/pt-BR/reference/system/xgamestreaming/functions/xgamestreamingunregisterclientpropertieschanged) para cancelar o registro do retorno de chamada.

## Exemplo

```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;
            }
        }
    }

```

## Requisitos

**Cabeçalho:** xgamestreaming.h

**Biblioteca:** xgameruntime.lib

**Plataformas com suporte:** Windows, consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Confira também

[XGameStreamingClientProperty](/pt-BR/reference/system/xgamestreaming/enums/xgamestreamingclientproperty)\
[XGameStreamingClientPropertiesChangedCallback](/pt-BR/reference/system/xgamestreaming/functions/xgamestreamingclientpropertieschangedcallback)\
[XGameStreamingUnregisterClientPropertiesChanged](/pt-BR/reference/system/xgamestreaming/functions/xgamestreamingunregisterclientpropertieschanged)\
[XGameStreaming](/pt-BR/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)
