IStream::RepresentAs: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{function_begin | return_code_t RepresentAs(StreamTypeId type_id, void** ppInterface) const noexcept; |{{IStream::RepresentAs brief}}}} {{function_paramlist beg…»)
 
Строка 1: Строка 1:
{{function_begin | return_code_t RepresentAs(StreamTypeId type_id,  void** ppInterface) const noexcept; |{{IStream::RepresentAs brief}}}}
{{function_begin | return_code_t RepresentAs(StreamTypeId type_id,  void** ppInterface) const noexcept; |{{IStream::RepresentAs brief}}}}
{{function_paramlist begin}}
{{function_paramlist begin}}
{{function_paramlist add|type_id|.}}
{{function_paramlist add|type_id|32-х битовое целое, принимающее одно из следующих значений идентификаторов интерфейсов. {{StreamTypeId}}}}
{{function_paramlist add|ppInterface|.|paramdir=[out]}}
{{function_paramlist add|ppInterface|Выходной указатель, принимающий интерфейс заданного типа или 0 в случае ошибки.|paramdir=[out]}}
{{function_paramlist end}}
{{function_paramlist end}}
{{function_return_value|32-битовый беззнаковый целый код ошибки, который в случае успешного выполнения равен 0.}}
{{function_return_value|32-битовый целый код ошибки, который в случае успешного выполнения неотрицателен (старший бит сброшен). В случае, если интерфейс, заданный идентификатором, не поддерживается, возвращается код [https://www.chusov.org/doxygen/group___error_handling.html CHSVERROR_INVALID_PARAMETER].}}
{{function_end}}
{{function_end}}
В случае успешного завершения функции, полученный через параметр <tt>ppInterface</tt> объект необходимо закрывать вызовом его метода [[InterfaceBase::Release|Release]] отдельно и независимо от объекта, над которым применен метод [[IDataStorage::RepresentAs|RepresentAs]].
Для проверки доступности того или иного интерфейса предпочтительно использовать метод [[IDataStorage::IsInterfaceAvailable]].

Версия 07:20, 21 апреля 2017

 return_code_t 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.

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