> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 招待の送信

> Title-Callable UI オーバーレイ、または XblMultiplayerSendInvitesAsync API とカスタムのゲーム内 UI を使用して、タイトルから XBOX マルチプレイヤー ゲーム招待を送信します。

このトピックでは、XBOX services 上でユーザー間マルチプレイヤー ゲーム セッションを構成する方法について説明します。

ゲームは、ゲーム セッションに参加するように他のユーザーに招待を送信します。他のユーザーにゲーム招待を送信する方法は 2 つあります。
Title-Callable UI (TCUI) (システム UI オーバーレイ) を使用するか、タイトルで実装されたカスタム UI を使用できます。

## Title-Callable UI (TCUI) (システム UI オーバーレイ) の使用

[XGameUiShowSendGameInviteAsync](https://docs.xbox.com/ja-jp/reference/system/xgameui/functions/xgameuishowsendgameinviteasync.md) API を呼び出すと、フレンドを招待するための標準のシステム UI オーバーレイが取得されます。
これにより、ユーザーが移動してフレンドや [直近のプレイヤー一覧](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/mpa/concepts/live-mpa-recent-players.md) からユーザーを選択してゲームに招待できる UI が表示されます。ユーザーが **\[確認]** を選択すると、選択したユーザーに招待が送信されます。

## タイトルで実装されたカスタム UI の使用

タイトルは、オンライン フレンドを表示し、ゲーム セッションに招待するためのカスタム UI を実装できます。
[XblMultiplayerSendInvitesAsync](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync.md) API を使用して、次のコードのように、[XboxUserId (XUID)](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/mpa/concepts/live-mpa-activities.md) で定義される一連のユーザーに招待を送信します。
これは、標準のシステム UI ではなく独自のゲーム内 UI を使用したい場合に便利です。

### 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();
}
```

## リファレンス API ドキュメント

* [Xgameactivation (API contents)](https://docs.xbox.com/ja-jp/reference/system/xgameactivation/xgameactivation_members.md)
* [xgameui (API contents)](https://docs.xbox.com/ja-jp/reference/system/xgameui/xgameui_members.md)
  * 関数
    * [XGameUiShowSendGameInviteAsync](https://docs.xbox.com/ja-jp/reference/system/xgameui/functions/xgameuishowsendgameinviteasync.md)
* [multiplayer\_c (API contents)](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/multiplayer_c_members.md)
  * 関数
    * [XblMultiplayerSendInvitesAsync](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync.md)
    * [XblMultiplayerSendInvitesResult](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesresult.md)
  * 構造体
    * [XblMultiplayerInviteHandle](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayerinvitehandle.md)
* [xasync (API contents)](https://docs.xbox.com/ja-jp/reference/system/xasync/xasync_members.md)
  * 構造体
    * [XAsyncBlock](https://docs.xbox.com/ja-jp/reference/system/xasync/structs/xasyncblock.md)

## 関連項目

[XAsyncBlock](https://docs.xbox.com/ja-jp/reference/system/xasync/structs/xasyncblock.md)
[XblMultiplayerInviteHandle](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayerinvitehandle.md)
[XblMultiplayerSendInvitesAsync](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync.md)
[XblMultiplayerSendInvitesResult](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesresult.md)
[XGameActivation (API リファレンス)](https://docs.xbox.com/ja-jp/reference/system/xgameactivation/xgameactivation_members.md)
[Multiplayer Manager を使用したゲーム起動のプロトコル アクティベーションの処理](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/mpm/how-to/live-handle-protocol-activation.md)
[Multiplayer Manager を使用したゲーム招待の送信](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/mpm/how-to/live-send-game-invites.md)


## Related topics

- [招待の概要](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/invites/live-multiplayer-invites-overview.md)
- [招待の例コード](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/invites/how-to/live-invites-howto-nav.md)
- [-プレイヤーをゲーム セッションに招待する](https://docs.xbox.com/ja-jp/services/xbox-services/multiplayer/invites/live-invites-nav.md)
- [ロビーの招待](https://docs.xbox.com/ja-jp/services/playfab/multiplayer/lobby/lobby-invites.md)
- [XblMultiplayerSendInvitesAsync](https://docs.xbox.com/ja-jp/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync.md)
