次の方法で共有


ICallFrame::Free メソッド (callobj.h)

メモリ リークを回避するために、フレーム コピーを解放します。

Copy メソッドを使用して呼び出しフレームのコピーが作成された場合、呼び出しフレームはコピーされたデータを自動的にクリーンしません。 したがって、呼び出しフレームのコピーが返された後、ユーザーは Free メソッドを呼び出してフレーム コピーを解放し、メモリ リークを回避する必要があります。

構文

HRESULT Free(
  [in] ICallFrame       *pframeArgsDest,
  [in] ICallFrameWalker *pWalkerDestFree,
  [in] ICallFrameWalker *pWalkerCopy,
  [in] DWORD            freeFlags,
  [in] ICallFrameWalker *pWalkerFree,
  [in] DWORD            nullFlags
);

パラメーター

[in] pframeArgsDest

ICallFrame インターフェイスのインスタンスへのポインター。 フレーム コピーを解放する前に out パラメーターをコピーする必要がある呼び出しフレームのスタック ポインターを表します。 コピー先フレームは、通常、フレームが最初にコピーされた親フレームです。 このパラメーターは省略可能です。

フレームを解放し、受信側フレームと同じメモリ空間にある pframeArgsDest パラメーターを指定すると、各インターフェイス ポインターで pWalkerCopy パラメーターのみが呼び出されます。

[in] pWalkerDestFree

ICallFrameWalker インターフェイスのインスタンスへのポインター。 pframeArgsDest にパラメーターの入力と出力が存在する場合は、それらの値を解放する必要があります。 pWalkerDestFree オブジェクトを指定すると、インターフェイス ポインターが解放されます。 pframeArgsDestNULL の場合、このパラメーターも NULL である必要があり、Release メソッドを呼び出してインターフェイス ポインターを解放する必要があります。

[in] pWalkerCopy

ICallFrameWalker インターフェイスのインスタンスへのポインター。 pframeArgsDest の in パラメーターと out パラメーターが解放されると、out パラメーターの伝達が実行されます。このパラメーターが指定されていない場合、インターフェイス ポインターは AddRef に渡されます。 このパラメーターは省略可能です。

[in] freeFlags

CALLFRAME_FREE列挙からのフラグ。

[in] pWalkerFree

ICallFrameWalker インターフェイスのインスタンスへのポインター。 指定すると、解放中に検出された各インターフェイス ポインターに対してコールバックが行われます。 このパラメーターが指定されていない場合、インターフェイス ポインターは Release メソッドによって解放されます。

[in] nullFlags

CALLFRAME_NULL列挙からのフラグ。

戻り値

このメソッドは、次の値を返すことができます。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_UNEXPECTED
予期しないエラーが発生しました。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー callobj.h

こちらもご覧ください

ICallFrame