Возвращаемые значения функции
Возвращаемые значения функции похожи на параметры только [out], так как их данные не предоставляются клиентским приложением. Однако управление ими осуществляется по-разному. В отличие от параметров [out]only, они не обязательно должны быть указателями. Удаленная процедура может возвращать любой допустимый тип данных, кроме ссылочных указателей и некапсулированных объединений.
Однако рекомендуется использовать параметр [out] вместо возвращаемого значения для сложных типов данных. При возврате сложных типов данных компилятор MIDL создаст заглушку в режиме /Os. В результате все последние сведения о проверке ошибок, предоставленные параметром /robust, теряются.
Возвращаемые функцией значения, которые являются типами указателей, выделяются клиентской заглушки с помощью вызова midl_user_allocate. Соответственно, к типу возвращаемой функции указателя можно применить только уникальный или полный атрибут указателя.