次の方法で共有


type_UserFree関数

<type>_UserFree 関数は、[ wire_marshal] 属性と [ user_marshal] 属性のヘルパー関数です。 スタブはこの関数を呼び出して、サーバー側のデータを解放します。 関数は次のように定義されます。

void __RPC_USER  <type>_UserFree(
    unsigned long __RPC_FAR * pFlags,
    <type_name>  __RPC_FAR *  pMyObj );

関数名の型>は<、[wire_marshal] または [user_marshal] 型定義で指定された userm 型意味します。

pFlags パラメーターは、署名されていない長いフラグ フィールドへのポインターです。 フラグの上の単語には、浮動小数点、バイト順、および文字表現に対して OSF DCE によって定義されている NDR データ表現フラグが含まれています。 下の単語には、COM チャネルで定義されているマーシャリング コンテキスト フラグが含まれています。 フィールド内のフラグの正確なレイアウト については、「type_UserSize関数」を参照してください。

pMyObj パラメーターは、ユーザー型オブジェクトへのポインターです。 NDR エンジンは、最上位レベルのオブジェクトを解放します。 最上位のオブジェクトが指す可能性のあるオブジェクトを解放する責任があります。

例外はローカルでキャッチして処理する必要があります。例外を使用して呼び出し履歴を割り当てることはできません。

user_marshalとwire_marshalのマーシャリング ルール

wire_marshal

user_marshal