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 に設定されます。パッケージの ID がインストールのプロセスを監視できるように、インストール モニターを作成することができます。
汎用のインストール キュー通知はありません。これは、XPackageEnumeratePackages を使用して、フライトで項目を表示および追跡するためです。 また、インストールを停止、開始、またはキャンセルする API もありません。 ゲームの観点からは、インストールは自動的に行われます。 エラーは自動的に再試行され、ゲームには不可視です。
XPackageEnumerationScope 値に応じて値 XPackageKind::Game で呼び出される API の出力は次のようになります:
Scope | フランチャイズ ゲーム ハブ | ハブ対応ゲーム | ハブ非対応ゲーム |
---|---|---|---|
ThisOnly | フランチャイズ ゲーム ハブのみ | ハブ対応ゲームのみ | ハブ非対応ゲームのみ |
ThisAndRelated | フランチャイズ ゲーム ハブ、それに関連付けられているすべてのハブ対応ゲーム、およびすべての RelatedProducts | ハブ対応ゲームとすべての RelatedProducts | ハブ非対応ゲームとすべての RelatedProducts |
ThisPublisher | 現在のプロセスと同じ発行元に属するすべてのゲーム製品 | 現在のプロセスと同じ発行元に属するすべてのゲーム製品 | 現在のプロセスと同じ発行元に属するすべてのゲーム製品 |
XPackageEnumerationScope 値に応じて XPackageKind::Content 値を指定して呼び出された場合、API の出力は次のようになります:
Scope | フランチャイズ ゲーム ハブ | ハブ対応ゲーム | ハブ非対応ゲーム |
---|---|---|---|
ThisOnly | このフランチャイズ ゲーム ハブに関連する DLC | このハブ対応ゲームに関連する DLC | このハブ非対応ゲームに関連する DLC |
ThisAndRelated | このフランチャイズ ゲーム ハブ、ハブ対応タイトル、およびすべての RelatedProducts に関連する DLC | このハブ対応ゲームとそのすべての RelatedProducts に関連する DLC | このハブ非対応ゲームとそのすべての RelatedProducts に関連する DLC |
ThisPublisher | 現在のプロセスと同じ発行元のベース ゲームに関連するすべての DLC (同じ発行元または他の発行元から) | 現在のプロセスと同じ発行元のベース ゲームに関連するすべての DLC (同じ発行元または他の発行元から) | 現在のプロセスと同じ発行元のベース ゲームに関連するすべての 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
フランチャイズ ゲーム ハブ
PC と Xbox One 用のダウンロード コンテンツ パッケージ (DLC) を作成して使用する方法