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