Skip to main content
IAppxFactory::CreatePackageReader method

Creates a read-only package reader from the contents provided by an IStream. This method does not validate the digital signature.

Syntax


HRESULT CreatePackageReader(
  [in]           IStream *inputStream,
  [out, retval]  IAppxPackageReader **packageReader
);

Parameters

inputStream [in]

Type: IStream*

The input stream that delivers the content of the package for reading. The stream must support Read, Seek, and Stat. If these methods fail, their error codes might be passed to and returned by this method.

packageReader [out, retval]

Type: IAppxPackageReader**

A package reader.

Return value

Type: HRESULT

If the method succeeds, it returns S_OK. Otherwise, it returns an error code that includes, but is not limited to, those in the following table.

Return codeDescription
APPX_E_INTERLEAVING_NOT_ALLOWED

The ZIP file delivered by inputStream is an interleaved OPC package.

APPX_E_RELATIONSHIPS_NOT_ALLOWED

The OPC package delivered by inputStream contains OPC package/part relationships.

APPX_E_MISSING_REQUIRED_FILE

The OPC package delivered by inputStream does not have a manifest, or a block map, or a signature file when a CI catalog is present.

APPX_E_INVALID_MANIFEST

The package manifest is not valid.

APPX_E_INVALID_BLOCKMAP

The package block map is not valid, the list of files in the ZIP central directory does not match the list of files in the block map, or the size of files listed in the ZIP central directory does not match the file and block sizes listed in the block map.

 

Remarks

The CreatePackageReader method immediately retrieves footprint elements of the app package through the stream and validates their content. This method succeeds only if the OPC package and all footprint elements (including ZIP central directory, manifest, [Content_Types].xml, and block map) are valid.

Examples

For an example, see Quickstart: Extract app package contents and Quickstart: Read app package manifest info.

Requirements

Minimum supported client

Windows 8 [desktop apps only]

Minimum supported server

Windows Server 2012 [desktop apps only]

Header

AppxPackaging.h

IDL

AppxPackaging.idl

IID

IID_IAppxFactory is defined as beb94909-e451-438b-b5a7-d79e767b75d8

See also

IAppxFactory