Метод IAppxFactory3::CreatePackageReader2 (appxpackaging.h)
Важно!
Некоторые сведения относятся к предварительной версии продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает средство чтения пакета только для чтения из содержимого, предоставленного 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 | ZIP-файл, доставляемый inputStream , является пакетом OPC с чередованием. |
APPX_E_RELATIONSHIPS_NOT_ALLOWED | Пакет OPC, предоставляемый inputStream , содержит связи между пакетом и частью OPC. |
APPX_E_MISSING_REQUIRED_FILE | Пакет OPC, доставляемый inputStream , не имеет манифеста, карты блоков или файла сигнатуры при наличии каталога CI. |
APPX_E_INVALID_MANIFEST | Недопустимый манифест пакета. |
APPX_E_INVALID_BLOCKMAP | Карта блоков пакетов недопустимая, список файлов в центральном каталоге ZIP не соответствует списку файлов на карте блоков или размер файлов, перечисленных в центральном каталоге ZIP, не соответствует размерам файлов и блоков, перечисленным в схеме блоков. |
APPX_E_DIGEST_MISMATCH | Дайджест объекта не соответствует дайджесту, предоставленному в expectedDigest. |
Комментарии
Метод CreatePackageReader2 немедленно извлекает элементы занимаемой части пакета приложения через поток и проверяет их содержимое. Этот метод выполняется успешно, только если пакет OPC и все элементы занимаемой области (включая центральный каталог ZIP, манифест, [Content_Types].xml и карту блоков) являются допустимыми.
Получите строку дайджеста для параметра expecteDigest , вызвав IAppxDigestProvider::GetDigest.
Примеры
Примеры см. в разделах Краткое руководство. Извлечение содержимого пакета приложения и Краткое руководство. Чтение сведений о манифесте пакета приложения.
Требования
Требование | Значение |
---|---|
Заголовок | appxpackaging.h |