次の方法で共有


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*

行われている非同期処理が定義されている XAsyncBlockXAsyncBlock を使用して、呼び出しのステータスをポーリングし、呼び出しの結果を取得できます。 詳細については、「XAsyncBlock」を参照してください。

戻り値

型: HRESULT

HRESULT 成功またはエラー コード。

解説

[注意] この操作は、想定される購入後にアイテムのダウンロードまたはインストールをトリガーしません。 このコンテンツをダウンロードしてインストールする場合は、購入が成功した後、XStoreDownloadAndInstallPackagesAsync を呼び出すことをお勧めします。 追加のプロンプトはユーザーに表示されません。

![注] PC では、購入が成功した後に表示される購入確認ダイアログボックスの上部に、閉じるボタン [X] が表示されます。 [OK] の代わりにこれを選択すると、XStoreShowPurchaseUIResult に E_ABORT が返されるため、望ましくない可能性があります。 これは、いずれかのダイアログがこの方法で閉じられた場合の標準的な Windows の動作になります。

この関数の結果を取得するには、この関数を呼び出した後で 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->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;
    }
}

要件

ヘッダー: XStore.h (XGameRuntime.h に含まれます)

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XStore
XStoreShowPurchaseUIResult