XPackageMountWithUiAsync

异步装载指定内容的安装,并向其返回装载句柄。 显示用户家长同意 UI 内容根据所有已登录用户的家长设置受到年龄限制。

语法

HRESULT XPackageMountWithUiAsync(
  const char * packageIdentifier,
  XAsyncBlock * async
) noexcept;

参数

packageIdentifier _In_z_
类型:const char *

唯一标识磁盘上安装的包的字符串。 传入从 XPackageEnumerationCallback 返回的 XPackageDetails 结构中的 packageIdentifier 字段。 有关包标识符的详细信息,请参阅管理和许可可下载内容 (DLC)

async _Inout_
类型:XAsyncBlock *

用于监视异步调用的状态的 XAsyncBlock

返回值

类型:HRESULT

HRESULT 成功或错误代码。

备注

请注意,如果装载的内容不适合所有登录用户的年龄,则此 API 将向用户显示家长同意提示。 如果家长同意获得批准,则装载将成功。 如果在提示中拒绝家长同意,则装载将失败。

在此方案中,如果内容受年龄限制,游戏将以黑白方式呈现 DLC。 当用户选择要使用的一段 DLC 时,游戏中的外部代码将调用 MountDlc。

extern void RenderDlc(const char* packageId, const char* displayName, bool monochrome); 

void ShowDlc() 
{ 
// Enumerate all DLC for the game and render it to the user 
XPackageEnumeratePackages(XPackageKind::Content, XPackageEnumerationScope::ThisAndRelated, nullptr,
 [](void*, const XPackageDetails* details) 
  {     
        RenderDlc(details->packageIdentifier,
                  details->displayName, 
                  details->ageRestricted);
  }); 
} 

 HRESULT MountDlc(const char* packageId, XPackageMountHandle* handle)
 {  
    XAsync async{};  
    RETURN_IF_FAILED(XPackageMountWithUiAsync(packageId, &async));
    RETURN_IF_FAILED(XAsyncGetStatus(&async, true));
    RETURN_IF_FAILED(XPackageMountWithUiResult(&async, handle));  
    return S_OK; 
} 

要求

头文件:XPackage.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

XPackageMountWithUiResultXPackage
XPackageEnumeratePackages
XPackageEnumerationCallback
XPackageDetails
XPackageGetMountPath
XPackageGetMountPathSize
如何创建和使用面向电脑和 Xbox One 的可下载内容包 (DLC)。