Метод 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 .
Возвращаемое значение
Этот метод может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
|
Произошла непредвиденная ошибка. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | callobj.h |