次の方法で共有


IAppxFactory3::CreatePackageReader2 メソッド (appxpackaging.h)

重要

一部の情報はプレリリース製品に関連しており、市販される前に大幅に変更される可能性があります。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。

IStream によって提供されるコンテンツから読み取り専用パッケージ リーダーを作成します。パッケージに必要なダイジェストを指定するための省略可能なパラメーターを指定します。 このメソッドは、デジタル署名を検証しません。

構文

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

パラメーター

[in] inputStream

読み取り用のパッケージを配信する入力ストリーム。 ストリームは 、ISequentialStream::ReadIStream::Seek、および IStream::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 パラメーターのダイジェスト文字列を取得します。

例については、「 クイック スタート: アプリ パッケージの内容 を抽出する」および 「クイック スタート: アプリ パッケージ マニフェスト情報の読み取り」を参照してください。

要件

要件
Header appxpackaging.h