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

# Envío de invitaciones

> Envíe invitaciones a partidas multijugador de XBOX desde un título mediante la superposición de la Title-Callable UI o la API XblMultiplayerSendInvitesAsync con una interfaz de usuario personalizada en el juego.

Use este tema para configurar sesiones de juego multijugador entre usuarios en los servicios de XBOX.

Su juego envía invitaciones a otros usuarios para que se unan a su sesión de juego. Hay dos formas de enviar una invitación a una partida a otros usuarios.
Puede usar la Title-Callable UI (TCUI) (superposición de la interfaz de usuario del sistema), o puede usar una interfaz de usuario personalizada implementada por el título.

## Uso de la Title-Callable UI (TCUI) (superposición de la interfaz de usuario del sistema)

Llamar a la API [XGameUiShowSendGameInviteAsync](/reference/system/xgameui/functions/xgameuishowsendgameinviteasync) recupera la superposición estándar de la interfaz de usuario del sistema para invitar amigos.
Esto muestra una interfaz de usuario por la que el usuario puede navegar para seleccionar amigos o usuarios de la [lista de jugadores recientes](/services/xbox-services/multiplayer/mpa/concepts/live-mpa-recent-players)
para invitarlos a la partida. Cuando el usuario selecciona **Confirm**, la invitación se envía a los usuarios seleccionados.

## Uso de una interfaz de usuario personalizada implementada por el título

Su título puede implementar una interfaz de usuario personalizada para ver a los amigos en línea e invitarlos a sesiones de juego.
Use la API [XblMultiplayerSendInvitesAsync](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync) para enviar invitaciones a un conjunto de usuarios definidos
por su [XboxUserId (XUID)](/services/xbox-services/multiplayer/mpa/concepts/live-mpa-activities), como se muestra en el código siguiente.
Esto resulta útil si prefiere usar su propia interfaz de usuario en el juego en lugar de la interfaz de usuario del sistema estándar.

### Flat C

```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 ownership of the XAsyncBlock*
    size_t handlesCount = 1; // must be equal to invites that are requested
    XblMultiplayerInviteHandle handles[1] = {};
    HRESULT hr = XblMultiplayerSendInvitesResult(asyncBlock, handlesCount, handles);
};

uint64_t xuids[1] = {};
xuids[0] = targetXuid;
size_t xuidsCount = 1;

HRESULT hr = XblMultiplayerSendInvitesAsync(
    xblContextHandle,
    &sessionReference,
    xuids,
    xuidsCount,
    titleId,
    contextStringId,
    customActivationContext,
    asyncBlock.get());
if (SUCCEEDED(hr))
{
    // The call succeeded, so release the std::unique_ptr ownership of XAsyncBlock* since the callback will take ownership.
    // If the call fails, the std::unique_ptr will keep ownership and delete the XAsyncBlock*
    asyncBlock.release();
}
```

## Documentación de referencia de la API

* [Xgameactivation (contenido de la API)](/reference/system/xgameactivation/xgameactivation_members)
* [xgameui (contenido de la API)](/reference/system/xgameui/xgameui_members)
  * Funciones
    * [XGameUiShowSendGameInviteAsync](/reference/system/xgameui/functions/xgameuishowsendgameinviteasync)
* [multiplayer\_c (contenido de la API)](/reference/live/xsapi-c/multiplayer_c/multiplayer_c_members)
  * Funciones
    * [XblMultiplayerSendInvitesAsync](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync)
    * [XblMultiplayerSendInvitesResult](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesresult)
  * Estructuras
    * [XblMultiplayerInviteHandle](/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayerinvitehandle)
* [xasync (contenido de la API)](/reference/system/xasync/xasync_members)
  * Estructuras
    * [XAsyncBlock](/reference/system/xasync/structs/xasyncblock)

## Consulte también

[XAsyncBlock](/reference/system/xasync/structs/xasyncblock)
[XblMultiplayerInviteHandle](/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayerinvitehandle)
[XblMultiplayerSendInvitesAsync](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync)
[XblMultiplayerSendInvitesResult](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesresult)
[XGameActivation (referencia de API)](/reference/system/xgameactivation/xgameactivation_members)
[Control de la activación de protocolo para iniciar un juego mediante Multiplayer Manager](/services/xbox-services/multiplayer/mpm/how-to/live-handle-protocol-activation)
[Envío de invitaciones a partidas mediante Multiplayer Manager](/services/xbox-services/multiplayer/mpm/how-to/live-send-game-invites)


## Related topics

- [Información general de las invitaciones](/es/services/xbox-services/multiplayer/invites/live-multiplayer-invites-overview.md)
- [Código de ejemplo de invitaciones](/es/services/xbox-services/multiplayer/invites/how-to/live-invites-howto-nav.md)
- [Invitaciones de lobby](/es/services/playfab/multiplayer/lobby/lobby-invites.md)
- [Invitar a jugadores a sesiones de juego](/es/services/xbox-services/multiplayer/invites/live-invites-nav.md)
- [Código de ejemplo para Multiplayer Activity](/es/services/xbox-services/multiplayer/mpa/how-to/live-mpa-client-how-to.md)
