다음을 통해 공유


XStoreShowGiftingUIAsync

지정된 제품을 다른 사용자를 위한 선물로 구매하기 위한 UI 오버레이를 시작합니다. 현재 사용자에게 선물 받는 사람에 대한 정보를 입력하라는 메시지가 표시되고 구매 흐름을 안내합니다.

구문

HRESULT XStoreShowGiftingUIAsync(  
         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 성공 또는 오류 코드입니다.

비고

선물로 구매할 제품은 선물 구매를 지원하도록 구성해야 합니다. 기프트를 지원하는 제품 목록을 검색하려면 매개 변수가 로 설정된 XStoreQueryProductsAsyncactionFilters 를 호출합니다 "Gift".

이 함수의 결과를 검색하려면 이 함수를 호출한 후 XStoreShowGiftingUIResult를 호출합니다. 이 함수는 사용자가 선물로 구매하도록 선택한 경우에만 호출되어야 하며, 시스템에서 결제 정보 및 사용자 확인 out-of-process를 처리하는 모달 구매 대화 상자를 표시합니다.

다음 코드 조각은 특정 매장 제품에 대한 선물 구매를 요청하는 예제를 보여줍니다.

void CALLBACK ShowGiftingUICallback(XAsyncBlock* asyncBlock)
{
    HRESULT hr = XStoreShowGiftingUIResult(asyncBlock);

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

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

    HRESULT hr = XStoreShowGiftingUIAsync(
        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
XStoreShowGiftingUIResult