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

# XLaunchUri

> XLaunchUri

# XLaunchUri

La API Launcher del Microsoft Game Development Kit (GDK) proporciona un mecanismo que permite a los juegos iniciar una experiencia invocando un URI.

## Sintaxis

```cpp theme={null}
HRESULT XLaunchUri(  
         XUserHandle requestingUser,  
         const char* uri  
)  
```

### Parámetros

*requestingUser*   \_In\_opt\_\
Tipo: XUserHandle

Define un identificador que identifica al usuario que realiza la solicitud.

*uri*   \_In\_z\_\
Tipo: char\*

Cadena que indica el URI que se va a iniciar.

### Valor devuelto

Tipo: HRESULT

Código de error o de éxito HRESULT.

Devuelve S\_OK si se realiza correctamente; de lo contrario, devuelve un código de error. Para obtener una lista de códigos de error, consulte [Códigos de error](/reference/errorcodes).

| Código devuelto                         | Descripción                                                                                                                                                      |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| S\_OK                                   | La operación se realizó correctamente.                                                                                                                           |
| E\_GAMEPACKAGE\_NO\_PACKAGE\_IDENTIFIER | El URI pasado a esta función intentó iniciar una aplicación en segundo plano, pero no se encontró ninguna aplicación adecuada. Es posible que no esté instalada. |

## Comentarios

<Note>No es seguro llamar a esta función en un subproceso sensible al tiempo. Para obtener más información, consulte [Subprocesos sensibles al tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Esto inicia otra aplicación mediante un URI. También acepta un contexto de usuario opcional y un URI obligatorio.

Si se realiza correctamente, se inicia el URI de destino. De lo contrario, se devuelve un error. Este método no se considera crítico en cuanto al tiempo y se bloquea hasta que se completa la operación asincrónica subyacente del sistema y se inicia el URI de destino o se produce un error.

Si no existe ninguna aplicación para controlar el esquema de protocolo del URI dado, el sistema muestra un aviso al usuario preguntándole si desea buscar en la Windows Store una aplicación que controle ese esquema.

### Inicio en segundo plano

En la consola, las aplicaciones Windows universales que tienen la funcionalidad [backgroundMediaPlayback](https://learn.microsoft.com/windows/uwp/audio-video-camera/background-audio) en su archivo appxmanifest se pueden iniciar en segundo plano en lugar de en primer plano. Para ello, anteponga a su URI la cadena "ms-bgm-". Por ejemplo, si su aplicación multimedia en segundo plano responde al protocolo "companion-music-app\://", podría iniciarla en segundo plano con el URI "ms-bgm-companion-music-app\://". Cuando la aplicación reciba la activación, el URI obtenido de [ProtocolActivatedEventArgs](https://learn.microsoft.com/uwp/api/windows.applicationmodel.activation.protocolactivatedeventargs) no incluirá el prefijo "ms-bgm-".

Cuando se llama de esta manera, XLaunchUri no muestra un aviso al usuario cuando no hay instalada ninguna aplicación adecuada. En su lugar, si su juego usa la versión de abril de 2025 del GDK o posterior, devuelve E\_GAMEPACKAGE\_NO\_PACKAGE\_IDENTIFIER. Su código puede comprobar este valor devuelto y usarlo para mostrar al usuario una interfaz de usuario de corrección, según corresponda.

En PC, cuando se llama a XLaunchUri de esta manera, simplemente se quita "ms-bgm-" del principio del URI antes de iniciarlo normalmente. No tiene ningún otro efecto en el comportamiento del sistema en PC.

Este es un ejemplo de una llamada a XLaunchUri para iniciar una aplicación de música complementaria:

```cpp theme={null}
HRESULT BeginPlayingMusic(XUserHandle user)
{
    // Launch a well-known companion music application.
    // The game and app both need to agree on the URI scheme.
    HRESULT hr = XLaunchUri(user, "ms-bgm-companion-music-app://launch?play=true");
    if (hr == E_GAMEPACKAGE_NO_PACKAGE_IDENTIFIER)
    {
        // If the music app isn't installed, launch the store page so the user can download it.
        return XLaunchUri(user, "ms-windows-store://pdp/?ProductId=9FAKESTOREID");
    }

    return hr;
}
```

## Requisitos

**Encabezado:** XLauncher.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Documentación conceptual

* [Subprocesos sensibles al tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Consulte también

[XLauncher](/reference/system/xlauncher/xlauncher_members)


## Related topics

- [XLaunchNewGame](/es/reference/system/xgame/functions/xlaunchnewgame.md)
- [XLauncher](/es/reference/system/xlauncher/xlauncher_members.md)
- [XR-109 Vínculos entre aplicaciones](/es/publishing/certification/xr/xr-109.md)
- [URI del panel frontal](/es/reference/deviceportal/frontpanel/atoc-rest-frontpanel.md)
- [URI de recuperación remota](/es/reference/deviceportal/remote/atoc-rest-remote.md)
