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

Microsoft Game Development Kit (GDK) Launcher API は、URI を呼び出すことでゲームがエクスペリエンスを起動できるメカニズムを提供します。

## Syntax

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

### Parameters

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

要求を行うユーザーを識別するハンドルを定義します。

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

起動する URI を示す文字列。

### Return value

型: HRESULT

HRESULT の成功またはエラー コード。

成功した場合は S\_OK を返します。それ以外の場合はエラー コードを返します。エラー コードの一覧については、[Error Codes](/reference/errorcodes) を参照してください。

| 戻り値                                     | 説明                                                                               |
| --------------------------------------- | -------------------------------------------------------------------------------- |
| S\_OK                                   | 操作が成功しました。                                                                       |
| E\_GAMEPACKAGE\_NO\_PACKAGE\_IDENTIFIER | この関数に渡された URI は、アプリをバックグラウンドで起動しようとしましたが、適切なアプリが見つかりませんでした。インストールされていない可能性があります。 |

## Remarks

<Note>この関数は、タイム センシティブ スレッドから呼び出しても安全ではありません。詳細については、[Time-sensitive threads](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads) を参照してください。</Note>

これは URI を介して別のアプリを起動します。また、オプションのユーザー コンテキストと必須の URI を受け入れます。

成功した場合、宛先の URI が起動されます。それ以外の場合はエラーが返されます。このメソッドはタイム クリティカルとは見なされず、基盤となる非同期システム操作が完了して、宛先の URI が起動されるかエラーが発生するまでブロックされます。

指定された URI のプロトコル スキームを処理するアプリが存在しない場合、システムは、そのスキームを処理するアプリケーションを Windows ストアで検索するかどうかをユーザーに尋ねるプロンプトを表示します。

### バックグラウンドでの起動

コンソールでは、appxmanifest ファイルに [backgroundMediaPlayback](https://learn.microsoft.com/windows/uwp/audio-video-camera/background-audio) 機能を持つユニバーサル Windows アプリを、フォアグラウンドではなくバックグラウンドで起動できます。これを行うには、URI に "ms-bgm-" という文字列を先頭に付加します。たとえば、バックグラウンド メディア アプリケーションがプロトコル "companion-music-app\://" に応答する場合、URI "ms-bgm-companion-music-app\://" でバックグラウンドに起動できます。アプリがアクティブ化を受信するとき、[ProtocolActivatedEventArgs](https://learn.microsoft.com/uwp/api/windows.applicationmodel.activation.protocolactivatedeventargs) から取得した URI には "ms-bgm-" プレフィックスは含まれません。

この方法で呼び出した場合、適切なアプリがインストールされていないときに、XLaunchUri はユーザーにプロンプトを表示しません。代わりに、ゲームが GDK の 2025 年 4 月版以降を使用している場合は、E\_GAMEPACKAGE\_NO\_PACKAGE\_IDENTIFIER を返します。コードでこの戻り値をチェックし、必要に応じてユーザーに修復 UI を表示するために使用できます。

PC では、この方法で XLaunchUri を呼び出すと、URI の先頭から単に "ms-bgm-" を削除して、通常どおり起動します。PC 上のシステム動作に他の影響はありません。

以下は、コンパニオン ミュージック アプリケーションを起動するために XLaunchUri を呼び出す例です。

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

## Requirements

**ヘッダー:** XLauncher.h

**ライブラリ:** xgameruntime.lib

**サポートされているプラットフォーム:** Windows、XBOX One ファミリー本体および XBOX Series 本体

## 概念ドキュメント

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

## See also

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


## Related topics

- [XLaunchNewGame](/ja-jp/reference/system/xgame/functions/xlaunchnewgame.md)
- [XLauncher](/ja-jp/reference/system/xlauncher/xlauncher_members.md)
- [XR-109 アプリ間のリンク](/ja-jp/publishing/certification/xr/xr-109.md)
- [フロント パネル URI](/ja-jp/reference/deviceportal/frontpanel/atoc-rest-frontpanel.md)
- [XLaunchRestartOnCrash](/ja-jp/reference/system/xgame/functions/xlaunchrestartoncrash.md)
