Valores de retorno de função

Os valores de retorno de função são semelhantes a [out]-somente parâmetros porque seus dados não são fornecidos pelo aplicativo cliente. No entanto, eles são gerenciados de forma diferente. Ao contrário de 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 explicadas.

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 de retorno 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.