関数の戻り値
関数の戻り値は、クライアント アプリケーションによってデータが提供されないため、[out]-only パラメーターに似ています。 ただし、管理方法は異なります。 [out]-only パラメーターとは異なり、ポインターである必要はありません。 リモート プロシージャは、参照ポインターと非カプセル化共用体を除く任意の有効なデータ型を返すことができます。
ただし、複合データ型の戻り値ではなく、[out] パラメーターを使用することをお勧めします。 複合データ型を返しながら、MIDL コンパイラは /Os モード スタブを生成します。 その結果、/robust によって提供された最近のエラー チェック情報はすべて失われます。
ポインター型である関数の戻り値は、midl_user_allocateの呼び出しでクライアント スタブによって割り当てられます。 したがって、ポインター関数の戻り値の型には、一意または完全なポインター属性のみを適用できます。