Valeurs de retour de fonction
Les valeurs de retour de fonction sont similaires aux paramètres [out]-only, car leurs données ne sont pas fournies par l’application cliente. Toutefois, ils sont gérés différemment. Contrairement aux paramètres [out]-only, ils ne doivent pas nécessairement être des pointeurs. La procédure distante peut retourner n’importe quel type de données valide, à l’exception des pointeurs de référence et des unions non encapsulées.
Toutefois, il est recommandé d’utiliser un paramètre [out] au lieu d’une valeur de retour pour les types de données complexes. Lors du retour de types de données complexes, le compilateur MIDL génère un stub en mode /Os. Par conséquent, toutes les informations récentes de vérification des erreurs fournies par /robust sont perdues.
Les valeurs de retour de fonction qui sont des types de pointeurs sont allouées par le stub client avec un appel à midl_user_allocate. Par conséquent, seul l’attribut pointeur unique ou complet peut être appliqué à un type de retour de fonction de pointeur.