> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XPackageRegisterPackageInstalled

> XPackageRegisterPackageInstalled

# XPackageRegisterPackageInstalled

インストールが完了したときに呼び出されるコールバックを登録します。

## Syntax

```cpp theme={null}
HRESULT XPackageRegisterPackageInstalled(  
         XTaskQueueHandle queue,  
         void* context,  
         XPackageInstalledCallback* callback,  
         XTaskQueueRegistrationToken* token  
)  
```

### Parameters

*queue*   \_In\_\
型: XTaskQueueHandle

コールバックを実行する非同期キュー。

*context*   \_In\_opt\_\
型: void\*

コールバックに渡されるコンテキスト。

*callback*   \_In\_\
型: XPackageInstalledCallback\*

インストールが完了したときに呼び出されるユーザー定義のコールバック。

*token*   \_Out\_\
型: [XTaskQueueRegistrationToken\*](/reference/system/xtaskqueue/structs/xtaskqueueregistrationtoken)

戻り時、[XPackageUnregisterPackageInstalled](/reference/system/xpackage/functions/xpackageunregisterpackageinstalled) でコールバックを登録解除するために使用できる、コールバックを識別するトークンが含まれます。

### Return value

型: HRESULT

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

## Remarks

PackageInstalled 通知を使用すると、新しいパッケージが完全にインストールされたタイミングを判定できます。

[XPackageEnumeratePackages](/reference/system/xpackage/functions/xpackageenumeratepackages) API と [XPackageRegisterPackageInstalled](/reference/system/xpackage/functions/xpackageregisterpackageinstalled) API の両方が、**XPackageDetails** 構造体を介してインストールの詳細を提供します。パッケージがインストール中の場合、**installing** プロパティは true に設定され、インストール モニターを作成して、そのパッケージの識別子でインストールの進行状況を監視できます。

汎用のインストール キュー通知はありません。処理中の項目を表示および追跡するには [XPackageEnumeratePackages](/reference/system/xpackage/functions/xpackageenumeratepackages) を使用し、新しい DLC の存在を通知するには **PackageInstalled** を使用することが意図されています。また、インストールを停止、開始、キャンセルする API もありません。ゲームの観点からは、インストールは自動的に処理されるはずです。エラーは自動的に再試行され、ゲームからは見えません。

次の例では、**XPackageRegisterPackageInstalled** を使用して、新しい DLC パッケージがインストールされたときにメッセージを出力しています。

```cpp theme={null}
void CALLBACK NewPackageAdded(void* /* context */, const XPackageDetails* details)
{
    if (details->kind == XPackageKind::Content)
    {
        printf("Package added: %s\n", details->displayName);
    }
}

HRESULT ListenForNewDlc(XTaskQueueHandle queue, XTaskQueueRegistrationToken* token)
{
    HRESULT hr = XPackageRegisterPackageInstalled(queue, nullptr, NewPackageAdded, token);
    return hr;
}

void StopListeningForDlc(XTaskQueueRegistrationToken token)
{
    XPackageUnregisterPackageInstalled(token, false);
}
```

## Requirements

**ヘッダー:** XPackage.h

**ライブラリ:** xgameruntime.lib

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

## Conceptual documentation

* [ストリーミング インストール: 状態](/build/core-features/common/packaging/packaging-installstatus)

## See also

[XPackage](/reference/system/xpackage/xpackage_members)


## Related topics

- [XPackageInstalledCallback](/ja-jp/reference/system/xpackage/functions/xpackageinstalledcallback.md)
- [XPackageUnregisterPackageInstalled](/ja-jp/reference/system/xpackage/functions/xpackageunregisterpackageinstalled.md)
- [XPackageEnumerationCallback](/ja-jp/reference/system/xpackage/functions/xpackageenumerationcallback.md)
- [ストリーミング インストール: ステータス](/ja-jp/build/core-features/common/packaging/packaging-installstatus.md)
- [XPackage](/ja-jp/reference/system/xpackage/xpackage_members.md)
