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 接口实例的指针。 表示调用帧的堆栈指针,在释放帧复制之前,输出参数应复制到该调用帧。 目标帧通常是最初从中复制该帧的父框架。 此参数是可选的。

释放帧并指定 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