次の方法で共有


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 本体

関連項目

XGameSave
XGameSaveEnumerateContainerInfo
ゲームのセーブ エラー