XGameSaveEnumerateContainerInfoByName
XGameSaveProvider のコンテナーの情報を取得します。 プレフィックスを指定すると、その同じプレフィックスを持つ語のみが関数から返されます。
構文
HRESULT XGameSaveEnumerateContainerInfoByName(
XGameSaveProviderHandle provider,
const char* containerNamePrefix,
void* context,
XGameSaveContainerInfoCallback* callback
)
パラメーター
provider _In_
型: XGameSaveProviderHandle
XGameSaveContainerInfo が格納されている XGameSaveProvider。
containerNamePrefix_In_opt_z_
型: char*
コンテナーの一覧で一致するコンテナー名を検索するために使用するプレフィックス。
context _In_opt_
型: void*
コールバック関数に渡されるポインター。
callback _In_
型: XGameSaveContainerInfoCallback*
プレフィックスが一致するすべてのコンテナーに対して実行されるコールバック関数。列挙を停止するには false を返します。 この関数を使用して、XGameSaveContainerInfo を収集します。
戻り値
型: HRESULT
関数の結果です。
解説
この関数を使用して、ユーザーの利用可能なコンテナーを検査します。 これには、UX で表示する必要があるデータが含まれる場合があります。 このセットを列挙しても、SyncOnDemand プロバイダーとの同期は行われず、呼び出し元は XGameSaveContainerInfo の needsSync フィールドで同期のステータスを実際に調べることができます。 needsSync が true に設定されたコンテナーで BLOB データを読み取ったり、更新コンテキストを使用したりすると、同期が強制的に行われ、さまざまな同期エラーが返る可能性があります。 列挙するコンテナーのプレフィックスを指定する必要がない場合は、XGameSaveEnumerateContainerInfo を使用できます。 XGameSaveEnumerateContainerInfo では、利用可能なコンテナーの完全な一覧が返されます。
// Enumerate Container List by prefix, if no prefix is supplied it is
// the same as calling XGameSaveEnumerateContainerInfo.
// NOTE: this should be safe to call from a time critical thread
// but the we are at the mercy of the callback.
void Sample::_EnumerateContainerInfoByName(const char* prefix)
{
HRESULT hr = XGameSaveEnumerateContainerInfoByName(_provider, prefix, this,
[](const XGameSaveContainerInfo* container, void* context)
{
auto self = reinterpret_cast<Sample*>(context);
self->_UpdateContainerList(container);
return true;
});
if (FAILED(hr))
{
_HandleContainerErrors(prefix, hr);
}
}
要件
ヘッダー: XGameSave.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体