指定したコンテナー内の BLOB (ファイル) にデータを保存します。
構文
HRESULT Save(const std::string& containerName,
const std::string& blobName,
size_t dataSize,
const uint8_t* blobData);
パラメーター
containerName _In_
型: std::string
コンテナーの名前。
blobName _In_
型: std::string
BLOB の名前
dataSize _In_
型: size_t
BLOB に書き込むデータのサイズ。 サイズは最大 16 MB (GS_MAX_BLOB_SIZE) に設定されています。
blobData _In_
型: uint8_t*
BLOB に書き込むバイトへのポインター。
戻り値
型: HRESULT
このメソッドは、成功すると S_OK を返し、失敗すると次の HRESULT コードを返します。
- GS_INVALID_CONTAINER_NAME
- GS_OUT_OF_LOCAL_STORAGE
- GS_UPDATE_TOO_BIG
- GS_QUOTA_EXCEEDED
- GS_HANDLE_EXPIRED
例
次のコード例は、Save 関数の使用例を示しています。
using Microsoft::Xbox::Wrappers::GameSave;
std::vector<uint8_t> saveData; // Contains the player's data.
Provider provider = new Provider();
if(SUCCEEDED(provider->Initialize(userHandle, mySCID))
{
HRESULT hr = provider->Save("Save_slot_1", "progress", saveData.size(), saveData.data());
if(FAILED(hr))
{
if(hr == E_GS_QUOTA_EXCEEDED)
{
// Message that the user must delete saves for this game.
}
else if(hr == E_GS_OUT_OF_LOCAL_STORAGE)
{
// Message to the user that they have run out of save
// space on the local device.
}
else if(hr == E_GS_UPDATE_TOO_BIG)
{
// This is really a development time thing to catch.
// Your save size was too large for this Save call. Save
// calls are limited to a maximum size of
// 16 MB (GS_MAX_BLOB_SIZE).
}
else if(hr == E_GS_HANDLE_EXPIRED)
{
// You must recreate the provider, and then try again.
}
else
{
// Log error.
}
}
}
解説
Provider クラスから他のメソッドを呼び出す前に、Initialize メソッドを呼び出す必要があります。
セーブ データのラッパーを初期化し、指定されたユーザーのすべてのコンテナーを同期するには、Initialize を呼び出します。
指定された blob から、指定されたコンテナーの中からデータをロードするには、Load を呼び出します。
要件
ヘッダー: xgamesavewrappers.hpp
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体
関連項目
Microsoft.Xbox.Wrappers.XGameSave.Provider
XGameSave ラッパー メンバー
セーブデータのシンプルなラッパー
Load