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

# XPackageEnumeratePackages

> XPackageEnumeratePackages

# XPackageEnumeratePackages

尋找已安裝或正在安裝，且與呼叫處理程序相關的套件。

## 語法

```cpp theme={null}
HRESULT XPackageEnumeratePackages(  
         XPackageKind kind,  
         XPackageEnumerationScope scope,  
         void* context,  
         XPackageEnumerationCallback* callback  
)  
```

### 參數

*kind*   \_In\_\
類型：[XPackageKind](/zh-TW/reference/system/xpackage/enums/xpackagekind)

要列舉的安裝套件類型。

*scope*   \_In\_\
類型：[XPackageEnumerationScope](/zh-TW/reference/system/xpackage/enums/xpackageenumerationscope)

安裝套件的範圍。

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

要傳遞給 *callback* 參數中所指定回呼的內容。

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

完成時要呼叫的回呼。

### 傳回值

類型：HRESULT

HRESULT 成功或錯誤碼。

## 備註

<Note>在時間敏感的執行緒上呼叫此函式並不安全。如需詳細資訊，請參閱[時間敏感的執行緒](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)。</Note>

使用 **XPackageEnumeratePackages** 來尋找已安裝或正在安裝，且與呼叫處理程序相關的套件。此函式可以尋找內容套件及應用程式套件。它會透過 XPackageDetails 結構提供安裝的詳細資料。

如果套件仍在安裝中，**installing** 屬性會設定為 true，您可以建立安裝監視器，讓套件的識別碼監視安裝進度。

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

以 [XPackageKind::Game](/zh-TW/reference/system/xpackage/enums/xpackagekind) 值呼叫此 API 時，根據 [XPackageEnumerationScope](/zh-TW/reference/system/xpackage/enums/xpackageenumerationscope) 值，輸出將為：

| 範圍 | 系列遊戲中樞 | 可感知中樞的遊戲 | 不感知中樞的遊戲 |
| - | - | - | - |
| ThisOnly | 僅系列遊戲中樞 | 僅可感知中樞的遊戲 | 僅不感知中樞的遊戲 |
| ThisAndRelated | 系列遊戲中樞、與其相關聯的所有可感知中樞的遊戲，以及所有 RelatedProducts | 可感知中樞的遊戲及所有 RelatedProducts | 不感知中樞的遊戲及所有 RelatedProducts |
| ThisPublisher | 與目前處理程序屬於同一發行者的所有遊戲產品 | 與目前處理程序屬於同一發行者的所有遊戲產品 | 與目前處理程序屬於同一發行者的所有遊戲產品 |

以 [XPackageKind::Content](/zh-TW/reference/system/xpackage/enums/xpackagekind) 值呼叫此 API 時，根據 [XPackageEnumerationScope](/zh-TW/reference/system/xpackage/enums/xpackageenumerationscope) 值，輸出將為：

| 範圍 | 系列遊戲中樞 | 可感知中樞的遊戲 | 不感知中樞的遊戲 |
| - | - | - | - |
| ThisOnly | 與此系列遊戲中樞相關的 DLC | 與此可感知中樞的遊戲相關的 DLC | 與此不感知中樞的遊戲相關的 DLC |
| ThisAndRelated | 與此系列遊戲中樞、其可感知中樞的遊戲及其所有 RelatedProducts 相關的 DLC | 與此可感知中樞的遊戲及其所有 RelatedProducts 相關的 DLC | 與此不感知中樞的遊戲及其所有 RelatedProducts 相關的 DLC |
| ThisPublisher | 與目前處理程序屬於同一發行者之基礎遊戲相關的所有 DLC (來自同一發行者或其他發行者) | 與目前處理程序屬於同一發行者之基礎遊戲相關的所有 DLC (來自同一發行者或其他發行者) | 與目前處理程序屬於同一發行者之基礎遊戲相關的所有 DLC (來自同一發行者或其他發行者) |

範例：

```cpp theme={null}
bool CALLBACK ListDlcCallback(
    void* /* context */,
    const XPackageDetails* details)
{
    printf("Found dlc: %s\n", details->displayName);
    return true; // continue enumerating
}

HRESULT ListDlc()
{
    HRESULT hr = XPackageEnumeratePackages(
        XPackageKind::Content,                      /* Looking for content packages (DLC) */
        XPackageEnumerationScope::ThisAndRelated,   /* For this game and related games*/
        nullptr, ListDlcCallback);
    return hr;
}
```

## 需求

**標頭：** XPackage.h

**程式庫：** xgameruntime.lib

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

## 概念文件

* [Intelligent Delivery：語言指定元](/zh-TW/build/core-features/common/packaging/intelligentdelivery-language)
* [GDK 可下載內容 (DLC) 套件](/zh-TW/build/core-features/common/packaging/packaging-downloadable-content-dlc)
* [時間敏感的執行緒](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)
* [檢查更新](/zh-TW/publishing/xstore-commerce/xstore-checking-updates)
* [管理可下載內容 (DLC) 及授權](/zh-TW/publishing/xstore-commerce/xstore-dlc)

## 另請參閱

[XPackage](/zh-TW/reference/system/xpackage/xpackage_members)\
[系列遊戲中樞](https://learn.microsoft.com/gaming/gdk/docs/store/franchise-game-hubs)\
[如何為 PC 和 XBOX One 建立及使用可下載內容套件 (DLC)](/zh-TW/build/core-features/common/packaging/packaging-downloadable-content-dlc)


## Related topics

- [XPackageEnumeratePackages](/reference/system/xpackage/functions/xpackageenumeratepackages.md)
- [XPackageGetPackageKind](/reference/system/xpackage/functions/xpackagegetpackagekind.md)
