XPackageRegisterPackageInstalled
インストールが完了したときに呼び出されるコールバックを登録します。
構文
HRESULT XPackageRegisterPackageInstalled(
XTaskQueueHandle queue,
void* context,
XPackageInstalledCallback* callback,
XTaskQueueRegistrationToken* token
)
パラメーター
queue _In_
型: XTaskQueueHandle
コールバックを実行する非同期キュー。
context _In_opt_
型: void*
コールバックに渡すコンテキスト。
callback _In_
型: XPackageInstalledCallback*
インストールの完了時に呼び出されるユーザー定義のコールバック。
token _Out_
型: XTaskQueueRegistrationToken*
戻ったとき、XPackageUnregisterPackageInstalled でコールバックを登録解除するために使用できる、コールバックを示すトークンが格納されます。
戻り値
型: HRESULT
HRESULT 成功またはエラー コード。
解説
PackageInstalled 通知を使用して、新しいパッケージが完全にインストールされたタイミングを知ることができます。
XPackageEnumeratePackages API と XPackageRegisterPackageInstalled API はどちらも、XPackageDetails 構造体を通じてインストールに関する詳細を提供します。 パッケージがインストール中である場合、installing プロパティは true に設定され、インストール モニターを作成して、パッケージ ID にインストールの進行状況を監視させることができます。
一般的なインストール キューの通知はありません。その目的は、XPackageEnumeratePackages を使用して、処理中のアイテムを表示して追跡し、PackageInstalled を使用して、新しい DLC の存在を通知することです。 また、インストールを停止、開始、またはキャンセルする API もありません。 ゲームの観点からは、インストールは自動的に行われます。 エラーは自動的に再試行され、ゲームには不可視です。
次の例では、XPackageRegisterPackageInstalled を使用して、新しい DLC パッケージがインストールされたときにメッセージを出力します。
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);
}
要件
ヘッダー: XPackage.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体