IAppxFactory3::CreateManifestReader2 方法 (appxpackaging.h)

重要

某些信息与预发行产品相关,该产品在商业发布之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。

使用可选参数根据 IStream 提供的内容创建只读清单对象模型,用于指定清单的预期摘要。

语法

HRESULT CreateManifestReader2(
  [in]          IStream             *inputStream,
  [in,optional] LPCWSTR             expectedDigest,
  [out]         IAppxManifestReader **manifestReader
);

参数

[in] inputStream

传递清单 XML 以供读取的输入流。 流必须支持 ISequentialStream::ReadIStream::SeekIStream::Stat。如果这些方法失败,则其错误代码可能会传递给此方法并由此方法返回。

[in,optional] expectedDigest

包含预期摘要的 LPCWSTR,清单文件的哈希表示形式。

[out] manifestReader

创建的清单读取器。

返回值

如果该方法成功,则返回 S_OK。 否则,它将返回一个错误代码,该代码包括但不限于下表中的错误代码。

返回代码 说明
APPX_E_INVALID_MANIFEST inputStream 不包含清单的语法有效的 XML。
APPX_E_DIGEST_MISMATCH 对象的摘要与 expectedDigest 中提供的摘要不匹配。

注解

使用 CreateManifestReader2 读取应用包外部的清单。 此方法验证清单 XML。 manifestReader 提供对清单 XML 中的所有数据元素和属性的访问权限。 清单记录 AppxPackaging 的 ETW 事件日志中清单验证错误的位置。

通过调用 IAppxDigestProvider::GetDigest 获取 expecteDigest 参数的摘要字符串。

示例

有关示例,请参阅 快速入门:读取应用包清单信息

要求

要求
Header appxpackaging.h