XPackageEnumerationCallback
XPackageEnumeratePackages 用来枚举每个包的回调。
语法
bool XPackageEnumerationCallback(
void* context,
const XPackageDetails* details
)
参数
context _In_
类型:void*
启动包枚举时传递到 XPackageEnumeratePackages 的上下文。
details _In_
类型:XPackageDetails*
指向 XPackageDetails 结构的指针,该结构包含枚举中的当前包的安装信息。
返回值
类型:bool
返回 true 以继续枚举包,或者返回 false 以停止枚举。
备注
在 XPackageEnumeratePackages 枚举期间,将为每个包调用 XPackageEnumerationCallback 回调。
XPackageEnumeratePackages 和 XPackageRegisterPackageInstalled 两者都提供有关通过 XPackageDetails 结构进行的安装的详细信息。 如果软件包正在安装,则 XPackageDetails 的 installing 属性设置为 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