다음을 통해 공유


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 콘솔

참고 항목

XPackage