XPackageEnumerationCallback

XPackageEnumeratePackages 用来枚举每个包的回调。

语法

bool XPackageEnumerationCallback(  
         void* context,  
         const XPackageDetails* details  
)  

参数

context _In_
类型:void*

启动包枚举时传递到 XPackageEnumeratePackages 的上下文。

details _In_
类型:XPackageDetails*

指向 XPackageDetails 结构的指针,该结构包含枚举中的当前包的安装信息。

返回值

类型:bool

返回 true 以继续枚举包,或者返回 false 以停止枚举。

备注

XPackageEnumeratePackages 枚举期间,将为每个包调用 XPackageEnumerationCallback 回调。

XPackageEnumeratePackagesXPackageRegisterPackageInstalled 两者都提供有关通过 XPackageDetails 结构进行的安装的详细信息。 如果软件包正在安装,则 XPackageDetailsinstalling 属性设置为 true,并且您可以创建一个安装监视器以让包的标识符监视进度。

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

示例:

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)。
XPackageDetails
XPackageEnumeratePackages
XPackageRegisterPackageInstalled