다음을 통해 공유


IAppxFactory3::CreatePackageReader2 메서드(appxpackaging.h)

중요

일부 정보는 상업적으로 출시되기 전에 실질적으로 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.

패키지에 필요한 다이제스트를 지정하기 위한 선택적 매개 변수를 사용하여 IStream에서 제공하는 콘텐츠에서 읽기 전용 패키지 판독기를 만듭니다. 이 메서드는 디지털 서명의 유효성을 검사하지 않습니다.

구문

HRESULT CreatePackageReader2(
  [in]          IStream            *inputStream,
  [in,optional] LPCWSTR            expectedDigest,
  [out]         IAppxPackageReader **packageReader
);

매개 변수

[in] inputStream

읽기용 패키지를 제공하는 입력 스트림입니다. 스트림은 ISequentialStream::Read, IStream::SeekIStream::Stat를 지원해야 합니다. 이러한 메서드가 실패하면 해당 오류 코드가 이 메서드에 전달되어 반환될 수 있습니다.

[in,optional] expectedDigest

패키지 파일의 해시된 표현인 예상 다이제스트를 포함하는 LPCWSTR입니다.

[out] packageReader

만든 패키지 판독기입니다.

반환 값

메서드가 성공하면 S_OK 반환합니다. 그렇지 않으면 다음 표의 오류 코드를 포함하지만 이에 국한되지 않는 오류 코드를 반환합니다.

반환 코드 설명
APPX_E_INTERLEAVING_NOT_ALLOWED inputStream에서 제공하는 ZIP 파일은 인터리브된 OPC 패키지입니다.
APPX_E_RELATIONSHIPS_NOT_ALLOWED inputStream에서 제공하는 OPC 패키지에는 OPC 패키지/파트 관계가 포함됩니다.
APPX_E_MISSING_REQUIRED_FILE inputStream에서 제공하는 OPC 패키지에는 CI 카탈로그가 있을 때 매니페스트 또는 블록 맵 또는 서명 파일이 없습니다.
APPX_E_INVALID_MANIFEST 패키지 매니페스트가 잘못되었습니다.
APPX_E_INVALID_BLOCKMAP 패키지 블록 맵이 유효하지 않거나 ZIP 중앙 디렉터리의 파일 목록이 블록 맵의 파일 목록과 일치하지 않거나 ZIP 중앙 디렉터리에 나열된 파일 크기가 블록 맵에 나열된 파일 및 블록 크기와 일치하지 않습니다.
APPX_E_DIGEST_MISMATCH 개체의 다이제스트가 expectedDigest에 제공된 다이제스트와 일치하지 않습니다.

설명

CreatePackageReader2 메서드는 스트림을 통해 앱 패키지의 공간 요소를 즉시 검색하고 콘텐츠의 유효성을 검사합니다. 이 메서드는 OPC 패키지 및 모든 공간 요소(ZIP 중앙 디렉터리, 매니페스트, [Content_Types].xml 및 블록 맵 포함)가 유효한 경우에만 성공합니다.

IAppxDigestProvider::GetDigest를 호출하여 expecteDigest 매개 변수에 대한 다이제스트 문자열을 가져옵니다.

예제

예를 들어 빠른 시작: 앱 패키지 콘텐츠 추출 및 빠른 시작: 앱 패키지 매니페스트 정보 읽기를 참조하세요.

요구 사항

요구 사항
헤더 appxpackaging.h