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

# XPackageRegisterPackageInstalled

> XPackageRegisterPackageInstalled

# XPackageRegisterPackageInstalled

註冊在安裝完成時要呼叫的回呼。

## 語法

```cpp theme={null}
HRESULT XPackageRegisterPackageInstalled(  
         XTaskQueueHandle queue,  
         void* context,  
         XPackageInstalledCallback* callback,  
         XTaskQueueRegistrationToken* token  
)  
```

### 參數

*queue*   \_In\_\
類型：XTaskQueueHandle

要在其上執行回呼的非同步佇列。

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

要傳遞給回呼的內容。

*callback*   \_In\_\
類型：XPackageInstalledCallback\*

在安裝完成時要呼叫的使用者定義回呼。

*token*   \_Out\_\
類型：[XTaskQueueRegistrationToken\*](/zh-TW/reference/system/xtaskqueue/structs/xtaskqueueregistrationtoken)

傳回時，包含識別回呼的權杖，可用來透過 [XPackageUnregisterPackageInstalled](/zh-TW/reference/system/xpackage/functions/xpackageunregisterpackageinstalled) 取消註冊回呼。

### 傳回值

類型：HRESULT

HRESULT 成功或錯誤碼。

## 備註

PackageInstalled 通知可用來判斷新套件何時完全安裝。

[XPackageEnumeratePackages](/zh-TW/reference/system/xpackage/functions/xpackageenumeratepackages) API 和 [XPackageRegisterPackageInstalled](/zh-TW/reference/system/xpackage/functions/xpackageregisterpackageinstalled) API 都會透過 **XPackageDetails** 結構提供安裝的詳細資料。如果套件正在安裝中，**installing** 屬性會設定為 true，您可以建立安裝監視器，讓套件的識別碼監視安裝進度。

沒有通用的安裝佇列通知；其用意是使用 [XPackageEnumeratePackages](/zh-TW/reference/system/xpackage/functions/xpackageenumeratepackages) 來顯示和追蹤進行中的項目，並使用 **PackageInstalled** 來宣告新 DLC 的存在。也沒有可停止、啟動或取消安裝的 API。從遊戲的角度來看，安裝應該自行處理。錯誤會自動重試，且對遊戲而言是不可見的。

在下列範例中，**XPackageRegisterPackageInstalled** 用來在安裝新的 DLC 套件時列印訊息：

```cpp theme={null}
void CALLBACK NewPackageAdded(void* /* context */, const XPackageDetails* details)
{
    if (details->kind == XPackageKind::Content)
    {
        printf("Package added: %s\n", details->displayName);
    }
}

HRESULT ListenForNewDlc(XTaskQueueHandle queue, XTaskQueueRegistrationToken* token)
{
    HRESULT hr = XPackageRegisterPackageInstalled(queue, nullptr, NewPackageAdded, token);
    return hr;
}

void StopListeningForDlc(XTaskQueueRegistrationToken token)
{
    XPackageUnregisterPackageInstalled(token, false);
}
```

## 需求

**標頭：** XPackage.h

**程式庫：** xgameruntime.lib

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

## 概念文件

* [串流安裝：狀態](/zh-TW/build/core-features/common/packaging/packaging-installstatus)

## 另請參閱

[XPackage](/zh-TW/reference/system/xpackage/xpackage_members)


## Related topics

- [XPackageRegisterPackageInstalled](/reference/system/xpackage/functions/xpackageregisterpackageinstalled.md)
- [XPackageUnregisterPackageInstalled](/reference/system/xpackage/functions/xpackageunregisterpackageinstalled.md)
- [XPackageInstalledCallback](/reference/system/xpackage/functions/xpackageinstalledcallback.md)
