Метод IAppxFile::GetStream (appxpackaging.h)
Возвращает поток только для чтения, содержащий несжатое содержимое файла.
Синтаксис
HRESULT GetStream(
[out, retval] IStream **stream
);
Параметры
[out, retval] stream
Тип: IStream**
Поток только для чтения, содержащий несжатое содержимое файла.
Возвращаемое значение
Тип: HRESULT
Если метод завершается успешно, он возвращает S_OK.
[Неустранимая] Коды ошибок OPC (0x8051xxxx), если заголовок локального файла или дескриптор данных в ZIP-архиве недопустимы. Эта ошибка приводит к тому, что весь потребитель ZIP OPC переходит в недопустимое состояние. После возникновения этой ошибки доступ к другому файлу из объекта IAppxPackageReader не будет.
HRESULT_FROM_WIN32 (ERROR_CRC) (0x80070017), если поток был прочитан ранее и его CRC был недопустим.
Возвращает значение из возвращенных методов IStream Read и CopyTo.
[Неустранимая] HRESULT_FROM_WIN32 (ERROR_CRC) (0x80070017), если весь поток был считан, а его CRC признан недопустимым
APPX_E_CORRUPT_CONTENT (0x80080206), если содержимое файла не может быть распаковано (из-за повреждения ZIP-файла)
HRESULT_FROM_WIN32(ERROR_INVALID_DATA) (0x8007000d), если блок в файле не может быть прочитан полностью или размер блока непредвиден
APPX_E_BLOCK_HASH_INVALID (0x80080207), если содержимое блоков этого файла не соответствует его хэшу на карте блоков
Комментарии
Возвращаемый поток доступен только для чтения и может быть клонирован.
Проверка файлов полезных данных является "отложенной". При первом вызове метода GetStream файла проверяется локальный заголовок и дескриптор данных соответствующего элемента ZIP-файла, что может привести к сбою GetStream . Последующие вызовы GetStream в том же файле не повторяют эти проверки. Контрольная сумма CRC элемента ZIP-файла проверяется только в том случае, если поток считывается полностью в последовательном порядке.
Экземпляры IStream , возвращаемые для файлов полезных данных, оптимизированы для последовательного доступа. Хотя поддерживается случайный доступ к потоку, этот случайный доступ может выполняться медленнее и более интенсивно использовать ЦП. Мы рекомендуем по возможности выполнять одно последовательное чтение этих потоков. Чтение одного и того же диапазона несколько раз поддерживается, но не рекомендуется для повышения производительности; рекомендуется кэширование таких диапазонов, если этого требует сценарий использования.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 [только классические приложения] |
Целевая платформа | Windows |
Header | appxpackaging.h |