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

# XGameStreamingGetTouchBundleVersion

> XGameStreamingGetTouchBundleVersion

# XGameStreamingGetTouchBundleVersion

Obtém a versão do pacote de adaptação de toque que está sendo utilizado no momento no dispositivo especificado.

## Sintaxe

```cpp theme={null}
HRESULT XGameStreamingGetTouchBundleVersion(  
        XGameStreamingClientId client,
        XVersion* version,
        size_t versionNameSize,
        char* versionName
)  
```

### Parâmetros

*client*   \_In\_\
Tipo: XGameStreamingClientId

O cliente de streaming que está sendo consultado.

*version*   \_Out\_opt\_\
Tipo: XVersion\*

O número de versão do pacote que está sendo usado no momento no cliente especificado.  Se nenhum número de versão for especificado no pacote, 0.0.0.0 será retornado.

*versionNameSize*   \_In\_\
Tipo: size\_t

O tamanho máximo, em bytes, do `versionName` a ser retornado.  O tamanho a ser especificado pode ser obtido chamando [XGameStreamingGetTouchBundleVersionNameSize](/pt-BR/reference/system/xgamestreaming/functions/xgamestreaminggettouchbundleversionnamesize).

*versionName*   \_Out\_writes\_opt\_z\_\
Tipo: char\*

O nome de versão do pacote que está sendo usado no momento no cliente especificado.  Se nenhum nome de versão for especificado no pacote, `null` será retornado.

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

Os layouts de toque apresentados ao jogador durante o streaming de jogos usam layouts predefinidos que são carregados na Microsoft como parte de um pacote de adaptação de toque. `XGameStreamingGetTouchBundleVersion` permite que o jogo tome decisões em runtime com base no conjunto de controles de toque que estão sendo utilizados em um cliente específico.  Alguns exemplos de onde isso pode ser utilizado:

* Para remover um elemento do HUD se o jogador estiver usando toque e o elemento estiver disponível por meio dos controles de sobreposição de toque.
* Para decidir quais dicas gráficas exibir no jogo com base nos layouts de toque que serão exibidos.

A `version` será exclusiva para cada versão carregada no serviço.  Cada atualização exigirá um novo número de versão.

O `versionName` pode ser usado para fornecer uma versão semântica (por exemplo, este é um conjunto de layouts que dá suporte ao DLC2) em vez de ficar preso a um número de versão específico. Por exemplo, se os números de versão forem atribuídos automaticamente pelo seu sistema de build, pode ser difícil para o código do jogo saber o número de versão exato dos pacotes de adaptação de toque que aparecerão em runtime. Para permitir que o código detecte a presença de um pacote sem precisar saber sua versão exata, você pode optar por usar um nome de versão em vez de fazer comparações com base em um número de versão.

## Exemplo

```C++ theme={null}
void GameStreamingClientManager::GetClientTouchBundleVersion(XGameStreamingClientId client)
{
    // Get the touch bundle version and initialize the touch HUD based on the 
    // semantic version name that was returned
    
    size_t versionNameSize = XGameStreamingGetTouchBundleVersionNameSize(clientId);

    XVersion version{};
    std::vector<char> versionName(versionNameSize, 0);
    XGameStreamingGetTouchBundleVersion(clientId, &version, versionNameSize, &versionName[0]);

    InitializeTouchHUD(versionName);

    if (strcmp("DLC2", versionName.data()) == 0)
    {
        // we have our DLC2 controls, switch to the HUD layout that works best with those overlay controls.
        InitializeHUDForDLC2TouchControls();
    }
}
```

## Requisitos

**Cabeçalho:** XGameStreaming.h

**Biblioteca:** xgameruntime.lib

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

## Confira também

[XGameStreaming](/pt-BR/reference/system/xgamestreaming/xgamestreaming_members#ClientProperties)\
[XGameStreamingGetTouchBundleVersionNameSize](/pt-BR/reference/system/xgamestreaming/functions/xgamestreaminggettouchbundleversionnamesize)


## Related topics

- [XGameStreamingGetTouchBundleVersion](/es/reference/system/xgamestreaming/functions/xgamestreaminggettouchbundleversion.md)
- [XGameStreamingGetTouchBundleVersionNameSize](/reference/system/xgamestreaming/functions/xgamestreaminggettouchbundleversionnamesize.md)
