Поделиться через


Метод 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 существуют параметры in и out, то для распространения требуется, чтобы эти значения были освобождены. Если предоставить объект pWalkerDestFree , указатели интерфейса будут освобождены. Если pframeArgsDest имеет значение NULL, то этот параметр также должен иметь значение NULL , а указатели интерфейса должны быть освобождены путем вызова метода Release .

[in] pWalkerCopy

Указатель на экземпляр интерфейса ICallFrameWalker . При освобождении параметров in и out в pframeArgsDest выполняется распространение параметров 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
Header callobj.h

См. также раздел

ICallFrame