다음을 통해 공유


XStoreReportConsumableFulfillmentAsync

지정된 수량의 소모품을 사용합니다. 소모품 기반 에코시스템에서 소모성 제품 구현 및 사용에 관해 자세한 내용을 참조하세요.

구문

HRESULT XStoreReportConsumableFulfillmentAsync(  
         const XStoreContextHandle storeContextHandle,  
         const char* storeProductId,  
         uint32_t quantity,  
         GUID trackingId,  
         XAsyncBlock* async  
)  

매개 변수

storeContextHandle _In_
형식: XStoreContextHandle

XStoreCreateContext가 반환하는 사용자의 Microsoft Store 컨텍스트 핸들입니다.

storeProductId _In_z_
형식: char*

처리됨으로 보고하려는 소모품 추가 기능의 Store ID입니다.

quantity _In_
형식: uint32_t

처리됨으로 보고하려는 소모품 추가 기능의 단위 수입니다. Microsoft Store에서 관리되는 소모품(즉, Microsoft가 남은 수량을 추적하는 소모품)의 경우, 사용된 단위 수를 지정합니다. 게임에서 관리하는 소모품(즉, 개발자가 남은 수량을 추적하는 소모품)의 경우에는 1을 지정합니다.

trackingId _In_
형식: GUID

처리 작업이 연결된 특정 트랜잭션을 추적용으로 식별하는 개발자 제공 GUID입니다.

async _Inout_
형식: XAsyncBlock*

수행할 비동기 작업을 정의하는 XAsyncBlock입니다. 호출의 상태를 폴링하고 호출 결과를 검색하기 위해 사용할 수 있는 XAsyncBlock입니다. 자세한 내용은 XAsyncBlock을 참조하세요.

반환 값

형식: HRESULT

HRESULT 성공 또는 오류 코드입니다.

비고

이 함수의 결과를 검색하려면 이 함수를 호출한 후 XStoreReportConsumableFulfillmentResult를 호출합니다.

다음 코드 조각은 소모품 수량 사용 예를 보여줍니다.

void CALLBACK ReportConsumableFulfillmentCallback(XAsyncBlock* asyncBlock)
{
    XStoreConsumableResult result{};
    HRESULT hr = XStoreReportConsumableFulfillmentResult(
        asyncBlock,
        &result);

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

    printf("quantity: %d\r\n", result.quantity);
}

void ReportConsumableFulfillment(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle, const char* storeId, uint32_t quantity, GUID trackingId)
{
    auto asyncBlock = std::make_unique<XAsyncBlock>();
    ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
    asyncBlock->queue = taskQueueHandle;
    asyncBlock->callback = ReportConsumableFulfillmentCallback;

    HRESULT hr = XStoreReportConsumableFulfillmentAsync(
        storeContextHandle,
        storeId,
        quantity,
        trackingId,
        asyncBlock.get());

    if (FAILED(hr))
    {
        printf("Failed to report consumable fulfillment: 0x%x\r\n", hr);
        return;
    }
}

요구 사항

헤더: XStore.h(XGameRuntime.h에 포함됨)

라이브러리: xgameruntime.lib

지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

XStore
Consumable-based ecosystemsXStoreReportConsumableFulfillmentResult