次の方法で共有


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
PC と Xbox One 用のダウンロード コンテンツ パッケージ (DLC) を作成して使用する方法