XPackageRegisterPackageInstalled
설치가 완료될 때 호출될 콜백을 등록합니다.
구문
HRESULT XPackageRegisterPackageInstalled(
XTaskQueueHandle queue,
void* context,
XPackageInstalledCallback* callback,
XTaskQueueRegistrationToken* token
)
매개 변수
queue _In_
형식: XTaskQueueHandle
콜백이 실행될 비동기 큐입니다.
context _In_opt_
형식: void*
콜백에 전달할 컨텍스트입니다.
callback _In_
형식: XPackageInstalledCallback*
설치가 완료될 때 호출할 사용자 정의 콜백입니다.
token _Out_
형식: XTaskQueueRegistrationToken*
반환 시, XPackageUnregisterPackageInstalled로 콜백을 등록 취소할 수 있는 콜백을 식별하는 토큰을 포함합니다.
반환 값
형식: HRESULT
HRESULT 성공 또는 오류 코드입니다.
비고
PackageInstalled 알림은 새 패키지가 완전히 설치된 시기를 결정하는 데 사용할 수 있습니다.
XPackageEnumeratePackages API 및 XPackageRegisterPackageInstalled API 모두 XPackageDetails 구조체를 통해 설치에 대한 세부 정보를 제공합니다. 패키지가 설치 중인 경우 installing 속성이 true로 설정되고 설치 모니터를 만들어 패키지의 식별자가 설치 진행 상황을 모니터링하도록 할 수 있습니다.
일반 설치 큐 알림이 없습니다. XPackageEnumeratePackages를 사용하여 진행 중인 항목을 표시하고 추적하며, PackageInstalled를 사용하여 새 DLC를 알리는 것이 목적입니다. 설치를 중지하거나 시작하거나 취소하는 API도 없습니다. 게임의 관점에서 설치가 자연히 처리되어야 합니다. 오류는 자동으로 다시 시도되며 게임에는 보이지 않습니다.
다음 예제에서 XPackageRegisterPackageInstalled는 새 DLC 패키지가 설치될 때 메시지를 인쇄하는 데 사용됩니다.
void CALLBACK NewPackageAdded(void* /* context */, const XPackageDetails* details)
{
if (details->kind == XPackageKind::Content)
{
printf("Package added: %s\n", details->displayName);
}
}
HRESULT ListenForNewDlc(XTaskQueueHandle queue, XTaskQueueRegistrationToken* token)
{
HRESULT hr = XPackageRegisterPackageInstalled(queue, nullptr, NewPackageAdded, token);
return hr;
}
void StopListeningForDlc(XTaskQueueRegistrationToken token)
{
XPackageUnregisterPackageInstalled(token, false);
}
요구 사항
헤더: XPackage.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔