다음을 통해 공유


XPackageEnumeratePackages

설치되었거나 설치되고 있는 호출 프로세스와 관련된 패키지를 찾습니다.

구문

HRESULT XPackageEnumeratePackages(  
         XPackageKind kind,  
         XPackageEnumerationScope scope,  
         void* context,  
         XPackageEnumerationCallback* callback  
)  

매개 변수

kind _In_
형식: XPackageKind

열거할 설치 패키지의 형식입니다.

scope _In_
형식: XPackageEnumerationScope

설치 패키지의 범위입니다.

context _In_opt_
형식: void*

callback 매개 변수에 지정된 콜백에 전달할 컨텍스트입니다.

callback _In_
형식: XPackageEnumerationCallback*

완료 시 호출할 콜백입니다.

반환 값

형식: HRESULT

HRESULT 성공 또는 오류 코드.

설명

참고 항목

이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.

XPackageEnumeratePackages를 사용하여 이미 설치되었거나 설치되고 있는 호출 프로세스와 관련된 패키지를 찾습니다. 이 함수는 앱 패키지 뿐만 아니라 콘텐츠 패키지를 찾을 수 있습니다. XPackageDetails 구조를 통해 설치에 대한 세부 정보를 제공합니다.

패키지가 아직 설치 중인 경우 설치 중 속성이 true로 설정되고 설치 모니터를 만들어 패키지의 식별자가 설치 진행 상황을 모니터링하도록 할 수 있습니다.

일반 설치 큐 알림이 없습니다. XPackageEnumeratePackages을 사용하여 진행 중인 항목을 표시하고 추적하기 위한 의도입니다. 설치를 중지하거나 시작하거나 취소하는 API도 없습니다. 게임의 관점에서 설치가 자연히 처리되어야 합니다. 오류는 자동으로 다시 시도되며 게임에는 보이지 않습니다.

XPackageEnumerationScope 값에 따라 XPackageKind::Game 값으로 호출되는 API의 출력은 다음과 같습니다.

범위 프랜차이즈 게임 허브 허브 인식 게임 허브를 인식하지 못하는 게임
ThisOnly 프랜차이즈 게임 허브만 허브 인식 게임만 허브를 인식하지 못하는 게임만
ThisAndRelated 프랜차이즈 게임 허브, 연결된 모든 허브 인식 게임 및 모든 RelatedProducts 허브 인식 게임 및 모든 RelatedProducts 허브를 인식하지 못하는 게임 및 모든 RelatedProducts
ThisPublisher 현재 프로세스와 동일한 퍼블리셔에 속하는 모든 게임 제품 현재 프로세스와 동일한 퍼블리셔에 속하는 모든 게임 제품 현재 프로세스와 동일한 퍼블리셔에 속하는 모든 게임 제품

XPackageEnumerationScope 값에 따라 XPackageKind::Content 값으로 호출되는 API의 출력은 다음과 같습니다.

범위 프랜차이즈 게임 허브 허브 인식 게임 허브를 인식하지 못하는 게임
ThisOnly 이 프랜차이즈 게임 허브와 관련된 DLC 이 허브 인식 게임과 관련된 DLC 이 허브를 인식하지 못하는 게임과 관련된 DLC
ThisAndRelated 이 프랜차이즈 게임 허브, 허브 인식 타이틀 및 모든 RelatedProducts와 관련된 DLC 이 허브 인식 게임 및 모든 RelatedProducts와 관련된 DLC 이 허브를 인식하지 못하는 게임 및 모든 RelatedProducts와 관련된 DLC
ThisPublisher 현재 프로세스와 동일한 퍼블리셔의 기본 게임과 관련된 모든 DLC(동일한 게시자 또는 다른 퍼블리셔) 현재 프로세스와 동일한 퍼블리셔의 기본 게임과 관련된 모든 DLC(동일한 게시자 또는 다른 퍼블리셔) 현재 프로세스와 동일한 퍼블리셔의 기본 게임과 관련된 모든 DLC(동일한 게시자 또는 다른 퍼블리셔)

예제:

bool CALLBACK ListDlcCallback(
    void* /* context */,
    const XPackageDetails* details)
{
    printf("Found dlc: %s\n", details->displayName);
    return true; // continue enumerating
}

HRESULT ListDlc()
{
    HRESULT hr = XPackageEnumeratePackages(
        XPackageKind::Content,                      /* Looking for content packages (DLC) */
        XPackageEnumerationScope::ThisAndRelated,   /* For this game and related games*/
        nullptr, ListDlcCallback);
    return hr;
}

요구 사항

헤더: XPackage.h

라이브러리: xgameruntime.lib

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

참고 항목

XPackage
프랜차이즈 게임 허브
PC 및 Xbox One용 DLC(다운로드 가능한 콘텐츠) 패키지를 만들고 사용하는 방법