IAppxBundleFactory2::CreateBundleReader2 method (appxpackaging.h)

Important

Some information relates to a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Creates a read-only bundle object that reads its contents from an IStream object, with an optional parameter for specifying the expected digest for the bundle.

Syntax

HRESULT CreateBundleReader2(
  [in]          IStream           *inputStream,
  [in,optional] LPCWSTR           expectedDigest,
  [out]         IAppxBundleReader **bundleReader
);

Parameters

[in] inputStream

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

[in,optional] expectedDigest

An LPCWSTR containing the expected digest, a hashed representation of the bundle file.

[out] bundleReader

The created bundle reader.

Return value

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 code Description
APPX_E_INTERLEAVING_NOT_ALLOWED The ZIP file delivered by *inputStream8 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 bundle manifest is not valid.
APPX_E_INVALID_MANIFEST The bundle manifest is not valid.
APPX_E_DIGEST_MISMATCH The digest for the object doesn't match the digest provided in expectedDigest.

Remarks

Get the digest string for the expecteDigest parameter by calling IAppxDigestProvider::GetDigest.

Requirements

Requirement Value
Header appxpackaging.h