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

# XGameUiShowMessageDialogAsync

> XGameUiShowMessageDialogAsync

# XGameUiShowMessageDialogAsync

カスタマイズ可能なメッセージ ダイアログの UI を表示します。ユーザーが押したボタンのインデックスは結果に格納されます。

## 構文

```cpp theme={null}
HRESULT XGameUiShowMessageDialogAsync(  
         XAsyncBlock* async,  
         const char* titleText,  
         const char* contentText,  
         const char* firstButtonText,  
         const char* secondButtonText,  
         const char* thirdButtonText,  
         XGameUiMessageDialogButton defaultButton,  
         XGameUiMessageDialogButton cancelButton  
)  
```

### パラメーター

*async*   \_In\_<br />Type: [XAsyncBlock\*](/reference/system/xasync/structs/xasyncblock)

[XAsyncRun](/reference/system/xasync/functions/xasyncrun) に渡される [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) へのポインター。

*titleText*   \_In\_<br />Type: char\*

メッセージ ダイアログのテキスト タイトル。

*contentText*   \_In\_<br />Type: char\*

メッセージ ダイアログ内に表示されるテキスト。

*firstButtonText*   \_In\_opt\_<br />Type: char\*

メッセージ ダイアログの 1 番目のボタンに表示されるテキスト。

*secondButtonText*   \_In\_opt\_<br />Type: char\*

メッセージ ダイアログの 2 番目のボタンに表示されるテキスト。

*thirdButtonText*   \_In\_opt\_<br />Type: char\*

メッセージ ダイアログの 3 番目のボタンに表示されるテキスト。

*defaultButton*   \_In\_<br />Type: [XGameUiMessageDialogButton](/reference/system/xgameui/enums/xgameuimessagedialogbutton)

メッセージ ダイアログが最初に表示されるときに既定で選択されるボタンを示します。

*cancelButton*   \_In\_<br />Type: [XGameUiMessageDialogButton](/reference/system/xgameui/enums/xgameuimessagedialogbutton)

キャンセル アクションを表すボタンを示します。

### 戻り値

Type: HRESULT

非同期呼び出しの HRESULT 成功またはエラー コード。

結果を取得するには、*XAsyncBlock* コールバック内または *XAsyncBlock* の完了後に [XGameUiShowMessageDialogResult](/reference/system/xgameui/functions/xgameuishowmessagedialogresult) を呼び出します。

## 解説

他の **XGameUI\*** 関数と同様に、**XGameUiShowMessageDialogAsync** はタイトル パーティションの外部で UI をレンダリングし、その結果は各フレームがディスプレイ デバイスに送信される前にタイトルの出力と合成されます。つまり、**XGameUiShowMessageDialogAsync** は、ゲームがレンダリングを行っているかどうかに関係なく、ユーザーに情報を提示するために使用できます。

UI を呼び出すと、ゲームは *制約付きモード* に入ります。制約付きモードでは、呼び出された UI のバックグラウンドにある間、タイトルが受け取るシステム リソースが少なくなります。制約付きモードやタイトルのその他の運用モードの詳細については、「[XBOX ゲーム ライフ サイクル (NDA トピック)](/build/console-features/console-workflows/xbox-game-life-cycle)」を参照してください。

以下のサンプル コードは、開発シナリオでこのメソッドを使用して、入力を待機するブロッキング UI を作成する方法を示しています。これは、クラッシュ発生位置で現在の実行を一時停止して、クラッシュ位置を報告するか、開発者にデバッガーの接続を促す場合に特に役立ちます。

```cpp theme={null}
if (FAILED(XGameRuntimeInitialize()))  
    return 1;

XTaskQueueHandle queue;
DX::ThrowIfFailed(
    XTaskQueueCreate(XTaskQueueDispatchMode::ThreadPool, XTaskQueueDispatchMode::Immediate, &queue)  
);

XAsyncBlock* ab = new XAsyncBlock;
ZeroMemory(ab, sizeof(XAsyncBlock));
ab->queue = queue;

// show dialog, wait for completion, get result.

XGameUiMessageDialogButton button;
if (SUCCEEDED(XGameUiShowMessageDialogAsync(ab, u8"Title String", u8"This is content text",
                                            u8"Option #1", u8"Option #2", u8"Option #3",
                                            XGameUiMessageDialogButton::First,
                                            XGameUiMessageDialogButton::Third)) &&
    SUCCEEDED(XAsyncGetStatus(ab, true)) &&
    SUCCEEDED(XGameUiShowMessageDialogResult(ab, &button)))  
{
    DoSomethingWithResponse(button);  // set breakpoint here to investigate
}
```

## 要件

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

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

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

## 概念ドキュメント

* [非同期プログラミングの設計目標と改善点](/build/core-features/common/async/async-whitepaper)

## 関連項目

[XGameUI](/reference/system/xgameui/xgameui_members)<br />[XGameUIShowMessageDialogResult](/reference/system/xgameui/functions/xgameuishowmessagedialogresult)<br />[XBOX ゲーム ライフ サイクル (NDA トピック)](/build/console-features/console-workflows/xbox-game-life-cycle)


## Related topics

- [XGameUiShowMessageDialogResult](/ja-jp/reference/system/xgameui/functions/xgameuishowmessagedialogresult.md)
- [XGameUiShowMessageDialogUiCallback](/ja-jp/reference/system/xgameui/functions/xgameuishowmessagedialoguicallback.md)
- [XGameUiMessageDialogButton](/ja-jp/reference/system/xgameui/enums/xgameuimessagedialogbutton.md)
- [XGameUiSetMessageDialogUiResponse](/ja-jp/reference/system/xgameui/functions/xgameuisetmessagedialoguiresponse.md)
- [XGameUiUiCallbacks](/ja-jp/reference/system/xgameui/structs/xgameuiuicallbacks.md)
