XPackageEstimateDownloadSize
指定したインストール セレクターに一致するチャンクのダウンロード サイズを計算します。
構文
HRESULT XPackageEstimateDownloadSize(
const char* packageIdentifier,
uint32_t selectorCount,
XPackageChunkSelector* selectors,
uint64_t* downloadSize,
bool* shouldPresentUserConfirmation
)
パラメーター
packageIdentifier _In_z_
型: char*
ディスクにインストールされているパッケージを一意に識別する文字列。 パッケージ識別子の詳細については、「ダウンロード可能なコンテンツ (DLC) の管理とライセンス」を参照してください。
selectorCount _In_
型: uint32_t
selectors パラメーター内のセレクターの数。
selectors _In_reads_(selectorCount)
型: XPackageChunkSelector*
操作するチャンクを指定するセレクターの配列。
downloadSize _Out_
型: uint64_t*
戻ったとき、指定されたインストール セレクターのダウンロード サイズが格納されています。
shouldPresentUserConfirmation _Out_opt_
型: bool*
ダウンロードにユーザーの確認が必要な場合は true が返され、それ以外の場合は false が返されます。
戻り値
型: HRESULT
HRESULT 成功またはエラー コード。
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
指定された場合、予測されるダウンロード サイズが、ダウンロード サイズを受け入れるようにプロンプトをユーザーに表示するのに十分な大きさであれば、shouldPresentUserConfirmation パラメーターは true に設定されます。
次の例では、レーシング ゲームのトラック名を受け取り、トラックがインストールされていない場合は、トラックのダウンロード サイズを印刷します。
HRESULT ListDownloadSize(char* trackName)
{
XPackageChunkSelector selector;
selector.type = XPackageChunkSelectorType::Tag;
selector.tag = trackName;
char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
if (FAILED(hr)) return hr;
XPackageChunkAvailability availability;
hr = XPackageFindChunkAvailability(id, 1, &selector, &availability);
if (FAILED(hr)) return hr;
if (availability == XPackageChunkAvailability::Installable)
{
uint64_t downloadSize;
hr = XPackageEstimateDownloadSize(id, 1, &selector, &downloadSize, nullptr);
if (FAILED(hr)) return hr;
printf("Download Size for track %s: %I64u\n", trackName, downloadSize);
}
return hr;
}
要件
ヘッダー: XPackage.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体