XPackageEnumerateChunkAvailability
설치 패키지를 검사하고 지정된 선택기와 일치하는 모든 청크의 가용성을 열거합니다.
구문
HRESULT XPackageEnumerateChunkAvailability(
const char* packageIdentifier,
XPackageChunkSelectorType type,
void* context,
XPackageChunkAvailabilityCallback* callback
)
매개 변수
packageIdentifier _In_z_
형식: char*
디스크에 설치된 패키지를 고유하게 식별하는 문자열입니다. 패키지 식별자에 대한 자세한 내용은 DLC(다운로드 가능한 콘텐츠 관리 및 라이선스)를참조하세요.
type _In_
형식: XPackageChunkSelectorType
열거할 특성의 형식입니다.
context _In_
형식: void*
콜백 매개 변수에 지정된 콜백에 전달할 컨텍스트입니다.
callback _In_
형식: XPackageChunkAvailabilityCallback*
완료 시 호출할 콜백입니다.
반환 값
형식: HRESULT
HRESULT 성공 또는 오류 코드입니다.
설명
참고 항목
이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.
XPackageEnumerateChunkAvailability는 패키지를 검사하고 특정 유형의 모든 선택기의 가용성을 열거하는 데 사용됩니다. 예를 들어, XPackageChunkSelectorType::Language를 사용하여 이를 호출하면 패키지의 모든 언어 특성과 가용성이 함께 열거됩니다.
아래 예제에서 게임은 지원되는 모든 언어를 표시하고 사용자가 언어를 설치 또는 제거할 수 있도록 허용합니다. 이를 위해 게임은 패키지를 쿼리하여 사용 가능한 언어와 설치 여부를 결정합니다.
HRESULT GetPackageLanguages(_Out_ std::map<std::string, bool>& languages)
{
char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
if (FAILED(hr)) return hr;
hr = XPackageEnumerateChunkAvailability(id,
XPackageChunkSelectorType::Language, &languages,
[](void* context, const XPackageChunkSelector* sel, XPackageChunkAvailability av)
{
auto languages = static_cast<std::map<std::string, bool>*>(context);
switch (av)
{
case XPackageChunkAvailability::Ready:
case XPackageChunkAvailability::Pending:
languages->emplace(sel->language, true);
break;
case XPackageChunkAvailability::Installable:
languages->emplace(sel->language, false);
break;
case XPackageChunkAvailability::Unavailable:
default:
break;
}
return true;
});
return hr;
}
요구 사항
헤더: XPackage.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔