XPackageEnumeratePackages

查找与调用进程相关的已安装或正安装的包。

语法

HRESULT XPackageEnumeratePackages(  
         XPackageKind kind,  
         XPackageEnumerationScope scope,  
         void* context,  
         XPackageEnumerationCallback* callback  
)  

参数

kind _In_
类型:XPackageKind

要枚举的安装包的类型。

scope _In_
类型:XPackageEnumerationScope

安装包的范围。

context _In_opt_
类型:void*

要传递到在 callback 参数中指定的回调的上下文。

callback _In_
类型:XPackageEnumerationCallback*

要在完成时调用的回调。

返回值

类型:HRESULT

HRESULT 成功或错误代码。

备注

注意

在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程

使用 XPackageEnumeratePackages 查找与调用进程相关的已安装或正安装的包。 此函数可以查找内容包以及应用包。 它提供有关通过 XPackageDetails 结构进行的安装的详细信息。

如果软件包仍在安装,则 installing 属性设置为 true,并且您可以创建一个安装监视器以让包的标识符监视安装进度。

没有通用安装队列通知;目的是使用 XPackageEnumeratePackages 显示和跟踪未完成的项目。 也没有用于停止、启动或取消安装的 API。 从游戏的角度看,安装应自行解决。 将自动重试错误,并且错误对游戏不可见。

当使用值 XPackageKind::Game 进行调用时,API 的输出(具体取决于 XPackageEnumerationScope 值)将为:

Scope 特许经营游戏中心 中心感知游戏 中心无感知游戏
ThisOnly 仅限特许经营游戏中心 仅限中心感知游戏 仅限中心未感知游戏
ThisAndRelated 特许经营游戏中心、与之关联的所有中心感知游戏以及所有 RelatedProducts 中心感知游戏和所有 RelatedProducts 不了解中心的游戏和所有 RelatedProducts
ThisPublisher 与当前进程属于同一发布者的所有游戏产品 与当前进程属于同一发布者的所有游戏产品 与当前进程属于同一发布者的所有游戏产品

当使用值 XPackageKind::Content 进行调用时,API 的输出(具体取决于 XPackageEnumerationScope 值)将为:

Scope 特许经营游戏中心 中心感知游戏 中心无感知游戏
ThisOnly 与此特许经营游戏中心相关的 DC 与此中心感知游戏相关的 DC 与此中心未感知游戏相关的 DC
ThisAndRelated 与此特许经营游戏中心、其中心感知游戏及其所有 RelatedProducts 相关的 DC 与此中心感知游戏及其所有 RelatedProducts 相关的 DC 与此中心未感知游戏及其所有 RelatedProducts 相关的 DC
ThisPublisher 与当前进程来自同一发布服务器的基游戏相关的所有 DC(来自同一发布者或其他发布者) 与当前进程来自同一发布服务器的基游戏相关的所有 DC(来自同一发布者或其他发布者) 与当前进程来自同一发布服务器的基游戏相关的所有 DC(来自同一发布者或其他发布者)

示例:

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 主机

另请参阅

XPackage
特许经营游戏中心
如何创建和使用面向电脑和 Xbox One 的可下载内容包 (DLC)。