XPackageInstallChunksResult
XPackageInstallChunksAsync에 대한 호출 결과를 검색합니다.
구문
HRESULT XPackageInstallChunksResult(
XAsyncBlock* asyncBlock,
XPackageInstallationMonitorHandle* installationMonitor
)
매개 변수
asyncBlock _Inout_
형식: XAsyncBlock*
XPackageInstallChunksAsync에 전달된 XAsyncBlock입니다.
installationMonitor _Out_
형식: XPackageInstallationMonitorHandle*
반환 시, 설치에 대한 설치 모니터를 포함합니다.
반환 값
형식: HRESULT
HRESULT 성공 또는 오류 코드입니다.
비고
XPackageInstallChunks에는 비동기 변형이 있습니다. 청크 설치에는 사용자에게 다운로드 크기를 허용할지 묻는 메시지가 포함될 수 있습니다.
이 예제에서는 비동기 API를 사용하여 BigMaps가 설치되는 방법을 보여줍니다.
void CALLBACK BigMapsInstallProgress(
void* /* context */,
XPackageInstallationMonitorHandle monitor)
{
XPackageInstallationProgress progress;
XPackageGetInstallationProgress(monitor, &progress);
if (progress.completed)
{
printf("BigMaps Installed\n");
XPackageCloseInstallationMonitorHandle(monitor);
}
}
void CALLBACK BigMapsAsyncInstallComplete(XAsyncBlock* asyncBlock)
{
XPackageInstallationMonitorHandle monitor;
HRESULT hr = XPackageInstallChunksResult(asyncBlock, &monitor);
delete asyncBlock;
if (SUCCEEDED(hr))
{
XTaskQueueRegistrationToken token;
if (FAILED(XPackageRegisterInstallationProgressChanged(
monitor,
nullptr,
BigMapsInstallProgress, &token)))
{
XPackageCloseInstallationMonitorHandle(monitor);
}
}
}
HRESULT InstallBigMapsAsync(XTaskQueueHandle queue)
{
char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
if (FAILED(hr)) return hr;
XPackageChunkSelector selector;
selector.type = XPackageChunkSelectorType::Tag;
selector.tag = "BigMaps";
XAsyncBlock* asyncBlock = new (std::nothrow) XAsyncBlock{};
asyncBlock->callback = BigMapsAsyncInstallComplete;
asyncBlock->queue = queue;
hr = XPackageInstallChunksAsync(
id, 1, &selector, 1000,
false, asyncBlock);
if (FAILED(hr))
{
delete asyncBlock;
}
return hr;
}
요구 사항
헤더: XPackage.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔