次の方法で共有


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) を作成して使用する方法