Skip to main content
このトピックでは、XBOX services タイトルにゲーム招待を追加する方法について説明します。マルチプレイヤー招待を受信するには、ゲームがマルチプレイヤー プロトコルとゲーム招待コールバックを登録します。ゲームはローカル ユーザー宛ての招待を受信し、そのユーザーをマルチプレイヤー セッションに参加させます。

前提条件

Windows PC でゲーム招待通知を受信するには、XBOX Game Bar をインストールします。XBOX Game Bar アプリは、Windows 10 OS バージョン 1903 以降には既定でインストールされています。Windows キー+G キーを押して XBOX Game Bar アプリを起動し、正しくインストールされていることを確認します。
XBOX Game Bar が Windows PC にインストールされていない場合は、Microsoft Store からインストールできます。

マルチプレイヤー プロトコルの登録

マルチプレイヤー プロトコルを登録すると、ユーザーがマルチプレイヤー ゲーム招待を承諾したときにシステムがゲームをどのように起動すべきかがわかります。マルチプレイヤー プロトコルを登録するには、次のコードのように、MicrosoftGame.config ファイルに MultiplayerProtocol 要素を追加する必要があります。
パッケージ内に複数の実行可能ファイルがある場合は、次のコードのように、Executable 属性を使用して、どの実行可能ファイルがマルチプレイヤー プロトコルを処理するかを指定できます。

マルチプレイヤー ゲーム招待コールバックの登録

XGameInviteRegisterForEvent および XGameInviteUnregisterForEvent API は非推奨になりました。代わりに XGameActivationRegisterForEvent および XGameActivationUnregisterForEvent を使用してください。移行に関するガイダンスについては、XGameActivation を参照してください。
マルチプレイヤー ゲーム招待コールバックを受信するには、次のコードのように、XGameActivationRegisterForEvent API を使用してアクティベーション コールバックを登録する必要があります。 アクティベーション コールバックの登録と登録解除の詳細については、XGameActivationRegisterForEvent および XGameActivationUnregisterForEvent を参照してください。

Flat C

「サスペンド状態から招待を承諾する」シナリオを適切に処理するために、タイトルは、上のサンプル コードで XGameActivationRegisterForEvent コールバックから OnActivation() ハンドラー メソッドに渡される inviteUri を保存する必要があります。その後、タイトルは、ゲームが完全に再開されたことを通知する RegisterAppStateChangeNotification を待機してから、inviteUri で提供される詳細を使用してセッションの操作に進む必要があります。 RegisterAppStateChangeNotification の詳細については、XBOX ゲーム ライフサイクル (NDA トピック) を参照してください。

XGameActivationCallback からの inviteUri の解析

ゲームがアクティベーション タイプ AcceptedGameInviteXGameActivationCallback イベントを受信すると、XGameActivationInfo 構造体から inviteUri 文字列にアクセスできます。inviteUri は次のいずれかの形式です。

ゲーム招待を承諾する場合

ユーザーがゲーム招待を承諾すると、ゲームは次のコードに示すような inviteUri を含むゲーム招待コールバックを受信します。
URI は常に “ms-xbl-multiplayer//” で始まり、その後に次のハンドルが続きます。
  • inviteHandleAccept は、ユーザーがゲーム招待を承諾したためにコールバックが開始されたことを示します。
  • handle は、マルチプレイヤー セッションへの参加に使用する招待ハンドルです。
  • invitedXuid は、マルチプレイヤー セッションに招待された XBOX services ユーザーの ID です。
  • senderXuid は、ゲーム招待を送信した XBOX services ユーザーの ID です。
  • context は、送信者が含めた可能性のある追加の (オプションの) コンテキストです。

進行中のゲーム セッションに参加する場合

ユーザーがマルチプレイヤー セッションへの参加を試みると、ゲームは次のコードに示すような inviteUri を含む招待コールバックを受信します。
URI は常に “ms-xbl-multiplayer//” で始まり、その後に次のハンドルが続きます。
  • activityHandleJoin は、ユーザーがゲーム招待を承諾したためにコールバックが開始されたことを示します。
  • handle は、マルチプレイヤー セッションへの参加に使用するアクティビティ ハンドルです。
  • joinerXuid は、マルチプレイヤー セッションに参加しようとしている XBOX services ユーザーの ID です。
  • joineeXuid は、現在マルチプレイヤー セッションにいる XBOX services ユーザーの ID です。

handleId を使用したマルチプレイヤー ゲーム セッションへの参加

Multiplayer Manager の使用

Multiplayer Manager を使用している場合は、次のコードに示すように、XblMultiplayerManagerJoinLobby API を使用して、inviteUri から抽出された handleId を渡すことにより、ユーザーをマルチプレイヤー セッションに参加させることができます。また、invitedXuid には xblUserHandle を使用することもできます。

Flat C

Multiplayer API の直接使用

Multiplayer API を使用している場合は、次の手順に従って、タイトルのマルチプレイヤー セッションと招待を構成します。
  1. XblMultiplayerGetSessionByHandleAsync API を使用してマルチプレイヤー セッション ドキュメントを取得し、handleId を渡します。
  2. XblMultiplayerSessionJoin API を使用して、ローカル ユーザーをマルチプレイヤー セッション ドキュメントに参加させます。
  3. XblMultiplayerWriteSessionByHandleAsync API を使用して、この変更をコミットするためにマルチプレイヤー セッション ドキュメントをサービスに書き込みます。

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

関連項目

XGameActivation API Multiplayer Manager を使用したゲーム起動のプロトコル アクティベーションの処理
最終更新日 2026年8月25日