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


Метод ICallFrame::ReleaseMarshalData (callobj.h)

Освобождает ресурсы, которые хранятся указателями интерфейса, находящимися в пакете маршалированных данных. Этот метод находит все указатели интерфейса в пакете и вызывает функцию CoReleaseMarshalData для каждого из них.

Синтаксис

HRESULT ReleaseMarshalData(
  [in] PVOID                    pBuffer,
  [in] ULONG                    cbBuffer,
  [in] ULONG                    ibFirstRelease,
  [in] RPCOLEDATAREP            dataRep,
  [in] CALLFRAME_MARSHALCONTEXT *pcontext
);

Параметры

[in] pBuffer

Указатель на буфер, содержащий маршалированные значения [out].

[in] cbBuffer

Размер буфера в байтах.

[in] ibFirstRelease

Первый байт в буфере, который должен быть освобожден. Значение , равное нулю, означает, что указатели интерфейса во всем буфере должны быть освобождены. Предполагается, что маршалированные указатели интерфейса были освобождены каким-то другим механизмом.

[in] dataRep

Представление данных, с помощью которого были маршалированы данные.

[in] pcontext

Указатель на структуру CALLFRAME_MARSHALCONTEXT , содержащую контекстную информацию о том, как выполняется отмена маршалинга.

Возвращаемое значение

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
E_UNEXPECTED
Произошла непредвиденная ошибка.

Комментарии

Метод ReleaseMarshalData должен вызываться ровно один раз, чтобы очистить ресурсы, хранящиеся в маршализованном буфере. Однако если для перечисления MSHLFLAGS задано значение MSHLFLAGS_NORMAL, это выполняется автоматически во время отмены маршалинга и поэтому не требует явного выполнения.

Этот метод может правильно функционировать как для маршалированных параметров [in], так и [out].

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header callobj.h

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

ICallFrame