IAppxFactory3::CreatePackageReader2 メソッド (appxpackaging.h)
重要
一部の情報はプレリリース製品に関連しており、市販される前に大幅に変更される可能性があります。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
IStream によって提供されるコンテンツから読み取り専用パッケージ リーダーを作成します。パッケージに必要なダイジェストを指定するための省略可能なパラメーターを指定します。 このメソッドは、デジタル署名を検証しません。
構文
HRESULT CreatePackageReader2(
[in] IStream *inputStream,
[in,optional] LPCWSTR expectedDigest,
[out] IAppxPackageReader **packageReader
);
パラメーター
[in] inputStream
読み取り用のパッケージを配信する入力ストリーム。 ストリームは 、ISequentialStream::Read、 IStream::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 |