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

# 傳送邀請

> 使用遊戲可呼叫的 UI 覆疊或搭配自訂遊戲內 UI 的 XblMultiplayerSendInvitesAsync API，從遊戲傳送 XBOX 多人遊戲邀請。

使用本主題在 XBOX 服務上設定使用者對使用者的多人遊戲工作階段。

您的遊戲會傳送邀請給其他使用者以加入您的遊戲工作階段。傳送遊戲邀請給其他使用者有兩種方式。
您可以使用遊戲可呼叫的 UI (TCUI) (系統 UI 覆疊)，或使用遊戲實作的自訂 UI。

## 使用遊戲可呼叫的 UI (TCUI) (系統 UI 覆疊)

呼叫 [XGameUiShowSendGameInviteAsync](https://docs.xbox.com/zh-TW/reference/system/xgameui/functions/xgameuishowsendgameinviteasync.md) API 會擷取用於邀請好友的標準系統 UI 覆疊。
這會顯示一個 UI，使用者可以在其中瀏覽並從[最近的玩家清單](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpa/concepts/live-mpa-recent-players.md)中選取好友或使用者
來邀請加入遊戲。當使用者選取 **Confirm** 時，邀請會傳送給所選的使用者。

## 使用遊戲實作的自訂 UI

您的遊戲可以實作自訂 UI，以檢視線上好友並邀請他們加入遊戲工作階段。
使用 [XblMultiplayerSendInvitesAsync](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync.md) API 傳送邀請給一組以
其 [XboxUserId (XUID)](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpa/concepts/live-mpa-activities.md) 定義的使用者，如下列程式碼所示。
如果您偏好使用自己的遊戲內 UI 而非現成的系統 UI，這會很有用。

### 平面 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 內容)](https://docs.xbox.com/zh-TW/reference/system/xgameactivation/xgameactivation_members.md)
* [xgameui (API 內容)](https://docs.xbox.com/zh-TW/reference/system/xgameui/xgameui_members.md)
  * 函式
    * [XGameUiShowSendGameInviteAsync](https://docs.xbox.com/zh-TW/reference/system/xgameui/functions/xgameuishowsendgameinviteasync.md)
* [multiplayer\_c (API 內容)](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_c/multiplayer_c_members.md)
  * 函式
    * [XblMultiplayerSendInvitesAsync](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync.md)
    * [XblMultiplayerSendInvitesResult](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesresult.md)
  * 結構
    * [XblMultiplayerInviteHandle](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayerinvitehandle.md)
* [xasync (API 內容)](https://docs.xbox.com/zh-TW/reference/system/xasync/xasync_members.md)
  * 結構
    * [XAsyncBlock](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md)

## 另請參閱

[XAsyncBlock](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md)
[XblMultiplayerInviteHandle](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayerinvitehandle.md)
[XblMultiplayerSendInvitesAsync](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesasync.md)
[XblMultiplayerSendInvitesResult](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersendinvitesresult.md)
[XGameActivation (API 參考)](https://docs.xbox.com/zh-TW/reference/system/xgameactivation/xgameactivation_members.md)
[使用多人遊戲管理員處理通訊協定啟用以啟動遊戲](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpm/how-to/live-handle-protocol-activation.md)
[使用多人遊戲管理員傳送遊戲邀請](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpm/how-to/live-send-game-invites.md)


## Related topics

- [傳送邀請給其他玩家 (流程圖)](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpm/concepts/flowcharts/live-mpm-send-invites.md)
- [POST /titles/{titleId}/invites](https://docs.xbox.com/zh-TW/reference/live/rest/uri/multiplayeractivity/swagger-uris/uri-SendInvite.md)
- [傳送邀請讓另一位玩家加入多人遊戲](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpa/concepts/live-mpa-invites.md)
- [邀請概觀](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/invites/live-multiplayer-invites-overview.md)
- [使用多人遊戲管理員傳送遊戲邀請](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpm/how-to/live-send-game-invites.md)
