XStoreCanAcquireLicenseForPackageAsync

DLC のプレビュー ライセンス (パッケージ付き非消耗品アイテム) を取得します。 これにより、ゲームはパッケージがライセンス可能かどうかを確認できます。実際にライセンスを取得する必要はありません。 制限付きライセンス オプションを使用する場合、ライセンスを取得すると、既にライセンスがチェックアウトされている別のデバイスでライセンスが終了します。

構文

HRESULT XStoreCanAcquireLicenseForPackageAsync(  
         const XStoreContextHandle storeContextHandle,  
         const char* packageIdentifier,  
         XAsyncBlock* async  
)  

パラメーター

storeContextHandle _In_
型: XStoreContextHandle

XStoreCreateContext によって返されるユーザーの Microsoft Store コンテキスト ハンドル。

packageIdentifier _In_z_
型: char*

Microsoft Store パッケージを一意に識別する文字列。 パッケージ識別子の詳細については、「ダウンロード可能なコンテンツ (DLC) の管理とライセンス」を参照してください。

async _Inout_
型: XAsyncBlock*

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

戻り値

型: HRESULT

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

解説

この関数の実行結果とプレビュー ライセンスを取得するには、この関数を呼び出した後で、XStoreCanAcquireLicenseForPackageResult を呼び出します。 この関数は、パッケージ ライセンスを取得できるかどうかのみを確認します。 パッケージ ライセンスを取得するには、XStoreAcquireLicenseForPackageAsync を呼び出します。

次のコード スニペットでは、以下の API の使用方法の例を示します。

void CALLBACK CanAcquireLicenseForPackageCallback(XAsyncBlock* asyncBlock)
{
    XStoreCanAcquireLicenseResult canAcquireLicenseResult{};

    HRESULT hr = XStoreCanAcquireLicenseForPackageResult(
        asyncBlock,
        &canAcquireLicenseResult);

    if (FAILED(hr))
    {
        printf("Failed retrieve the license result: 0x%x\r\n", hr);
        return;
    }

    printf("status       : %d\r\n", canAcquireLicenseResult.status);
    printf("licensableSku: %s\r\n", canAcquireLicenseResult.licensableSku);
}

void CanAcquireLicenseForPackage(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle, const char* packageIdentifier)
{
    auto asyncBlock = std::make_unique<XAsyncBlock>();
    ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
    asyncBlock->queue = taskQueueHandle;
    asyncBlock->context = taskQueueHandle;
    asyncBlock->callback = CanAcquireLicenseForPackageCallback;

    HRESULT hr = XStoreCanAcquireLicenseForPackageAsync(
        storeContextHandle,
        packageIdentifier,
        asyncBlock.get());

    if (FAILED(hr))
    {
        printf("Failed to get preview license for package: 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 本体

関連項目

XStore
XStoreCanAcquireLicenseForPackageResult
XStoreAcquireLicenseForPackageAsync