Поделиться через


Метод IOpcFactory::ReadPackageFromStream (msopc.h)

Десериализует данные пакета из потока и создает объект пакета для представления считываемого пакета. В то время как объект API упаковки, полученный из объекта package, или сам объект пакета, по-прежнему используется, поток может использоваться для доступа к данным пакета.

Синтаксис

HRESULT ReadPackageFromStream(
  [in]          IStream        *stream,
  [in]          OPC_READ_FLAGS flags,
  [out, retval] IOpcPackage    **package
);

Параметры

[in] stream

Указатель на интерфейс IStream потока.

Поток должен быть читаемым, искать, иметь размер и содержать данные пакета. Кроме того, если поток не является клонируемым, он будет буферизуется и считывается последовательно, что приведет к дополнительным расходам.

[in] flags

Значение , указывающее параметры чтения для кэширования компонентов пакета и их проверки на соответствие требованиям OPC .

[out, retval] package

Указатель на интерфейс IOpcPackage объекта пакета, который представляет пакет, считываемый через поток.

Возвращаемое значение

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Значение, переданное в параметре flags , не является допустимым значением перечисления OPC_READ_FLAGS .
E_NOTIMPL
Этот метод не реализован для данной версии Windows.
E_POINTER
По крайней мере один из параметров потока и пакета имеет значение NULL.
Ошибка интерфейса IStream
Код ошибки HRESULT из интерфейса IStream .
Ошибка потребления пакета
Код ошибки HRESULT из группы ошибок потребления пакетов.
Ошибка URI части
Код ошибки HRESULT из группы ошибок URI части.

Комментарии

Не используйте поток для сериализации данных пакета, если тот же поток используется для десериализации пакета, так как попытка может привести к неопределенному поведению.

API упаковки могут взаимодействовать с пакетами, которые сопоставляют ZIP-архив, как указано в OPC, и которые основаны на кодировке Zip32 (ZIP 2.0) или Zip64 (ZIP 4.5).

Сведения об использовании этого метода для загрузки пакета см. в разделе Задача программирования "Загрузка пакета ".

Поддержка в предыдущих версиях Windows

Этот метод не поддерживается в версиях Windows, предшествующих Windows 7. Дополнительные сведения см. в разделах начало работы с ПОМОЩЬЮ API упаковки и Обновление платформы для Windows Vista.

Потокобезопасность

Объекты упаковки не являются потокобезопасны.

Дополнительные сведения см. в начало работы с API упаковки.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header msopc.h

См. также раздел

начало работы с помощью API упаковки

IOpcFactory

Загрузка пакета

OPC_READ_FLAGS

Разделы общих сведений

Руководство по программированию API упаковки

Справочник по API упаковки

Примеры API упаковки

Ошибки упаковки

Обновление платформы для Windows Vista

Справочные материалы