Valores devueltos de función
Los valores devueltos de función son similares a los parámetros de solo salida porque la aplicación cliente no proporciona sus datos. Sin embargo, se administran de forma diferente. A diferencia de los parámetros de solo salida, no son necesarios para ser punteros. El procedimiento remoto puede devolver cualquier tipo de datos válido excepto punteros de referencia y uniones no encapsuladas.
Sin embargo, se recomienda usar un parámetro [out] en lugar de un valor devuelto para tipos de datos complejos. Al devolver tipos de datos complejos, el compilador MIDL generará un código auxiliar del modo /Os. Como resultado, se pierde toda la información reciente de comprobación de errores proporcionada por /robust.
El código auxiliar del cliente asigna los valores devueltos por la función que son tipos de puntero con una llamada a midl_user_allocate. En consecuencia, solo se puede aplicar el atributo de puntero único o completo a un tipo de valor devuelto de función de puntero.