IStream::RepresentAs

Материал из CAMaaS preliminary wiki
Версия от 00:54, 18 декабря 2017; Андрей Чусов (обсуждение | вклад) (Исправление для нулевого кода return_code_t и включение PLATFORM_NATIVE_CALLING_CONVENTION в интерфейсы.)
Перейти к навигации Перейти к поиску
 return_code_t PLATFORM_NATIVE_CALLING_CONVENTION RepresentAs(StreamTypeId type_id,  void** ppInterface) const noexcept;

Создает представление реализации в виде интерфейса, заданного идентификатором.

Параметры
type_id32-х битовое целое, принимающее одно из следующих значений идентификаторов интерфейсов.
Символическое имяЦелочисленное значениеОписание
StreamType0Целочисленный идентификатор интерфейса IStream.
InputStreamType1Целочисленный идентификатор интерфейса IInputStream.
InputByteStreamType2Целочисленный идентификатор интерфейса IInputByteStream.
MemBufInputByteStreamType3Целочисленный идентификатор интерфейса IMemBufInputByteStream.
FileInputByteStreamType4Целочисленный идентификатор интерфейса IFileInputByteStream.
InternetConnectionInputByteStreamType5Целочисленный идентификатор интерфейса IInternetConnectionInputByteStream.
InputObjectStreamType32Целочисленный идентификатор интерфейса IInputObjectStream.
OutputStreamType256Целочисленный идентификатор интерфейса IOutputStream.
OutputByteStreamType257Целочисленный идентификатор интерфейса IOutputByteStream.
MemBufOutputByteStreamType258Целочисленный идентификатор интерфейса IMemBufOutputByteStream.
FileOutputByteStreamType259Целочисленный идентификатор интерфейса IFileOutputByteStream.
InternetConnectionOutputByteStreamType260Целочисленный идентификатор интерфейса IInternetConnectionOutputByteStream.
OutputObjectStreamType288Целочисленный идентификатор интерфейса IOutputObjectStream.
[out]ppInterfaceВыходной указатель, принимающий интерфейс заданного типа или 0 в случае ошибки.
Возвращаемое значение:
32-битовый целый код ошибки, который в случае успешного выполнения неотрицателен (старший бит сброшен). В случае, если интерфейс, заданный идентификатором, не поддерживается, возвращается код CHSVERROR_INVALID_PARAMETER.

В случае успешного завершения функции, полученный через параметр ppInterface объект необходимо закрывать вызовом его метода Release отдельно и независимо от объекта, над которым применен метод RepresentAs.

Для проверки доступности того или иного интерфейса предпочтительно использовать метод IStream::IsInterfaceAvailable.