次の方法で共有


XPackageEnumerateChunkAvailability

インストール パッケージを調べて、指定されたセレクターと一致するすべてのチャンクの使用可能性を列挙します。

構文

HRESULT XPackageEnumerateChunkAvailability(  
         const char* packageIdentifier,  
         XPackageChunkSelectorType type,  
         void* context,  
         XPackageChunkAvailabilityCallback* callback  
)  

パラメーター

packageIdentifier _In_z_
型: char*

ディスクにインストールされているパッケージを一意に識別する文字列。 パッケージ識別子の詳細については、「ダウンロード可能なコンテンツ (DLC) の管理とライセンス」を参照してください。

type _In_
型: XPackageChunkSelectorType

列挙する属性の種類。

context _In_
型: void*

callback パラメーターで指定されているコールバックに渡すコンテキスト。

callback _In_
型: XPackageChunkAvailabilityCallback*

完了時に呼び出されるコールバック。

戻り値

型: HRESULT

HRESULT 成功またはエラー コード。

解説

注意

この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。

XPackageEnumerateChunkAvailability は、パッケージを確認し、特定の種類のセレクターすべての利用可能性を列挙するために使用されます。 たとえば、XPackageChunkSelectorType::Language でこれを呼び出すと、パッケージのすべての言語属性と、その利用可能性が列挙されます。

下の例では、ゲームでサポートされるすべての言語が表示され、言語をインストールまたは削除することをユーザーに許可します。 これを行うため、パッケージにクエリして、どの言語が利用可能であり、その言語がインストールされているかどうかを確認します。

HRESULT GetPackageLanguages(_Out_ std::map<std::string, bool>& languages)
{
    char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];

    HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
    if (FAILED(hr)) return hr;

    hr = XPackageEnumerateChunkAvailability(id,
        XPackageChunkSelectorType::Language, &languages,
        [](void* context, const XPackageChunkSelector* sel, XPackageChunkAvailability av)
    {
        auto languages = static_cast<std::map<std::string, bool>*>(context);
        switch (av)
        {
        case XPackageChunkAvailability::Ready:
        case XPackageChunkAvailability::Pending:
            languages->emplace(sel->language, true);
            break;

        case XPackageChunkAvailability::Installable:
            languages->emplace(sel->language, false);
            break;

        case XPackageChunkAvailability::Unavailable:
        default:
            break;
        }
        return true;
    });

    return hr;
}

要件

ヘッダー: XPackage.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XPackage
ストリーミング インストールとインテリジェント配信