IStream::RepresentAs
Версия от 07:20, 21 апреля 2017; Андрей Чусов (обсуждение | вклад)
return_code_t RepresentAs(StreamTypeId type_id, void** ppInterface) const noexcept;
Создает представление реализации в виде интерфейса, заданного идентификатором.
- Параметры
type_id 32-х битовое целое, принимающее одно из следующих значений идентификаторов интерфейсов. Символическое имя Целочисленное значение Описание StreamType 0 Целочисленный идентификатор интерфейса IStream. InputStreamType 1 Целочисленный идентификатор интерфейса IInputStream. InputByteStreamType 2 Целочисленный идентификатор интерфейса IInputByteStream. MemBufInputByteStreamType 3 Целочисленный идентификатор интерфейса IMemBufInputByteStream. FileInputByteStreamType 4 Целочисленный идентификатор интерфейса IFileInputByteStream. InternetConnectionInputByteStreamType 5 Целочисленный идентификатор интерфейса IInternetConnectionInputByteStream. InputObjectStreamType 32 Целочисленный идентификатор интерфейса IInputObjectStream. OutputStreamType 256 Целочисленный идентификатор интерфейса IOutputStream. OutputByteStreamType 257 Целочисленный идентификатор интерфейса IOutputByteStream. MemBufOutputByteStreamType 258 Целочисленный идентификатор интерфейса IMemBufOutputByteStream. FileOutputByteStreamType 259 Целочисленный идентификатор интерфейса IFileOutputByteStream. InternetConnectionOutputByteStreamType 260 Целочисленный идентификатор интерфейса IInternetConnectionOutputByteStream. OutputObjectStreamType 288 Целочисленный идентификатор интерфейса IOutputObjectStream. [out] ppInterface Выходной указатель, принимающий интерфейс заданного типа или 0 в случае ошибки. - Возвращаемое значение:
- 32-битовый целый код ошибки, который в случае успешного выполнения неотрицателен (старший бит сброшен). В случае, если интерфейс, заданный идентификатором, не поддерживается, возвращается код CHSVERROR_INVALID_PARAMETER.
В случае успешного завершения функции, полученный через параметр ppInterface объект необходимо закрывать вызовом его метода Release отдельно и независимо от объекта, над которым применен метод RepresentAs.
Для проверки доступности того или иного интерфейса предпочтительно использовать метод IDataStorage::IsInterfaceAvailable.