다음을 통해 공유


XPackageMountWithUiAsync

지정된 콘텐츠의 설치를 비동기식으로 탑재하고 탑재 핸들을 반환합니다. 사용자 보호자 동의 UI 콘텐츠가 로그인한 모든 사용자의 보호자 설정에 따라 연령이 제한됨을 표시합니다.

구문

HRESULT XPackageMountWithUiAsync(
  const char * packageIdentifier,
  XAsyncBlock * async
) noexcept;

매개 변수

packageIdentifier _In_z_
형식: const char *

디스크에 설치된 패키지를 고유하게 식별하는 문자열입니다. XPackageEnumerationCallback에서 반환된 XPackageDetails 구조체의 packageIdentifier 필드를 전달합니다. 패키지 식별자에 대한 자세한 내용은 DLC(다운로드 가능한 콘텐츠 관리 및 라이선스)를참조하세요.

async _Inout_
형식: XAsyncBlock *

비동기 호출의 상태를 모니터링하는 XAsyncBlock입니다.

반환 값

형식: HRESULT

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

설명

이 API는 로그인한 모든 사용자에게 연령에 적합하지 않은 콘텐츠를 탑재할 경우 사용자에게 부모 동의 프롬프트를 표시합니다. 부모의 동의가 승인되면 탑재가 성공합니다. 프롬프트에서 부모 동의가 거부되면 탑재가 실패합니다.

이 시나리오에서는 콘텐츠가 연령 제한이 있는 경우 게임이 DLC를 흑백으로 렌더링합니다. 사용자가 사용할 DLC 조각을 선택하면 게임의 외부 코드가 MountDlc를 호출합니다.

extern void RenderDlc(const char* packageId, const char* displayName, bool monochrome); 

void ShowDlc() 
{ 
// Enumerate all DLC for the game and render it to the user 
XPackageEnumeratePackages(XPackageKind::Content, XPackageEnumerationScope::ThisAndRelated, nullptr,
 [](void*, const XPackageDetails* details) 
  {     
        RenderDlc(details->packageIdentifier,
                  details->displayName, 
                  details->ageRestricted);
  }); 
} 

 HRESULT MountDlc(const char* packageId, XPackageMountHandle* handle)
 {  
    XAsync async{};  
    RETURN_IF_FAILED(XPackageMountWithUiAsync(packageId, &async));
    RETURN_IF_FAILED(XAsyncGetStatus(&async, true));
    RETURN_IF_FAILED(XPackageMountWithUiResult(&async, handle));  
    return S_OK; 
} 

요구 사항

헤더: XPackage.h

라이브러리: xgameruntime.lib

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

참고 항목

XPackageMountWithUiResultXPackage
XPackageEnumeratePackages
XPackageEnumerationCallback
XPackageDetails
XPackageGetMountPath
XPackageGetMountPathSize
PC 및 Xbox One용 DLC(다운로드 가능한 콘텐츠) 패키지를 만들고 사용하는 방법