Valores retornados da função
Os valores retornados da função são semelhantes aos parâmetros [out]-only porque seus dados não são fornecidos pelo aplicativo cliente. No entanto, eles são gerenciados de forma diferente. Ao contrário dos parâmetros [out]-only, eles não são necessários para serem ponteiros. O procedimento remoto pode retornar qualquer tipo de dados válido, exceto ponteiros de referência e uniões não anátuladas.
No entanto, é recomendável usar um parâmetro [out] em vez de um valor retornado para tipos de dados complexos. Ao retornar tipos de dados complexos, o compilador MIDL gerará um stub do modo /Os. Como resultado, todas as informações recentes de verificação de erros fornecidas por /robust são perdidas.
Os valores retornados de função que são tipos de ponteiro são alocados pelo stub do cliente com uma chamada para midl_user_allocate. Assim, somente o atributo de ponteiro exclusivo ou completo pode ser aplicado a um tipo de retorno de função de ponteiro.