XStoreShowPurchaseUIAsync
指定された製品の購入 UI オーバーレイを開始します。
構文
HRESULT XStoreShowPurchaseUIAsync(
const XStoreContextHandle storeContextHandle,
const char* storeId,
const char* name,
const char* extendedJsonData,
XAsyncBlock* async
)
パラメーター
storeContextHandle _In_
型: XStoreContextHandle
XStoreCreateContext によって返されるユーザーの Microsoft Store コンテキスト ハンドル。
storeId _In_z_
型: char*
購入する製品の ID。
name _In_opt_z_
型: char*
購入する製品の名前。
extendedJsonData_In_opt_z_
型: char*
購入フローに渡される JSON BLOB。 購入の開始状況を追跡できるよう、カスタム キャンペーン ID を挿入できます。
async _Inout_
型: XAsyncBlock*
行われている非同期処理が定義されている XAsyncBlock。 XAsyncBlock を使用して、呼び出しのステータスをポーリングし、呼び出しの結果を取得できます。 詳細については、「XAsyncBlock」を参照してください。
戻り値
型: HRESULT
HRESULT 成功またはエラー コード。
解説
注意 この操作は、想定される購入後にアイテムのダウンロードまたはインストールをトリガーしません。 このコンテンツをダウンロードしてインストールする場合は、購入が成功した後、XStoreDownloadAndInstallPackagesAsync を呼び出すことをお勧めします。 追加のプロンプトはユーザーに表示されません。
この関数の結果を取得するには、この関数を呼び出した後で XStoreShowPurchaseUIResult を呼び出します。 この関数はユーザーが何かの購入を選択したときにだけ呼び出す必要があり、呼び出すとシステムによってプロセス外で支払い情報とユーザー確認を処理するモーダル購入ダイアログが表示されます。
次のコード スニペットは、特定のストア製品の購入要求の例を示しています。
void CALLBACK ShowPurchaseUICallback(XAsyncBlock* asyncBlock)
{
HRESULT hr = XStoreShowPurchaseUIResult(asyncBlock);
if (FAILED(hr))
{
printf("Failed the purchase: 0x%x\r\n", hr);
return;
}
}
void ShowPurchaseUI(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle, const char* storeId)
{
auto asyncBlock = std::make_unique<XAsyncBlock>();
ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
asyncBlock->queue = taskQueueHandle;
asyncBlock->context = taskQueueHandle;
asyncBlock->callback = ShowPurchaseUICallback;
HRESULT hr = XStoreShowPurchaseUIAsync(
storeContextHandle,
storeId,
nullptr, // Can be used to override the title bar text
nullptr, // Can be used to provide extra details to purchase
asyncBlock.get());
if (FAILED(hr))
{
printf("Failed to purchase: 0x%x\r\n", hr);
return;
}
// Wait a while for the callbacks to run
Sleep(5000);
}
要件
ヘッダー: XStore.h (XGameRuntime.h に含まれます)
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体