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

# XGameActivationCallback

> XGameActivationCallback

# XGameActivationCallback

應用程式為啟用事件定義的回呼。

## 語法

```cpp theme={null}
void CALLBACK XGameActivationCallback(  
         void* context,  
         const XGameActivationInfo* activationInfo  
)  
```

### 參數

*context*   \_In\_opt\_\
類型：void\*

傳遞給 [XGameActivationRegisterForEvent](/zh-TW/reference/system/xgameactivation/functions/xgameactivationregisterforevent) 的內容。

*activationInfo*   \_In\_\
類型：[XGameActivationInfo](/zh-TW/reference/system/xgameactivation/structs/xgameactivationinfo)\*

包含啟用資訊之 [XGameActivationInfo](/zh-TW/reference/system/xgameactivation/structs/xgameactivationinfo) 結構的指標。`type` 欄位指出啟用的種類，對應的聯集欄位則包含相關資料。

### 傳回值

類型：void

## 備註

若要註冊啟用事件的回呼，請呼叫 [XGameActivationRegisterForEvent](/zh-TW/reference/system/xgameactivation/functions/xgameactivationregisterforevent)。此函式會使用 **XGameActivationCallback** 的指標作為引數。

若要取消註冊啟用事件的回呼，請呼叫 [XGameActivationUnregisterForEvent](/zh-TW/reference/system/xgameactivation/functions/xgameactivationunregisterforevent)。

回呼會收到 [XGameActivationInfo](/zh-TW/reference/system/xgameactivation/structs/xgameactivationinfo) 結構。請檢查 `type` 欄位以判斷啟用的種類，並適當處理每種類型。

<Note>此回呼同時取代 `XGameProtocolActivationCallback` 和 `XGameInviteEventCallback`。如需移轉指引，請參閱 [XGameActivation](/zh-TW/reference/system/xgameactivation/xgameactivation_members)。</Note>

下列程式碼範例會註冊啟用回呼，並處理所有啟用類型。

```cpp theme={null}
#include <XTaskQueue.h>
#include <XGameActivation.h>

XTaskQueueHandle g_taskQueue;
XTaskQueueRegistrationToken g_activationToken;

void CALLBACK OnActivation(void* context, const XGameActivationInfo* activationInfo)
{
    switch (activationInfo->type)
    {
    case XGameActivationType::Protocol:
        // Perform your game action based on activationInfo->protocolUri
        HandleProtocolActivation(activationInfo->protocolUri);
        return;

    case XGameActivationType::File:
        // e.g. Load the game file; activationInfo->file
        HandleFileActivation(activationInfo->file);
        return;

    case XGameActivationType::PendingGameInvite:
        // Game has received a game invite. Handle it by giving the user the option to
        // accept or reject the invite via UI.
        {
            bool userAcceptsInvite = HandlePendingGameInviteWithUI(activationInfo->inviteUri);
            if (userAcceptsInvite)
            {
                XGameActivationAcceptPendingInvite(activationInfo->inviteUri);
            }
        }
        return;

    case XGameActivationType::AcceptedGameInvite:
        // e.g. Join the game session that we are invited to
        HandleGameInvite(activationInfo->inviteUri);
        return;

    default:
        // Other unknown activation types. Just ignore.
        return;
    }
}

void InitializeGame()
{
    XGameActivationRegisterForEvent(g_taskQueue, nullptr, OnActivation, &g_activationToken);
}

void ShutdownGame()
{
    XGameActivationUnregisterForEvent(g_activationToken, true);
}
```

## 需求

**標頭：** XGameActivation.h

**程式庫：** xgameruntime.lib

**支援的平台：** Windows、XBOX One 系列主機和 XBOX Series 主機

## 概念文件

* [檔案類型啟用](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/overviews/filetypeactivation)
* [接收邀請](/zh-TW/services/xbox-services/multiplayer/invites/how-to/live-invites-receive)

## 另請參閱

[XGameActivation](/zh-TW/reference/system/xgameactivation/xgameactivation_members)

[XGameActivationRegisterForEvent](/zh-TW/reference/system/xgameactivation/functions/xgameactivationregisterforevent)

[XGameActivationUnregisterForEvent](/zh-TW/reference/system/xgameactivation/functions/xgameactivationunregisterforevent)

[XGameActivationInfo](/zh-TW/reference/system/xgameactivation/structs/xgameactivationinfo)

[XGameActivationType](/zh-TW/reference/system/xgameactivation/enums/xgameactivationtype)


## Related topics

- [XGameActivationCallback](/reference/system/xgameactivation/functions/xgameactivationcallback.md)
- [XGameActivation](/reference/system/xgameactivation/xgameactivation_members.md)
- [XGameActivationUnregisterForEvent](/reference/system/xgameactivation/functions/xgameactivationunregisterforevent.md)
- [XGameActivationRegisterForEvent](/reference/system/xgameactivation/functions/xgameactivationregisterforevent.md)
- [XGameProtocolActivationCallbackXGameProtocol (deprecated)](/reference/system/xgameprotocol/functions/xgameprotocolactivationcallback.md)
